<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<html>
<body>
<pre>
<script type="text/javascript">
var dbits;
var canary = 0xdeadbeefcafe;
var j_lm = 15715070 == (16777215 & canary);
function BigInteger(e, t, i) {
    if (null != e) if ("number" == typeof e) this.fromNumber(e, t, i);
    else if (null == t && "string" != typeof e) this.fromString(e, 256);
    else this.fromString(e, t)
}
function nbi() {
    return new BigInteger(null)
}
function am1(e, t, i, n, s, r) {
    for (; --r >= 0;) {
        var a = t * this[e++] + i[n] + s;
        s = Math.floor(a / 67108864);
        i[n++] = 67108863 & a
    }
    return s
}
function am2(e, t, i, n, s, r) {
    var a = 32767 & t,
    o = t >> 15;
    for (; --r >= 0;) {
        var c = 32767 & this[e];
        var _ = this[e++] >> 15;
        var d = o * c + _ * a;
        c = a * c + ((32767 & d) << 15) + i[n] + (1073741823 & s);
        s = (c >>> 30) + (d >>> 15) + o * _ + (s >>> 30);
        i[n++] = 1073741823 & c
    }
    return s
}
function am3(e, t, i, n, s, r) {
    var a = 16383 & t,
    o = t >> 14;
    for (; --r >= 0;) {
        var c = 16383 & this[e];
        var _ = this[e++] >> 14;
        var d = o * c + _ * a;
        c = a * c + ((16383 & d) << 14) + i[n] + s;
        s = (c >> 28) + (d >> 14) + o * _;
        i[n++] = 268435455 & c
    }
    return s
}
if (j_lm && "Microsoft Internet Explorer" == navigator.appName) {
    BigInteger.prototype.am = am2;
    dbits = 30
} else if (j_lm && "Netscape" != navigator.appName) {
    BigInteger.prototype.am = am1;
    dbits = 26
} else {
    BigInteger.prototype.am = am3;
    dbits = 28
}
BigInteger.prototype.DB = dbits;
BigInteger.prototype.DM = (1 << dbits) - 1;
BigInteger.prototype.DV = 1 << dbits;
var BI_FP = 52;
BigInteger.prototype.FV = Math.pow(2, BI_FP);
BigInteger.prototype.F1 = BI_FP - dbits;
BigInteger.prototype.F2 = 2 * dbits - BI_FP;
var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
var BI_RC = new Array;
var rr, vv;
rr = "0".charCodeAt(0);
for (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
rr = "a".charCodeAt(0);
for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
rr = "A".charCodeAt(0);
for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
function int2char(e) {
    return BI_RM.charAt(e)
}
function intAt(e, t) {
    var i = BI_RC[e.charCodeAt(t)];
    return null == i ? -1 : i
}
function bnpCopyTo(e) {
    for (var t = this.t - 1; t >= 0; --t) e[t] = this[t];
    e.t = this.t;
    e.s = this.s
}
function bnpFromInt(e) {
    this.t = 1;
    this.s = e < 0 ? -1 : 0;
    if (e > 0) this[0] = e;
    else if (e < -1) this[0] = e + DV;
    else this.t = 0
}
function nbv(e) {
    var t = nbi();
    t.fromInt(e);
    return t
}
function bnpFromString(e, t) {
    var i;
    if (16 == t) i = 4;
    else if (8 == t) i = 3;
    else if (256 == t) i = 8;
    else if (2 == t) i = 1;
    else if (32 == t) i = 5;
    else if (4 == t) i = 2;
    else {
        this.fromRadix(e, t);
        return
    }
    this.t = 0;
    this.s = 0;
    var n = e.length,
    s = !1,
    r = 0;
    for (; --n >= 0;) {
        var a = 8 == i ? 255 & e[n] : intAt(e, n);
        if (! (a < 0)) {
            s = !1;
            if (0 == r) this[this.t++] = a;
            else if (r + i > this.DB) {
                this[this.t - 1] |= (a & (1 << this.DB - r) - 1) << r;
                this[this.t++] = a >> this.DB - r
            } else this[this.t - 1] |= a << r;
            r += i;
            if (r >= this.DB) r -= this.DB
        } else if ("-" == e.charAt(n)) s = !0
    }
    if (8 == i && 0 != (128 & e[0])) {
        this.s = -1;
        if (r > 0) this[this.t - 1] |= (1 << this.DB - r) - 1 << r
    }
    this.clamp();
    if (s) BigInteger.ZERO.subTo(this, this)
}
function bnpClamp() {
    var e = this.s & this.DM;
    for (; this.t > 0 && this[this.t - 1] == e;)--this.t
}
function bnToString(e) {
    if (this.s < 0) return "-" + this.negate().toString(e);
    var t;
    if (16 == e) t = 4;
    else if (8 == e) t = 3;
    else if (2 == e) t = 1;
    else if (32 == e) t = 5;
    else if (4 == e) t = 2;
    else return this.toRadix(e);
    var i = (1 << t) - 1,
    n,
    s = !1,
    r = "",
    a = this.t;
    var o = this.DB - a * this.DB % t;
    if (a-->0) {
        if (o < this.DB && (n = this[a] >> o) > 0) {
            s = !0;
            r = int2char(n)
        }
        for (; a >= 0;) {
            if (o < t) {
                n = (this[a] & (1 << o) - 1) << t - o;
                n |= this[--a] >> (o += this.DB - t)
            } else {
                n = this[a] >> (o -= t) & i;
                if (o <= 0) {
                    o += this.DB; --a
                }
            }
            if (n > 0) s = !0;
            if (s) r += int2char(n)
        }
    }
    return s ? r: "0"
}
function bnNegate() {
    var e = nbi();
    BigInteger.ZERO.subTo(this, e);
    return e
}
function bnAbs() {
    return this.s < 0 ? this.negate() : this
}
function bnCompareTo(e) {
    var t = this.s - e.s;
    if (0 != t) return t;
    var i = this.t;
    t = i - e.t;
    if (0 != t) return this.s < 0 ? -t: t;
    for (; --i >= 0;) if (0 != (t = this[i] - e[i])) return t;
    return 0
}
function nbits(e) {
    var t = 1,
    i;
    if (0 != (i = e >>> 16)) {
        e = i;
        t += 16
    }
    if (0 != (i = e >> 8)) {
        e = i;
        t += 8
    }
    if (0 != (i = e >> 4)) {
        e = i;
        t += 4
    }
    if (0 != (i = e >> 2)) {
        e = i;
        t += 2
    }
    if (0 != (i = e >> 1)) {
        e = i;
        t += 1
    }
    return t
}
function bnBitLength() {
    if (this.t <= 0) return 0;
    else return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM)
}
function bnpDLShiftTo(e, t) {
    var i;
    for (i = this.t - 1; i >= 0; --i) t[i + e] = this[i];
    for (i = e - 1; i >= 0; --i) t[i] = 0;
    t.t = this.t + e;
    t.s = this.s
}
function bnpDRShiftTo(e, t) {
    for (var i = e; i < this.t; ++i) t[i - e] = this[i];
    t.t = Math.max(this.t - e, 0);
    t.s = this.s
}
function bnpLShiftTo(e, t) {
    var i = e % this.DB;
    var n = this.DB - i;
    var s = (1 << n) - 1;
    var r = Math.floor(e / this.DB),
    a = this.s << i & this.DM,
    o;
    for (o = this.t - 1; o >= 0; --o) {
        t[o + r + 1] = this[o] >> n | a;
        a = (this[o] & s) << i
    }
    for (o = r - 1; o >= 0; --o) t[o] = 0;
    t[r] = a;
    t.t = this.t + r + 1;
    t.s = this.s;
    t.clamp()
}
function bnpRShiftTo(e, t) {
    t.s = this.s;
    var i = Math.floor(e / this.DB);
    if (! (i >= this.t)) {
        var n = e % this.DB;
        var s = this.DB - n;
        var r = (1 << n) - 1;
        t[0] = this[i] >> n;
        for (var a = i + 1; a < this.t; ++a) {
            t[a - i - 1] |= (this[a] & r) << s;
            t[a - i] = this[a] >> n
        }
        if (n > 0) t[this.t - i - 1] |= (this.s & r) << s;
        t.t = this.t - i;
        t.clamp()
    } else t.t = 0
}
function bnpSubTo(e, t) {
    var i = 0,
    n = 0,
    s = Math.min(e.t, this.t);
    for (; i < s;) {
        n += this[i] - e[i];
        t[i++] = n & this.DM;
        n >>= this.DB
    }
    if (e.t < this.t) {
        n -= e.s;
        for (; i < this.t;) {
            n += this[i];
            t[i++] = n & this.DM;
            n >>= this.DB
        }
        n += this.s
    } else {
        n += this.s;
        for (; i < e.t;) {
            n -= e[i];
            t[i++] = n & this.DM;
            n >>= this.DB
        }
        n -= e.s
    }
    t.s = n < 0 ? -1 : 0;
    if (n < -1) t[i++] = this.DV + n;
    else if (n > 0) t[i++] = n;
    t.t = i;
    t.clamp()
}
function bnpMultiplyTo(e, t) {
    var i = this.abs(),
    n = e.abs();
    var s = i.t;
    t.t = s + n.t;
    for (; --s >= 0;) t[s] = 0;
    for (s = 0; s < n.t; ++s) t[s + i.t] = i.am(0, n[s], t, s, 0, i.t);
    t.s = 0;
    t.clamp();
    if (this.s != e.s) BigInteger.ZERO.subTo(t, t)
}
function bnpSquareTo(e) {
    var t = this.abs();
    var i = e.t = 2 * t.t;
    for (; --i >= 0;) e[i] = 0;
    for (i = 0; i < t.t - 1; ++i) {
        var n = t.am(i, t[i], e, 2 * i, 0, 1);
        if ((e[i + t.t] += t.am(i + 1, 2 * t[i], e, 2 * i + 1, n, t.t - i - 1)) >= t.DV) {
            e[i + t.t] -= t.DV;
            e[i + t.t + 1] = 1
        }
    }
    if (e.t > 0) e[e.t - 1] += t.am(i, t[i], e, 2 * i, 0, 1);
    e.s = 0;
    e.clamp()
}
function bnpDivRemTo(e, t, i) {
    var n = e.abs();
    if (! (n.t <= 0)) {
        var s = this.abs();
        if (! (s.t < n.t)) {
            if (null == i) i = nbi();
            var r = nbi(),
            a = this.s,
            o = e.s;
            var c = this.DB - nbits(n[n.t - 1]);
            if (c > 0) {
                n.lShiftTo(c, r);
                s.lShiftTo(c, i)
            } else {
                n.copyTo(r);
                s.copyTo(i)
            }
            var _ = r.t;
            var d = r[_ - 1];
            if (0 != d) {
                var f = d * (1 << this.F1) + (_ > 1 ? r[_ - 2] >> this.F2: 0);
                var h = this.FV / f,
                l = (1 << this.F1) / f,
                u = 1 << this.F2;
                var p = i.t,
                m = p - _,
                g = null == t ? nbi() : t;
                r.dlShiftTo(m, g);
                if (i.compareTo(g) >= 0) {
                    i[i.t++] = 1;
                    i.subTo(g, i)
                }
                BigInteger.ONE.dlShiftTo(_, g);
                g.subTo(r, r);
                for (; r.t < _;) r[r.t++] = 0;
                for (; --m >= 0;) {
                    var b = i[--p] == d ? this.DM: Math.floor(i[p] * h + (i[p - 1] + u) * l);
                    if ((i[p] += r.am(0, b, i, m, 0, _)) < b) {
                        r.dlShiftTo(m, g);
                        i.subTo(g, i);
                        for (; i[p] < --b;) i.subTo(g, i)
                    }
                }
                if (null != t) {
                    i.drShiftTo(_, t);
                    if (a != o) BigInteger.ZERO.subTo(t, t)
                }
                i.t = _;
                i.clamp();
                if (c > 0) i.rShiftTo(c, i);
                if (a < 0) BigInteger.ZERO.subTo(i, i)
            }
        } else {
            if (null != t) t.fromInt(0);
            if (null != i) this.copyTo(i)
        }
    }
}
function bnMod(e) {
    var t = nbi();
    this.abs().divRemTo(e, null, t);
    if (this.s < 0 && t.compareTo(BigInteger.ZERO) > 0) e.subTo(t, t);
    return t
}
function Classic(e) {
    this.m = e
}
function cConvert(e) {
    if (e.s < 0 || e.compareTo(this.m) >= 0) return e.mod(this.m);
    else return e
}
function cRevert(e) {
    return e
}
function cReduce(e) {
    e.divRemTo(this.m, null, e)
}
function cMulTo(e, t, i) {
    e.multiplyTo(t, i);
    this.reduce(i)
}
function cSqrTo(e, t) {
    e.squareTo(t);
    this.reduce(t)
}
Classic.prototype.convert = cConvert;
Classic.prototype.revert = cRevert;
Classic.prototype.reduce = cReduce;
Classic.prototype.mulTo = cMulTo;
Classic.prototype.sqrTo = cSqrTo;
function bnpInvDigit() {
    if (this.t < 1) return 0;
    var e = this[0];
    if (0 == (1 & e)) return 0;
    var t = 3 & e;
    t = t * (2 - (15 & e) * t) & 15;
    t = t * (2 - (255 & e) * t) & 255;
    t = t * (2 - ((65535 & e) * t & 65535)) & 65535;
    t = t * (2 - e * t % this.DV) % this.DV;
    return t > 0 ? this.DV - t: -t
}
function Montgomery(e) {
    this.m = e;
    this.mp = e.invDigit();
    this.mpl = 32767 & this.mp;
    this.mph = this.mp >> 15;
    this.um = (1 << e.DB - 15) - 1;
    this.mt2 = 2 * e.t
}
function montConvert(e) {
    var t = nbi();
    e.abs().dlShiftTo(this.m.t, t);
    t.divRemTo(this.m, null, t);
    if (e.s < 0 && t.compareTo(BigInteger.ZERO) > 0) this.m.subTo(t, t);
    return t
}
function montRevert(e) {
    var t = nbi();
    e.copyTo(t);
    this.reduce(t);
    return t
}
function montReduce(e) {
    for (; e.t <= this.mt2;) e[e.t++] = 0;
    for (var t = 0; t < this.m.t; ++t) {
        var i = 32767 & e[t];
        var n = i * this.mpl + ((i * this.mph + (e[t] >> 15) * this.mpl & this.um) << 15) & e.DM;
        i = t + this.m.t;
        e[i] += this.m.am(0, n, e, t, 0, this.m.t);
        for (; e[i] >= e.DV;) {
            e[i] -= e.DV;
            e[++i]++
        }
    }
    e.clamp();
    e.drShiftTo(this.m.t, e);
    if (e.compareTo(this.m) >= 0) e.subTo(this.m, e)
}
function montSqrTo(e, t) {
    e.squareTo(t);
    this.reduce(t)
}
function montMulTo(e, t, i) {
    e.multiplyTo(t, i);
    this.reduce(i)
}
Montgomery.prototype.convert = montConvert;
Montgomery.prototype.revert = montRevert;
Montgomery.prototype.reduce = montReduce;
Montgomery.prototype.mulTo = montMulTo;
Montgomery.prototype.sqrTo = montSqrTo;
function bnpIsEven() {
    return 0 == (this.t > 0 ? 1 & this[0] : this.s)
}
function bnpExp(e, t) {
    if (e > 4294967295 || e < 1) return BigInteger.ONE;
    var i = nbi(),
    n = nbi(),
    s = t.convert(this),
    r = nbits(e) - 1;
    s.copyTo(i);
    for (; --r >= 0;) {
        t.sqrTo(i, n);
        if ((e & 1 << r) > 0) t.mulTo(n, s, i);
        else {
            var a = i;
            i = n;
            n = a
        }
    }
    return t.revert(i)
}
function bnModPowInt(e, t) {
    var i;
    if (e < 256 || t.isEven()) i = new Classic(t);
    else i = new Montgomery(t);
    return this.exp(e, i)
}
BigInteger.prototype.copyTo = bnpCopyTo;
BigInteger.prototype.fromInt = bnpFromInt;
BigInteger.prototype.fromString = bnpFromString;
BigInteger.prototype.clamp = bnpClamp;
BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
BigInteger.prototype.drShiftTo = bnpDRShiftTo;
BigInteger.prototype.lShiftTo = bnpLShiftTo;
BigInteger.prototype.rShiftTo = bnpRShiftTo;
BigInteger.prototype.subTo = bnpSubTo;
BigInteger.prototype.multiplyTo = bnpMultiplyTo;
BigInteger.prototype.squareTo = bnpSquareTo;
BigInteger.prototype.divRemTo = bnpDivRemTo;
BigInteger.prototype.invDigit = bnpInvDigit;
BigInteger.prototype.isEven = bnpIsEven;
BigInteger.prototype.exp = bnpExp;
BigInteger.prototype.toString = bnToString;
BigInteger.prototype.negate = bnNegate;
BigInteger.prototype.abs = bnAbs;
BigInteger.prototype.compareTo = bnCompareTo;
BigInteger.prototype.bitLength = bnBitLength;
BigInteger.prototype.mod = bnMod;
BigInteger.prototype.modPowInt = bnModPowInt;
BigInteger.ZERO = nbv(0);
BigInteger.ONE = nbv(1);
function bnClone() {
    var e = nbi();
    this.copyTo(e);
    return e
}
function bnIntValue() {
    if (this.s < 0) {
        if (1 == this.t) return this[0] - this.DV;
        else if (0 == this.t) return - 1
    } else if (1 == this.t) return this[0];
    else if (0 == this.t) return 0;
    return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0]
}
function bnByteValue() {
    return 0 == this.t ? this.s: this[0] << 24 >> 24
}
function bnShortValue() {
    return 0 == this.t ? this.s: this[0] << 16 >> 16
}
function bnpChunkSize(e) {
    return Math.floor(Math.LN2 * this.DB / Math.log(e))
}
function bnSigNum() {
    if (this.s < 0) return - 1;
    else if (this.t <= 0 || 1 == this.t && this[0] <= 0) return 0;
    else return 1
}
function bnpToRadix(e) {
    if (null == e) e = 10;
    if (0 == this.signum() || e < 2 || e > 36) return "0";
    var t = this.chunkSize(e);
    var i = Math.pow(e, t);
    var n = nbv(i),
    s = nbi(),
    r = nbi(),
    a = "";
    this.divRemTo(n, s, r);
    for (; s.signum() > 0;) {
        a = (i + r.intValue()).toString(e).substr(1) + a;
        s.divRemTo(n, s, r)
    }
    return r.intValue().toString(e) + a
}
function bnpFromRadix(e, t) {
    this.fromInt(0);
    if (null == t) t = 10;
    var i = this.chunkSize(t);
    var n = Math.pow(t, i),
    s = !1,
    r = 0,
    a = 0;
    for (var o = 0; o < e.length; ++o) {
        var c = intAt(e, o);
        if (! (c < 0)) {
            a = t * a + c;
            if (++r >= i) {
                this.dMultiply(n);
                this.dAddOffset(a, 0);
                r = 0;
                a = 0
            }
        } else if ("-" == e.charAt(o) && 0 == this.signum()) s = !0
    }
    if (r > 0) {
        this.dMultiply(Math.pow(t, r));
        this.dAddOffset(a, 0)
    }
    if (s) BigInteger.ZERO.subTo(this, this)
}
function bnpFromNumber(e, t, i) {
    if ("number" == typeof t) if (e < 2) this.fromInt(1);
    else {
        this.fromNumber(e, i);
        if (!this.testBit(e - 1)) this.bitwiseTo(BigInteger.ONE.shiftLeft(e - 1), op_or, this);
        if (this.isEven()) this.dAddOffset(1, 0);
        for (; ! this.isProbablePrime(t);) {
            this.dAddOffset(2, 0);
            if (this.bitLength() > e) this.subTo(BigInteger.ONE.shiftLeft(e - 1), this)
        }
    } else {
        var n = new Array,
        s = 7 & e;
        n.length = (e >> 3) + 1;
        t.nextBytes(n);
        if (s > 0) n[0] &= (1 << s) - 1;
        else n[0] = 0;
        this.fromString(n, 256)
    }
}
function bnToByteArray() {
    var e = this.t,
    t = new Array;
    t[0] = this.s;
    var i = this.DB - e * this.DB % 8,
    n, s = 0;
    if (e-->0) {
        if (i < this.DB && (n = this[e] >> i) != (this.s & this.DM) >> i) t[s++] = n | this.s << this.DB - i;
        for (; e >= 0;) {
            if (i < 8) {
                n = (this[e] & (1 << i) - 1) << 8 - i;
                n |= this[--e] >> (i += this.DB - 8)
            } else {
                n = this[e] >> (i -= 8) & 255;
                if (i <= 0) {
                    i += this.DB; --e
                }
            }
            if (0 != (128 & n)) n |= -256;
            if (0 == s && (128 & this.s) != (128 & n))++s;
            if (s > 0 || n != this.s) t[s++] = n
        }
    }
    return t
}
function bnEquals(e) {
    return 0 == this.compareTo(e)
}
function bnMin(e) {
    return this.compareTo(e) < 0 ? this: e
}
function bnMax(e) {
    return this.compareTo(e) > 0 ? this: e
}
function bnpBitwiseTo(e, t, i) {
    var n, s, r = Math.min(e.t, this.t);
    for (n = 0; n < r; ++n) i[n] = t(this[n], e[n]);
    if (e.t < this.t) {
        s = e.s & this.DM;
        for (n = r; n < this.t; ++n) i[n] = t(this[n], s);
        i.t = this.t
    } else {
        s = this.s & this.DM;
        for (n = r; n < e.t; ++n) i[n] = t(s, e[n]);
        i.t = e.t
    }
    i.s = t(this.s, e.s);
    i.clamp()
}
function op_and(e, t) {
    return e & t
}
function bnAnd(e) {
    var t = nbi();
    this.bitwiseTo(e, op_and, t);
    return t
}
function op_or(e, t) {
    return e | t
}
function bnOr(e) {
    var t = nbi();
    this.bitwiseTo(e, op_or, t);
    return t
}
function op_xor(e, t) {
    return e ^ t
}
function bnXor(e) {
    var t = nbi();
    this.bitwiseTo(e, op_xor, t);
    return t
}
function op_andnot(e, t) {
    return e & ~t
}
function bnAndNot(e) {
    var t = nbi();
    this.bitwiseTo(e, op_andnot, t);
    return t
}
function bnNot() {
    var e = nbi();
    for (var t = 0; t < this.t; ++t) e[t] = this.DM & ~this[t];
    e.t = this.t;
    e.s = ~this.s;
    return e
}
function bnShiftLeft(e) {
    var t = nbi();
    if (e < 0) this.rShiftTo( - e, t);
    else this.lShiftTo(e, t);
    return t
}
function bnShiftRight(e) {
    var t = nbi();
    if (e < 0) this.lShiftTo( - e, t);
    else this.rShiftTo(e, t);
    return t
}
function lbit(e) {
    if (0 == e) return - 1;
    var t = 0;
    if (0 == (65535 & e)) {
        e >>= 16;
        t += 16
    }
    if (0 == (255 & e)) {
        e >>= 8;
        t += 8
    }
    if (0 == (15 & e)) {
        e >>= 4;
        t += 4
    }
    if (0 == (3 & e)) {
        e >>= 2;
        t += 2
    }
    if (0 == (1 & e))++t;
    return t
}
function bnGetLowestSetBit() {
    for (var e = 0; e < this.t; ++e) if (0 != this[e]) return e * this.DB + lbit(this[e]);
    if (this.s < 0) return this.t * this.DB;
    else return - 1
}
function cbit(e) {
    var t = 0;
    for (; 0 != e;) {
        e &= e - 1; ++t
    }
    return t
}
function bnBitCount() {
    var e = 0,
    t = this.s & this.DM;
    for (var i = 0; i < this.t; ++i) e += cbit(this[i] ^ t);
    return e
}
function bnTestBit(e) {
    var t = Math.floor(e / this.DB);
    if (t >= this.t) return 0 != this.s;
    else return 0 != (this[t] & 1 << e % this.DB)
}
function bnpChangeBit(e, t) {
    var i = BigInteger.ONE.shiftLeft(e);
    this.bitwiseTo(i, t, i);
    return i
}
function bnSetBit(e) {
    return this.changeBit(e, op_or)
}
function bnClearBit(e) {
    return this.changeBit(e, op_andnot)
}
function bnFlipBit(e) {
    return this.changeBit(e, op_xor)
}
function bnpAddTo(e, t) {
    var i = 0,
    n = 0,
    s = Math.min(e.t, this.t);
    for (; i < s;) {
        n += this[i] + e[i];
        t[i++] = n & this.DM;
        n >>= this.DB
    }
    if (e.t < this.t) {
        n += e.s;
        for (; i < this.t;) {
            n += this[i];
            t[i++] = n & this.DM;
            n >>= this.DB
        }
        n += this.s
    } else {
        n += this.s;
        for (; i < e.t;) {
            n += e[i];
            t[i++] = n & this.DM;
            n >>= this.DB
        }
        n += e.s
    }
    t.s = n < 0 ? -1 : 0;
    if (n > 0) t[i++] = n;
    else if (n < -1) t[i++] = this.DV + n;
    t.t = i;
    t.clamp()
}
function bnAdd(e) {
    var t = nbi();
    this.addTo(e, t);
    return t
}
function bnSubtract(e) {
    var t = nbi();
    this.subTo(e, t);
    return t
}
function bnMultiply(e) {
    var t = nbi();
    this.multiplyTo(e, t);
    return t
}
function bnSquare() {
    var e = nbi();
    this.squareTo(e);
    return e
}
function bnDivide(e) {
    var t = nbi();
    this.divRemTo(e, t, null);
    return t
}
function bnRemainder(e) {
    var t = nbi();
    this.divRemTo(e, null, t);
    return t
}
function bnDivideAndRemainder(e) {
    var t = nbi(),
    i = nbi();
    this.divRemTo(e, t, i);
    return new Array(t, i)
}
function bnpDMultiply(e) {
    this[this.t] = this.am(0, e - 1, this, 0, 0, this.t); ++this.t;
    this.clamp()
}
function bnpDAddOffset(e, t) {
    if (0 != e) {
        for (; this.t <= t;) this[this.t++] = 0;
        this[t] += e;
        for (; this[t] >= this.DV;) {
            this[t] -= this.DV;
            if (++t >= this.t) this[this.t++] = 0; ++this[t]
        }
    }
}
function NullExp() {}
function nNop(e) {
    return e
}
function nMulTo(e, t, i) {
    e.multiplyTo(t, i)
}
function nSqrTo(e, t) {
    e.squareTo(t)
}
NullExp.prototype.convert = nNop;
NullExp.prototype.revert = nNop;
NullExp.prototype.mulTo = nMulTo;
NullExp.prototype.sqrTo = nSqrTo;
function bnPow(e) {
    return this.exp(e, new NullExp)
}
function bnpMultiplyLowerTo(e, t, i) {
    var n = Math.min(this.t + e.t, t);
    i.s = 0;
    i.t = n;
    for (; n > 0;) i[--n] = 0;
    var s;
    for (s = i.t - this.t; n < s; ++n) i[n + this.t] = this.am(0, e[n], i, n, 0, this.t);
    for (s = Math.min(e.t, t); n < s; ++n) this.am(0, e[n], i, n, 0, t - n);
    i.clamp()
}
function bnpMultiplyUpperTo(e, t, i) {--t;
    var n = i.t = this.t + e.t - t;
    i.s = 0;
    for (; --n >= 0;) i[n] = 0;
    for (n = Math.max(t - this.t, 0); n < e.t; ++n) i[this.t + n - t] = this.am(t - n, e[n], i, 0, 0, this.t + n - t);
    i.clamp();
    i.drShiftTo(1, i)
}
function Barrett(e) {
    this.r2 = nbi();
    this.q3 = nbi();
    BigInteger.ONE.dlShiftTo(2 * e.t, this.r2);
    this.mu = this.r2.divide(e);
    this.m = e
}
function barrettConvert(e) {
    if (e.s < 0 || e.t > 2 * this.m.t) return e.mod(this.m);
    else if (e.compareTo(this.m) < 0) return e;
    else {
        var t = nbi();
        e.copyTo(t);
        this.reduce(t);
        return t
    }
}
function barrettRevert(e) {
    return e
}
function barrettReduce(e) {
    e.drShiftTo(this.m.t - 1, this.r2);
    if (e.t > this.m.t + 1) {
        e.t = this.m.t + 1;
        e.clamp()
    }
    this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3);
    this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);
    for (; e.compareTo(this.r2) < 0;) e.dAddOffset(1, this.m.t + 1);
    e.subTo(this.r2, e);
    for (; e.compareTo(this.m) >= 0;) e.subTo(this.m, e)
}
function barrettSqrTo(e, t) {
    e.squareTo(t);
    this.reduce(t)
}
function barrettMulTo(e, t, i) {
    e.multiplyTo(t, i);
    this.reduce(i)
}
Barrett.prototype.convert = barrettConvert;
Barrett.prototype.revert = barrettRevert;
Barrett.prototype.reduce = barrettReduce;
Barrett.prototype.mulTo = barrettMulTo;
Barrett.prototype.sqrTo = barrettSqrTo;
function bnModPow(e, t) {
    var i = e.bitLength(),
    n,
    s = nbv(1),
    r;
    if (i <= 0) return s;
    else if (i < 18) n = 1;
    else if (i < 48) n = 3;
    else if (i < 144) n = 4;
    else if (i < 768) n = 5;
    else n = 6;
    if (i < 8) r = new Classic(t);
    else if (t.isEven()) r = new Barrett(t);
    else r = new Montgomery(t);
    var a = new Array,
    o = 3,
    c = n - 1,
    _ = (1 << n) - 1;
    a[1] = r.convert(this);
    if (n > 1) {
        var d = nbi();
        r.sqrTo(a[1], d);
        for (; o <= _;) {
            a[o] = nbi();
            r.mulTo(d, a[o - 2], a[o]);
            o += 2
        }
    }
    var f = e.t - 1,
    h, l = !0,
    u = nbi(),
    p;
    i = nbits(e[f]) - 1;
    for (; f >= 0;) {
        if (i >= c) h = e[f] >> i - c & _;
        else {
            h = (e[f] & (1 << i + 1) - 1) << c - i;
            if (f > 0) h |= e[f - 1] >> this.DB + i - c
        }
        o = n;
        for (; 0 == (1 & h);) {
            h >>= 1; --o
        }
        if ((i -= o) < 0) {
            i += this.DB; --f
        }
        if (l) {
            a[h].copyTo(s);
            l = !1
        } else {
            for (; o > 1;) {
                r.sqrTo(s, u);
                r.sqrTo(u, s);
                o -= 2
            }
            if (o > 0) r.sqrTo(s, u);
            else {
                p = s;
                s = u;
                u = p
            }
            r.mulTo(u, a[h], s)
        }
        for (; f >= 0 && 0 == (e[f] & 1 << i);) {
            r.sqrTo(s, u);
            p = s;
            s = u;
            u = p;
            if (--i < 0) {
                i = this.DB - 1; --f
            }
        }
    }
    return r.revert(s)
}
function bnGCD(e) {
    var t = this.s < 0 ? this.negate() : this.clone();
    var i = e.s < 0 ? e.negate() : e.clone();
    if (t.compareTo(i) < 0) {
        var n = t;
        t = i;
        i = n
    }
    var s = t.getLowestSetBit(),
    r = i.getLowestSetBit();
    if (r < 0) return t;
    if (s < r) r = s;
    if (r > 0) {
        t.rShiftTo(r, t);
        i.rShiftTo(r, i)
    }
    for (; t.signum() > 0;) {
        if ((s = t.getLowestSetBit()) > 0) t.rShiftTo(s, t);
        if ((s = i.getLowestSetBit()) > 0) i.rShiftTo(s, i);
        if (t.compareTo(i) >= 0) {
            t.subTo(i, t);
            t.rShiftTo(1, t)
        } else {
            i.subTo(t, i);
            i.rShiftTo(1, i)
        }
    }
    if (r > 0) i.lShiftTo(r, i);
    return i
}
function bnpModInt(e) {
    if (e <= 0) return 0;
    var t = this.DV % e,
    i = this.s < 0 ? e - 1 : 0;
    if (this.t > 0) if (0 == t) i = this[0] % e;
    else for (var n = this.t - 1; n >= 0; --n) i = (t * i + this[n]) % e;
    return i
}
function bnModInverse(e) {
    var t = e.isEven();
    if (this.isEven() && t || 0 == e.signum()) return BigInteger.ZERO;
    var i = e.clone(),
    n = this.clone();
    var s = nbv(1),
    r = nbv(0),
    a = nbv(0),
    o = nbv(1);
    for (; 0 != i.signum();) {
        for (; i.isEven();) {
            i.rShiftTo(1, i);
            if (t) {
                if (!s.isEven() || !r.isEven()) {
                    s.addTo(this, s);
                    r.subTo(e, r)
                }
                s.rShiftTo(1, s)
            } else if (!r.isEven()) r.subTo(e, r);
            r.rShiftTo(1, r)
        }
        for (; n.isEven();) {
            n.rShiftTo(1, n);
            if (t) {
                if (!a.isEven() || !o.isEven()) {
                    a.addTo(this, a);
                    o.subTo(e, o)
                }
                a.rShiftTo(1, a)
            } else if (!o.isEven()) o.subTo(e, o);
            o.rShiftTo(1, o)
        }
        if (i.compareTo(n) >= 0) {
            i.subTo(n, i);
            if (t) s.subTo(a, s);
            r.subTo(o, r)
        } else {
            n.subTo(i, n);
            if (t) a.subTo(s, a);
            o.subTo(r, o)
        }
    }
    if (0 != n.compareTo(BigInteger.ONE)) return BigInteger.ZERO;
    if (o.compareTo(e) >= 0) return o.subtract(e);
    if (o.signum() < 0) o.addTo(e, o);
    else return o;
    if (o.signum() < 0) return o.add(e);
    else return o
}
var lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];
var lplim = (1 << 26) / lowprimes[lowprimes.length - 1];
function bnIsProbablePrime(e) {
    var t, i = this.abs();
    if (1 == i.t && i[0] <= lowprimes[lowprimes.length - 1]) {
        for (t = 0; t < lowprimes.length; ++t) if (i[0] == lowprimes[t]) return ! 0;
        return ! 1
    }
    if (i.isEven()) return ! 1;
    t = 1;
    for (; t < lowprimes.length;) {
        var n = lowprimes[t],
        s = t + 1;
        for (; s < lowprimes.length && n < lplim;) n *= lowprimes[s++];
        n = i.modInt(n);
        for (; t < s;) if (n % lowprimes[t++] == 0) return ! 1
    }
    return i.millerRabin(e)
}
function bnpMillerRabin(e) {
    var t = this.subtract(BigInteger.ONE);
    var i = t.getLowestSetBit();
    if (i <= 0) return ! 1;
    var n = t.shiftRight(i);
    e = e + 1 >> 1;
    if (e > lowprimes.length) e = lowprimes.length;
    var s = nbi();
    for (var r = 0; r < e; ++r) {
        s.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]);
        var a = s.modPow(n, this);
        if (0 != a.compareTo(BigInteger.ONE) && 0 != a.compareTo(t)) {
            var o = 1;
            for (; o++<i && 0 != a.compareTo(t);) {
                a = a.modPowInt(2, this);
                if (0 == a.compareTo(BigInteger.ONE)) return ! 1
            }
            if (0 != a.compareTo(t)) return ! 1
        }
    }
    return ! 0
}
BigInteger.prototype.chunkSize = bnpChunkSize;
BigInteger.prototype.toRadix = bnpToRadix;
BigInteger.prototype.fromRadix = bnpFromRadix;
BigInteger.prototype.fromNumber = bnpFromNumber;
BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
BigInteger.prototype.changeBit = bnpChangeBit;
BigInteger.prototype.addTo = bnpAddTo;
BigInteger.prototype.dMultiply = bnpDMultiply;
BigInteger.prototype.dAddOffset = bnpDAddOffset;
BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
BigInteger.prototype.modInt = bnpModInt;
BigInteger.prototype.millerRabin = bnpMillerRabin;
BigInteger.prototype.clone = bnClone;
BigInteger.prototype.intValue = bnIntValue;
BigInteger.prototype.byteValue = bnByteValue;
BigInteger.prototype.shortValue = bnShortValue;
BigInteger.prototype.signum = bnSigNum;
BigInteger.prototype.toByteArray = bnToByteArray;
BigInteger.prototype.equals = bnEquals;
BigInteger.prototype.min = bnMin;
BigInteger.prototype.max = bnMax;
BigInteger.prototype.and = bnAnd;
BigInteger.prototype.or = bnOr;
BigInteger.prototype.xor = bnXor;
BigInteger.prototype.andNot = bnAndNot;
BigInteger.prototype.not = bnNot;
BigInteger.prototype.shiftLeft = bnShiftLeft;
BigInteger.prototype.shiftRight = bnShiftRight;
BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
BigInteger.prototype.bitCount = bnBitCount;
BigInteger.prototype.testBit = bnTestBit;
BigInteger.prototype.setBit = bnSetBit;
BigInteger.prototype.clearBit = bnClearBit;
BigInteger.prototype.flipBit = bnFlipBit;
BigInteger.prototype.add = bnAdd;
BigInteger.prototype.subtract = bnSubtract;
BigInteger.prototype.multiply = bnMultiply;
BigInteger.prototype.divide = bnDivide;
BigInteger.prototype.remainder = bnRemainder;
BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
BigInteger.prototype.modPow = bnModPow;
BigInteger.prototype.modInverse = bnModInverse;
BigInteger.prototype.pow = bnPow;
BigInteger.prototype.gcd = bnGCD;
BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
BigInteger.prototype.square = bnSquare;
if ("object" != typeof JSON) JSON = {}; !
function() {
    "use strict";
    function f(e) {
        return e < 10 ? "0" + e: e
    }
    function quote(e) {
        escapable.lastIndex = 0;
        return escapable.test(e) ? '"' + e.replace(escapable,
        function(e) {
            var t = meta[e];
            return "string" == typeof t ? t: "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice( - 4)
        }) + '"': '"' + e + '"'
    }
    function str(e, t) {
        var i, n, s, r, a = gap,
        o, c = t[e];
        if (c && "object" == typeof c && "function" == typeof c.toJSON) c = c.toJSON(e);
        if ("function" == typeof rep) c = rep.call(t, e, c);
        switch (typeof c) {
        case "string":
            return quote(c);
        case "number":
            return isFinite(c) ? String(c) : "null";
        case "boolean":
        case "null":
            return String(c);
        case "object":
            if (!c) return "null";
            gap += indent;
            o = [];
            if ("[object Array]" === Object.prototype.toString.apply(c)) {
                r = c.length;
                for (i = 0; i < r; i += 1) o[i] = str(i, c) || "null";
                s = 0 === o.length ? "[]": gap ? "[\n" + gap + o.join(",\n" + gap) + "\n" + a + "]": "[" + o.join(",") + "]";
                gap = a;
                return s
            }
            if (rep && "object" == typeof rep) {
                r = rep.length;
                for (i = 0; i < r; i += 1) if ("string" == typeof rep[i]) {
                    n = rep[i];
                    s = str(n, c);
                    if (s) o.push(quote(n) + (gap ? ": ": ":") + s)
                }
            } else for (n in c) if (Object.prototype.hasOwnProperty.call(c, n)) {
                s = str(n, c);
                if (s) o.push(quote(n) + (gap ? ": ": ":") + s)
            }
            s = 0 === o.length ? "{}": gap ? "{\n" + gap + o.join(",\n" + gap) + "\n" + a + "}": "{" + o.join(",") + "}";
            gap = a;
            return s
        }
    }
    if ("function" != typeof Date.prototype.toJSON) {
        Date.prototype.toJSON = function() {
            return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z": null
        };
        String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() {
            return this.valueOf()
        }
    }
    var cx, escapable, gap, indent, meta, rep;
    if ("function" != typeof JSON.stringify) {
        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
        meta = {
            "\b": "\\b",
            "\t": "\\t",
            "\n": "\\n",
            "\f": "\\f",
            "\r": "\\r",
            '"': '\\"',
            "\\": "\\\\"
        };
        JSON.stringify = function(e, t, i) {
            var n;
            gap = "";
            indent = "";
            if ("number" == typeof i) for (n = 0; n < i; n += 1) indent += " ";
            else if ("string" == typeof i) indent = i;
            rep = t;
            if (t && "function" != typeof t && ("object" != typeof t || "number" != typeof t.length)) throw new Error("JSON.stringify");
            return str("", {
                "": e
            })
        }
    }
    if ("function" != typeof JSON.parse) {
        cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
        JSON.parse = function(text, reviver) {
            function walk(e, t) {
                var i, n, s = e[t];
                if (s && "object" == typeof s) for (i in s) if (Object.prototype.hasOwnProperty.call(s, i)) {
                    n = walk(s, i);
                    if (void 0 !== n) s[i] = n;
                    else delete s[i]
                }
                return reviver.call(e, t, s)
            }
            var j;
            text = String(text);
            cx.lastIndex = 0;
            if (cx.test(text)) text = text.replace(cx,
            function(e) {
                return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice( - 4)
            });
            if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) {
                j = eval("(" + text + ")");
                return "function" == typeof reviver ? walk({
                    "": j
                },
                "") : j
            }
            throw new SyntaxError("JSON.parse")
        }
    }
} ();
var RSAPublicKey = function(e, t) {
    this.modulus = new BigInteger(Hex.encode(e), 16);
    this.encryptionExponent = new BigInteger(Hex.encode(t), 16)
};
var UTF8 = {
    encode: function(e) {
        e = e.replace(/\r\n/g, "\n");
        var t = "";
        for (var i = 0; i < e.length; i++) {
            var n = e.charCodeAt(i);
            if (n < 128) t += String.fromCharCode(n);
            else if (n > 127 && n < 2048) {
                t += String.fromCharCode(n >> 6 | 192);
                t += String.fromCharCode(63 & n | 128)
            } else {
                t += String.fromCharCode(n >> 12 | 224);
                t += String.fromCharCode(n >> 6 & 63 | 128);
                t += String.fromCharCode(63 & n | 128)
            }
        }
        return t
    },
    decode: function(e) {
        var t = "";
        var i = 0;
        var n = $c1 = $c2 = 0;
        for (; i < e.length;) {
            n = e.charCodeAt(i);
            if (n < 128) {
                t += String.fromCharCode(n);
                i++
            } else if (n > 191 && n < 224) {
                $c2 = e.charCodeAt(i + 1);
                t += String.fromCharCode((31 & n) << 6 | 63 & $c2);
                i += 2
            } else {
                $c2 = e.charCodeAt(i + 1);
                $c3 = e.charCodeAt(i + 2);
                t += String.fromCharCode((15 & n) << 12 | (63 & $c2) << 6 | 63 & $c3);
                i += 3
            }
        }
        return t
    }
};
var Base64 = {
    base64: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    encode: function(e) {
        if (!e) return ! 1;
        var t = "";
        var i, n, s;
        var r, a, o, c;
        var _ = 0;
        do {
            i = e.charCodeAt(_++);
            n = e.charCodeAt(_++);
            s = e.charCodeAt(_++);
            r = i >> 2;
            a = (3 & i) << 4 | n >> 4;
            o = (15 & n) << 2 | s >> 6;
            c = 63 & s;
            if (isNaN(n)) o = c = 64;
            else if (isNaN(s)) c = 64;
            t += this.base64.charAt(r) + this.base64.charAt(a) + this.base64.charAt(o) + this.base64.charAt(c)
        } while ( _ < e . length );
        return t
    },
    decode: function(e) {
        if (!e) return ! 1;
        e = e.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        var t = "";
        var i, n, s, r;
        var a = 0;
        do {
            i = this.base64.indexOf(e.charAt(a++));
            n = this.base64.indexOf(e.charAt(a++));
            s = this.base64.indexOf(e.charAt(a++));
            r = this.base64.indexOf(e.charAt(a++));
            t += String.fromCharCode(i << 2 | n >> 4);
            if (64 != s) t += String.fromCharCode((15 & n) << 4 | s >> 2);
            if (64 != r) t += String.fromCharCode((3 & s) << 6 | r)
        } while ( a < e . length );
        return t
    }
};
var Hex = {
    hex: "0123456789abcdef",
    encode: function(e) {
        if (!e) return ! 1;
        var t = "";
        var i;
        var n = 0;
        do {
            i = e.charCodeAt(n++);
            t += this.hex.charAt(i >> 4 & 15) + this.hex.charAt(15 & i)
        } while ( n < e . length );
        return t
    },
    decode: function(e) {
        if (!e) return ! 1;
        e = e.replace(/[^0-9abcdef]/g, "");
        var t = "";
        var i = 0;
        do t += String.fromCharCode(this.hex.indexOf(e.charAt(i++)) << 4 & 240 | 15 & this.hex.indexOf(e.charAt(i++)));
        while (i < e.length);
        return t
    }
};
var ASN1Data = function(e) {
    this.error = !1;
    this.parse = function(e) {
        if (!e) {
            this.error = !0;
            return null
        }
        var t = [];
        for (; e.length > 0;) {
            var i = e.charCodeAt(0);
            e = e.substr(1);
            var n = 0;
            if (5 == (31 & i)) e = e.substr(1);
            else if (128 & e.charCodeAt(0)) {
                var s = 127 & e.charCodeAt(0);
                e = e.substr(1);
                if (s > 0) n = e.charCodeAt(0);
                if (s > 1) n = n << 8 | e.charCodeAt(1);
                if (s > 2) {
                    this.error = !0;
                    return null
                }
                e = e.substr(s)
            } else {
                n = e.charCodeAt(0);
                e = e.substr(1)
            }
            var r = "";
            if (n) {
                if (n > e.length) {
                    this.error = !0;
                    return null
                }
                r = e.substr(0, n);
                e = e.substr(n)
            }
            if (32 & i) t.push(this.parse(r));
            else t.push(this.value(128 & i ? 4 : 31 & i, r))
        }
        return t
    };
    this.value = function(e, t) {
        if (1 == e) return t ? !0 : !1;
        else if (2 == e) return t;
        else if (3 == e) return this.parse(t.substr(1));
        else if (5 == e) return null;
        else if (6 == e) {
            var i = [];
            var n = t.charCodeAt(0);
            i.push(Math.floor(n / 40));
            i.push(n - 40 * i[0]);
            var s = [];
            var r = 0;
            var a;
            for (a = 1; a < t.length; a++) {
                var o = t.charCodeAt(a);
                s.push(127 & o);
                if (128 & o) r++;
                else {
                    var c;
                    var _ = 0;
                    for (c = 0; c < s.length; c++) _ += s[c] * Math.pow(128, r--);
                    i.push(_);
                    r = 0;
                    s = []
                }
            }
            return i.join(".")
        }
        return null
    };
    this.data = this.parse(e)
};
var RSA = {
    getPublicKey: function(e) {
        if (e.length < 50) return ! 1;
        if ("-----BEGIN PUBLIC KEY-----" != e.substr(0, 26)) return ! 1;
        e = e.substr(26);
        if ("-----END PUBLIC KEY-----" != e.substr(e.length - 24)) return ! 1;
        e = e.substr(0, e.length - 24);
        e = new ASN1Data(Base64.decode(e));
        if (e.error) return ! 1;
        e = e.data;
        if ("1.2.840.113549.1.1.1" == e[0][0][0]) return new RSAPublicKey(e[0][1][0][0], e[0][1][0][1]);
        else return ! 1
    },
    encrypt: function(e, t) {
        if (!t) return ! 1;
        var i = t.modulus.bitLength() + 7 >> 3;
        e = this.pkcs1pad2(e, i);
        if (!e) return ! 1;
        e = e.modPowInt(t.encryptionExponent, t.modulus);
        if (!e) return ! 1;
        e = e.toString(16);
        for (; e.length < 2 * i;) e = "0" + e;
        return Base64.encode(Hex.decode(e))
    },
    decrypt: function(e) {
        var t = new BigInteger(e, 16)
    },
    pkcs1pad2: function(e, t) {
        if (t < e.length + 11) return null;
        var i = [];
        var n = e.length - 1;
        for (; n >= 0 && t > 0;) i[--t] = e.charCodeAt(n--);
        i[--t] = 0;
        for (; t > 2;) i[--t] = Math.floor(254 * Math.random()) + 1;
        i[--t] = 2;
        i[--t] = 0;
        return new BigInteger(i)
    }
};
var MpUtil = function() {
    var e = function(e, t, i) {
        e.addEventListener ? e.addEventListener(t, i, !1) : e.attachEvent("on" + t, i)
    };
    var t = function(e, t, i) {
        e.removeEventListener ? e.removeEventListener(t, i, !1) : e.detachEvent("on" + t, i)
    };
    var i = function() {
        var e = +new Date;
        return function() {
            return "" + e++
        }
    } ();
    var n = function(e, t) {
        try {
            t = t.toLowerCase();
            if (null === e) return "null" == t;
            if (void 0 === e) return "undefined" == t;
            else return Object.prototype.toString.call(e).toLowerCase() == "[object " + t + "]"
        } catch(i) {
            return ! 1
        }
    };
    return {
        addEvent: e,
        clearEvent: t,
        uniqueId: i,
        isTypeOf: n
    }
} ();
var MpRequest = function() {
    var e;
    var t = "zc.reg.163.com/resources/mp-agent-finger.html?WEBZJVersion=1512468208810";
    var i = "MP-DATA:";
    var n = "MP-COOKIE:";
    var s = "MP_AGENT_READY";
    var r = !1;
    var a = !1;
    var o = [];
    var c;
    var _ = {};
    var d = {};
    var f, h, l, u, p, m, g, b, v;
    var $ = function(e) {
        return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(e).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null
    };
    var y = function() {
        r = !0;
        m = function(t) {
            var r = t.data,
            f;
            if (r !== s) {
                if ("object" == typeof r) r = JSON.stringify(r);
                if (0 !== r.indexOf(n)) {
                    if (0 === r.indexOf(i)) {
                        r = JSON.parse(r.replace(i, ""));
                        f = _[r.key];
                        delete _[r.key];
                        if (0 !== ("" + r.status).indexOf("2")) {
                            var h = {
                                ret: "" + r.status
                            };
                            f && f.error(h)
                        } else {
                            r.result = JSON.parse(decodeURIComponent(r.result || "{}"));
                            r.result.time = r.time;
                            f && f.success(r.result)
                        }
                    }
                } else {
                    r = JSON.parse(r.replace(n, ""));
                    f = d[r.key];
                    delete d[r.key];
                    f(r.cookieValue)
                }
            } else {
                a = !0;
                for (var u = 0,
                p = o.length; u < p; u++) c(e.contentWindow, {
                    data: o[u]
                });
                clearTimeout(l)
            }
        };
        if (!window.postMessage) {
            var t = "MSGREGISTER|",
            f = [];
            var h = function() {
                var e = function(e) {
                    var t = {},
                    i = e.split("|");
                    for (var n = 0,
                    s = i.length,
                    r; n < s; n++) {
                        r = i[n].split("=");
                        t[decodeURIComponent(r.shift())] = decodeURIComponent(r.join("="))
                    }
                    return t
                };
                return function() {
                    var i = unescape(window.name || "");
                    if (i && 0 == i.indexOf(t)) {
                        window.name = "";
                        i = i.replace(t, "");
                        var n = e(i),
                        s = (n.origin || "").toLowerCase();
                        if (!s || "*" == s || 0 == location.href.toLowerCase().indexOf(s)) m({
                            data: JSON.parse(n.data || "null"),
                            origin: document.referrer
                        })
                    }
                }
            } ();
            var g = function() {
                var e;
                var t = function(e, t) {
                    for (var i = 0,
                    n = e.length; i < n; i++) if (e[i] == t) return ! 0;
                    return ! 1
                };
                return function() {
                    if (f.length) {
                        e = [];
                        for (var i = f.length - 1,
                        n; i >= 0; i--) {
                            n = f[i];
                            if (!t(e, n.w)) {
                                e.push(n.w);
                                f.splice(i, 1);
                                n.w.name = n.d
                            }
                        }
                        e = null
                    }
                }
            } ();
            c = function() {
                var e = function(e) {
                    var t = [];
                    for (var i in e) t.push(encodeURIComponent(i) + "=" + encodeURIComponent(e[i]));
                    return t.join("|")
                };
                var i = function(i) {
                    var n = {};
                    i = i || {};
                    n.origin = i.origin || "*";
                    n.ref = location.href;
                    n.data = JSON.stringify(i.data);
                    return t + e(n)
                };
                return function(e, t) {
                    f.unshift({
                        w: e,
                        d: escape(i(t))
                    })
                }
            } ();
            u = window.setInterval(g, 100);
            p = window.setInterval(h, 20)
        } else {
            c = function(e, t) {
                t = t || {};
                e.postMessage(JSON.stringify(t.data), t.origin || "*")
            };
            MpUtil.addEvent(window, "message", m)
        }
    };
    var E = function() {
        return function(e) {
            e = e || {};
            var t;
            t = document.createElement("iframe");
            t.frameBorder = 0;
            t.style.position = "absolute";
            t.style.width = 0;
            t.style.height = 0;
            t.id = "id-" + MpUtil.uniqueId();
            document.body.appendChild(t);
            var i = e.src;
            window.setTimeout(function() {
                t.src = i
            },
            0);
            return t
        }
    } ();
    var w = function(e) {
        u = window.clearInterval(u);
        p = window.clearInterval(p);
        MpUtil.clearEvent(window, "message", m);
        g = 1;
        y({
            timeout: e.timeout
        })
    };
    var C = function() {
        var i = function(e) {
            return e.replace("dl.reg.163.com", "dl2.reg.163.com").replace("zc.reg.163.com", "zc2.reg.163.com").replace("passport.", "passport2.").replace("reg.icourse163.org", "reg2.icourse163.org")
        };
        var n = function(e) {
            var t = [];
            for (var i in e) t.push(encodeURIComponent(i) + "=" + encodeURIComponent(e[i]));
            return t.join("&")
        };
        return function(s, d) {
            var u;
            s = s || {};
            var p = MpUtil.uniqueId();
            if (!r) {
                f = p;
                l = setTimeout(function() {
                    _[f].error({
                        ret: "-2"
                    });
                    delete _[f]
                },
                window._$bgpTime2);
                y({
                    timeout: s.timeout
                })
            }
            if (window._$needUrsBgp && window._$BGPZC && !g) {
                l = window.clearTimeout(l);
                h = p;
                l = setTimeout(function() {
                    _[h].error({
                        ret: "-2"
                    });
                    delete _[h]
                },
                window._$bgpTime2);
                w(s)
            }
            _[p] = {
                success: s.success,
                error: s.error
            };
            if (window._$needUrsBgp && window._$BGPZC && e && !b) {
                var m = e.contentWindow;
                if (e) {
                    e.src = "about:blank";
                    try {
                        m.document.write("");
                        m.document.clear()
                    } catch($) {}
                }
                document.body.removeChild(e);
                window.CollectGarbage && window.CollectGarbage();
                e = null;
                a = !1;
                b = 0;
                v = 1;
                for (var C = 0; C < o.length; C++) {
                    var T = o[C].url;
                    if (o[C].key != f) o[C].url = i(T);
                    else;
                }
                for (var k = 0; k < o.length; k++) if (o[k].key == f) {
                    o.shift();
                    break
                }
            } else if ("/ini" == d || "/nini" == d) o = [];
            if ("get" === s.type.toLowerCase()) {
                var x = s.url;
                var S = x.indexOf("?") < 0 ? "?": "&";
                s.data.nocache = p;
                var I = n(s.data);
                if (I) x += S + I;
                s.url = x
            }
            var N = {};
            N.key = p;
            N.data = "get" === s.type.toLowerCase() ? null: s.data;
            N.headers = {};
            N.headers["Content-Type"] = s.contentType || "application/x-www-form-urlencoded";
            if ("application/x-www-form-urlencoded" == N.headers["Content-Type"]) {
                s.data = JSON.parse(s.data);
                N.data = n(s.data)
            }
            N.method = s.type;
            N.timeout = s.timeout || 1e4;
            N.url = s.url;
            if (!e) {
                if (window["$regCookieDomain"]) if (window["$regCookieDomain"].indexOf("icourse163.org") >= 0) t = t.replace("zc.reg.163.com", "reg." + window["$regCookieDomain"] + "/zc");
                else t = t.replace("zc.reg.163.com", "passport." + window["$regCookieDomain"] + "/zc");
                t = t + "&pkid=" + window._$PKID + "&product=" + window._$PRODUCT;
                u = window.REGPROTOCOL + t;
                if (window._$needUrsBgp && window._$BGPZC) {
                    b = 1;
                    u = i(u)
                }
                e = E({
                    src: u
                })
            }
            if (!a) if (v && o.length > 0) v = 0;
            else o.push(N);
            else c(e.contentWindow, {
                data: N
            })
        }
    } ();
    var T = function() {
        return function(t, i) {
            var n = MpUtil.uniqueId();
            d[n] = i;
            var s = {
                key: n,
                cookieKey: t
            };
            c(e.contentWindow, {
                data: s
            })
        }
    } ();
    return {
        request: C,
        getCookie: T,
        reset: w
    }
} ();
var MpRequest2 = function() {
    var e;
    var t = "dl.reg.163.com/src/mp-agent-finger.html?WEBZJVersion=1512468208810";
    var i = "MP2-DATA:";
    var n = "MP2-COOKIE:";
    var s = "MP2_AGENT_READY";
    var r = !1;
    var a = !1;
    var o = [];
    var c;
    var _ = {};
    var d = {};
    var f, h, l, u, p, m, g, b, v;
    var $;
    var y = function(e) {
        return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(e).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null
    };
    var E = function() {
        r = !0;
        m = function(t) {
            var r = t.data,
            f;
            if (r !== s) {
                if ("object" == typeof r) r = JSON.stringify(r);
                if (0 !== r.indexOf(n)) {
                    if (0 === r.indexOf(i)) {
                        r = JSON.parse(r.replace(i, ""));
                        f = _[r.key];
                        delete _[r.key];
                        if (0 !== ("" + r.status).indexOf("2")) {
                            var h = {
                                ret: "" + r.status
                            };
                            f && f.error(h)
                        } else {
                            r.result = JSON.parse(decodeURIComponent(r.result || "{}"));
                            r.result.time = r.time;
                            f && f.success(r.result)
                        }
                    }
                } else {
                    r = JSON.parse(r.replace(n, ""));
                    f = d[r.key];
                    delete d[r.key];
                    f(r.cookieValue)
                }
            } else {
                a = !0;
                var u = (new Date).getTime() - $;
                var p = window._$needUrsBgp && window._$BGP ? "BGP": "非BGP";
                if (_gaq) _gaq.push(["_trackEvent", "代理文件" + window._$PKID, "加载成功", "耗时【" + u + "】渠道" + p]);
                for (var m = 0,
                g = o.length; m < g; m++) c(e.contentWindow, {
                    data: o[m]
                });
                clearTimeout(l)
            }
        };
        if (!window.postMessage) {
            var t = "MSGLOGIN|",
            f = [];
            var h = function() {
                var e = function(e) {
                    var t = {},
                    i = e.split("|");
                    for (var n = 0,
                    s = i.length,
                    r; n < s; n++) {
                        r = i[n].split("=");
                        t[decodeURIComponent(r.shift())] = decodeURIComponent(r.join("="))
                    }
                    return t
                };
                return function() {
                    var i = unescape(window.name || "");
                    if (i && 0 == i.indexOf(t)) {
                        window.name = "";
                        i = i.replace(t, "");
                        var n = e(i),
                        s = (n.origin || "").toLowerCase();
                        if (!s || "*" == s || 0 == location.href.toLowerCase().indexOf(s)) m({
                            data: JSON.parse(n.data || "null"),
                            origin: document.referrer
                        })
                    }
                }
            } ();
            var g = function() {
                var e;
                var t = function(e, t) {
                    for (var i = 0,
                    n = e.length; i < n; i++) if (e[i] == t) return ! 0;
                    return ! 1
                };
                return function() {
                    if (f.length) {
                        e = [];
                        for (var i = f.length - 1,
                        n; i >= 0; i--) {
                            n = f[i];
                            if (!t(e, n.w)) {
                                e.push(n.w);
                                f.splice(i, 1);
                                n.w.name = n.d
                            }
                        }
                        e = null
                    }
                }
            } ();
            c = function() {
                var e = function(e) {
                    var t = [];
                    for (var i in e) t.push(encodeURIComponent(i) + "=" + encodeURIComponent(e[i]));
                    return t.join("|")
                };
                var i = function(i) {
                    var n = {};
                    i = i || {};
                    n.origin = i.origin || "*";
                    n.ref = location.href;
                    n.data = JSON.stringify(i.data);
                    return t + e(n)
                };
                return function(e, t) {
                    f.unshift({
                        w: e,
                        d: escape(i(t))
                    })
                }
            } ();
            u = window.setInterval(g, 100);
            p = window.setInterval(h, 20)
        } else {
            c = function(e, t) {
                t = t || {};
                e.postMessage(JSON.stringify(t.data), t.origin || "*")
            };
            MpUtil.addEvent(window, "message", m)
        }
    };
    var w = function() {
        return function(e) {
            e = e || {};
            var t;
            t = document.createElement("iframe");
            t.frameBorder = 0;
            t.style.position = "absolute";
            t.style.width = 0;
            t.style.height = 0;
            t.id = "id-" + MpUtil.uniqueId();
            document.body.appendChild(t);
            var i = e.src;
            window.setTimeout(function() {
                t.src = i
            },
            0);
            return t
        }
    } ();
    var C = function(e) {
        u = window.clearInterval(u);
        p = window.clearInterval(p);
        MpUtil.clearEvent(window, "message", m);
        g = 1;
        E({
            timeout: e.timeout
        })
    };
    var T = function() {
        var i = function(e) {
            return e.replace("dl.reg.163.com", "dl2.reg.163.com").replace("zc.reg.163.com", "zc2.reg.163.com").replace("passport.", "passport2.").replace("reg.icourse163.org", "reg2.icourse163.org")
        };
        var n = function(e) {
            var t = [];
            for (var i in e) t.push(encodeURIComponent(i) + "=" + encodeURIComponent(e[i]));
            return t.join("&")
        };
        return function(s, d) {
            var u;
            s = s || {};
            var p = MpUtil.uniqueId();
            if (!r) {
                f = p;
                l = setTimeout(function() {
                    _[f].error({
                        ret: "-2"
                    });
                    delete _[f]
                },
                window._$bgpTime2);
                E({
                    timeout: s.timeout
                })
            }
            if (window._$needUrsBgp && window._$BGP && !g) {
                l = window.clearTimeout(l);
                h = p;
                l = setTimeout(function() {
                    _[h].error({
                        ret: "-2"
                    });
                    delete _[h]
                },
                window._$bgpTime2);
                C(s)
            }
            _[p] = {
                success: s.success,
                error: s.error
            };
            if (window._$needUrsBgp && window._$BGP && e && !b) {
                var m = e.contentWindow;
                if (e) {
                    e.src = "about:blank";
                    try {
                        m.document.write("");
                        m.document.clear()
                    } catch(T) {}
                }
                document.body.removeChild(e);
                window.CollectGarbage && window.CollectGarbage();
                e = null;
                a = !1;
                b = 0;
                v = 1;
                for (var k = 0; k < o.length; k++) {
                    var x = o[k].url;
                    if (o[k].key != f) o[k].url = i(x);
                    else;
                }
                for (var S = 0; S < o.length; S++) if (o[S].key == f) {
                    o.shift();
                    break
                }
            } else if ("/ini" == d || "/nini" == d) o = [];
            if ("get" === s.type.toLowerCase()) {
                var I = s.url;
                var N = I.indexOf("?") < 0 ? "?": "&";
                s.data.nocache = p;
                var L = n(s.data);
                if (L) I += N + L;
                s.url = I
            }
            var M = {};
            M.key = p;
            M.data = "get" === s.type.toLowerCase() ? null: s.data;
            M.headers = {};
            M.headers["Content-Type"] = s.contentType || "application/x-www-form-urlencoded";
            if ("application/x-www-form-urlencoded" == M.headers["Content-Type"]) {
                s.data = JSON.parse(s.data);
                M.data = n(s.data)
            }
            M.method = s.type;
            M.timeout = s.timeout || 1e4;
            M.url = s.url;
            M.ydSignCookie = y("l_yd_sign");
            if (!e) {
                if (window["$cookieDomain"]) if (window["$cookieDomain"].indexOf("icourse163.org") >= 0) t = t.replace("dl.reg.163.com", "reg." + window["$cookieDomain"] + "/dl");
                else t = t.replace("dl.reg.163.com", "passport." + window["$cookieDomain"] + "/dl");
                t = t + "&pkid=" + window._$PKID + "&product=" + window._$PRODUCT;
                u = window.PROTOCOL + t;
                if (window._$needUrsBgp && window._$BGP) {
                    b = 1;
                    u = i(u)
                }
                if (window._$pathB) u = u.replace(/:\/\/(?:[^\/]+)/,
                function(e) {
                    return e + "/b"
                });
                $ = (new Date).getTime();
                e = w({
                    src: u
                })
            }
            if (!a) if (v && o.length > 0) v = 0;
            else o.push(M);
            else c(e.contentWindow, {
                data: M
            })
        }
    } ();
    var k = function() {
        return function(t, i) {
            var n = MpUtil.uniqueId();
            d[n] = i;
            var s = {
                key: n,
                cookieKey: t
            };
            c(e.contentWindow, {
                data: s
            })
        }
    } ();
    return {
        request: T,
        getCookie: k,
        reset: C
    }
} ();
var MP = function() {
    var e = "zc.reg.163.com",
    t = "ntes_zc_",
    i = "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5gsH+AA4XWONB5TDcUd+xCz7ejOFHZKlcZDx+pF1i7Gsvi1vjyJoQhRtRSn950x498VUkx7rUxg1/ScBVfrRxQOZ8xFBye3pjAzfb22+RCuYApSVpJ3OO3KsEuKExftz9oFBv3ejxPlYc5yq7YiBO8XlTnQN0Sa4R4qhPO3I2MQIDAQAB-----END PUBLIC KEY-----",
    n = "dl.reg.163.com";
    if (window._$needUrsBgp && window._$BGP) n = "dl2.reg.163.com";
    var s = function(e) {
        return e.replace("dl.reg.163.com", "dl2.reg.163.com").replace("zc.reg.163.com", "zc2.reg.163.com").replace("passport.", "passport2.").replace("reg.icourse163.org", "reg2.icourse163.org")
    };
    var r = function(e) {
        var t = "&";
        if (e.indexOf("?") == -1) {
            e += "?";
            t = ""
        }
        if (window._$URSOPT.opd) e = e + t + "opd=" + window._$URSOPT.opd;
        if (window._$URSOPT.opkid) e = e + "&opkid=" + window._$URSOPT.opkid;
        return e
    };
    var a = function(e) {
        if (window._$pathB) e = e.replace(/:\/\/(?:[^\/]+)/,
        function(e) {
            return e + "/b"
        });
        return e
    },
    o = function(t) {
        var i = t.data,
        n = (t.host ? t.host: e) + t.path;
        var r;
        var o = n.indexOf("zc.reg.163.com") == -1 && n.indexOf("zc2.reg.163.com") == -1;
        if (o) o = n.indexOf("/zc/") == -1;
        if (o) {
            if (window._$needUrsBgp && window._$BGP) n = s(n)
        } else if (window._$needUrsBgp && window._$BGPZC) n = s(n);
        if ("string" == typeof i) i = JSON.parse(i);
        r = i;
        delete i.isleak;
        delete r.isleak;
        c(i);
        if (!o) n = window.REGPROTOCOL + n;
        else n = window.PROTOCOL + n;
        var _ = 1e4;
        if (o) {
            if (window._$URSOPT.opd) i.opd = window._$URSOPT.opd;
            if (window._$URSOPT.opkid) i.opkid = window._$URSOPT.opkid;
            n = a(n)
        }
        if ("POST" == t.type) i = JSON.stringify(i);
        var d = o ? {
            url: n,
            type: t.type,
            data: i,
            contentType: t.contentType || "application/json",
            dataType: t.dataType || "json",
            timeout: _,
            success: function(e) {
                var i = e && e.ret;
                if (201 != i) t.error(t.path, e);
                else t.success(t.path, e)
            },
            error: function() {
                var e = Array.prototype.slice.call(arguments);
                e.unshift(t.path);
                t.error.apply(null, e)
            }
        }: {
            url: n,
            type: t.type,
            data: i,
            contentType: t.contentType || "application/json",
            dataType: t.dataType || "json",
            timeout: _,
            success: function(e) {
                if (e && e.ret && ("102" === e.ret || "104" === e.ret || "200" === e.ret || "201" === e.ret || "202" === e.ret)) t.success(t.path, e);
                else t.error(t.path, e)
            },
            error: function() {
                var e = Array.prototype.slice.call(arguments);
                e.unshift(t.path);
                t.error.apply(null, e)
            }
        };
        if (o) MpRequest2.request(d, t.path);
        else MpRequest.request(d, t.path)
    };
    var c = function(e) {
        try {
            e.topURL = window._$TOPURL ? window._$TOPURL.split("?")[0] : "";
            e.topURL = e.topURL.substring(0, 500)
        } catch(t) {
            return
        }
    };
    return {
        promarkIdData: {},
        TICKET: "",
        encrypt: function(e, t) {
            var n = RSA.getPublicKey(i);
            return RSA.encrypt(e + "`" + t, n)
        },
        encrypt2: function(e) {
            var t = RSA.getPublicKey(i);
            return RSA.encrypt(e, t)
        },
        getCookieId: function(e, t) {
            MpRequest2.getCookie(e, t)
        },
        getId: function(e, i) {
            MpRequest.getCookie(t + e, i)
        },
        regvftcp: function(e, t, i, n) {
            o({
                path: "/vftcp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        regvfccp: function(e, t, i, n) {
            o({
                path: "/vfccp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        init: function(e, t, i, n) {
            o({
                path: "/ini",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        getCaptcha: function(t) {
            if (!t) return "";
            var i = e,
            n = window["$regCookieDomain"];
            if (n) if (n.indexOf("icourse163.org") >= 0) i = "reg." + n + "/zc";
            else i = "passport." + n + "/zc";
            if (window._$needUrsBgp && window._$BGPZC) i = s(i);
            var r = window.REGPROTOCOL + i + "/cp?channel=2&id=" + t + "&nocache=" + window.MpUtil.uniqueId();
            return r
        },
        checkCaptcha: function(e, t, i, n) {
            o({
                path: "/vfcp",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        initQrcode: function(e, t, i) {
            o({
                host: "reg.163.com",
                path: "/services/getqrcodeid",
                type: "GET",
                data: e,
                success: t,
                error: i
            })
        },
        checkName: function(e, t, i, n) {
            o({
                path: "/chn",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        getMobileSms: function(e, t, i, n) {
            o({
                path: "/sm",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        getMailSms: function(e, t, i, n) {
            o({
                path: "/mlrgsm",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        getTicket: function(e, t, i, n) {
            o({
                path: "/gt",
                type: "POST",
                contentType: "application/json",
                data: JSON.stringify(e),
                success: t,
                error: i,
                host: n
            })
        },
        setTicket: function(e) {
            MP.TICKET = e || ""
        },
        regMob: function(e, t, i, n) {
            o({
                path: "/mrg",
                type: "POST",
                contentType: "application/json",
                data: JSON.stringify(e),
                success: t,
                error: i,
                host: n
            })
        },
        fastReg: function(e, t, i, n) {
            o({
                path: "/frg",
                type: "POST",
                contentType: "application/json",
                data: JSON.stringify(e),
                success: t,
                error: i,
                host: n
            })
        },
        sendActMail: function(e, t, i, n) {
            o({
                path: "/sendActMail",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        qrlogin: function(e, t, i, n) {
            o({
                path: "/qrcodel",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        getCaptchaLogin: function(e, t, i) {
            var o = n;
            if (i) if (i.indexOf("icourse163.org") >= 0) o = "reg." + i + "/dl";
            else o = "passport." + i + "/dl";
            if (window._$needUrsBgp && window._$BGP) o = s(o);
            var c = window.PROTOCOL + o + "/cp?pd=" + e + "&pkid=" + t + "&random=" + window.MpUtil.uniqueId();
            c = a(c);
            c = r(c);
            return c
        },
        safelogin: function(e, t, i, n) {
            o({
                path: "/l",
                type: "POST",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        llp: function(e, t, i, n) {
            o({
                path: "/llp",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        sendSmsLogin: function(e, t, i, n) {
            o({
                path: "/sm",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        initComponentLogin: function(e, t, i, n) {
            o({
                path: "/ini",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        checkSmsCode: function(e, t, i, n) {
            o({
                path: "/vfcp",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        vfsms: function(e, t, i, n) {
            o({
                path: "/vfsms",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        getLoginTicket: function(e, t, i, n) {
            o({
                path: "/gt",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        vftcp: function(e, t, i, n) {
            o({
                path: "/vftcp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        vfccp: function(e, t, i, n) {
            o({
                path: "/vfccp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        goonlog: function(e, t, i, n) {
            o({
                path: "/go",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-login": function(e, t, i, n) {
            o({
                path: "/lpwd",
                type: "POST",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-gt": function(e, t, i, n) {
            o({
                path: "/gt",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-ini": function(e, t, i, n) {
            o({
                path: "/ini",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-vfcp": function(e, t, i, n) {
            o({
                path: "/vfcp",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-cp": function(e, t, i) {
            var o = n;
            if (i) if (i.indexOf("icourse163.org") >= 0) o = "reg." + i + "/dl";
            else o = "passport." + i + "/dl";
            if (window._$needUrsBgp && window._$BGP) o = s(o);
            var c = window.PROTOCOL + o + "/yd/cp?pd=" + e + "&pkid=" + t + "&random=" + window.MpUtil.uniqueId();
            c = a(c);
            c = r(c);
            return c
        },
        "mb-lvfsms": function(e, t, i, n) {
            o({
                path: "/lvfsms",
                type: "POST",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-vftcp": function(e, t, i, n) {
            o({
                path: "/vftcp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-vfccp": function(e, t, i, n) {
            o({
                path: "/vfccp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-sms-lsm": function(e, t, i, n) {
            o({
                path: "/lsm",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-reg-ini": function(e, t, i, n) {
            o({
                path: "/ini",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-reg-chn": function(e, t, i, n) {
            o({
                path: "/chn",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-reg-cp": function(t) {
            var i = window["$regCookieDomain"];
            var n = e;
            if (i) if (i.indexOf("icourse163.org") >= 0) n = "reg." + i + "/zc";
            else n = "passport." + i + "/zc";
            if (window._$needUrsBgp && window._$BGPZC) n = s(n);
            var r = window.REGPROTOCOL + n + "/yd/cp?channel=2&id=" + t + "&nocache=" + window.MpUtil.uniqueId();
            return r
        },
        "mb-reg-sm": function(e, t, i, n) {
            o({
                path: "/sm",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-reg-vfsms": function(e, t, i, n) {
            o({
                path: "/vfsms",
                type: "POST",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        getPP: function(e, t, i, n) {
            o({
                path: "/pp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        vfppc: function(e, t, i, n) {
            o({
                path: "/vfppc",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        vfotp: function(e, t, i, n) {
            o({
                path: "/vfotp",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        mbsm: function(e, t, i, n) {
            o({
                path: "/mbsm",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        vfmbsms: function(e, t, i, n) {
            o({
                path: "/vfmbsms",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-nini": function(e, t, i, n) {
            o({
                path: "/nini",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-nlregssms": function(e, t, i, n) {
            o({
                path: "/nlregssms",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-nlgt": function(e, t, i, n) {
            o({
                path: "/nlgt",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-nlregvfsms": function(e, t, i, n) {
            o({
                path: "/nlregvfsms",
                type: "POST",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-ncp": function(e, t) {
            var i = n;
            if (t) if (t.indexOf("icourse163.org") >= 0) i = "reg." + t + "/dl";
            else i = "passport." + t + "/dl";
            if (window._$needUrsBgp && window._$BGP) i = s(i);
            var o = window.PROTOCOL + i + "/yd/ncp?pd=" + e.product + "&pkid=" + e.pkid + "&pkht=" + e.pkht + "&channel=" + e.channel + "&topURL=" + e.topURL + "&random=" + window.MpUtil.uniqueId();
            o = a(o);
            o = r(o);
            return o
        },
        "mb-nvfcp": function(e, t, i, n) {
            o({
                path: "/nvfcp",
                type: "POST",
                contentType: "application/x-www-form-urlencoded",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-nvftcp": function(e, t, i, n) {
            o({
                path: "/nvftcp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        },
        "mb-nvfccp": function(e, t, i, n) {
            o({
                path: "/nvfccp",
                type: "GET",
                data: e,
                success: t,
                error: i,
                host: n
            })
        }
    }
} ();
if ("undefined" == typeof I$) I$ = function() {
    var e = {},
    t = function() {
        return ! 1
    },
    i = {};
    var n = function(t, i) {
        return e.toString.call(t) === "[object " + i + "]"
    };
    return function(e, s) {
        var r = i[e],
        a = n(s, "Function");
        if (null != s && !a) r = s;
        if (a) {
            var o = [];
            for (var c = 2,
            _ = arguments.length; c < _; c++) o.push(arguments.callee(arguments[c]));
            var d = {};
            o.push.call(o, d, {},
            t, []);
            var f = s.apply(null, o) || d;
            if (!r || !n(f, "Object")) r = f;
            else if (Object.keys) for (var h = Object.keys(f), c = 0, _ = h.length, l; c < _; c++) {
                l = h[c];
                r[l] = f[l]
            } else for (var l in f) r[l] = f[l]
        }
        if (null == r) r = {};
        i[e] = r;
        return r
    }
} ();
I$("eddda1e8e7971753192ee8d61ef1680e",
function(e, t, i, n) {
    var s = Function.prototype;
    s._$aop = function(e, t) {
        var t = t || i,
        e = e || i,
        s = this;
        return function() {
            var i = {
                args: n.slice.call(arguments, 0)
            };
            e(i);
            if (!i.stopped) {
                i.value = s.apply(this, i.args);
                t(i)
            }
            return i.value
        }
    };
    s._$bind = function() {
        var e = arguments,
        t = arguments[0],
        i = this;
        return function() {
            var s = n.slice.call(e, 1);
            n.push.apply(s, arguments);
            return i.apply(t || null, s)
        }
    };
    s._$bind2 = function() {
        var e = arguments,
        t = n.shift.call(e),
        i = this;
        return function() {
            n.push.apply(arguments, e);
            return i.apply(t || null, arguments)
        }
    };
    var s = String.prototype;
    if (!s.trim) s.trim = function() {
        var e = /(?:^\s+)|(?:\s+$)/g;
        return function() {
            return this.replace(e, "")
        }
    } ();
    if (!this.console) this.console = {
        log: i,
        error: i
    };
    if (!0) {
        NEJ = this.NEJ || {};
        NEJ.copy = function(e, i) {
            e = e || {};
            i = i || t;
            for (var n in i) if (i.hasOwnProperty(n)) e[n] = i[n];
            return e
        };
        NEJ = NEJ.copy(NEJ, {
            O: t,
            R: n,
            F: i,
            P: function(e) {
                if (!e || !e.length) return null;
                var t = window;
                for (var i = e.split("."), n = i.length, s = "window" == i[0] ? 1 : 0; s < n; t = t[i[s]] = t[i[s]] || {},
                s++);
                return t
            }
        });
        return NEJ
    }
    return e
});
I$("32f617afc4bdd9fe7e4c6646e9cbe25e",
function(e, t, i, n) {
    e.__forIn = function(e, t, i) {
        if (!e || !t) return null;
        var n = Object.keys(e);
        for (var s = 0,
        r = n.length,
        a, o; s < r; s++) {
            a = n[s];
            o = t.call(i || null, e[a], a, e);
            if (o) return a
        }
        return null
    };
    e.__forEach = function(e, t, i) {
        e.forEach(t, i)
    };
    e.__col2array = function(e) {
        return n.slice.call(e, 0)
    };
    e.__str2time = function(e) {
        return Date.parse(e)
    };
    return e
});
I$("605054bf841321ed40d652370c40f4e5",
function(e, t, i, n, s) {
    var r = this.navigator.platform,
    a = this.navigator.userAgent;
    var o = {
        mac: r,
        win: r,
        linux: r,
        ipad: a,
        ipod: a,
        iphone: r,
        android: a
    };
    t._$IS = o;
    for (var c in o) o[c] = new RegExp(c, "i").test(o[c]);
    o.ios = o.ipad || o.iphone || o.ipod;
    o.tablet = o.ipad;
    o.desktop = o.mac || o.win || o.linux && !o.android;
    t._$is = function(e) {
        return !! o[e]
    };
    var _ = {
        engine: "unknow",
        release: "unknow",
        browser: "unknow",
        version: "unknow",
        prefix: {
            css: "",
            pro: "",
            clz: ""
        }
    };
    t._$KERNEL = _;
    if (/msie\s+(.*?);/i.test(a) || /trident\/.+rv:([\d\.]+)/i.test(a)) {
        _.engine = "trident";
        _.browser = "ie";
        _.version = RegExp.$1;
        _.prefix = {
            css: "ms",
            pro: "ms",
            clz: "MS",
            evt: "MS"
        };
        var d = {
            6 : "2.0",
            7 : "3.0",
            8 : "4.0",
            9 : "5.0",
            10 : "6.0",
            11 : "7.0"
        };
        _.release = d[document.documentMode] || d[parseInt(_.version)]
    } else if (/webkit\/?([\d.]+?)(?=\s|$)/i.test(a)) {
        _.engine = "webkit";
        _.release = RegExp.$1 || "";
        _.prefix = {
            css: "webkit",
            pro: "webkit",
            clz: "WebKit"
        }
    } else if (/rv\:(.*?)\)\s+gecko\//i.test(a)) {
        _.engine = "gecko";
        _.release = RegExp.$1 || "";
        _.browser = "firefox";
        _.prefix = {
            css: "Moz",
            pro: "moz",
            clz: "Moz"
        };
        if (/firefox\/(.*?)(?=\s|$)/i.test(a)) _.version = RegExp.$1 || ""
    } else if (/presto\/(.*?)\s/i.test(a)) {
        _.engine = "presto";
        _.release = RegExp.$1 || "";
        _.browser = "opera";
        _.prefix = {
            css: "O",
            pro: "o",
            clz: "O"
        };
        if (/version\/(.*?)(?=\s|$)/i.test(a)) _.version = RegExp.$1 || ""
    }
    if ("unknow" == _.browser) {
        var d = ["chrome", "maxthon", "safari"];
        for (var f = 0,
        h = d.length,
        l; f < h; f++) {
            l = "safari" == d[f] ? "version": d[f];
            if (new RegExp(l + "/(.*?)(?=\\s|$)", "i").test(a)) {
                _.browser = d[f];
                _.version = RegExp.$1.trim();
                break
            }
        }
    }
    t._$SUPPORT = {};
    t._$support = function(e) {
        return !! t._$SUPPORT[e]
    };
    if (!0) e.copy(e.P("nej.p"), t);
    return t
},
"eddda1e8e7971753192ee8d61ef1680e");
I$("1e9d50f7ac58877282adbf4f6adb2551",
function(e, t, i, n, s, r) {
    if ("trident" === t._$KERNEL.engine && t._$KERNEL.release <= "4.0") I$(8,
    function() {
        e.__forIn = function(e, t, i) {
            if (e && t) {
                var n;
                for (var s in e) if (e.hasOwnProperty(s)) {
                    n = t.call(i, e[s], s, e);
                    if (n) return s
                } else;
            }
        };
        e.__forEach = function(e, t, i) {
            for (var n = 0,
            s = e.length; n < s; n++) t.call(i, e[n], n, e)
        };
        e.__col2array = function(e) {
            var t = [];
            if (e && e.length) for (var i = 0,
            n = e.length; i < n; i++) t.push(e[i]);
            return t
        };
        e.__str2time = function() {
            var e = /-/g;
            return function(t) {
                return Date.parse(t.replace(e, "/").split(".")[0])
            }
        } ()
    });
    return e
},
"32f617afc4bdd9fe7e4c6646e9cbe25e", "605054bf841321ed40d652370c40f4e5");
I$("05e56106e22a09a56a1098c586c2bfe9",
function(e, t, i, n, s, r) {
    i._$klass = function() {
        var e = function() {
            return "[object Function]" !== n.toString.call(arguments[0])
        };
        var i = function(e, i) {
            for (; i;) {
                var n = i.prototype,
                s = t.__forIn(n,
                function(t) {
                    return e === t
                });
                if (null != s) return {
                    name: s,
                    klass: i
                };
                i = i._$super
            }
        };
        return function() {
            var n = function() {
                return this.__init.apply(this, arguments)
            };
            n.prototype.__init = s;
            n._$extend = function(n, s) {
                if (!e(n)) {
                    var r = this;
                    if (s !== !1) t.__forIn(n,
                    function(t, i) {
                        if (!e(t)) r[i] = t
                    });
                    this._$super = n;
                    var a = function() {};
                    a.prototype = n.prototype;
                    this.prototype = new a;
                    this.prototype.constructor = this;
                    var o = [],
                    c = {};
                    var _ = function(e, t) {
                        var n = i(e, t);
                        if (n) {
                            if (o[o.length - 1] != n.name) o.push(n.name);
                            c[n.name] = n.klass._$super;
                            return n.name
                        }
                    };
                    this.prototype.__super = function() {
                        var e = o[o.length - 1],
                        t = arguments.callee.caller;
                        if (!e) e = _(t, this.constructor);
                        else {
                            var i = c[e].prototype;
                            if (!i.hasOwnProperty(t) || t != i[e]) e = _(t, this.constructor);
                            else c[e] = c[e]._$super
                        }
                        var n = c[e].prototype[e].apply(this, arguments);
                        if (e == o[o.length - 1]) {
                            o.pop();
                            delete c[e]
                        }
                        return n
                    };
                    if (!0) {
                        var d = this.prototype;
                        d.__supInit = d.__super;
                        d.__supReset = d.__super;
                        d.__supDestroy = d.__super;
                        d.__supInitNode = d.__super;
                        d.__supDoBuild = d.__super;
                        d.__supOnShow = d.__super;
                        d.__supOnHide = d.__super;
                        d.__supOnRefresh = d.__super;
                        this._$supro = n.prototype
                    }
                    return this.prototype
                }
            };
            return n
        }
    } ();
    if (!0) {
        e.C = i._$klass;
        e.copy(this.NEJ, e)
    }
    return i
},
"eddda1e8e7971753192ee8d61ef1680e", "1e9d50f7ac58877282adbf4f6adb2551");
I$("0ce1cf574f7be23168d864b3fb81d053",
function(e, t, i, n, s, r) {
    var a = function(e, t) {
        try {
            t = t.toLowerCase();
            if (null === e) return "null" == t;
            if (void 0 === e) return "undefined" == t;
            else return n.toString.call(e).toLowerCase() == "[object " + t + "]"
        } catch(i) {
            return ! 1
        }
    };
    i._$isFunction = function(e) {
        return a(e, "function")
    };
    i._$isString = function(e) {
        return a(e, "string")
    };
    i._$isNumber = function(e) {
        return a(e, "number")
    };
    i._$isBoolean = function(e) {
        return a(e, "boolean")
    };
    i._$isDate = function(e) {
        return a(e, "date")
    };
    i._$isArray = function(e) {
        return a(e, "array")
    };
    i._$isObject = function(e) {
        return a(e, "object")
    };
    i._$length = function() {
        var e = /[^\x00-\xff]/g;
        return function(t) {
            return ("" + (t || "")).replace(e, "**").length
        }
    } ();
    i._$loop = function(e, n, s) {
        if (i._$isObject(e) && i._$isFunction(n)) return t.__forIn.apply(t, arguments);
        else return null
    };
    i._$indexOf = function(e, t) {
        var n = i._$isFunction(t) ? t: function(e) {
            return e === t
        },
        s = i._$forIn(e, n);
        return null != s ? s: -1
    };
    i._$binSearch = function() {
        var e;
        var t = function(i, n, s) {
            if (n > s) return - 1;
            var r = Math.ceil((n + s) / 2),
            a = e(i[r], r, i);
            if (0 == a) return r;
            if (a < 0) return t(i, n, r - 1);
            else return t(i, r + 1, s)
        };
        return function(i, n) {
            e = n || s;
            return t(i, 0, i.length - 1)
        }
    } ();
    i._$reverseEach = function(e, t, n) {
        if (e && e.length && i._$isFunction(t)) for (var s = e.length - 1; s >= 0; s--) if (t.call(n, e[s], s, e)) return s;
        return null
    };
    i._$forEach = function(e, n, s) {
        if (e && e.length && i._$isFunction(n)) if (!e.forEach) i._$forIn.apply(i, arguments);
        else t.__forEach(e, n, s)
    };
    i._$forIn = function(e, t, n) {
        if (!e || !i._$isFunction(t)) return null;
        if (i._$isNumber(e.length)) {
            for (var s = 0,
            r = e.length; s < r; s++) if (t.call(n, e[s], s, e)) return s
        } else if (i._$isObject(e)) return i._$loop(e, t, n);
        return null
    };
    i._$encode = function(e, t) {
        t = "" + t;
        if (!e || !t) return t || "";
        else return t.replace(e.r,
        function(t) {
            var i = e[!e.i ? t.toLowerCase() : t];
            return null != i ? i: t
        })
    };
    i._$escape = function() {
        var e = /<br\/?>$/,
        t = {
            r: /\<|\>|\&|\r|\n|\s|\'|\"/g,
            "<": "&lt;",
            ">": "&gt;",
            "&": "&amp;",
            " ": "&nbsp;",
            '"': "&quot;",
            "'": "&#39;",
            "\n": "<br/>",
            "\r": ""
        };
        return function(n) {
            n = i._$encode(t, n);
            return n.replace(e, "<br/><br/>")
        }
    } ();
    i._$unescape = function() {
        var e = {
            r: /\&(?:lt|gt|amp|nbsp|#39|quot)\;|\<br\/\>/gi,
            "&lt;": "<",
            "&gt;": ">",
            "&amp;": "&",
            "&nbsp;": " ",
            "&#39;": "'",
            "&quot;": '"',
            "<br/>": "\n"
        };
        return function(t) {
            return i._$encode(e, t)
        }
    } ();
    i._$format = function() {
        var e = {
            i: !0,
            r: /\byyyy|yy|MM|cM|eM|M|dd|d|HH|H|mm|ms|ss|m|s|w|ct|et\b/g
        },
        t = ["上午", "下午"],
        n = ["A.M.", "P.M."],
        s = ["日", "一", "二", "三", "四", "五", "六"],
        r = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"],
        a = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"];
        var o = function(e) {
            e = parseInt(e) || 0;
            return (e < 10 ? "0": "") + e
        };
        var c = function(e) {
            return e < 12 ? 0 : 1
        };
        return function(_, d, f) {
            if (!_ || !d) return "";
            _ = i._$var2date(_);
            e.yyyy = _.getFullYear();
            e.yy = ("" + e.yyyy).substr(2);
            e.M = _.getMonth() + 1;
            e.MM = o(e.M);
            e.eM = a[e.M - 1];
            e.cM = r[e.M - 1];
            e.d = _.getDate();
            e.dd = o(e.d);
            e.H = _.getHours();
            e.HH = o(e.H);
            e.m = _.getMinutes();
            e.mm = o(e.m);
            e.s = _.getSeconds();
            e.ss = o(e.s);
            e.ms = _.getMilliseconds();
            e.w = s[_.getDay()];
            var h = c(e.H);
            e.ct = t[h];
            e.et = n[h];
            if (f) e.H = e.H % 12;
            return i._$encode(e, d)
        }
    } ();
    i._$var2date = function(e) {
        var n = e;
        if (i._$isString(e)) n = new Date(t.__str2time(e));
        if (!i._$isDate(n)) n = new Date(e);
        return n
    };
    i._$fixed = function(e, t) {
        return parseFloat(new Number(e).toFixed(t))
    };
    i._$absolute = function() {
        var e = /([^\/:])\/.*$/,
        t = /\/[^\/]+$/,
        i = /[#\?]/,
        n = location.href.split(/[?#]/)[0],
        s = document.createElement("a");
        var r = function(e) {
            return (e || "").indexOf("://") > 0
        };
        var a = function(e) {
            return (e || "").split(i)[0].replace(t, "/")
        };
        var o = function(t, i) {
            if (0 == t.indexOf("/")) return i.replace(e, "$1") + t;
            else return a(i) + t
        };
        n = a(n);
        return function(e, t) {
            e = (e || "").trim();
            if (!r(t)) t = n;
            if (!e) return t;
            if (r(e)) return e;
            e = o(e, t);
            s.href = e;
            e = s.href;
            return r(e) ? e: s.getAttribute("href", 4)
        }
    } ();
    i._$url2origin = function() {
        var e = /^([\w]+?:\/\/.*?(?=\/|$))/i;
        return function(t) {
            if (e.test(t || "")) return RegExp.$1.toLowerCase();
            else return ""
        }
    } ();
    i._$string2object = function(e, t) {
        var n = {};
        i._$forEach((e || "").split(t),
        function(e) {
            var t = e.split("=");
            if (t && t.length) {
                var i = t.shift();
                if (i) n[decodeURIComponent(i)] = decodeURIComponent(t.join("="))
            }
        });
        return n
    };
    i._$object2string = function(e, t, n) {
        if (!e) return "";
        var s = [];
        i._$loop(e,
        function(e, t) {
            if (!i._$isFunction(e)) {
                if (i._$isDate(e)) e = e.getTime();
                else if (i._$isArray(e)) e = e.join(",");
                else if (i._$isObject(e)) e = JSON.stringify(e);
                if (n) e = encodeURIComponent(e);
                s.push(encodeURIComponent(t) + "=" + e)
            }
        });
        return s.join(t || ",")
    };
    i._$query2object = function(e) {
        return i._$string2object(e, "&")
    };
    i._$object2query = function(e) {
        return i._$object2string(e, "&", !0)
    };
    i._$object2array = function(e) {
        return t.__col2array(e)
    };
    i._$array2object = function(e, t) {
        var n = {};
        i._$forEach(e,
        function(e) {
            var i = e;
            if (t) i = t(e);
            if (null != i) n[i] = e
        });
        return n
    };
    i._$number2string = function(e, t) {
        var i = ("" + e).length,
        n = Math.max(1, parseInt(t) || 0),
        s = n - i;
        if (s > 0) e = new Array(s + 1).join("0") + e;
        return "" + e
    };
    i._$safeDelete = function(e, t) {
        if (!i._$isArray(t)) try {
            delete e[t]
        } catch(n) {
            e[t] = void 0
        } else i._$forEach(t,
        function(t) {
            i._$safeDelete(e, t)
        })
    };
    i._$randString = function() {
        var e = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
        return function(t) {
            t = t || 10;
            var i = [];
            for (var n = 0,
            s; n < t; ++n) {
                s = Math.floor(Math.random() * e.length);
                i.push(e.charAt(s))
            }
            return i.join("")
        }
    } ();
    i._$randNumber = function(e, t) {
        return Math.floor(Math.random() * (t - e) + e)
    };
    i._$randNumberString = function(e) {
        e = Math.max(0, Math.min(e || 8, 30));
        var t = Math.pow(10, e - 1),
        n = 10 * t;
        return i._$randNumber(t, n).toString()
    };
    i._$uniqueID = function() {
        var e = +new Date;
        return function() {
            return "" + e++
        }
    } ();
    i._$query = function(e, t) {
        e = e || n;
        var i = (t || "").split(".");
        for (var s = 0,
        r = i.length; s < r; s++) {
            e = e[i[s]];
            if (!e) break
        }
        return e
    };
    i._$merge = function() {
        var e = arguments.length - 1,
        t = arguments[e];
        if (i._$isFunction(t)) e -= 1;
        else t = s;
        var n = arguments[0] || {};
        for (var r = 1; r <= e; r++) i._$loop(arguments[r],
        function(e, i) {
            if (!t(e, i)) n[i] = e
        });
        return n
    };
    i._$fetch = function(e, t) {
        if (t) i._$loop(e,
        function(e, i, n) {
            var s = t[i];
            if (null != s) n[i] = s
        });
        return e
    };
    i._$hasProperty = function(e) {
        if (!e) return ! 1;
        if (null != e.length) return e.length > 0;
        var t = 0;
        i._$loop(e,
        function() {
            t++;
            return t > 0
        });
        return t > 0;
    };
    if (!0) {
        e.Q = i._$query;
        e.X = i._$merge;
        e.EX = i._$fetch;
        e.copy(this.NEJ, e);
        e.copy(e.P("nej.u"), i)
    }
    return i
},
"eddda1e8e7971753192ee8d61ef1680e", "1e9d50f7ac58877282adbf4f6adb2551");
I$("735d81c56aa54ae5680cce2e40f7c5a5",
function(e, t, i, n, s, r) {
    var a = {};
    i.__url2host = function() {
        var e = /^([\w]+?:\/\/.*?(?=\/|$))/i;
        return function(t) {
            t = t || "";
            if (e.test(t)) return RegExp.$1;
            else return location.protocol + "//" + location.host
        }
    } ();
    i.__set = function(e, t) {
        a[e] = t
    };
    i.__get = function(e) {
        return a[e]
    };
    var o = function() {
        var e = {
            portrait: {
                name: "portrait",
                dft: "portrait/"
            },
            "ajax.swf": {
                name: "ajax",
                dft: "nej_proxy_flash.swf"
            },
            "chart.swf": {
                name: "chart",
                dft: "nej_flex_chart.swf"
            },
            "audio.swf": {
                name: "audio",
                dft: "nej_player_audio.swf"
            },
            "video.swf": {
                name: "video",
                dft: "nej_player_video.swf"
            },
            "clipboard.swf": {
                name: "clipboard",
                dft: "nej_clipboard.swf"
            },
            "upload.image.swf": {
                name: "uploadimage",
                dft: "nej_upload_image.swf"
            }
        };
        var s = function(e) {
            var t = {};
            if (!e || !e.length) return t;
            for (var n = 0,
            s = e.length,
            r; n < s; n++) {
                r = e[n];
                if (r.indexOf("://") > 0) t[i.__url2host(r)] = r
            }
            return t
        };
        return function(r) {
            i.__set("root", r.root || "/res/");
            var a = i.__get("root");
            t._$loop(e,
            function(e, t, n) {
                i.__set(t, r[e.name] || a + e.dft)
            });
            var o = r.p_csrf;
            if (o === !0) o = {
                cookie: "AntiCSRF",
                param: "AntiCSRF"
            };
            o = o || n;
            i.__set("csrf", {
                param: o.param || "",
                cookie: o.cookie || ""
            });
            i.__set("frames", s(r.p_frame));
            i.__set("flashs", s(r.p_flash))
        }
    } ();
    o(this.NEJ_CONF || n);
    return i
},
"eddda1e8e7971753192ee8d61ef1680e", "0ce1cf574f7be23168d864b3fb81d053");
I$("7f2cb35685a2caedffee361f339c50d0",
function(e, t, i, n, s, r) {
    if ("trident" === t._$KERNEL.engine) I$(17,
    function() {
        e.__set("storage.swf", (this.NEJ_CONF || n).storage || e.__get("root") + "nej_storage.swf")
    });
    if ("trident" === t._$KERNEL.engine && t._$KERNEL.release <= "3.0") I$(18,
    function() {
        e.__set("blank.png", (this.NEJ_CONF || n).blank || e.__get("root") + "nej_blank.gif")
    });
    return e
},
"735d81c56aa54ae5680cce2e40f7c5a5", "605054bf841321ed40d652370c40f4e5");
I$("8a2ce8a85ab9ebc9f81ddebaed2e0d2d",
function(e, t, i, n, s, r) {
    i._$getFrameProxy = function(e) {
        var n = t.__url2host(e);
        return i._$get("frames")[n] || n + "/res/nej_proxy_frame.html"
    };
    i._$getFlashProxy = function(e) {
        return i._$get("flashs")[t.__url2host(e)]
    };
    i._$get = function(e) {
        return t.__get(e)
    };
    if (!0) e.copy(e.P("nej.c"), i);
    return i
},
"eddda1e8e7971753192ee8d61ef1680e", "7f2cb35685a2caedffee361f339c50d0");
I$("508c1b33d3f81140e52b3368c768e540",
function(e, t, i, n, s, r) {
    var a = +new Date;
    i._$CODE_NOTFUND = 1e4 - a;
    i._$CODE_NOTASGN = 10001 - a;
    i._$CODE_NOTSPOT = 10002 - a;
    i._$CODE_TIMEOUT = 10003 - a;
    i._$CODE_ERREVAL = 10004 - a;
    i._$CODE_ERRCABK = 10005 - a;
    i._$CODE_ERRSERV = 10006 - a;
    i._$CODE_ERRABRT = 10007 - a;
    i._$HEAD_CT = "Content-Type";
    i._$HEAD_CT_PLAN = "text/plain";
    i._$HEAD_CT_FILE = "multipart/form-data";
    i._$HEAD_CT_FORM = "application/x-www-form-urlencoded";
    i._$BLANK_IMAGE = t._$get("blank.png") || "data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";
    if (!0) e.copy(e.P("nej.g"), i);
    return i
},
"eddda1e8e7971753192ee8d61ef1680e", "8a2ce8a85ab9ebc9f81ddebaed2e0d2d");
I$("4ff36f93915f61da99a05f35c5dcc945",
function(e, t) {
    var i = {};
    t._$merge = function(t) {
        e._$merge(i, t)
    };
    t._$dump = function() {
        return i
    };
    t._$clear = function() {
        i = {}
    };
    return t
},
"0ce1cf574f7be23168d864b3fb81d053");
I$("4b154653afaab0b6e245b44bdb2a81ba",
function(e, t, i, n, s, r) {
    i.__checkEvent = function() {
        var e = {
            touchstart: "mousedown",
            touchmove: "mousemove",
            touchend: "mouseup"
        },
        i = t._$KERNEL.prefix,
        n = {
            transitionend: "TransitionEnd",
            animationend: "AnimationEnd",
            animationstart: "AnimationStart",
            animationiteration: "AnimationIteration",
            visibilitychange: "visibilitychange"
        };
        var s = {
            enter: function(e, t, i) {
                var n = {
                    type: "keypress"
                };
                if (i) n.handler = function(t) {
                    if (13 === t.keyCode) i.call(e, t)
                };
                return n
            }
        };
        var r = function(e) {
            return (i.evt || i.pro) + e
        };
        return function(t, i, a) {
            var o = {
                type: i,
                handler: a
            };
            if (! ("on" + i in t)) {
                var c = e[i];
                if (c) {
                    o.type = c;
                    return o
                }
                var c = n[i];
                if (c) {
                    o.type = r(c);
                    return o
                }
                var _ = s[i];
                if (_) return _.apply(null, arguments)
            }
            return o
        }
    } ();
    i.__addEvent = function() {
        var e = arguments;
        if (!1) if (! ("on" + e[1] in e[0])) console.log("not support event[" + e[1] + "] for " + e[0]);
        e[0].addEventListener(e[1], e[2], e[3])
    };
    i.__delEvent = function() {
        var e = arguments;
        e[0].removeEventListener(e[1], e[2], e[3])
    };
    i.__dispatchEvent = function(t, i, n) {
        var s = document.createEvent("Event");
        s.initEvent(i, !0, !0);
        e._$merge(s, n);
        t.dispatchEvent(s)
    };
    return i
},
"0ce1cf574f7be23168d864b3fb81d053", "605054bf841321ed40d652370c40f4e5");
I$("d0f79e978ef8970d87cc5043978e4d69",
function(e, t, i, n, s, r, a) {
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release >= "6.0") I$(9,
    function() {
        t.__checkEvent = function() {
            var e = {
                touchcancel: "MSPointerCancel",
                touchstart: "MSPointerDown",
                touchmove: "MSPointerMove",
                touchend: "MSPointerUp"
            };
            return t.__checkEvent._$aop(function(t) {
                var i = t.args;
                var n = e[i[1]];
                if (n) {
                    t.stopped = !0;
                    t.value = {
                        type: n,
                        handler: i[2]
                    }
                }
            })
        } ()
    });
    if ("trident" === e._$KERNEL.engine && "5.0" == e._$KERNEL.release) I$(10,
    function() {
        t.__checkEvent = function() {
            var e = {};
            var i = {
                input: function(t, i, n) {
                    if (!n) return {
                        type: i
                    };
                    else return {
                        type: i,
                        handler: function(i) {
                            var s = t.id;
                            e[s] = t.value;
                            n.call(t, i)
                        },
                        link: [[document, "selectionchange",
                        function(i) {
                            var s = t.id;
                            if (t == document.activeElement) {
                                if (e[s] !== t.value) {
                                    e[s] = t.value;
                                    n.call(t, i)
                                }
                            } else delete e[s]
                        }]]
                    }
                }
            };
            return t.__checkEvent._$aop(function(e) {
                var t = e.args;
                var n = i[t[1]];
                if (n) {
                    e.stopped = !0;
                    e.value = n.apply(null, t)
                }
            })
        } ()
    });
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release >= "5.0") I$(11,
    function() {
        var e = {
            propertychange: 1
        };
        t.__addEvent = t.__addEvent._$aop(function(t) {
            var i = t.args;
            if (null != e[i[1]] && i[0].attachEvent) {
                t.stopped = !0;
                i[0].attachEvent("on" + i[1], i[2])
            }
        });
        t.__delEvent = t.__delEvent._$aop(function(t) {
            var i = t.args,
            n = e[i[1]];
            if (null != e[i[1]] && i[0].detachEvent) {
                t.stopped = !0;
                i[0].detachEvent("on" + i[1], i[2])
            }
        })
    });
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release <= "4.0") I$(12,
    function() {
        t.__checkEvent = function() {
            var e = {};
            var i = {
                input: function(t, i, n) {
                    var s = {
                        type: "propertychange"
                    };
                    if (n) {
                        var r = t.id;
                        var a = function(i) {
                            if (t.value && !e["x-" + r]) {
                                e["x-" + r] = !0;
                                n.call(t, i)
                            }
                        };
                        s.handler = function(i) {
                            if ("value" in t && "value" == i.propertyName) {
                                if (e[r]) return;
                                e[r] = !0;
                                n.call(t, i);
                                delete e[r]
                            }
                        };
                        s.link = [[t, "keyup", a], [t, "mouseup", a], [t, "mousemove", a]];
                        s.destroy = function() {
                            delete e[r];
                            delete e["x-" + r]
                        }
                    }
                    return s
                },
                load: function(e, t, i) {
                    var n = {
                        type: "readystatechange"
                    };
                    if (i) n.handler = function(t) {
                        if ("loaded" == e.readyState || "complete" == e.readyState) i.call(e, t)
                    };
                    return n
                }
            };
            return t.__checkEvent._$aop(function(e) {
                var t = e.args;
                var n = i[t[1]];
                if (n) {
                    e.stopped = !0;
                    e.value = n.apply(null, t)
                }
                if (t[2]) t[2] = t[2]._$bind(t[0])
            })
        } ();
        t.__addEvent = function() {
            var e = arguments;
            if (!1) if (! ("on" + e[1] in e[0])) console.log("not support event[" + e[1] + "] for " + e[0]);
            e[0].attachEvent("on" + e[1], e[2])
        };
        t.__delEvent = function() {
            var e = arguments;
            e[0].detachEvent("on" + e[1], e[2])
        };
        t.__dispatchEvent = function() {
            var e = {
                propertychange: {
                    propertyName: "value"
                }
            };
            return function(t, n, s) {
                var r = document.createEventObject();
                try {
                    i._$merge(r, e[n], s);
                    t.fireEvent("on" + n, r)
                } catch(a) {
                    console.error(a.message);
                    console.error(a.stack)
                }
            }
        } ()
    });
    if ("gecko" === e._$KERNEL.engine) I$(13,
    function() {
        t.__checkEvent = function() {
            var e = /^(?:transitionend|animationend|animationstart|animationiteration)$/i;
            var i = {
                mousewheel: function(e, t, i) {
                    var n = {
                        type: "MozMousePixelScroll"
                    };
                    if (i) n.handler = function(t) {
                        var n = t.detail;
                        t.wheelDelta = -n;
                        t.wheelDeltaY = -n;
                        t.wheelDeltaX = 0;
                        i.call(e, t)
                    };
                    return n
                }
            };
            return t.__checkEvent._$aop(function(t) {
                var n = t.args;
                if (e.test(n[1])) {
                    t.stopped = !0;
                    t.value = {
                        type: n[1],
                        handler: n[2]
                    }
                }
                var s = i[n[1]];
                if (s) {
                    t.stopped = !0;
                    t.value = s.apply(null, n)
                }
            })
        } ()
    });
    return t
},
"605054bf841321ed40d652370c40f4e5", "4b154653afaab0b6e245b44bdb2a81ba", "0ce1cf574f7be23168d864b3fb81d053");
I$("a0c610891b37112b33fc6ca301b06e01",
function(e, t, i, n, s, r, a, o, c) {
    var _ = {},
    d = {};
    var f = function() {
        var e = /[\s,;]+/;
        return function(t) {
            var t = (t || "").trim().toLowerCase();
            return ! t ? null: t.split(e)
        }
    } ();
    var h = function(e, i, n) {
        var s = "page" + i;
        return null != e[s] ? e[s] : e["client" + i] + t._$getPageBox()["scroll" + n]
    };
    var l = function(e, t, i) {
        var n = "scroll" + i;
        _node = r._$getElement(e),
        _xret = h(e, t, i);
        for (; _node && _node != document.body && _node != document.documentElement;) {
            _xret += _node[n] || 0;
            _node = _node.parentNode
        }
        return _xret
    };
    var u = function(e, n, s, r) {
        var a = {};
        e = t._$get(e);
        if (!e) return null;
        t._$id(e);
        a.element = e;
        if (!i._$isFunction(s)) return null;
        a.handler = s;
        var n = f(n);
        if (!n) return null;
        a.type = n;
        a.capture = !!r;
        return a
    };
    r._$addEvent = d._$addEvent = function() {
        var e = function(e, i, n) {
            var s = t._$id(i.element),
            r = _[s] || {},
            a = r[e] || [];
            a.push({
                type: n.type || e,
                func: n.handler || i.handler,
                sfun: i.handler,
                capt: i.capture,
                link: n.link,
                destroy: n.destroy
            });
            r[e] = a;
            _[s] = r
        };
        return function() {
            var n = u.apply(null, arguments);
            if (n) i._$forEach(n.type,
            function(r) {
                var a = s.__checkEvent(n.element, r, n.handler);
                s.__addEvent(n.element, a.type, a.handler, n.capture);
                i._$forIn(a.link,
                function(e) {
                    e[3] = !!e[3];
                    s.__addEvent.apply(s, e);
                    e[0] = t._$id(e[0])
                });
                e(r, n, a)
            })
        }
    } ();
    r._$delEvent = d._$delEvent = function() {
        var e = function(e, n) {
            var s = t._$id(n.element),
            r = _[s] || a,
            o = r[e],
            c = i._$indexOf(o,
            function(e) {
                return e.sfun === n.handler && e.capt === n.capture
            });
            var d = null;
            if (c >= 0) {
                var f = o.splice(c, 1)[0];
                d = [[n.element, f.type, f.func, n.capture]];
                if (f.link) {
                    i._$forEach(f.link,
                    function(e) {
                        e[0] = t._$get(e[0])
                    });
                    d.push.apply(d, f.link)
                }
                if (f.destroy) f.destroy();
                if (!o.length) delete r[e];
                if (!i._$hasProperty(r)) delete _[s]
            }
            return d
        };
        return function() {
            var t = u.apply(null, arguments);
            if (t) i._$forEach(t.type,
            function(n) {
                i._$forEach(e(n, t),
                function(e) {
                    s.__delEvent.apply(s, e)
                })
            })
        }
    } ();
    r._$clearEvent = d._$clearEvent = function() {
        var e = function(e, t, n) {
            i._$reverseEach(n,
            function(i) {
                r._$delEvent(e, t, i.sfun, i.capt)
            })
        };
        return function(n, s) {
            var a = t._$id(n);
            if (a) {
                var o = _[a];
                if (o) {
                    s = f(s);
                    if (s) i._$forEach(s,
                    function(t) {
                        e(a, t, o[t])
                    });
                    else i._$loop(o,
                    function(e, t) {
                        r._$clearEvent(n, t)
                    })
                }
            }
        }
    } ();
    r._$dispatchEvent = d._$dispatchEvent = function(e, n, r) {
        var e = t._$get(e);
        if (e) i._$forEach(f(n),
        function(t) {
            var i = s.__checkEvent(e, t);
            s.__dispatchEvent(e, i.type, r)
        })
    };
    r._$getElement = function() {
        var e;
        var n = function(i, n) {
            var s = i.split(":");
            if (s.length > 1) {
                if (!e) e = {
                    a: t._$attr,
                    d: t._$dataset,
                    c: t._$hasClassName,
                    t: function(e, t) {
                        return (e.tagName || "").toLowerCase() === t
                    }
                };
                var r = e[s[0]];
                if (r) return !! r(n, s[1]);
                i = s[1]
            }
            return !! t._$attr(n, i) || !!t._$dataset(n, i) || t._$hasClassName(n, i);
        };
        return function(e) {
            if (!e) return null;
            var t = e.target || e.srcElement,
            s = arguments[1];
            if (!s) return t;
            if (i._$isString(s)) s = n._$bind(null, s);
            if (i._$isFunction(s)) {
                for (; t;) {
                    if (s(t)) return t;
                    t = t.parentNode
                }
                return null
            }
            return t
        }
    } ();
    r._$stop = function(e) {
        r._$stopBubble(e);
        r._$stopDefault(e)
    };
    r._$stopBubble = function(e) {
        if (e) e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0
    };
    r._$stopDefault = function(e) {
        if (e) e.preventDefault ? e.preventDefault() : e.returnValue = !1
    };
    r._$page = function(e) {
        return {
            x: r._$pageX(e),
            y: r._$pageY(e)
        }
    };
    r._$pageX = function(e) {
        return l(e, "X", "Left")
    };
    r._$pageY = function(e) {
        return l(e, "Y", "Top")
    };
    r._$clientX = function(e) {
        return h(e, "X", "Left")
    };
    r._$clientY = function(e) {
        return h(e, "Y", "Top")
    };
    n._$merge(d);
    if (!0) e.copy(e.P("nej.v"), r);
    return r
},
"eddda1e8e7971753192ee8d61ef1680e", "d73a726efb8534e8d72defb6cd280a1c", "0ce1cf574f7be23168d864b3fb81d053", "4ff36f93915f61da99a05f35c5dcc945", "d0f79e978ef8970d87cc5043978e4d69");
I$("e543d5ff3f7b733a708519e9530d1f6b",
function(e, t, i, n, s, r) {
    i.__getElementById = function(e, t) {
        if (e.getElementById) return e.getElementById("" + t);
        try {
            return e.querySelector("#" + t)
        } catch(i) {
            return null
        }
    };
    i.__getChildren = function(t) {
        return e._$object2array(t.children)
    };
    i.__getElementsByClassName = function(t, i) {
        return e._$object2array(t.getElementsByClassName(i))
    };
    i.__nextSibling = function(e) {
        return e.nextElementSibling
    };
    i.__previousSibling = function(e) {
        return e.previousElementSibling
    };
    i.__dataset = function(e, t, i) {
        e.dataset = e.dataset || {};
        if (void 0 !== i) e.dataset[t] = i;
        return e.dataset[t]
    };
    i.__getAttribute = function(e, t) {
        return e.getAttribute(t)
    };
    i.__serializeDOM2XML = function(e) {
        return (new XMLSerializer).serializeToString(e) || ""
    };
    i.__parseDOMFromXML = function(e) {
        var t = (new DOMParser).parseFromString(e, "text/xml").documentElement;
        return "parsererror" == t.nodeName ? null: t
    };
    i.__fullScreen = function() {};
    i.__mask = function() {};
    i.__unmask = function() {};
    var a = t._$SUPPORT,
    o = t._$KERNEL.prefix;
    i.__isMatchedName = function() {
        var e = /^([a-z]+?)[A-Z]/;
        return function(t, i) {
            return !! (i[t] || e.test(t) && i[RegExp.$1])
        }
    } ();
    i.__isNeedPrefixed = function() {
        var t = e._$array2object(["animation", "transform", "transition", "appearance", "userSelect", "box", "flex", "column"]);
        return function(e) {
            return i.__isMatchedName(e, t)
        }
    } ();
    i.__fmtStyleName = function() {
        var e = /-([a-z])/g;
        return function(t) {
            t = t || "";
            return t.replace(e,
            function(e, t) {
                return t.toUpperCase()
            })
        }
    } ();
    i.__getStyleName = function() {
        var e = /^[a-z]/,
        t = o.css || "";
        return function(n) {
            n = i.__fmtStyleName(n);
            if (!i.__isNeedPrefixed(n)) return n;
            else return t + n.replace(e,
            function(e) {
                return e.toUpperCase()
            })
        }
    } ();
    i.__getStyleValue = function(e, t) {
        var n = window.getComputedStyle(e, null);
        return n[i.__getStyleName(t)] || ""
    };
    i.__setStyleValue = function(e, t, n) {
        e.style[i.__getStyleName(t)] = n
    };
    i.__getCSSMatrix = function() {
        var t = /\((.*?)\)/,
        i = /\s*,\s*/,
        n = ["CSSMatrix", o.clz + "CSSMatrix"],
        s = ["m11", "m12", "m21", "m22", "m41", "m42"];
        var r = function(n) {
            var r = {};
            if (t.test(n || "")) e._$forEach(RegExp.$1.split(i),
            function(e, t) {
                r[s[t]] = e
            });
            return r
        };
        return function(t) {
            var i;
            e._$forIn(n,
            function(e) {
                if (this[e]) {
                    i = new this[e](t || "");
                    return ! 0
                }
            });
            return ! i ? r(t) : i
        }
    } ();
    i.__injectCSSText = function(e, t) {
        e.textContent = t
    };
    i.__processCSSText = function() {
        var t = /\$<(.*?)>/gi,
        s = /\{(.*?)\}/g,
        r = "-" + o.css.toLowerCase() + "-",
        c = {
            scale: "scale({x|1},{y|1})",
            rotate: "rotate({a})",
            translate: "translate({x},{y})",
            matrix: "matrix({m11},{m12},{m21},{m22},{m41},{m42})"
        },
        _ = {
            scale: "scale3d({x|1},{y|1},{z|1})",
            rotate: "rotate3d({x},{y},{z},{a})",
            translate: "translate3d({x},{y},{z})",
            matrix: "matrix3d({m11},{m12},{m13},{m14},{m21},{m22},{m23},{m24},{m31},{m32},{m33|1},{m34},{m41},{m42},{m43},{m44|1})"
        };
        var d = function(e, t) {
            t = t || n;
            return e.replace(s,
            function(e, i) {
                var n = i.split("|");
                return t[n[0]] || n[1] || "0"
            })
        };
        i.__processTransformValue = function(e, t) {
            var i = (!a.css3d ? c: _)[e.trim()];
            if (i) return d(i, t);
            else return ""
        };
        return function(n) {
            if (!n.replace) return n;
            else return n.replace(t,
            function(t, n) {
                if ("vendor" === n) return r;
                var s = (n || "").split("|");
                return i.__processTransformValue(s[0], e._$query2object(s[1])) || t
            })
        }
    } ();
    i.__appendCSSText = function(e, t) {
        var i = e.sheet,
        n = i.cssRules.length;
        i.insertRule(t, n);
        return i.cssRules[n]
    };
    i.__getClassList = function() {
        var e = /\s+/;
        return function(t) {
            t = (t || "").trim();
            return t ? t.split(e) : null
        }
    } ();
    i.__processClassName = function(t, n, s) {
        if ("replace" != n) e._$forEach(i.__getClassList(s),
        function(e) {
            t.classList[n](e)
        });
        else {
            i.__processClassName(t, "remove", s);
            i.__processClassName(t, "add", arguments[3])
        }
    };
    i.__hasClassName = function(t, n) {
        var s = t.classList;
        if (!s || !s.length) return ! 1;
        else return e._$indexOf(i.__getClassList(n),
        function(e) {
            return s.contains(e)
        }) >= 0
    }; !
    function() {
        if (!a.css3d) {
            var e = i.__getCSSMatrix();
            a.css3d = !!e && null != e.m41
        }
    } ();
    return i
},
"0ce1cf574f7be23168d864b3fb81d053", "605054bf841321ed40d652370c40f4e5");
I$("5faa696f3d634d9ce0a948fd79ceab64",
function(e, t, i, n, s, r, a) {
    if ("trident" === t._$KERNEL.engine) I$(1,
    function() {
        e.__getChildren = e.__getChildren._$aop(function(e) {
            var t = e.args[0];
            if (!t.children) {
                e.stopped = !0;
                var n = [];
                i._$forEach(t.childNodes,
                function(e) {
                    if (1 == e.nodeType) n.push(e)
                });
                e.value = n
            }
        })
    });
    if ("trident" === t._$KERNEL.engine && t._$KERNEL.release <= "6.0") I$(2,
    function() {
        e.__dataset = function() {
            var e = {},
            t = "data-",
            n = /\-(.{1})/gi;
            var s = function(s) {
                var r = s.id;
                if (!e[r]) {
                    var a = {};
                    i._$forEach(s.attributes,
                    function(e) {
                        var i = e.nodeName;
                        if (0 == i.indexOf(t)) {
                            i = i.replace(t, "").replace(n,
                            function(e, t) {
                                return t.toUpperCase()
                            });
                            a[i] = e.nodeValue || ""
                        }
                    });
                    e[r] = a
                }
            };
            return function(t, i, n) {
                s(t);
                var r = e[t.id];
                if (void 0 !== n) r[i] = n;
                return r[i]
            }
        } ()
    });
    if ("trident" === t._$KERNEL.engine && t._$KERNEL.release <= "5.0") I$(3,
    function() {
        try {
            document.execCommand("BackgroundImageCache", !1, !0)
        } catch(t) {}
        e.__injectCSSText = function() {
            var t = 30;
            return e.__injectCSSText._$aop(function(e) {
                var i = e.args[0];
                if (i.styleSheet) {
                    e.stopped = !0;
                    var n = e.args[1];
                    var s = document.styleSheets;
                    if (s.length > t) {
                        i = s[t];
                        n = i.cssText + n
                    } else i = i.styleSheet;
                    i.cssText = n
                }
            })
        } ();
        e.__getClassRegExp = function() {
            var e = /\s+/g;
            return function(t) {
                t = (t || "").trim().replace(e, "|");
                return ! t ? null: new RegExp("(\\s|^)(?:" + t + ")(?=\\s|$)", "g")
            }
        } ();
        e.__processClassName = function(t, i, n) {
            n = n || "";
            var s = t.className || "",
            r = e.__getClassRegExp(n + " " + (arguments[3] || ""));
            var a = s;
            if (r) a = a.replace(r, "");
            switch (i) {
            case "remove":
                n = "";
                break;
            case "replace":
                n = arguments[3] || ""
            }
            a = (a + " " + n).trim();
            if (s != a) t.className = a
        };
        e.__hasClassName = function(t, i) {
            var n = e.__getClassRegExp(i);
            if (n) return n.test(t.className || "");
            else return ! 1
        }
    });
    if ("trident" === t._$KERNEL.engine && t._$KERNEL.release <= "4.0") I$(4,
    function() {
        e.__getElementsByClassName = function(e, t) {
            var n = [],
            s = new RegExp("(\\s|^)(?:" + t.replace(/\s+/g, "|") + ")(?=\\s|$)");
            i._$forEach(e.getElementsByTagName("*"),
            function(e) {
                if (s.test(e.className)) n.push(e)
            });
            return n
        };
        e.__nextSibling = function(e) {
            for (; e = e.nextSibling;) if (1 == e.nodeType) return e
        };
        e.__previousSibling = function(e) {
            for (; e = e.previousSibling;) if (1 == e.nodeType) return e
        };
        e.__serializeDOM2XML = function(e) {
            return "xml" in e ? e.xml: e.outerHTML
        };
        e.__parseDOMFromXML = function() {
            var e = ["Msxml2.DOMDocument.6.0", "Msxml2.DOMDocument.3.0"];
            var t = function() {
                try {
                    for (var t = 0,
                    i = e.length; t < i; t++) return new ActiveXObject(e[t])
                } catch(n) {
                    return null
                }
            };
            return function(e) {
                var i = t();
                if (i && i.loadXML(e) && !i.parseError.errorCode) return i.documentElement;
                else return null
            }
        } ();
        e.__getStyleValue = function() {
            var t = /opacity\s*=\s*([\d]+)/i;
            var i = {
                opacity: function(e) {
                    var i = 0;
                    if (t.test(e.filter || "")) i = parseFloat(RegExp.$1) / 100;
                    return i
                }
            };
            return function(t, n) {
                var s = t.currentStyle,
                r = i[n];
                if (r) return r(s);
                else return s[e.__getStyleName(n)] || ""
            }
        } ();
        e.__setStyleValue = function() {
            var t = {
                opacity: function(e, t) {
                    e.style.filter = "alpha(opacity=" + 100 * t + ")"
                }
            };
            return function(i, n, s) {
                var r = t[n];
                if (r) r(i, s);
                else i.style[e.__getStyleName(n)] = s
            }
        } ();
        e.__appendCSSText = function(e, t) {
            var i = e.styleSheet,
            n = i.rules.length,
            s = t.split(/[\{\}]/);
            i.addRule(s[0], s[1], n);
            return i.rules[n]
        }
    });
    if ("trident" === t._$KERNEL.engine && t._$KERNEL.release <= "3.0") I$(5,
    function() {
        e.__getAttribute = e.__getAttribute._$aop(null,
        function(e) {
            var t = e.args;
            if ("maxlength" == t[1] && 2147483647 == e.value) e.value = null
        })
    });
    if ("trident" === t._$KERNEL.engine && t._$KERNEL.release <= "2.0") I$(6,
    function() {
        e.__fullScreen = function(e, t) {
            var i = e.style;
            i.width = t.scrollWidth + "px";
            i.height = t.scrollHeight + "px"
        };
        e.__mask = function() {
            var t = {};
            e.__unmask = function(e) {
                var i = e.id,
                n = t[i];
                if (n) {
                    delete t[i];
                    n.parentNode.removeChild(n)
                }
            };
            return function(e) {
                var i = e.id,
                n = t[i];
                if (!n) {
                    n = document.createElement("iframe");
                    n.style.position = "absolute";
                    t[i] = n
                }
                var s = n.style,
                r = e.style;
                s.top = (parseInt(r.top) || 0) + "px";
                s.left = (parseInt(r.left) || 0) + "px";
                s.width = e.offsetWidth + "px";
                s.height = e.offsetHeight + "px";
                e.insertAdjacentElement("beforeBegin", n);
                return n
            }
        } ()
    });
    if ("gecko" === t._$KERNEL.engine) I$(7,
    function() {
        if (!t._$SUPPORT.css3d) t._$SUPPORT.css3d = "MozPerspective" in document.body.style;
        if (! ("insertAdjacentElement" in document.body)) HTMLElement.prototype.insertAdjacentElement = function(e, t) {
            if (e && t) switch (e) {
            case "beforeEnd":
                this.appendChild(t);
                return;
            case "beforeBegin":
                this.parentNode.insertBefore(t, this);
                return;
            case "afterBegin":
                !this.firstChild ? this.appendChild(t) : this.insertBefore(t, this.firstChild);
                return;
            case "afterEnd":
                !this.nextSibling ? this.parentNode.appendChild(t) : this.parentNode.insertBefore(t, this.nextSibling);
                return
            }
        };
        if (! ("innerText" in document.body)) {
            HTMLElement.prototype["__defineGetter__"]("innerText",
            function() {
                return this.textContent
            });
            HTMLElement.prototype["__defineSetter__"]("innerText",
            function(e) {
                this.textContent = e
            })
        }
    });
    return e
},
"e543d5ff3f7b733a708519e9530d1f6b", "605054bf841321ed40d652370c40f4e5", "0ce1cf574f7be23168d864b3fb81d053");
I$("d73a726efb8534e8d72defb6cd280a1c",
function(e, t, i, n, s, r, a, o, c, _) {
    var d = {},
    f, h = {},
    l = {},
    u = document.createDocumentFragment();
    if (!document.head) document.head = document.getElementsByTagName("head")[0] || document.body;
    a.dump = function() {
        return {
            pool: h,
            dirty: l,
            fragment: u
        }
    };
    a._$id = d._$id = function(e) {
        e = a._$get(e);
        if (e) {
            var t = e.id ? e.id: "auto-id-" + i._$uniqueID();
            if (! ("id" in e)) h[t] = e;
            e.id = t;
            if (!a._$get(t)) l[t] = e;
            return t
        }
    };
    a._$get = function(e) {
        var t = h["" + e];
        if (t) return t;
        if (!i._$isString(e) && !i._$isNumber(e)) return e;
        var t = document.getElementById(e);
        if (!t) t = r.__getElementById(u, e);
        if (t) delete l[e];
        return t || l[e]
    };
    a._$getChildren = d._$getChildren = function(e, t) {
        e = a._$get(e);
        if (!e) return null;
        var n = r.__getChildren(e);
        if (t) i._$reverseEach(n,
        function(e, i, n) {
            if (!a._$hasClassName(e, t)) n.splice(i, 1)
        });
        return n
    };
    a._$getByClassName = d._$getByClassName = function(e, t) {
        e = a._$get(e);
        return ! e ? null: r.__getElementsByClassName(e, t.trim())
    };
    a._$getSibling = d._$getSibling = function() {
        var e = function() {
            return ! 0
        };
        return function(t, n) {
            t = a._$get(t);
            if (!t) return null;
            var s = {
                backward: !1,
                filter: e
            };
            if (i._$isFunction(n)) s.filter = n;
            else s = i._$fetch(s, n);
            var o = s.backward ? r.__previousSibling: r.__nextSibling;
            for (; (t = o(t)) && !s.filter(t););
            return t
        }
    } ();
    a._$getScrollViewPort = function(e) {
        e = a._$get(e);
        if (e) {
            e = e.parentNode;
            for (; e && !(e.scrollHeight > e.clientHeight);) e = e.parentNode;
            if (e) return e
        }
        var t = document.body.scrollHeight,
        i = document.documentElement.scrollHeight;
        return i >= t ? document.documentElement: document.body
    };
    a._$getPageBox = function() {
        var e = function(e) {
            var t = 0;
            i._$forEach(e,
            function(e) {
                if (e) if (!t) t = e;
                else t = Math.min(t, e)
            });
            return t
        };
        var t = [{
            main: "scroll",
            sub: ["Top", "Left"],
            func: function(e, t, i) {
                return Math.max(t["scroll" + e], i["scroll" + e])
            }
        },
        {
            main: "client",
            sub: ["Width", "Height"],
            func: function(t, i, n) {
                return e([i["client" + t], i["offset" + t], n["client" + t], n["offset" + t]])
            }
        },
        {
            main: "scroll",
            sub: ["Width", "Height"],
            func: function(e, t, i, n) {
                return Math.max(n["client" + e], t["scroll" + e], i["scroll" + e])
            }
        }];
        return function(e) {
            var n = {},
            s = e || document,
            r = s.body,
            a = s.documentElement;
            i._$forEach(t,
            function(e) {
                var t = e.main;
                i._$forEach(e.sub,
                function(i) {
                    n[t + i] = e.func(i, r, a, n)
                })
            });
            return n
        }
    } ();
    a._$getMaxBox = function(e, t) {
        var n = i._$merge({},
        e),
        s = t.width / t.height,
        r = e.width / e.height;
        if (s > r && e.height > t.height) {
            n.height = t.height;
            n.width = n.height * r
        }
        if (s < r && e.width > t.width) {
            n.width = t.width;
            n.height = n.width / r
        }
        return n
    };
    a._$scrollTo = d._$scrollTo = function(e) {
        var t = a._$offset(e);
        window.scrollTo(t.x, t.y)
    };
    a._$align = function() {
        var e = /\s+/;
        var t = {
            left: function() {
                return 0
            },
            center: function(e, t) {
                return (e.width - t.width) / 2
            },
            right: function(e, t) {
                return e.width - t.width
            },
            top: function() {
                return 0
            },
            middle: function(e, t) {
                return (e.height - t.height) / 2
            },
            bottom: function(e, t) {
                return e.height - t.height
            }
        };
        return function(i, n, s) {
            var r = {},
            a = (s || "").split(e),
            o = t[a[1]] || t.middle,
            c = t[a[0]] || t.center;
            r.top = o(i, n);
            r.left = c(i, n);
            return r
        }
    } ();
    a._$offset = d._$offset = function() {
        var e = function(e) {
            return e == document.body || e == document.documentElement
        };
        return function(t, i) {
            t = a._$get(t);
            if (!t) return null;
            i = a._$get(i) || null;
            var n = t,
            s = {
                x: 0,
                y: 0
            },
            r,
            o,
            c;
            for (; n && n != i;) {
                r = e(n) || n == t;
                o = r ? 0 : n.scrollLeft;
                c = parseInt(a._$getStyle(n, "borderLeftWidth")) || 0;
                s.x += n.offsetLeft + c - o;
                o = r ? 0 : n.scrollTop;
                c = parseInt(a._$getStyle(n, "borderTopWidth")) || 0;
                s.y += n.offsetTop + c - o;
                n = n.offsetParent
            }
            return s
        }
    } ();
    a._$fullScreen = d._$fullScreen = function(e) {
        e = a._$get(e);
        if (e) r.__fullScreen(e, a._$getPageBox())
    };
    a._$mask = d._$mask = function(e) {
        e = a._$get(e);
        if (e) {
            a._$id(e);
            return r.__mask(e)
        }
        return null
    };
    a._$unmask = d._$unmask = function(e) {
        e = a._$get(e);
        if (e) {
            a._$id(e);
            return r.__unmask(e)
        }
        return null
    };
    a._$create = function() {
        var e = {
            a: {
                href: "#",
                hideFocus: !0
            },
            style: {
                type: "text/css"
            },
            link: {
                type: "text/css",
                rel: "stylesheet"
            },
            iframe: {
                frameBorder: 0
            },
            script: {
                defer: !0,
                type: "text/javascript"
            }
        };
        return function(t, n, s) {
            var r = document.createElement(t),
            o = e[t.toLowerCase()];
            i._$merge(r, o);
            if (n) r.className = n;
            s = a._$get(s);
            if (s) s.appendChild(r);
            else if (!o) u.appendChild(r);
            return r
        }
    } ();
    a._$createXFrame = function() {
        var e = function() {
            if (location.hostname == document.domain) return "about:blank";
            else return 'javascript:(function(){document.open();document.domain="' + document.domain + '";document.close();})();'
        };
        var t = function(e) {
            e = e.trim();
            if (!e) return a._$create("iframe");
            var t;
            try {
                t = document.createElement('<iframe name="' + e + '"></iframe>');
                t.frameBorder = 0
            } catch(i) {
                t = a._$create("iframe");
                t.name = e
            }
            return t
        };
        return function(s) {
            s = s || o;
            var r = t(s.name || "");
            if (!s.visible) r.style.display = "none";
            if (i._$isFunction(s.onload)) n._$addEvent(r, "load",
            function(e) {
                if (r.src) {
                    n._$clearEvent(r, "load");
                    s.onload(e)
                }
            });
            var c = s.parent;
            if (i._$isFunction(c)) try {
                c(r)
            } catch(_) {} else(a._$get(c) || document.body).appendChild(r);
            var d = s.src || e();
            window.setTimeout(function() {
                r.src = d
            },
            0);
            return r
        }
    } ();
    a._$remove = d._$remove = function() {
        var e = {
            img: function(e) {
                e.src = t._$BLANK_IMAGE
            },
            iframe: function(e) {
                e.src = "about:blank"
            }
        };
        var s = function(t, n) {
            if (n) {
                if (t.getElementsByTagName) i._$forEach(t.getElementsByTagName(n), s)
            } else {
                var r = (t.tagName || "").toLowerCase(),
                a = e[r];
                if (a) a(t)
            }
        };
        return function(e) {
            e = a._$get(e);
            if (e) {
                if (!arguments[1]) n._$clearEvent(e);
                s(e);
                s(e, "img");
                s(e, "iframe");
                if (e.parentNode) e.parentNode.removeChild(e)
            }
        }
    } ();
    a._$removeByEC = d._$removeByEC = function(e) {
        e = a._$get(e);
        if (e) try {
            u.appendChild(e)
        } catch(t) {
            console.error(t)
        }
    };
    a._$clearChildren = d._$clearChildren = function(e) {
        e = a._$get(e);
        if (e) i._$reverseEach(e.childNodes,
        function(e) {
            a._$remove(e)
        })
    };
    a._$wrapInline = d._$wrapInline = function() {
        var e, t = /\s+/;
        var i = function() {
            if (!e) {
                e = a._$pushCSSText(".#<uispace>{position:relative;zoom:1;}.#<uispace>-show{position:absolute;top:0;left:100%;cursor:text;white-space:nowrap;overflow:hidden;}");
                a._$dumpCSSText()
            }
        };
        return function(n, s) {
            n = a._$get(n);
            if (!n) return null;
            i();
            s = s || o;
            var r = n.parentNode;
            if (!a._$hasClassName(r, e)) {
                r = a._$create("span", e);
                n.insertAdjacentElement("beforeBegin", r);
                r.appendChild(n)
            }
            var c = s.nid || "",
            _ = a._$getByClassName(r, c || e + "-show")[0];
            if (!_) {
                var d = ((s.clazz || "") + " " + c).trim();
                d = e + "-show" + (!d ? "": " ") + d;
                _ = a._$create(s.tag || "span", d);
                r.appendChild(_)
            }
            var d = s.clazz;
            if (d) {
                d = (d || "").trim().split(t)[0] + "-parent";
                a._$addClassName(r, d)
            }
            return _
        }
    } ();
    a._$dataset = d._$dataset = function(e, t, n) {
        var s = a._$id(e);
        if (!s) return null;
        if (i._$isString(t)) return r.__dataset(a._$get(e), t, n);
        if (i._$isObject(t)) {
            var o = {};
            i._$forIn(t,
            function(e, t) {
                o[t] = a._$dataset(s, t, e)
            });
            return o
        }
        if (i._$isArray(t)) {
            var o = {};
            i._$forEach(t,
            function(e) {
                o[e] = a._$dataset(s, e)
            });
            return o
        }
        return null
    };
    a._$attr = d._$attr = function(e, t, i) {
        e = a._$get(e);
        if (!e) return "";
        if (void 0 !== i && e.setAttribute) e.setAttribute(t, i);
        return r.__getAttribute(e, t)
    };
    a._$html2node = function() {
        var e = /<(.*?)(?=\s|>)/i,
        t = {
            li: "ul",
            tr: "tbody",
            td: "tr",
            th: "tr",
            option: "select"
        };
        return function(i) {
            var n;
            if (e.test(i)) n = t[(RegExp.$1 || "").toLowerCase()] || "";
            var s = a._$create(n || "div");
            s.innerHTML = i;
            var r = a._$getChildren(s);
            return r.length > 1 ? s: r[0]
        }
    } ();
    a._$dom2xml = d._$dom2xml = function(e) {
        e = a._$get(e);
        return ! e ? "": r.__serializeDOM2XML(e)
    };
    a._$xml2dom = function(e) {
        e = (e || "").trim();
        return ! e ? null: r.__parseDOMFromXML(e)
    };
    a._$dom2object = d._$dom2object = function(e, t) {
        t = t || {};
        e = a._$get(e);
        if (!e) return t;
        var n = e.tagName.toLowerCase(),
        s = a._$getChildren(e);
        if (!s || !s.length) {
            t[n] = e.textContent || e.text || "";
            return t
        }
        var r = {};
        t[n] = r;
        i._$forEach(s,
        function(e) {
            a._$dom2object(e, r)
        });
        return t
    };
    a._$xml2object = function(e) {
        try {
            return a._$dom2object(a._$xml2dom(e))
        } catch(t) {
            return null
        }
    };
    a._$text2type = function() {
        var e = {
            xml: function(e) {
                return a._$xml2dom(e)
            },
            json: function(e) {
                try {
                    return JSON.parse(e)
                } catch(t) {
                    return null
                }
            },
            dft: function(e) {
                return e
            }
        };
        return function(t, i) {
            i = (i || "").toLowerCase();
            return (e[i] || e.dft)(t || "")
        }
    } ();
    a._$style = d._$style = function(e, t) {
        e = a._$get(e);
        if (e) i._$loop(t,
        function(t, i) {
            a._$setStyle(e, i, t)
        })
    };
    a._$setStyle = d._$setStyle = function(e, t, i) {
        e = a._$get(e);
        if (e) r.__setStyleValue(e, t, r.__processCSSText(i))
    };
    a._$getStyle = d._$getStyle = function(e, t) {
        e = a._$get(e);
        return ! e ? "": r.__getStyleValue(e, t)
    };
    a._$addScript = function(e) {
        try {
            e = e.trim();
            if (e) return new Function(e)()
        } catch(t) {
            console.error(t.message);
            console.error(t.stack)
        }
    };
    a._$addStyle = function() {
        var e = /[\s\r\n]+/gi;
        return function(t) {
            t = (t || "").replace(e, " ").trim();
            var i = null;
            if (t) {
                i = a._$create("style");
                document.head.appendChild(i);
                r.__injectCSSText(i, r.__processCSSText(t))
            }
            return i
        }
    } ();
    a._$pushCSSText = function() {
        var e = /#<(.*?)>/g,
        t = +new Date;
        return function(t, n) {
            if (!f) f = [];
            var s = "auto-" + i._$uniqueID(),
            r = i._$merge({
                uispace: s
            },
            n);
            f.push(t.replace(e,
            function(e, t) {
                return r[t] || e
            }));
            return s
        }
    } ();
    a._$dumpCSSText = function() {
        if (f) {
            a._$addStyle(f.join(" "));
            f = null
        }
    };
    a._$appendCSSText = d._$appendCSSText = function(e, t) {
        e = a._$get(e);
        return ! e ? null: r.__appendCSSText(e, r.__processCSSText(t))
    };
    a._$addClassName = d._$addClassName = function(e, t) {
        e = a._$get(e);
        if (e) r.__processClassName(e, "add", t)
    };
    a._$delClassName = d._$delClassName = function(e, t) {
        e = a._$get(e);
        if (e) r.__processClassName(e, "remove", t)
    };
    a._$replaceClassName = d._$replaceClassName = function(e, t, i) {
        e = a._$get(e);
        if (e) r.__processClassName(e, "replace", t, i)
    };
    a._$hasClassName = d._$hasClassName = function(e, t) {
        e = a._$get(e);
        if (e) return r.__hasClassName(e, t);
        else return ! 1
    };
    a._$matrix = function(e) {
        e = (e || "").trim();
        return r.__getCSSMatrix(e)
    };
    a._$css3d = d._$css3d = function(e, t, i) {
        e = a._$get(e);
        if (e) {
            var n = r.__processTransformValue(t, i);
            if (n) a._$setStyle(e, "transform", n)
        }
    };
    s._$merge(d);
    if (!0) e.copy(e.P("nej.e"), a);
    return a
},
"eddda1e8e7971753192ee8d61ef1680e", "508c1b33d3f81140e52b3368c768e540", "0ce1cf574f7be23168d864b3fb81d053", "a0c610891b37112b33fc6ca301b06e01", "4ff36f93915f61da99a05f35c5dcc945", "5faa696f3d634d9ce0a948fd79ceab64");
I$("b75e70b49b58692524630910fc7d379f",
function(e, t, i, n, s, r, a, o) {
    var c;
    s._$$EventTarget = t._$klass();
    c = s._$$EventTarget.prototype;
    s._$$EventTarget._$allocate = function(e) {
        e = e || {};
        var t = !!this.__pool && this.__pool.shift();
        if (!t) {
            t = new this(e);
            this.__inst__ = (this.__inst__ || 0) + 1
        }
        t.__reset(e);
        return t
    };
    s._$$EventTarget._$recycle = function() {
        var e = function(e, t, i) {
            e._$recycle();
            i.splice(t, 1)
        };
        return function(t) {
            if (!t) return null;
            if (!n._$isArray(t)) {
                if (! (t instanceof this)) {
                    var i = t.constructor;
                    if (i._$recycle) i._$recycle(t);
                    return null
                }
                if (t == this.__instance) delete this.__instance;
                if (t == this.__inctanse) delete this.__inctanse;
                t.__destroy();
                if (!this.__pool) this.__pool = [];
                if (n._$indexOf(this.__pool, t) < 0) this.__pool.push(t);
                return null
            }
            n._$reverseEach(t, e, this)
        }
    } ();
    s._$$EventTarget._$getInstance = function(e) {
        if (!this.__instance) this.__instance = this._$allocate(e);
        return this.__instance
    };
    s._$$EventTarget._$getInstanceWithReset = function(e, t) {
        if (t && this.__inctanse) {
            this.__inctanse._$recycle();
            delete this.__inctanse
        }
        if (!this.__inctanse) this.__inctanse = this._$allocate(e);
        else this.__inctanse.__reset(e);
        return this.__inctanse
    };
    c.__init = function() {
        this.__events = {};
        this.__events_dom = {};
        this.id = n._$uniqueID()
    };
    c.__reset = function(e) {
        this._$batEvent(e)
    };
    c.__destroy = function() {
        this._$clearEvent();
        this.__doClearDomEvent()
    };
    c.__doInitDomEvent = function() {
        var e = function(e) {
            if (e && !(e.length < 3)) {
                this.__events_dom["de-" + n._$uniqueID()] = e;
                i._$addEvent.apply(i, e)
            }
        };
        return function(t) {
            n._$forEach(t, e, this)
        }
    } ();
    c.__doClearDomEvent = function() {
        var e = function(e, t, n) {
            delete n[t];
            i._$delEvent.apply(i, e)
        };
        return function() {
            n._$loop(this.__events_dom, e)
        }
    } ();
    c.__doClearComponent = function(e) {
        e = e || a;
        n._$loop(this,
        function(t, i, n) {
            if (t && t._$recycle && !e(t)) {
                delete n[i];
                t._$recycle()
            }
        })
    };
    c._$recycle = function() {
        this.constructor._$recycle(this)
    };
    c._$hasEvent = function(e) {
        var e = (e || "").toLowerCase(),
        t = this.__events[e];
        return !! t && t !== a
    };
    c._$delEvent = function(e, t) {
        var e = (e || "").toLowerCase(),
        i = this.__events[e];
        if (n._$isArray(i)) {
            n._$reverseEach(i,
            function(e, i, n) {
                if (e == t) n.splice(i, 1)
            });
            if (!i.length) delete this.__events[e]
        } else if (i == t) delete this.__events[e]
    };
    c._$setEvent = function(e, t) {
        if (e && n._$isFunction(t)) this.__events[e.toLowerCase()] = t
    };
    c._$batEvent = function() {
        var e = function(e, t) {
            this._$setEvent(t, e)
        };
        return function(t) {
            n._$loop(t, e, this)
        }
    } ();
    c._$clearEvent = function() {
        var e = function(e, t) {
            this._$clearEvent(t)
        };
        return function(t) {
            var t = (t || "").toLowerCase();
            if (t) delete this.__events[t];
            else n._$loop(this.__events, e, this)
        }
    } ();
    c._$addEvent = function(e, t) {
        if (e && n._$isFunction(t)) {
            e = e.toLowerCase();
            var i = this.__events[e];
            if (i) {
                if (!n._$isArray(i)) this.__events[e] = [i];
                this.__events[e].push(t)
            } else this.__events[e] = t
        }
    };
    c._$dispatchEvent = function(e) {
        var e = (e || "").toLowerCase(),
        t = this.__events[e];
        if (t) {
            var i = o.slice.call(arguments, 1);
            if (n._$isArray(t)) n._$forEach(t,
            function(e) {
                if (!1) e.apply(this, i);
                else try {
                    e.apply(this, i)
                } catch(t) {
                    console.error(t.message);
                    console.error(t.stack)
                }
            },
            this);
            else t.apply(this, i)
        }
    };
    if (!0) {
        s._$$Event = s._$$EventTarget;
        e.copy(e.P("nej.ut"), s)
    }
    return s
},
"eddda1e8e7971753192ee8d61ef1680e", "05e56106e22a09a56a1098c586c2bfe9", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053"); !
function() {
    if ("undefined" == typeof TrimPath) {
        TrimPath = {};
        if ("undefined" != typeof exports) TrimPath = exports
    }
    var e = {},
    t = [],
    i = /\s+/g,
    n = +new Date,
    s,
    r,
    a;
    var o = function() {
        var e = /^\s*[\[\{'"].*?[\]\}'"]\s*$/,
        t = /[\&\|\<\>\+\-\*\/\%\,\(\)\[\]\?\:\!\=\;]/,
        i = /^(?:defined|null|undefined|true|false|instanceof|new|this|typeof|\$v|[\d]+)$/i,
        n = /^new\s+/,
        s = /['"]/;
        var r = function(t) {
            if (!e.test(t)) {
                t = t.split(".")[0].trim();
                if (t && !s.test(t)) {
                    t = t.replace(n, "");
                    try {
                        if (i.test(t)) return;
                        a[t] = 1
                    } catch(r) {}
                }
            }
        };
        return function(i) {
            i = i || "";
            if (i && !e.test(i)) {
                var n = i.split(t);
                for (var s = 0,
                a = n.length; s < a; s++) r(n[s])
            }
        }
    } ();
    var c = function(e) {
        if ("in" != e[2]) throw "bad for loop statement: " + e.join(" ");
        t.push(e[1]);
        o(e[3]);
        return "var __HASH__" + e[1] + " = " + e[3] + "," + e[1] + "," + e[1] + "_count=0;if (!!__HASH__" + e[1] + ")for(var " + e[1] + "_key in __HASH__" + e[1] + "){" + e[1] + " = __HASH__" + e[1] + "[" + e[1] + "_key];if (typeof(" + e[1] + ')=="function") continue;' + e[1] + "_count++;"
    };
    var _ = function() {
        var e = t[t.length - 1];
        return "}; if(!__HASH__" + e + "||!" + e + "_count){"
    };
    var d = function() {
        t.pop();
        return "};"
    };
    var f = function(e) {
        if ("as" != e[2]) throw "bad for list loop statement: " + e.join(" ");
        var t = e[1].split("..");
        if (t.length > 1) {
            o(t[0]);
            o(t[1]);
            return "for(var " + e[3] + "," + e[3] + "_index=0," + e[3] + "_beg=" + t[0] + "," + e[3] + "_end=" + t[1] + "," + e[3] + "_length=parseInt(" + e[3] + "_end-" + e[3] + "_beg+1);" + e[3] + "_index<" + e[3] + "_length;" + e[3] + "_index++){" + e[3] + " = " + e[3] + "_beg+" + e[3] + "_index;"
        } else {
            o(e[1]);
            return "for(var __LIST__" + e[3] + " = " + e[1] + "," + e[3] + "," + e[3] + "_index=0," + e[3] + "_length=__LIST__" + e[3] + ".length;" + e[3] + "_index<" + e[3] + "_length;" + e[3] + "_index++){" + e[3] + " = __LIST__" + e[3] + "[" + e[3] + "_index];"
        }
    };
    var h = function(e) {
        if (e && e.length) {
            e.shift();
            var t = e[0].split("(")[0];
            return "var " + t + " = function" + e.join("").replace(t, "") + "{var __OUT=[];"
        }
    };
    var l = function(e) {
        if (!e[1]) throw "bad include statement: " + e.join(" ");
        return 'if (typeof inline == "function"){__OUT.push(inline('
    };
    var u = function(e, t) {
        o(t.slice(1).join(" "));
        return e
    };
    var p = function(e) {
        return u("if(", e)
    };
    var m = function(e) {
        return u("}else if(", e)
    };
    var g = function(e) {
        return u("var ", e)
    };
    r = {
        blk: /^\{(cdata|minify|eval)/i,
        tag: "forelse|for|list|if|elseif|else|var|macro|break|notrim|trim|include",
        def: {
            "if": {
                pfix: p,
                sfix: "){",
                pmin: 1
            },
            "else": {
                pfix: "}else{"
            },
            elseif: {
                pfix: m,
                sfix: "){",
                pdft: "true"
            },
            "/if": {
                pfix: "}"
            },
            "for": {
                pfix: c,
                pmin: 3
            },
            forelse: {
                pfix: _
            },
            "/for": {
                pfix: d
            },
            list: {
                pfix: f,
                pmin: 3
            },
            "/list": {
                pfix: "};"
            },
            "break": {
                pfix: "break;"
            },
            "var": {
                pfix: g,
                sfix: ";"
            },
            macro: {
                pfix: h
            },
            "/macro": {
                pfix: 'return __OUT.join("");};'
            },
            trim: {
                pfix: function() {
                    s = !0
                }
            },
            "/trim": {
                pfix: function() {
                    s = null
                }
            },
            inline: {
                pfix: l,
                pmin: 1,
                sfix: "));}"
            }
        },
        ext: {
            seed: function(e) {
                return (e || "") + "" + n
            },
            "default": function(e, t) {
                return e || t
            }
        }
    };
    var b = function() {
        var e = /\\([\{\}])/g;
        return function(t, n) {
            t = t.replace(e, "$1");
            var s = t.slice(1, -1).split(i),
            a = r.def[s[0]];
            if (a) {
                if (a.pmin && a.pmin >= s.length) throw "Statement needs more parameters:" + t;
                n.push(a.pfix && "string" != typeof a.pfix ? a.pfix(s) : a.pfix || "");
                if (a.sfix) {
                    if (s.length <= 1) {
                        if (a.pdft) n.push(a.pdft)
                    } else for (var o = 1,
                    c = s.length; o < c; o++) {
                        if (o > 1) n.push(" ");
                        n.push(s[o])
                    }
                    n.push(a.sfix)
                }
            } else $(t, n)
        }
    } ();
    var v = function(e, t) {
        if (e && e.length) if (1 != e.length) {
            var i = e.pop().split(":");
            t.push("__MDF['" + i.shift() + "'](");
            v(e, t);
            if (i.length > 0) {
                var n = i.join(":");
                o(n);
                t.push("," + n)
            }
            t.push(")")
        } else {
            var s = e.pop();
            o(s);
            t.push("" == s ? '""': s)
        }
    };
    var $ = function(e, t) {
        if (e) {
            var i = e.split("\n");
            if (i && i.length) for (var n = 0,
            r = i.length,
            a; n < r; n++) {
                a = i[n];
                if (s) {
                    a = a.trim();
                    if (!a) continue
                }
                y(a, t);
                if (s && n < r - 1) t.push("__OUT.push('\\n');")
            }
        }
    };
    var y = function() {
        var e = /\|\|/g,
        t = /#@@#/g;
        return function(i, n) {
            var s = "}",
            r = -1,
            a = i.length,
            o, c, _, d, f;
            for (; r + s.length < a;) {
                o = "${";
                c = "}";
                _ = i.indexOf(o, r + s.length);
                if (_ < 0) break;
                if ("%" == i.charAt(_ + 2)) {
                    o = "${%";
                    c = "%}"
                }
                d = i.indexOf(c, _ + o.length);
                if (d < 0) break;
                E(i.substring(r + s.length, _), n);
                f = i.substring(_ + o.length, d).replace(e, "#@@#").split("|");
                for (var h = 0,
                l = f.length; h < l; f[h] = f[h].replace(t, "||"), h++);
                n.push("__OUT.push(");
                v(f, n);
                n.push(");");
                s = c;
                r = d
            }
            E(i.substring(r + s.length), n)
        }
    } ();
    var E = function() {
        var e = {
            r: /\n|\\|\'/g,
            "\n": "\\n",
            "\\": "\\\\",
            "'": "\\'"
        };
        var t = function(t) {
            return (t || "").replace(e.r,
            function(t) {
                return e[t] || t
            })
        };
        return function(e, i) {
            if (e) i.push("__OUT.push('" + t(e) + "');")
        }
    } ();
    var w = function() {
        var e = /\t/g,
        t = /\n/g,
        n = /\r\n?/g;
        var s = function(e, t) {
            var i = e.indexOf("}", t + 1);
            for (;
            "\\" == e.charAt(i - 1);) i = e.indexOf("}", i + 1);
            return i
        };
        var o = function() {
            var e = [],
            t = arguments[0];
            for (var i in t) {
                i = (i || "").trim();
                if (i) e.push(i + "=$v('" + i + "')");
                else;
            }
            return e.length > 0 ? "var " + e.join(",") + ";": ""
        };
        return function(c) {
            a = {};
            c = c.replace(n, "\n").replace(e, "    ");
            var _ = ["if(!__CTX) return '';", ""];
            _.push("function $v(__NAME){var v = __CTX[__NAME];return v==null?window[__NAME]:v;};");
            _.push("var defined=function(__NAME){return __CTX[__NAME]!=null;},");
            _.push("__OUT=[];");
            var d = -1,
            f = c.length;
            var h, l, u, p, m, g, v, y;
            for (; d + 1 < f;) {
                h = d;
                h = c.indexOf("{", h + 1);
                for (; h >= 0;) {
                    l = s(c, h);
                    u = c.substring(h, l);
                    p = u.match(r.blk);
                    if (p) {
                        m = p[1].length + 1;
                        g = c.indexOf("}", h + m);
                        if (g >= 0) {
                            v = g - h - m <= 0 ? "{/" + p[1] + "}": u.substr(m + 1);
                            m = c.indexOf(v, g + 1);
                            if (m >= 0) {
                                $(c.substring(d + 1, h), _);
                                y = c.substring(g + 1, m);
                                switch (p[1]) {
                                case "cdata":
                                    E(y, _);
                                    break;
                                case "minify":
                                    E(y.replace(t, " ").replace(i, " "), _);
                                    break;
                                case "eval":
                                    if (y) _.push("__OUT.push((function(){" + y + "})());")
                                }
                                h = d = m + v.length - 1
                            }
                        }
                    } else if ("$" != c.charAt(h - 1) && "\\" != c.charAt(h - 1) && 0 == u.substr("/" == u.charAt(1) ? 2 : 1).search(r.tag)) break;
                    h = c.indexOf("{", h + 1)
                }
                if (h < 0) break;
                l = s(c, h);
                if (l < 0) break;
                $(c.substring(d + 1, h), _);
                b(c.substring(h, l + 1), _);
                d = l
            }
            $(c.substring(d + 1), _);
            _.push(';return __OUT.join("");');
            _[1] = o(a);
            a = null;
            return new Function("__CTX", "__MDF", _.join(""))
        }
    } ();
    TrimPath.seed = function() {
        return n
    };
    TrimPath.merge = function() {
        var t = {};
        TrimPath.dump = function() {
            return {
                func: t,
                text: e
            }
        };
        return function(i, n, s) {
            try {
                n = n || {};
                if (!t[i] && !e[i]) return "";
                if (!t[i]) {
                    t[i] = w(e[i]);
                    delete e[i]
                }
                if (s) for (var a in r.ext) if (!s[a]) s[a] = r.ext[a];
                return t[i](n, s || r.ext)
            } catch(o) {
                return o.message || ""
            }
        }
    } ();
    TrimPath.parse = function() {
        var t = +new Date;
        return function(i, n) {
            if (!i) return "";
            n = n || "ck-" + t++;
            if (null != e[n]) {
                console.warn("jst template overwrited with key " + n);
                console.debug("old template content: " + e[n].replace(/\n/g, " "));
                console.debug("new template content: " + i.replace(/\n/g, " "))
            }
            e[n] = i;
            return n
        }
    } ()
} ();
I$("83c67d5b20eeffc1f687e113ae22189f",
function(e, t, i, n, s, r, a, o, c) {
    var _ = {};
    r._$seed = TrimPath.seed;
    r._$get = function() {
        var e = function(e) {
            return ! r._$getTextTemplate ? "": r._$getTextTemplate(e)
        };
        return function(i, n, s) {
            n = n || {};
            n.inline = e;
            s = t._$merge({},
            _, s);
            s.rand = t._$uniqueID;
            s.format = t._$format;
            s.escape = t._$escape;
            s.inline = e;
            return TrimPath.merge(i, n, s)
        }
    } ();
    r._$add = function(e, t) {
        if (!e) return "";
        var n, s = i._$get(e);
        if (s) {
            n = s.id;
            e = s.value || s.innerText;
            if (!t) i._$remove(s)
        }
        return TrimPath.parse(e, n)
    };
    r._$addTemplate = function(e, t) {
        return TrimPath.parse(e, t)
    };
    r._$render = function(e, t, n, s) {
        e = i._$get(e);
        if (e) e.innerHTML = r._$get(t, n, s)
    };
    r._$extend = function(e) {
        t._$merge(_, e)
    };
    n._$merge({
        _$render: r._$render
    });
    if (!0) {
        var d = e.P("nej.e");
        d._$addHtmlTemplate = r._$add;
        d._$getHtmlTemplate = r._$get;
        d._$getHtmlTemplateSeed = r._$seed;
        d._$renderHtmlTemplate = r._$render;
        d._$registJSTExt = r._$extend
    }
    return r
},
"eddda1e8e7971753192ee8d61ef1680e", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "4ff36f93915f61da99a05f35c5dcc945", "78bfbdda8193715fb09f28fbecfa4420");
I$("c284025e8eed55f31bcaf74be9c01fa8",
function(e, t, i, n, s, r, a, o, c, _) {
    var d;
    a._$$CustomEvent = t._$klass();
    d = a._$$CustomEvent._$extend(r._$$EventTarget);
    d.__init = function() {
        this.__cache = {};
        this.__super()
    };
    d.__reset = function(e) {
        this.__super(e);
        this.__element = i._$get(e.element) || window;
        this.__doEventInit(e.event);
        this.__doEventAPIEnhance();
        this._$dispatchEvent("oninit")
    };
    d.__destroy = function() {
        var e = function(e, t, i) {
            if (!s._$isArray(e)) s._$safeDelete(this.__element, t);
            delete i[t]
        };
        return function() {
            this.__super();
            s._$loop(this.__cache, e, this);
            delete this.__element
        }
    } ();
    d.__isDelegate = function(e, t) {
        e = i._$get(e);
        return ! (e !== this.__element || t && !this.__cache["on" + t])
    };
    d.__doEventInit = function(e) {
        if (!s._$isString(e)) {
            if (s._$isArray(e)) s._$forEach(e, this.__doEventInit, this)
        } else {
            var t = "on" + e;
            if (!this.__cache[t]) this.__cache[t] = this.__doEventDispatch._$bind(this, e);
            this.__doEventBind(e)
        }
    };
    d.__doEventBind = function(e) {
        var t = "on" + e,
        i = this.__element[t],
        n = this.__cache[t];
        if (i != n) {
            this.__doEventDelete(e);
            if (i && i != c) this.__doEventAdd(e, i);
            this.__element[t] = n
        }
    };
    d.__doEventAdd = function(e, t, i) {
        var n = this.__cache[e];
        if (!n) {
            n = [];
            this.__cache[e] = n
        }
        if (s._$isFunction(t)) ! i ? n.push(t) : n.unshift(t)
    };
    d.__doEventDelete = function(e, t) {
        var i = this.__cache[e];
        if (i && i.length) if (t) s._$reverseEach(i,
        function(e, i, n) {
            if (t === e) {
                n.splice(i, 1);
                return ! 0
            }
        });
        else delete this.__cache[e]
    };
    d.__doEventDispatch = function(e, t) {
        t = t || {
            noargs: !0
        };
        if (t == o) t = {};
        t.type = e;
        this._$dispatchEvent("ondispatch", t);
        if (!t.stopped) s._$forEach(this.__cache[e],
        function(e) {
            if (!1) e(t);
            else try {
                e(t)
            } catch(i) {
                console.error(i.message);
                console.error(i.stack)
            }
        })
    };
    d.__doEventAPIEnhance = function() {
        var t = function(e) {
            var t = e.args,
            i = t[1].toLowerCase();
            if (this.__isDelegate(t[0], i)) {
                e.stopped = !0;
                this.__doEventBind(i);
                this.__doEventAdd(i, t[2], t[3]);
                this._$dispatchEvent("oneventadd", {
                    type: i,
                    listener: t[2]
                })
            }
        };
        var i = function(e) {
            var t = e.args,
            i = t[1].toLowerCase();
            if (this.__isDelegate(t[0], i)) {
                e.stopped = !0;
                this.__doEventDelete(i, t[2])
            }
        };
        var r = function(e) {
            var t = e.args,
            i = (t[1] || "").toLowerCase();
            if (this.__isDelegate(t[0])) {
                if (i) {
                    this.__doEventDelete(i);
                    return
                }
                s._$loop(this.__cache,
                function(e, t) {
                    if (s._$isArray(e)) this.__doEventDelete(t)
                },
                this)
            }
        };
        var a = function(e) {
            var t = e.args,
            i = t[1].toLowerCase();
            if (this.__isDelegate(t[0], i)) {
                e.stopped = !0;
                t[0]["on" + i].apply(t[0], t.slice(2))
            }
        };
        return function() {
            if (!this.__enhanced) {
                this.__enhanced = !0;
                n._$addEvent = n._$addEvent._$aop(t._$bind(this));
                n._$delEvent = n._$delEvent._$aop(i._$bind(this));
                n._$clearEvent = n._$clearEvent._$aop(r._$bind(this));
                n._$dispatchEvent = n._$dispatchEvent._$aop(a._$bind(this));
                if (!0) e.copy(e.P("nej.v"), n)
            }
        }
    } ();
    if (!0) e.copy(e.P("nej.ut"), a);
    return a
},
"eddda1e8e7971753192ee8d61ef1680e", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f");
I$("24592eeebab342b9ea06c28b90a5e3f1",
function(e, t, i, n, s, r, a, o, c, _) {
    var d, f = 6e4;
    a._$$LoaderAbstract = t._$klass();
    d = a._$$LoaderAbstract._$extend(r._$$EventTarget);
    d.__init = function() {
        this.__super();
        this.__qopt = {
            onerror: this.__onQueueError._$bind(this),
            onload: this.__onQueueLoaded._$bind(this)
        };
        if (!this.constructor.__cache) this.constructor.__cache = {
            loaded: {}
        }
    };
    d.__reset = function(e) {
        this.__super(e);
        this.__version = e.version;
        this.__timeout = e.timeout;
        this.__qopt.version = this.__version;
        this.__qopt.timeout = this.__timeout
    };
    d.__delLoadData = function(e) {
        delete this.constructor.__cache[e]
    };
    d.__getLoadData = function(e) {
        return this.constructor.__cache[e]
    };
    d.__setLoadData = function(e, t) {
        this.constructor.__cache[e] = t
    };
    d.__getRequest = c;
    d.__doClearRequest = function(e) {
        n._$clearEvent(e)
    };
    d.__doRequest = function(e) {
        e.src = this.__url;
        document.head.appendChild(e)
    };
    d.__doClear = function() {
        var e = this.__getLoadData(this.__url);
        if (e) {
            window.clearTimeout(e.timer);
            this.__doClearRequest(e.request);
            delete e.bind;
            delete e.timer;
            delete e.request;
            this.__delLoadData(this.__url);
            this.__getLoadData("loaded")[this.__url] = !0
        }
    };
    d.__doCallback = function(e) {
        var t = this.__getLoadData(this.__url);
        if (t) {
            var i = t.bind;
            this.__doClear();
            if (i && i.length > 0) {
                var n;
                for (; i.length;) {
                    n = i.shift();
                    try {
                        n._$dispatchEvent(e, arguments[1])
                    } catch(s) {
                        if (!1) throw s;
                        console.error(s.message);
                        console.error(s.stack)
                    }
                    n._$recycle()
                }
            }
        }
    };
    d.__onError = function(e) {
        this.__doCallback("onerror", e)
    };
    d.__onLoaded = function() {
        this.__doCallback("onload")
    };
    d.__doLoadQueue = function(e) {
        this.constructor._$allocate(this.__qopt)._$load(e)
    };
    d.__onQueueCheck = function(e) {
        var t = this.__getLoadData(this.__key);
        if (t) {
            if (e) t.error++;
            t.loaded++;
            if (! (t.loaded < t.total)) {
                this.__delLoadData(this.__key);
                this._$dispatchEvent(t.error > 0 ? "onerror": "onload")
            }
        }
    };
    d.__onQueueError = function(e) {
        this.__onQueueCheck(!0)
    };
    d.__onQueueLoaded = function() {
        this.__onQueueCheck()
    };
    d._$load = function(e) {
        e = s._$absolute(e);
        if (e) {
            this.__url = e;
            if (this.__version) this.__url += (this.__url.indexOf("?") < 0 ? "?": "&") + this.__version;
            if (!this.__getLoadData("loaded")[this.__url]) {
                var t = this.__getLoadData(this.__url),
                r;
                if (t) {
                    t.bind.unshift(this);
                    t.timer = window.clearTimeout(t.timer)
                } else {
                    r = this.__getRequest();
                    t = {
                        request: r,
                        bind: [this]
                    };
                    this.__setLoadData(this.__url, t);
                    n._$addEvent(r, "load", this.__onLoaded._$bind(this));
                    n._$addEvent(r, "error", this.__onError._$bind(this, {
                        code: i._$CODE_ERRSERV,
                        message: "无法加载指定资源文件[" + this.__url + "]！"
                    }))
                }
                if (0 != this.__timeout) t.timer = window.setTimeout(this.__onError._$bind(this, {
                    code: i._$CODE_TIMEOUT,
                    message: "指定资源文件[" + this.__url + "]载入超时！"
                }), this.__timeout || f);
                if (r) this.__doRequest(r);
                this._$dispatchEvent("onloading")
            } else {
                try {
                    this._$dispatchEvent("onload")
                } catch(a) {
                    if (!1) throw a;
                    console.error(a.message);
                    console.error(a.stack)
                }
                this._$recycle()
            }
        } else this._$dispatchEvent("onerror", {
            code: i._$CODE_NOTASGN,
            message: "请指定要载入的资源地址！"
        })
    };
    d._$queue = function(e) {
        if (e && e.length) {
            this.__key = s._$uniqueID();
            var t = {
                error: 0,
                loaded: 0,
                total: e.length
            };
            this.__setLoadData(this.__key, t);
            s._$forEach(e,
            function(e, i) {
                if (e) this.__doLoadQueue(e);
                else t.total--
            },
            this);
            this._$dispatchEvent("onloading")
        } else this._$dispatchEvent("onerror", {
            code: i._$CODE_NOTASGN,
            message: "请指定要载入的资源队列！"
        })
    };
    return a
},
"eddda1e8e7971753192ee8d61ef1680e", "05e56106e22a09a56a1098c586c2bfe9", "508c1b33d3f81140e52b3368c768e540", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f");
I$("f4dec1b84700c9cc21c1a3746102e1f6",
function(e, t, i, n, s, r) {
    i._$cookie = function() {
        var e = new Date,
        i = +e,
        s = 864e5;
        var r = function(e) {
            var t = document.cookie,
            i = "\\b" + e + "=",
            n = t.search(i);
            if (n < 0) return "";
            n += i.length - 2;
            var s = t.indexOf(";", n);
            if (s < 0) s = t.length;
            return t.substring(n, s) || ""
        };
        return function(a, o) {
            if (void 0 === o) return r(a);
            if (t._$isString(o)) {
                if (o) {
                    document.cookie = a + "=" + o + ";";
                    return o
                }
                o = {
                    expires: -100
                }
            }
            o = o || n;
            var c = a + "=" + (o.value || "") + ";";
            delete o.value;
            if (void 0 !== o.expires) {
                e.setTime(i + o.expires * s);
                o.expires = e.toGMTString()
            }
            c += t._$object2string(o, ";");
            document.cookie = c
        }
    } ();
    if (!0) e.copy(e.P("nej.j"), i);
    return i
},
"eddda1e8e7971753192ee8d61ef1680e", "0ce1cf574f7be23168d864b3fb81d053"); !
function() {
    var e = !0,
    t = null; !
    function(i) {
        function n(i) {
            if ("bug-string-char-index" == i) return "a" != "a" [0];
            var n, r = "json" == i;
            if (r || "json-stringify" == i || "json-parse" == i) {
                if ("json-stringify" == i || r) {
                    var a = _.stringify,
                    c = "function" == typeof a && d;
                    if (c) { (n = function() {
                            return 1
                        }).toJSON = n;
                        try {
                            c = "0" === a(0) && "0" === a(new Number) && '""' == a(new String) && a(s) === o && a(o) === o && a() === o && "1" === a(n) && "[1]" == a([n]) && "[null]" == a([o]) && "null" == a(t) && "[null,null,null]" == a([o, s, t]) && '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}' == a({
                                a: [n, e, !1, t, "\0\b\n\f\r\t"]
                            }) && "1" === a(t, n) && "[\n 1,\n 2\n]" == a([1, 2], t, 1) && '"-271821-04-20T00:00:00.000Z"' == a(new Date(( - 864e13))) && '"+275760-09-13T00:00:00.000Z"' == a(new Date(864e13)) && '"-000001-01-01T00:00:00.000Z"' == a(new Date(( - 621987552e5))) && '"1969-12-31T23:59:59.999Z"' == a(new Date(( - 1)))
                        } catch(f) {
                            c = !1
                        }
                    }
                    if (!r) return c
                }
                if ("json-parse" == i || r) {
                    i = _.parse;
                    if ("function" == typeof i) try {
                        if (0 === i("0") && !i(!1)) {
                            n = i('{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}');
                            var h = 5 == n.a.length && 1 === n.a[0];
                            if (h) {
                                try {
                                    h = !i('"\t"')
                                } catch(l) {}
                                if (h) try {
                                    h = 1 !== i("01")
                                } catch(u) {}
                            }
                        }
                    } catch(p) {
                        h = !1
                    }
                    if (!r) return h
                }
                return c && h
            }
        }
        var s = {}.toString,
        r, a, o, c = "function" == typeof define && define.amd,
        _ = "object" == typeof exports && exports;
        _ || c ? "object" == typeof JSON && JSON ? _ ? (_.stringify = JSON.stringify, _.parse = JSON.parse) : _ = JSON: c && (_ = i.JSON = {}) : _ = i.JSON || (i.JSON = {});
        var d = new Date(( - 0xc782b5b800cec));
        try {
            d = -109252 == d.getUTCFullYear() && 0 === d.getUTCMonth() && 1 === d.getUTCDate() && 10 == d.getUTCHours() && 37 == d.getUTCMinutes() && 6 == d.getUTCSeconds() && 708 == d.getUTCMilliseconds()
        } catch(f) {}
        if (!n("json")) {
            var h = n("bug-string-char-index");
            if (!d) var l = Math.floor,
            u = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],
            p = function(e, t) {
                return u[t] + 365 * (e - 1970) + l((e - 1969 + (t = +(t > 1))) / 4) - l((e - 1901 + t) / 100) + l((e - 1601 + t) / 400)
            };
            if (! (r = {}.hasOwnProperty)) r = function(e) {
                var i = {},
                n;
                if ((i.__proto__ = t, i.__proto__ = {
                    toString: 1
                },
                i).toString != s) r = function(e) {
                    var i = this.__proto__,
                    e = e in (this.__proto__ = t, this);
                    this.__proto__ = i;
                    return e
                };
                else {
                    n = i.constructor;
                    r = function(e) {
                        var t = (this.constructor || n).prototype;
                        return e in this && !(e in t && this[e] === t[e])
                    }
                }
                i = t;
                return r.call(this, e)
            };
            var m = {
                "boolean": 1,
                number: 1,
                string: 1,
                undefined: 1
            };
            a = function(e, i) {
                var n = 0,
                a, o, c; (a = function() {
                    this.valueOf = 0
                }).prototype.valueOf = 0;
                o = new a;
                for (c in o) r.call(o, c) && n++;
                a = o = t;
                if (n) n = 2 == n ?
                function(e, t) {
                    var i = {},
                    n = "[object Function]" == s.call(e),
                    a;
                    for (a in e) ! (n && "prototype" == a) && !r.call(i, a) && (i[a] = 1) && r.call(e, a) && t(a)
                }: function(e, t) {
                    var i = "[object Function]" == s.call(e),
                    n,
                    a;
                    for (n in e) ! (i && "prototype" == n) && r.call(e, n) && !(a = "constructor" === n) && t(n); (a || r.call(e, n = "constructor")) && t(n)
                };
                else {
                    o = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"];
                    n = function(e, t) {
                        var i = "[object Function]" == s.call(e),
                        n,
                        a;
                        if (a = !i) if (a = "function" != typeof e.constructor) {
                            a = typeof e.hasOwnProperty;
                            a = "object" == a ? !!e.hasOwnProperty: !m[a]
                        }
                        a = a ? e.hasOwnProperty: r;
                        for (n in e) ! (i && "prototype" == n) && a.call(e, n) && t(n);
                        for (i = o.length; n = o[--i]; a.call(e, n) && t(n));
                    }
                }
                n(e, i)
            };
            if (!n("json-stringify")) {
                var g = {
                    92 : "\\\\",
                    34 : '\\"',
                    8 : "\\b",
                    12 : "\\f",
                    10 : "\\n",
                    13 : "\\r",
                    9 : "\\t"
                },
                b = function(e, t) {
                    return ("000000" + (t || 0)).slice( - e)
                },
                v = function(e) {
                    var t = '"',
                    i = 0,
                    n = e.length,
                    s = n > 10 && h,
                    r;
                    for (s && (r = e.split("")); i < n; i++) {
                        var a = e.charCodeAt(i);
                        switch (a) {
                        case 8:
                        case 9:
                        case 10:
                        case 12:
                        case 13:
                        case 34:
                        case 92:
                            t += g[a];
                            break;
                        default:
                            if (a < 32) {
                                t += "\\u00" + b(2, a.toString(16));
                                break
                            }
                            t += s ? r[i] : h ? e.charAt(i) : e[i]
                        }
                    }
                    return t + '"'
                },
                $ = function(i, n, c, _, d, f, h) {
                    var u = n[i],
                    m,
                    g,
                    y,
                    E,
                    w,
                    C,
                    T,
                    k,
                    x;
                    try {
                        u = n[i]
                    } catch(S) {}
                    if ("object" == typeof u && u) {
                        m = s.call(u);
                        if ("[object Date]" == m && !r.call(u, "toJSON")) if (u > -1 / 0 && u < 1 / 0) {
                            if (p) {
                                y = l(u / 864e5);
                                for (m = l(y / 365.2425) + 1970 - 1; p(m + 1, 0) <= y; m++);
                                for (g = l((y - p(m, 0)) / 30.42); p(m, g + 1) <= y; g++);
                                y = 1 + y - p(m, g);
                                E = (u % 864e5 + 864e5) % 864e5;
                                w = l(E / 36e5) % 24;
                                C = l(E / 6e4) % 60;
                                T = l(E / 1e3) % 60;
                                E %= 1e3
                            } else {
                                m = u.getUTCFullYear();
                                g = u.getUTCMonth();
                                y = u.getUTCDate();
                                w = u.getUTCHours();
                                C = u.getUTCMinutes();
                                T = u.getUTCSeconds();
                                E = u.getUTCMilliseconds()
                            }
                            u = (m <= 0 || m >= 1e4 ? (m < 0 ? "-": "+") + b(6, m < 0 ? -m: m) : b(4, m)) + "-" + b(2, g + 1) + "-" + b(2, y) + "T" + b(2, w) + ":" + b(2, C) + ":" + b(2, T) + "." + b(3, E) + "Z"
                        } else u = t;
                        else if ("function" == typeof u.toJSON && ("[object Number]" != m && "[object String]" != m && "[object Array]" != m || r.call(u, "toJSON"))) u = u.toJSON(i)
                    }
                    c && (u = c.call(n, i, u));
                    if (u === t) return "null";
                    m = s.call(u);
                    if ("[object Boolean]" == m) return "" + u;
                    if ("[object Number]" == m) return u > -1 / 0 && u < 1 / 0 ? "" + u: "null";
                    if ("[object String]" == m) return v("" + u);
                    if ("object" == typeof u) {
                        for (i = h.length; i--;) if (h[i] === u) throw TypeError();
                        h.push(u);
                        k = [];
                        n = f;
                        f += d;
                        if ("[object Array]" == m) {
                            g = 0;
                            for (i = u.length; g < i; x || (x = e), g++) {
                                m = $(g, u, c, _, d, f, h);
                                k.push(m === o ? "null": m)
                            }
                            i = x ? d ? "[\n" + f + k.join(",\n" + f) + "\n" + n + "]": "[" + k.join(",") + "]": "[]"
                        } else {
                            a(_ || u,
                            function(t) {
                                var i = $(t, u, c, _, d, f, h);
                                i !== o && k.push(v(t) + ":" + (d ? " ": "") + i);
                                x || (x = e)
                            });
                            i = x ? d ? "{\n" + f + k.join(",\n" + f) + "\n" + n + "}": "{" + k.join(",") + "}": "{}"
                        }
                        h.pop();
                        return i
                    }
                };
                _.stringify = function(e, t, i) {
                    var n, r, a;
                    if ("function" == typeof t || "object" == typeof t && t) if ("[object Function]" == s.call(t)) r = t;
                    else if ("[object Array]" == s.call(t)) {
                        a = {};
                        for (var o = 0,
                        c = t.length,
                        _; o < c; _ = t[o++], ("[object String]" == s.call(_) || "[object Number]" == s.call(_)) && (a[_] = 1));
                    }
                    if (i) if ("[object Number]" == s.call(i)) {
                        if ((i -= i % 1) > 0) {
                            n = "";
                            for (i > 10 && (i = 10); n.length < i; n += " ");
                        }
                    } else "[object String]" == s.call(i) && (n = i.length <= 10 ? i: i.slice(0, 10));
                    return $("", (_ = {},
                    _[""] = e, _), r, a, n, "", [])
                }
            }
            if (!n("json-parse")) {
                var y = String.fromCharCode,
                E = {
                    92 : "\\",
                    34 : '"',
                    47 : "/",
                    98 : "\b",
                    116 : "\t",
                    110 : "\n",
                    102 : "\f",
                    114 : "\r"
                },
                w,
                C,
                T = function() {
                    w = C = t;
                    throw SyntaxError()
                },
                k = function() {
                    for (var i = C,
                    n = i.length,
                    s, r, a, o, c; w < n;) {
                        c = i.charCodeAt(w);
                        switch (c) {
                        case 9:
                        case 10:
                        case 13:
                        case 32:
                            w++;
                            break;
                        case 123:
                        case 125:
                        case 91:
                        case 93:
                        case 58:
                        case 44:
                            s = h ? i.charAt(w) : i[w];
                            w++;
                            return s;
                        case 34:
                            s = "@";
                            for (w++; w < n;) {
                                c = i.charCodeAt(w);
                                if (c < 32) T();
                                else if (92 == c) {
                                    c = i.charCodeAt(++w);
                                    switch (c) {
                                    case 92:
                                    case 34:
                                    case 47:
                                    case 98:
                                    case 116:
                                    case 110:
                                    case 102:
                                    case 114:
                                        s += E[c];
                                        w++;
                                        break;
                                    case 117:
                                        r = ++w;
                                        for (a = w + 4; w < a; w++) {
                                            c = i.charCodeAt(w);
                                            c >= 48 && c <= 57 || c >= 97 && c <= 102 || c >= 65 && c <= 70 || T()
                                        }
                                        s += y("0x" + i.slice(r, w));
                                        break;
                                    default:
                                        T()
                                    }
                                } else {
                                    if (34 == c) break;
                                    c = i.charCodeAt(w);
                                    for (r = w; c >= 32 && 92 != c && 34 != c;) c = i.charCodeAt(++w);
                                    s += i.slice(r, w)
                                }
                            }
                            if (34 == i.charCodeAt(w)) {
                                w++;
                                return s
                            }
                            T();
                        default:
                            r = w;
                            if (45 == c) {
                                o = e;
                                c = i.charCodeAt(++w)
                            }
                            if (c >= 48 && c <= 57) {
                                for (48 == c && (c = i.charCodeAt(w + 1), c >= 48 && c <= 57) && T(); w < n && (c = i.charCodeAt(w), c >= 48 && c <= 57); w++);
                                if (46 == i.charCodeAt(w)) {
                                    for (a = ++w; a < n && (c = i.charCodeAt(a), c >= 48 && c <= 57); a++);
                                    a == w && T();
                                    w = a
                                }
                                c = i.charCodeAt(w);
                                if (101 == c || 69 == c) {
                                    c = i.charCodeAt(++w); (43 == c || 45 == c) && w++;
                                    for (a = w; a < n && (c = i.charCodeAt(a), c >= 48 && c <= 57); a++);
                                    a == w && T();
                                    w = a
                                }
                                return + i.slice(r, w)
                            }
                            o && T();
                            if ("true" == i.slice(w, w + 4)) {
                                w += 4;
                                return e
                            }
                            if ("false" == i.slice(w, w + 5)) {
                                w += 5;
                                return ! 1
                            }
                            if ("null" == i.slice(w, w + 4)) {
                                w += 4;
                                return t
                            }
                            T()
                        }
                    }
                    return "$"
                },
                x = function(t) {
                    var i, n;
                    "$" == t && T();
                    if ("string" == typeof t) {
                        if ("@" == (h ? t.charAt(0) : t[0])) return t.slice(1);
                        if ("[" == t) {
                            for (i = [];; n || (n = e)) {
                                t = k();
                                if ("]" == t) break;
                                if (n) if ("," == t) {
                                    t = k();
                                    "]" == t && T()
                                } else T();
                                "," == t && T();
                                i.push(x(t))
                            }
                            return i
                        }
                        if ("{" == t) {
                            for (i = {};; n || (n = e)) {
                                t = k();
                                if ("}" == t) break;
                                if (n) if ("," == t) {
                                    t = k();
                                    "}" == t && T()
                                } else T(); ("," == t || "string" != typeof t || "@" != (h ? t.charAt(0) : t[0]) || ":" != k()) && T();
                                i[t.slice(1)] = x(k())
                            }
                            return i
                        }
                        T()
                    }
                    return t
                },
                S = function(e, t, i) {
                    i = I(e, t, i);
                    i === o ? delete e[t] : e[t] = i
                },
                I = function(e, t, i) {
                    var n = e[t],
                    r;
                    if ("object" == typeof n && n) if ("[object Array]" == s.call(n)) for (r = n.length; r--;) S(n, r, i);
                    else a(n,
                    function(e) {
                        S(n, e, i)
                    });
                    return i.call(e, t, n)
                };
                _.parse = function(e, i) {
                    var n, r;
                    w = 0;
                    C = "" + e;
                    n = x(k());
                    "$" != k() && T();
                    w = C = t;
                    return i && "[object Function]" == s.call(i) ? I((r = {},
                    r[""] = n, r), "", i) : n
                }
            }
        }
        c && define(function() {
            return _
        })
    } (this);
    return JSON
} ();
I$("b7a16419e67d7495695f37c22b41ed86",
function(_m, _p, _o, _f, _r) {
    if ("trident" === _m._$KERNEL.engine && "2.0" == _m._$KERNEL.release) I$(21,
    function() {
        JSON.parse = function() {
            var _isSafeJSON = function(e) {
                return ! /[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(e.replace(/"(\\.|[^"\\])*"/g, ""))
            };
            return JSON.parse._$aop(function(_event) {
                var _str = _event.args[0] || "";
                if (_str.length >= 5e5) {
                    _event.stopped = !0;
                    _event.value = eval("(" + _str + ")")
                }
            })
        } ()
    });
    return JSON
},
"605054bf841321ed40d652370c40f4e5");
I$("b88a5d8778c1f07dbe463db8ad695d8f",
function() {
    return JSON
},
"b7a16419e67d7495695f37c22b41ed86");
I$("6d84f3655e024ff239e895b2f4d87d49",
function(e, t, i, n, s, r, a, o, c, _, d, f) {
    var h;
    c._$$ProxyAbstract = e._$klass();
    h = c._$$ProxyAbstract._$extend(r._$$EventTarget);
    h.__reset = function(e) {
        this.__super(e);
        this.__request = t._$fetch({
            url: "",
            sync: !1,
            cookie: !1,
            type: "text",
            method: "GET",
            timeout: 6e4
        },
        e);
        var i = n._$get("csrf");
        if (i.cookie && i.param) {
            var r = encodeURIComponent(i.param) + "=" + encodeURIComponent(a._$cookie(i.cookie) || ""),
            o = this.__request.url.indexOf("?") < 0 ? "?": "&";
            this.__request.url += o + r
        }
        this.__headers = e.headers || {};
        var c = this.__headers[s._$HEAD_CT];
        if (null == c) this.__headers[s._$HEAD_CT] = s._$HEAD_CT_FORM
    };
    h.__destroy = function() {
        this.__super();
        delete this.__rkey;
        delete this.__request;
        delete this.__headers
    };
    h.__onLoadRequest = function(e) {
        var t = e.status;
        if (t != -1) if (0 == ("" + t).indexOf("2")) this._$dispatchEvent("onload", i._$text2type(e.result, this.__request.type));
        else this._$dispatchEvent("onerror", {
            data: t,
            result: e.result,
            code: s._$CODE_ERRSERV,
            message: "服务器返回异常状态[" + t + "]!"
        });
        else this._$dispatchEvent("onerror", {
            code: s._$CODE_TIMEOUT,
            message: "请求[" + this.__request.url + "]超时！"
        })
    };
    h.__doSendRequest = d;
    h.__getResponseHeader = d;
    h._$send = function(e) {
        var t = this.__request.url;
        if (t) try {
            this.__request.data = null == e ? null: e;
            var i = {
                request: this.__request,
                headers: this.__headers
            };
            try {
                this._$dispatchEvent("onbeforerequest", i)
            } catch(n) {
                console.error(n.message);
                console.error(n.stack)
            }
            this.__doSendRequest(i)
        } catch(r) {
            this._$dispatchEvent("onerror", {
                code: s._$CODE_ERRSERV,
                message: "请求[" + t + "]失败:" + r.message + "！"
            })
        } else this._$dispatchEvent("onerror", {
            code: s._$CODE_NOTASGN,
            message: "没有输入请求地址！"
        })
    };
    h._$abort = d;
    h._$header = function(e) {
        if (!t._$isArray(e)) return this.__getResponseHeader(e) || "";
        var i = {};
        t._$forEach(e,
        function(e) {
            i[e] = this._$header(e)
        },
        this);
        return i
    };
    return c
},
"05e56106e22a09a56a1098c586c2bfe9", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "8a2ce8a85ab9ebc9f81ddebaed2e0d2d", "508c1b33d3f81140e52b3368c768e540", "b75e70b49b58692524630910fc7d379f", "f4dec1b84700c9cc21c1a3746102e1f6", "b88a5d8778c1f07dbe463db8ad695d8f");
I$("7314b252850b591a5c10539f3182b81d",
function(e, t, i, n) {
    e.__getXMLHttpRequest = function() {
        return new XMLHttpRequest
    };
    return e
});
I$("dfe3b4caae82b55da5039b3ae0c4f6b7",
function(e, t, i, n, s, r, a) {
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release <= "2.0") I$(20,
    function() {
        t.__getXMLHttpRequest = function() {
            var e = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.5.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
            return function() {
                var t = null;
                i._$forIn(e,
                function(e) {
                    try {
                        t = new ActiveXObject(e);
                        return ! 0
                    } catch(i) {}
                });
                return t
            }
        } ()
    });
    return t
},
"605054bf841321ed40d652370c40f4e5", "7314b252850b591a5c10539f3182b81d", "0ce1cf574f7be23168d864b3fb81d053");
I$("cf0b6fbae624f39c70fb58c713b7c22d",
function(e, t, i, n, s, r, a, o, c) {
    var _;
    r._$$ProxyXHR = i._$klass();
    _ = r._$$ProxyXHR._$extend(e._$$ProxyAbstract);
    _.__destroy = function() {
        this.__super();
        window.clearTimeout(this.__timer);
        delete this.__timer;
        try {
            this.__xhr.onreadystatechange = o;
            this.__xhr.abort()
        } catch(e) {}
        delete this.__xhr
    };
    _.__doSendRequest = function() {
        var e = function(e, t) {
            this.__xhr.setRequestHeader(t, e)
        };
        var i = function(e) {
            var i = [];
            t._$reverseEach(e.getElementsByTagName("input"),
            function(e) {
                if ("file" == e.type) if (e.name) {
                    if (e.files.length > 1) {
                        t._$forEach(e.files,
                        function(t) {
                            i.push({
                                name: e.name,
                                file: t
                            })
                        });
                        e.parentNode.removeChild(e)
                    }
                } else e.parentNode.removeChild(e)
            });
            return i.length > 0 ? i: null
        };
        return function(r) {
            var a = r.request,
            o = r.headers;
            this.__xhr = s.__getXMLHttpRequest();
            if (o[n._$HEAD_CT] === n._$HEAD_CT_FILE) {
                delete o[n._$HEAD_CT];
                this.__xhr.upload.onprogress = this.__onStateChange._$bind(this, 1);
                if ("FORM" === a.data.tagName) {
                    var c = i(a.data);
                    a.data = new FormData(a.data);
                    t._$forEach(c,
                    function(e) {
                        var i = e.file;
                        a.data.append(e.name || i.name || "file-" + t._$uniqueID(), i)
                    })
                }
            }
            this.__xhr.onreadystatechange = this.__onStateChange._$bind(this, 2);
            if (0 !== a.timeout) this.__timer = window.setTimeout(this.__onStateChange._$bind(this, 3), a.timeout);
            this.__xhr.open(a.method, a.url, !a.sync);
            t._$loop(o, e, this);
            if (this.__request.cookie && "withCredentials" in this.__xhr) this.__xhr.withCredentials = !0;
            this.__xhr.send(a.data)
        }
    } ();
    _.__onStateChange = function(e) {
        switch (e) {
        case 1:
            this._$dispatchEvent("onuploading", arguments[1]);
            break;
        case 2:
            if (4 == this.__xhr.readyState) this.__onLoadRequest({
                status: this.__xhr.status,
                result: this.__xhr.responseText || ""
            });
            break;
        case 3:
            this.__onLoadRequest({
                status:
                -1
            })
        }
    };
    _.__getResponseHeader = function(e) {
        return ! this.__xhr ? "": this.__xhr.getResponseHeader(e)
    };
    _._$abort = function() {
        this.__onLoadRequest({
            status: 0
        })
    };
    return r
},
"6d84f3655e024ff239e895b2f4d87d49", "0ce1cf574f7be23168d864b3fb81d053", "05e56106e22a09a56a1098c586c2bfe9", "508c1b33d3f81140e52b3368c768e540", "dfe3b4caae82b55da5039b3ae0c4f6b7");
I$("425fd88bc8346eaf2a37c4d5f56b2052",
function(e, t, i, n, s) {
    var r = this,
    a = e._$KERNEL.prefix.pro,
    o = e._$is("desktop") ? 80 : e._$is("ios") ? 50 : 30;
    t.__requestAnimationFrame = function() {
        var t = e._$is("android") ? null: r.requestAnimationFrame || r[a + "RequestAnimationFrame"];
        return function() {
            if (!t) t = function(e) {
                return window.setTimeout(function() {
                    try {
                        e( + new Date)
                    } catch(t) {}
                },
                1e3 / o)
            };
            return t.apply(this, arguments)
        }
    } ();
    t.__cancelAnimationFrame = function() {
        var t = e._$is("android") ? null: r.cancelAnimationFrame || r[a + "CancelAnimationFrame"];
        return function() {
            if (!t) t = function(e) {
                window.clearTimeout(e)
            };
            return t.apply(this, arguments)
        }
    } ();
    return t
},
"605054bf841321ed40d652370c40f4e5");
I$("e8392a5958cffd3f574dfba7c9017240",
function(e, t) {
    return e
},
"425fd88bc8346eaf2a37c4d5f56b2052", "605054bf841321ed40d652370c40f4e5");
I$("b07368ae943ad8607c2daf6ad5c31d24",
function(e, t, i, n, s, r) {
    i.requestAnimationFrame = function() {
        t.__requestAnimationFrame.apply(null, arguments)
    };
    i.cancelAnimationFrame = function() {
        t.__cancelAnimationFrame.apply(null, arguments)
    };
    if (!0) {
        if (!this.requestAnimationFrame) this.requestAnimationFrame = i.requestAnimationFrame;
        if (!this.cancelAnimationFrame) this.cancelAnimationFrame = i.cancelAnimationFrame
    }
    return i
},
"605054bf841321ed40d652370c40f4e5", "e8392a5958cffd3f574dfba7c9017240");
I$("3adae5e84fc5503b7e7f08a6a654fd70",
function(e, t, i, n, s) {
    t.__canFlashEventBubble = function(e) {
        return "transparent" != (e || "").toLowerCase()
    };
    return t
},
"605054bf841321ed40d652370c40f4e5");
I$("569d8339ed0ccb98425fef1b4c766a67",
function(e, t, i, n, s, r) {
    if ("trident" === t._$KERNEL.engine) I$(25,
    function() {
        e.__canFlashEventBubble = function(e) {
            return ! 0
        }
    });
    if ("webkit" === t._$KERNEL.engine) I$(26,
    function() {
        e.__canFlashEventBubble = function(e) {
            return ! 0
        }
    });
    return e
},
"3adae5e84fc5503b7e7f08a6a654fd70", "605054bf841321ed40d652370c40f4e5");
I$("dc3041bd81ac214aebb2cf0cd669db74", '{var hide  = defined("hidden")&&!!hidden}\n{var param = defined("params")&&params||NEJ.O}\n{var width = !hide?width:"1px",height = !hide?height:"1px"}\n{if hide}<div style="position:absolute;top:0;left:0;width:1px;height:1px;z-index:10000;overflow:hidden;">{/if}\n<object classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"\n        codebase = "http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"\n        width = "${width|default:"100px"}"\n        height = "${height|default:"100px"}" id="${id}">\n    <param value="${src}" name="movie">\n    {for x in param}\n    <param value="${x}" name="${x_key}"/>\n    {/for}\n    <embed src="${src}" name="${id}"\n           width="${width|default:"100px"}"\n           height="${height|default:"100px"}"\n           pluginspage="http://www.adobe.com/go/getflashplayer"\n           type="application/x-shockwave-flash"\n           {for x in param}${x_key}="${x}" {/for}></embed>\n</object>\n{if hide}</div>{/if}');
I$("a76444dea0d06a6a4a5881ca735e8a88",
function(e, t, i, n, s, r, a, o, c, _, d, f) {
    var h = s._$add(o);
    c._$flash = function() {
        var o = {},
        c, _ = /^(?:mouse.*|(?:dbl)?click)$/i;
        window.onflashevent = function(e) {
            var t = decodeURIComponent(e.target),
            i = e.type.toLowerCase();
            var n = o[t + "-tgt"];
            if (n && _.test(i)) f(n, e);
            var s = o[t + "-on" + i];
            if (s) {
                var r = "";
                try {
                    r = s(e)
                } catch(a) {}
                return r
            }
        };
        var d = function(e) {
            c = document.title;
            var i = t._$get(e.parent) || document.body,
            n = s._$get(h, e);
            i.insertAdjacentHTML(!e.hidden ? "beforeEnd": "afterBegin", n)
        };
        var f = function(e, t) {
            var n = t.type.toLowerCase();
            r.requestAnimationFrame(function() {
                i._$dispatchEvent(e, n)
            })
        };
        var l = function(e) {
            return !! e && !!e.inited && !!e.inited()
        };
        var u = function(e) {
            var i = [document.embeds[e], t._$get(e), document[e], window[e]],
            s = n._$forIn(i, l),
            r = i[s],
            a = e + "-count";
            o[a]++;
            if (! (r || o[a] > 100)) window.setTimeout(u._$bind(null, e), 300);
            else {
                if (c) {
                    document.title = c;
                    c = null
                }
                o[e](r);
                delete o[e];
                delete o[a]
            }
        };
        var p = function(e) {
            var i = e.id,
            s = e.params;
            if (!s) {
                s = {};
                e.params = s
            }
            var r = s.flashvars || "";
            r += (!r ? "": "&") + ("id=" + i);
            if (!e.hidden && (e.target || a.__canFlashEventBubble(s.wmode))) {
                var c = t._$id(e.target) || t._$id(e.parent);
                o[i + "-tgt"] = c
            }
            s.flashvars = r;
            n._$loop(e,
            function(e, t) {
                if (n._$isFunction(e) && "onready" != t) o[i + "-" + t] = e
            })
        };
        return function(t) {
            t = e.X({},
            t);
            if (t.src) {
                var i = "_" + n._$uniqueID();
                t.id = i;
                p(t);
                d(t);
                if (t.onready) {
                    o[i] = t.onready;
                    o[i + "-count"] = 0;
                    u(i)
                }
            }
        }
    } ();
    if (!0) e.copy(e.P("nej.e"), c);
    return c
},
"eddda1e8e7971753192ee8d61ef1680e", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "83c67d5b20eeffc1f687e113ae22189f", "b07368ae943ad8607c2daf6ad5c31d24", "569d8339ed0ccb98425fef1b4c766a67", "dc3041bd81ac214aebb2cf0cd669db74");
I$("88cbc5b855594c28a199fb1451128ddd",
function(e, t, i, n, s, r, a, o, c) {
    var _, d = {},
    f = n._$uniqueID();
    this["ld" + f] = function(e, t) {
        var i = d[e];
        if (i) {
            delete d[e];
            i.__onLoadRequest({
                status: 200,
                result: t
            })
        }
    };
    this["er" + f] = function(e, t) {
        var i = d[e];
        if (i) {
            delete d[e];
            i.__onLoadRequest({
                status: t || 0
            })
        }
    };
    r._$$ProxyFlash = t._$klass();
    _ = r._$$ProxyFlash._$extend(e._$$ProxyAbstract);
    _.__doSendRequest = function(e) {
        var t = d.flash;
        if (!n._$isArray(t)) if (t) {
            this.__rkey = n._$uniqueID();
            d[this.__rkey] = this;
            var r = n._$fetch({
                url: "",
                data: null,
                method: "GET"
            },
            e.request);
            r.key = this.__rkey;
            r.headers = e.headers;
            r.onerror = "cb.er" + f;
            r.onloaded = "cb.ld" + f;
            var a = i._$getFlashProxy(r.url);
            if (a) r.policyURL = a;
            t.request(r)
        } else {
            d.flash = [this.__doSendRequest._$bind(this, e)];
            s._$flash({
                hidden: !0,
                src: i._$get("ajax.swf"),
                onready: function(e) {
                    if (e) {
                        var t = d.flash;
                        d.flash = e;
                        n._$reverseEach(t,
                        function(e, t, i) {
                            try {
                                e()
                            } catch(n) {}
                        })
                    }
                }
            })
        } else t.push(this.__doSendRequest._$bind(this, e))
    };
    _._$abort = function() {
        delete d[this.__rkey];
        this.__onLoadRequest({
            status: 0
        })
    };
    return r
},
"6d84f3655e024ff239e895b2f4d87d49", "05e56106e22a09a56a1098c586c2bfe9", "8a2ce8a85ab9ebc9f81ddebaed2e0d2d", "0ce1cf574f7be23168d864b3fb81d053", "a76444dea0d06a6a4a5881ca735e8a88");
I$("7b7fc07b309a0f0e9c9057051ad15beb",
function(e, t, i, n) {
    e.__formatOrigin = function() {
        var e = /^([\w]+?:\/\/.*?(?=\/|$))/i;
        return function(t) {
            t = t || "";
            if (e.test(t)) return RegExp.$1;
            else return "*"
        }
    } ();
    e.__formatPassData = function(e) {
        return e
    };
    e.__postMessage = function(i, n) {
        if (i.postMessage) {
            n = n || t;
            i.postMessage(e.__formatPassData(n.data), e.__formatOrigin(n.origin))
        }
    };
    return e
});
I$("7c2eefd26ba32a1b23d59297765a09db",
function(e, t, i, n, s, r, a, o) {
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release >= "4.0" && e._$KERNEL.release <= "5.0") I$(14,
    function() {
        t.__formatPassData = function(e) {
            return JSON.stringify(e)
        }
    });
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release <= "3.0") I$(15,
    function(e) {
        var s = "MSG|",
        a = [];
        var o = function() {
            var e = unescape(window.name || "").trim();
            if (e && 0 == e.indexOf(s)) {
                window.name = "";
                var r = i._$string2object(e.replace(s, ""), "|"),
                a = (r.origin || "").toLowerCase();
                if (!a || "*" == a || 0 == location.href.toLowerCase().indexOf(a)) n._$dispatchEvent(window, "message", {
                    data: JSON.parse(r.data || "null"),
                    source: window.frames[r.self] || r.self,
                    origin: t.__formatOrigin(r.ref || document.referrer)
                })
            }
        };
        var c = function() {
            var e;
            var t = function(t, n, s) {
                if (i._$indexOf(e, t.w) < 0) {
                    e.push(t.w);
                    s.splice(n, 1);
                    t.w.name = t.d
                }
            };
            return function() {
                e = [];
                i._$reverseEach(a, t);
                e = null
            }
        } ();
        t.__postMessage = function() {
            var e = function(e) {
                var t = {};
                e = e || r;
                t.origin = e.origin || "";
                t.ref = location.href;
                t.self = e.source;
                t.data = JSON.stringify(e.data);
                return s + i._$object2string(t, "|", !0)
            };
            return function(t, i) {
                a.unshift({
                    w: t,
                    d: escape(e(i))
                })
            }
        } ();
        e._$$CustomEvent._$allocate({
            element: window,
            event: "message"
        });
        setInterval(c, 100);
        setInterval(o, 20)
    },
    "c284025e8eed55f31bcaf74be9c01fa8", "b88a5d8778c1f07dbe463db8ad695d8f");
    return t
},
"605054bf841321ed40d652370c40f4e5", "7b7fc07b309a0f0e9c9057051ad15beb", "0ce1cf574f7be23168d864b3fb81d053", "a0c610891b37112b33fc6ca301b06e01");
I$("4e3477f1faad0e644cf31bd4765e12dc",
function(e, t, i, n, s, r, a, o) {
    s._$postMessage = function() {
        var e = window.name || "_parent",
        s = [];
        s["_top"] = window.top;
        s["_self"] = window;
        s["_parent"] = window.parent;
        return function(a, o) {
            if (t._$isString(a)) {
                a = s[a] || window.frames[a] || (i._$get(a) || r).contentWindow;
                if (!a) return
            }
            var c = t._$fetch({
                data: null,
                origin: "*",
                source: e
            },
            o);
            n.__postMessage(a, c)
        }
    } ();
    if (!0) e.copy(e.P("nej.j"), s);
    return s
},
"eddda1e8e7971753192ee8d61ef1680e", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "7c2eefd26ba32a1b23d59297765a09db");
I$("65b8e4506fb9d567f15a45c3737a24e7",
function(e, t, i, n, s, r, a, o, c, _, d) {
    var f, h = {};
    o._$$ProxyFrame = i._$klass();
    f = o._$$ProxyFrame._$extend(e._$$ProxyAbstract);
    f.__init = function() {
        var e = "NEJ-AJAX-DATA:",
        t = !1;
        var i = function(t) {
            var i = t.data;
            if (0 == i.indexOf(e)) {
                i = JSON.parse(i.replace(e, ""));
                var n = h[i.key];
                if (n) {
                    delete h[i.key];
                    i.result = decodeURIComponent(i.result || "");
                    n.__onLoadRequest(i)
                }
            }
        };
        var s = function() {
            if (!t) {
                t = !0;
                n._$addEvent(window, "message", i)
            }
        };
        return function() {
            this.__super();
            s()
        }
    } ();
    f.__doSendRequest = function(e) {
        var i = e.request,
        o = s._$getFrameProxy(i.url),
        c = h[o];
        if (!t._$isArray(c)) if (c) {
            this.__rkey = t._$uniqueID();
            h[this.__rkey] = this;
            var _ = t._$fetch({
                url: "",
                data: null,
                timeout: 0,
                method: "GET"
            },
            i);
            _.key = this.__rkey;
            _.headers = e.headers;
            a._$postMessage(h[o], {
                data: _
            })
        } else {
            h[o] = [this.__doSendRequest._$bind(this, e)];
            r._$createXFrame({
                src: o,
                visible: !1,
                onload: function(e) {
                    var i = h[o];
                    h[o] = n._$getElement(e).contentWindow;
                    t._$reverseEach(i,
                    function(e) {
                        try {
                            e()
                        } catch(t) {}
                    })
                }
            })
        } else c.push(this.__doSendRequest._$bind(this, e))
    };
    f._$abort = function() {
        delete h[this.__rkey];
        this.__onLoadRequest({
            status: 0
        })
    };
    return o
},
"6d84f3655e024ff239e895b2f4d87d49", "0ce1cf574f7be23168d864b3fb81d053", "05e56106e22a09a56a1098c586c2bfe9", "a0c610891b37112b33fc6ca301b06e01", "8a2ce8a85ab9ebc9f81ddebaed2e0d2d", "d73a726efb8534e8d72defb6cd280a1c", "4e3477f1faad0e644cf31bd4765e12dc");
I$("b3244414949a4e18af46eec25ab74cca",
function(e, t, i, n, s, r, a, o, c, _, d, f) {
    var h, l = {},
    u = "NEJ-UPLOAD-RESULT:";
    c._$$ProxyUpload = t._$klass();
    h = c._$$ProxyUpload._$extend(e._$$ProxyAbstract);
    h.__init = function() {
        var e = !1;
        var t = function(e) {
            var t = e.data;
            if (0 == t.indexOf(u)) {
                t = JSON.parse(t.replace(u, ""));
                var i = l[t.key];
                if (i) {
                    delete l[t.key];
                    i.__onLoadRequest(decodeURIComponent(t.result))
                }
            }
        };
        var i = function() {
            if (!e) {
                e = !0;
                n._$addEvent(window, "message", t)
            }
        };
        return function() {
            this.__super();
            i()
        }
    } ();
    h.__destroy = function() {
        this.__super();
        s._$remove(this.__frame);
        delete this.__frame;
        window.clearTimeout(this.__timer);
        delete this.__timer
    };
    h.__onLoadRequest = function(e) {
        try {
            var t = s._$text2type(e, this.__request.type);
            this._$dispatchEvent("onload", t)
        } catch(i) {
            this._$dispatchEvent("onerror", {
                code: r._$CODE_ERREVAL,
                message: e
            })
        }
    };
    h.__doSendRequest = function() {
        var e = function() {
            var e, t;
            try {
                var e = this.__frame.contentWindow.document.body,
                t = (e.innerText || e.textContent || "").trim();
                if (t.indexOf(u) >= 0 || e.innerHTML.indexOf(u) >= 0) return
            } catch(i) {
                return
            }
            this.__onLoadRequest(t)
        };
        var t = function(e, i, n) {
            a._$request(e, {
                type: "json",
                method: "POST",
                cookie: n,
                mode: parseInt(i) || 0,
                onload: function(s) {
                    if (this.__timer) {
                        this._$dispatchEvent("onuploading", s);
                        this.__timer = window.setTimeout(t._$bind(this, e, i, n), 1e3)
                    }
                }._$bind(this),
                onerror: function(s) {
                    if (this.__timer) this.__timer = window.setTimeout(t._$bind(this, e, i, n), 1e3);
                }._$bind(this)
            })
        };
        return function(a) {
            var o = a.request,
            c = a.headers,
            d = o.data,
            f = i._$uniqueID();
            l[f] = this;
            d.target = f;
            d.method = "POST";
            d.enctype = r._$HEAD_CT_FILE;
            d.encoding = r._$HEAD_CT_FILE;
            var h = d.action || "",
            u = h.indexOf("?") <= 0 ? "?": "&";
            d.action = h + u + "_proxy_=form";
            this.__frame = s._$createXFrame({
                name: f,
                onload: function(i) {
                    var s = n._$getElement(i);
                    n._$addEvent(s, "load", e._$bind(this));
                    d.submit();
                    var r = (d.nej_query || _).value;
                    if (r) {
                        var a = (d.nej_mode || _).value,
                        o = "true" === (d.nej_cookie || _).value;
                        this.__timer = window.setTimeout(t._$bind(this, r, a, o), 100)
                    }
                }._$bind(this)
            })
        }
    } ();
    h._$abort = function() {
        this._$dispatchEvent("onerror", {
            code: r._$CODE_ERRABRT,
            message: "客户端终止文件上传"
        })
    };
    return c
},
"6d84f3655e024ff239e895b2f4d87d49", "05e56106e22a09a56a1098c586c2bfe9", "0ce1cf574f7be23168d864b3fb81d053", "a0c610891b37112b33fc6ca301b06e01", "d73a726efb8534e8d72defb6cd280a1c", "508c1b33d3f81140e52b3368c768e540", "46f2cd0a022c7fb344095e1795b5927b", "4e3477f1faad0e644cf31bd4765e12dc");
I$("4fee107943f354155f55dfbd29656ba7",
function(e, t, i, n, s, r, a, o) {
    s.__getProxyByMode = function(s, r, a) {
        var o = r ? {
            2 : n._$$ProxyUpload
        }: {
            2 : i._$$ProxyFrame,
            3 : t._$$ProxyFlash
        };
        return (o[s] || e._$$ProxyXHR)._$allocate(a)
    };
    return s
},
"cf0b6fbae624f39c70fb58c713b7c22d", "88cbc5b855594c28a199fb1451128ddd", "65b8e4506fb9d567f15a45c3737a24e7", "b3244414949a4e18af46eec25ab74cca");
I$("bb5cb96917cd5b6e11764f5efc8cca4f",
function(e, t, i, n, s, r) {
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release <= "5.0") I$(16,
    function() {
        t.__getProxyByMode = function() {
            var e = {
                0 : 2,
                1 : 3
            };
            return t.__getProxyByMode._$aop(function(t) {
                var i = t.args,
                n = i[0] || 0;
                i[0] = i[1] ? 2 : e[n] || n
            })
        } ()
    });
    return t
},
"605054bf841321ed40d652370c40f4e5", "4fee107943f354155f55dfbd29656ba7");
I$("46f2cd0a022c7fb344095e1795b5927b",
function(e, t, i, n, s, r, a, o, c, _) {
    var d = {},
    f = c;
    a._$abort = function(e) {
        var t = d[e];
        if (t) t.req._$abort()
    };
    a._$filter = function(e) {
        f = e || c
    };
    a._$request = function() {
        var e = (location.protocol + "//" + location.host).toLowerCase();
        var n = function(t) {
            var n = i._$url2origin(t);
            return !! n && n != e
        };
        var a = function(e) {
            return (e || o)[t._$HEAD_CT] == t._$HEAD_CT_FILE
        };
        var _ = function(e) {
            var t = a(e.headers);
            if (!n(e.url) && !t) return s._$$ProxyXHR._$allocate(e);
            else return r.__getProxyByMode(e.mode, t, e)
        };
        var h = function(e, t) {
            var i = {
                data: t
            };
            var n = e.result.headers;
            if (n) i.headers = e.req._$header(n);
            return i
        };
        var l = function(e) {
            var t = d[e];
            if (t) {
                if (t.req) t.req._$recycle();
                delete d[e]
            }
        };
        var u = function(e, t) {
            var i = d[e];
            if (i) {
                var n = arguments[2];
                if ("onload" == t && i.result) n = h(i, n);
                l(e);
                var s = {
                    type: t,
                    result: n
                };
                f(s);
                if (!s.stopped)(i[t] || c)(s.result)
            }
        };
        var p = function(e, t) {
            u(e, "onload", t)
        };
        var m = function(e, t) {
            u(e, "onerror", t)
        };
        var g = function(e, t) {
            var n = e.indexOf("?") < 0 ? "?": "&",
            t = t || "";
            if (i._$isObject(t)) t = i._$object2query(t);
            if (t) e += n + t;
            return e
        };
        return function(e, t) {
            t = t || {};
            var n = i._$uniqueID(),
            s = {
                result: t.result,
                onload: t.onload || c,
                onerror: t.onerror || c
            };
            d[n] = s;
            t.onload = p._$bind(null, n);
            t.onerror = m._$bind(null, n);
            if (t.query) e = g(e, t.query);
            var r = t.method || "";
            if ((!r || /get/i.test(r)) && t.data) {
                e = g(e, t.data);
                t.data = null
            }
            t.url = e;
            s.req = _(t);
            s.req._$send(t.data);
            return n
        }
    } ();
    a._$upload = function(e, s) {
        e = n._$get(e);
        if (!e) return "";
        var r = i._$fetch({
            mode: 0,
            type: "json",
            query: null,
            cookie: !1,
            headers: {},
            onload: null,
            onerror: null,
            onuploading: null,
            onbeforerequest: null
        },
        s);
        r.data = e;
        r.method = "POST";
        r.timeout = 0;
        r.headers[t._$HEAD_CT] = t._$HEAD_CT_FILE;
        return a._$request(e.action, r)
    };
    if (!0) e.copy(e.P("nej.j"), a);
    return a
},
"eddda1e8e7971753192ee8d61ef1680e", "508c1b33d3f81140e52b3368c768e540", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "cf0b6fbae624f39c70fb58c713b7c22d", "bb5cb96917cd5b6e11764f5efc8cca4f");
I$("ea1e78d361775ea972a9cc89496e3492",
function(e, t, i, n, s, r, a, o) {
    var c;
    s._$$LoaderText = t._$klass();
    c = s._$$LoaderText._$extend(e._$$LoaderAbstract);
    c.__getRequest = function() {
        return null
    };
    c.__doRequest = function() {
        n._$request(this.__url, {
            method: "GET",
            type: "text",
            onload: this.__onLoaded._$bind(this),
            onerror: this.__onError._$bind(this)
        })
    };
    c.__onLoaded = function(e) {
        this.__doCallback("onload", {
            url: this.__url,
            content: e
        })
    };
    return s
},
"24592eeebab342b9ea06c28b90a5e3f1", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "46f2cd0a022c7fb344095e1795b5927b");
I$("383b84ad6591c1c6ff65dd17691709ae",
function(e, t, i, n, s) {
    t.__removeIFrameKeepHistory = function(t) {
        e._$remove(t)
    };
    return t
},
"d73a726efb8534e8d72defb6cd280a1c");
I$("d238de12ace928bf97421ccbe8e9cb75",
function(e, t, i, n, s, r, a) {
    if ("trident" === i._$KERNEL.engine && i._$KERNEL.release <= "2.0") I$(19,
    function() {
        e.__removeIFrameKeepHistory = function(e) {
            t._$setStyle(e, "display", "none");
            try {
                e.contentWindow.document.body.innerHTML = "&nbsp;"
            } catch(i) {}
        }
    });
    return e
},
"383b84ad6591c1c6ff65dd17691709ae", "d73a726efb8534e8d72defb6cd280a1c", "605054bf841321ed40d652370c40f4e5");
I$("a00dc89e5cd5e29d69bf24804b7260be",
function(e, t, i, n, s, r, a, o) {
    var c;
    s._$$LoaderHtml = t._$klass();
    c = s._$$LoaderHtml._$extend(e._$$LoaderAbstract);
    c.__getRequest = function() {
        var e = i._$create("iframe");
        e.width = 0;
        e.height = 0;
        e.style.display = "none";
        return e
    };
    c.__doRequest = function(e) {
        try {
            document.body.appendChild(e);
            e.src = this.__url
        } catch(t) {
            console.log(e);
            console.error(t)
        }
    };
    c.__onError = function(e) {
        var t = (this.__getLoadData(this.__url) || r).request;
        this.__doCallback("onerror", e);
        n.__removeIFrameKeepHistory(t)
    };
    c.__onLoaded = function() {
        var e = null,
        t = (this.__getLoadData(this.__url) || r).request;
        try {
            if (t.src != this.__url) return;
            e = t.contentWindow.document.body
        } catch(i) {}
        this.__doCallback("onload", e);
        n.__removeIFrameKeepHistory(t)
    };
    return s
},
"24592eeebab342b9ea06c28b90a5e3f1", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "d238de12ace928bf97421ccbe8e9cb75");
I$("bc39e074d56520e7927c7266fed24a8d",
function(e, t, i, n, s, r, a) {
    var o;
    n._$$LoaderStyle = t._$klass();
    o = n._$$LoaderStyle._$extend(e._$$LoaderAbstract);
    o.__getRequest = function() {
        return i._$create("link")
    };
    o.__doRequest = function(e) {
        e.href = this.__url;
        document.head.appendChild(e)
    };
    return n
},
"24592eeebab342b9ea06c28b90a5e3f1", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c");
I$("81bd84a220d8bdd69b7113dbdf701570",
function(e, t, i, n, s, r, a) {
    var o;
    n._$$LoaderScript = t._$klass();
    o = n._$$LoaderScript._$extend(e._$$LoaderAbstract);
    o.__reset = function(e) {
        this.__super(e);
        this.__async = e.async;
        this.__charset = e.charset;
        this.__qopt.async = !1;
        this.__qopt.charset = this.__charset
    };
    o.__getRequest = function() {
        var e = i._$create("script");
        if (null != this.__async) e.async = !!this.__async;
        if (null != this.__charset) e.charset = this.__charset;
        return e
    };
    o.__doClearRequest = function(e) {
        i._$remove(e)
    };
    return n
},
"24592eeebab342b9ea06c28b90a5e3f1", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c");
I$("419e22071a5d3ce004fe13f2fce18022",
function(e, t, i, n, s, r, a, o, c) {
    r._$loadScript = function(e, t) {
        s._$$LoaderScript._$allocate(t)._$load(e)
    };
    r._$queueScript = function(e, t) {
        s._$$LoaderScript._$allocate(t)._$queue(e)
    };
    r._$loadStyle = function(e, t) {
        n._$$LoaderStyle._$allocate(t)._$load(e)
    };
    r._$queueStyle = function(e, t) {
        n._$$LoaderStyle._$allocate(t)._$queue(e)
    };
    r._$loadHtml = function(e, t) {
        i._$$LoaderHtml._$allocate(t)._$load(e)
    };
    r._$loadText = function(e, i) {
        t._$$LoaderText._$allocate(i)._$load(e)
    };
    if (!0) e.copy(e.P("nej.j"), r);
    return r
},
"eddda1e8e7971753192ee8d61ef1680e", "ea1e78d361775ea972a9cc89496e3492", "a00dc89e5cd5e29d69bf24804b7260be", "bc39e074d56520e7927c7266fed24a8d", "81bd84a220d8bdd69b7113dbdf701570");
I$("b07a20e1d9be763162954dd0fcf2feb3",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l) {
    var u = {},
    p = "ntp-" + +new Date + "-";
    d.tpl = function() {
        return u
    };
    d._$parseTemplate = function() {
        var e = 0;
        var _ = function() {
            if (! (e > 0)) {
                e = 0;
                i._$dispatchEvent(document, "templateready");
                i._$clearEvent(document, "templateready")
            }
        };
        var h = function(e, i) {
            var s = n._$dataset(e, "src");
            if (s) {
                i = i || f;
                var r = i.root;
                if (!r) r = e.ownerDocument.location.href;
                else r = t._$absolute(r);
                s = s.split(",");
                t._$forEach(s,
                function(e, i, n) {
                    n[i] = t._$absolute(e, r)
                });
                return s
            }
        };
        var l = function(e) {
            if (s._$is("mac") && "safari" === s._$KERNEL.browser) return t._$unescape(e.innerHTML);
            else return e.value || e.innerText || ""
        };
        var u = function(e, t) {
            if (e) {
                var i = h(e, t);
                if (i) o._$queueStyle(i, {
                    version: n._$dataset(e, "version")
                });
                n._$addStyle(e.value)
            }
        };
        var p = function(t) {
            e--;
            n._$addScript(t);
            _()
        };
        var m = function(t, i) {
            if (t) {
                var s = h(t, i),
                r = t.value;
                if (!s) n._$addScript(r);
                else {
                    e++;
                    var i = {
                        version: n._$dataset(t, "version"),
                        onload: p._$bind(null, r)
                    };
                    window.setTimeout(o._$queueScript._$bind(o, s, i), 0)
                }
            }
        };
        var g = function(t) {
            e--;
            d._$parseTemplate(t);
            _()
        };
        var b = function(t, i) {
            if (t) {
                var s = h(t, i)[0];
                if (s) {
                    e++;
                    var i = {
                        version: n._$dataset(t, "version"),
                        onload: g
                    };
                    window.setTimeout(o._$loadHtml._$bind(o, s, i), 0)
                }
            }
        };
        var v = function(t, i) {
            e--;
            d._$addTextTemplate(t, i || "");
            _()
        };
        var $ = function(t, i) {
            if (t && t.id) {
                var s = t.id,
                r = h(t, i)[0];
                if (r) {
                    e++;
                    var a = r + (r.indexOf("?") < 0 ? "?": "&") + (n._$dataset(t, "version") || ""),
                    i = {
                        type: "text",
                        method: "GET",
                        onload: v._$bind(null, s)
                    };
                    window.setTimeout(c._$request._$bind(c, a, i), 0)
                }
            }
        };
        var y = function(e, t) {
            var i = e.name.toLowerCase();
            switch (i) {
            case "jst":
                r._$addTemplate(l(e), e.id);
                return;
            case "txt":
                d._$addTextTemplate(e.id, l(e));
                return;
            case "ntp":
                d._$addNodeTemplate(l(e), e.id);
                return;
            case "js":
                m(e, t);
                return;
            case "css":
                u(e, t);
                return;
            case "html":
                b(e, t);
                return;
            case "res":
                $(e, t);
                return
            }
        };
        a._$$CustomEvent._$allocate({
            element: document,
            event: "templateready",
            oneventadd: _
        });
        return function(e, i) {
            e = n._$get(e);
            if (e) {
                var s = "TEXTAREA" == e.tagName ? [e] : t._$object2array(e.getElementsByTagName("textarea"));
                t._$forEach(s,
                function(e) {
                    y(e, i)
                });
                n._$remove(e, !0)
            }
            _()
        }
    } ();
    d._$addTextTemplate = function(e, t) {
        if (null != u[e] && typeof u[e] == typeof t) {
            console.warn("text template overwrited with key " + e);
            console.debug("old template content: " + u[e].replace(/\n/g, " "));
            console.debug("new template content: " + t.replace(/\n/g, " "))
        }
        u[e] = t || ""
    };
    d._$getTextTemplate = function(e) {
        return u[e] || ""
    };
    d._$addNodeTemplate = function(e, i) {
        i = i || t._$uniqueID();
        e = n._$get(e) || e;
        d._$addTextTemplate(p + i, e);
        if (!t._$isString(e)) n._$removeByEC(e);
        return i
    };
    d._$getNodeTemplate = function(e) {
        if (!e) return null;
        e = p + e;
        var i = d._$getTextTemplate(e);
        if (!i) return null;
        var s;
        if (t._$isString(i)) {
            i = n._$html2node(i);
            var r = i.getElementsByTagName("textarea");
            if (! ("TEXTAREA" == i.tagName || r && r.length)) d._$addTextTemplate(e, i);
            else s = i;
        }
        if (!s) s = i.cloneNode(!0);
        n._$removeByEC(s);
        return s
    };
    d._$getItemTemplate = function() {
        var e = function(e, t) {
            return "offset" == t || "limit" == t
        };
        return function(i, n, s) {
            var r = [];
            if (!i || !i.length || !n) return r;
            s = s || f;
            var a = i.length,
            o = parseInt(s.offset) || 0,
            c = Math.min(a, o + (parseInt(s.limit) || a)),
            _ = {
                total: i.length,
                range: [o, c]
            };
            t._$merge(_, s, e);
            for (var d = o,
            h; d < c; d++) {
                _.index = d;
                _.data = i[d];
                h = n._$allocate(_);
                var l = h._$getId();
                u[l] = h;
                h._$recycle = h._$recycle._$aop(function(e, t) {
                    delete u[e];
                    delete t._$recycle
                }._$bind(null, l, h));
                r.push(h)
            }
            return r
        }
    } ();
    d._$getItemById = function(e) {
        return u[e]
    };
    d._$parseUITemplate = function() {
        var e = /#<(.+?)>/g;
        return function(i, s) {
            s = s || {};
            i = (i || "").replace(e,
            function(e, i) {
                var n = s[i];
                if (!n) {
                    n = "tpl-" + t._$uniqueID();
                    s[i] = n
                }
                return n
            });
            d._$parseTemplate(n._$html2node(i));
            return s
        }
    } ();
    _._$merge({
        _$parseTemplate: d._$parseTemplate,
        _$addNodeTemplate: d._$addNodeTemplate
    });
    if (!0) e.copy(e.P("nej.e"), d);
    return d
},
"eddda1e8e7971753192ee8d61ef1680e", "0ce1cf574f7be23168d864b3fb81d053", "a0c610891b37112b33fc6ca301b06e01", "d73a726efb8534e8d72defb6cd280a1c", "605054bf841321ed40d652370c40f4e5", "83c67d5b20eeffc1f687e113ae22189f", "c284025e8eed55f31bcaf74be9c01fa8", "419e22071a5d3ce004fe13f2fce18022", "46f2cd0a022c7fb344095e1795b5927b", "4ff36f93915f61da99a05f35c5dcc945");
I$("2340de615bb0be83782615b5be9a7ef8",
function(e, t, i, n) {
    var s = {
        404 : "网络异常，请刷新页面重试",
        "-1": "网络不好，请刷新页面重试",
        "-2": "网络不好，请刷新页面重试",
        0 : "网络不好，请刷新页面重试",
        401 : "操作超时，请刷新页面重试",
        40110 : "帐号格式错误",
        40102 : "帐号格式错误",
        407 : "该帐号已注册",
        410 : "超过IP限制，请稍后再试",
        433 : "系统繁忙，请刷新页面重试",
        108 : "请输入图片验证码",
        109 : "请滑动验证码",
        110 : "请点击验证码",
        409 : "注册尝试次数太频繁",
        500 : "系统繁忙，请您稍后再试",
        503 : "服务器繁忙，请稍后再试",
        504 : "次数超限，请稍后再试",
        505 : "次数超限，请稍后再试",
        434 : "您验证错误次数过多，请稍后再试",
        435 : "您验证错误次数过多，请改天再试",
        436 : "您验证错误次数过多，请稍后再试",
        437 : "您验证错误次数过多，请改天再试",
        CHECK_USER_EMPTY: "请输入帐号",
        CHECK_USER_TOO_LONG: "您输入的帐号太长了",
        CHECK_URS_EMPTY: "请输入帐号",
        CHECK_URS_BAD_BEGIN: "帐号须由字母开头",
        CHECK_URS_BAD_MB: "帐号须由字母开头或11位手机号",
        CHECK_URS_BAD_END: "帐号请以字母或数字结尾",
        CHECK_URS_BAD_LENGTH: "帐号须由6-18个字符组成",
        CHECK_URS_BAD_ILLEGAL: "请用字母、数字或下划线命名",
        CHECK_PASSWORD_EMPTY: "请设置您的登录密码",
        CHECK_PASSWORD_LENGTH: "密码须由6-16个字符组成，区分大小写",
        CHECK_PASSWORD_SIMPLE: "密码过于简单，请重新设置",
        CHECK_PASSWORD_EQUAL: "密码与注册帐号不能相同",
        CHECK_PASSWORD_CHARCODE255: "密码不符合规范",
        CHECK_PASSWORD_HASEMPTY: "密码中不允许出现空格",
        CHECK_PASSWORD2_EMPTY: "请重复输入密码",
        CHECK_PASSWORD2_DIFF: "密码不一致",
        CHECK_SMS_EMPTY: "请输入正确的验证码",
        CHECK_SMS_BAD: "请输入正确的验证码",
        CHECK_CAPTCHA_EMPTY: "请输入正确的验证码",
        CHECK_CAPTCHA_BAD: "请输入正确的验证码",
        CHECK_PERSON_ID_EMPTY: "请输入您的身份证号码",
        CHECK_PERSON_NAME_EMPTY: "请输入您的姓名",
        CHECK_MOBILE_EMPTY: "请输入正确的手机号",
        CHECK_MOBILE_BAD: "请输入正确的手机号",
        EXCEPTION_INIT_COMPONENT_401: "初始化失败，参数不齐全",
        EXCEPTION_INIT_COMPONENT_433: "初始化失败，参数不匹配",
        EXCEPTION_INIT_COMPONENT_500: "系统繁忙，请您稍后再试",
        EXCEPTION_CHECK_NAME_160: '您输入的是网易靓号，请<a target="_blank" href="https://haoma.163.com/?from=zj">前往选购</a>',
        EXCEPTION_CHECK_NAME_106: "该帐号不可注册",
        EXCEPTION_CHECK_NAME_401: "操作超时，请刷新页面重试",
        EXCEPTION_CHECK_NAME_433: "系统繁忙，请刷新页面重试",
        EXCEPTION_CHECK_NAME_407: "该帐号已注册",
        EXCEPTION_CHECK_NAME_409: "注册尝试次数太频繁",
        EXCEPTION_CHECK_NAME_410: "超过IP限制，请稍后再试",
        EXCEPTION_CHECK_NAME_422: "该帐号已被冻结",
        EXCEPTION_CHECK_NAME_500: "系统繁忙，请您稍后再试",
        EXCEPTION_CHECK_NAME_504: "次数超限，请稍后再试",
        EXCEPTION_CHECK_NAME_505: "次数超限，请稍后再试",
        EXCEPTION_GET_TICKET_160: '您输入的是网易靓号，请<a target="_blank" href="https://haoma.163.com/?from=zj">前往选购</a>',
        EXCEPTION_GET_TICKET_106: "该帐号不可注册",
        EXCEPTION_GET_TICKET_108: "请输入图片验证码",
        EXCEPTION_GET_TICKET_109: "请滑动验证码",
        EXCEPTION_GET_TICKET_110: "请点击验证码",
        EXCEPTION_GET_TICKET_401: "操作超时，请刷新页面重试",
        EXCEPTION_GET_TICKET_433: "系统繁忙，请刷新页面重试",
        EXCEPTION_GET_TICKET_424: "请求错误，请您稍后再试",
        EXCEPTION_GET_TICKET_407: "该帐号已注册",
        EXCEPTION_GET_TICKET_409: "注册尝试次数太频繁",
        EXCEPTION_GET_TICKET_410: "超过IP限制，请稍后再试",
        EXCEPTION_GET_TICKET_422: "该帐号已被冻结",
        EXCEPTION_GET_TICKET_500: "系统繁忙，请您稍后再试",
        EXCEPTION_GET_TICKET_503: "服务器繁忙，请稍后再试",
        EXCEPTION_GET_TICKET_504: "次数超限，请稍后再试",
        EXCEPTION_FAST_REG_160: '您输入的是网易靓号，请<a target="_blank" href="https://haoma.163.com/?from=zj">前往选购</a>',
        EXCEPTION_FAST_REG_107: "请输入正确的验证码",
        EXCEPTION_FAST_REG_106: "该帐号不可注册",
        EXCEPTION_FAST_REG_401: "操作超时，请刷新页面重试",
        EXCEPTION_FAST_REG_433: "系统繁忙，请刷新页面重试",
        EXCEPTION_FAST_REG_402: "当前网络异常，请检查您的网络环境",
        EXCEPTION_FAST_REG_407: "该帐号已注册",
        EXCEPTION_FAST_REG_409: "注册尝试次数太频繁",
        EXCEPTION_FAST_REG_410: "超过IP限制，请稍后再试",
        EXCEPTION_FAST_REG_422: "该帐号已被冻结",
        EXCEPTION_FAST_REG_412: "验证码错误次数过多，请改天再试",
        EXCEPTION_FAST_REG_413: "请输入正确的验证码",
        EXCEPTION_FAST_REG_500: "系统繁忙，请您稍后再试",
        EXCEPTION_FAST_REG_503: "服务器繁忙，请稍后再试",
        EXCEPTION_FAST_REG_504: "次数超限，请稍后再试",
        EXCEPTION_REG_MOB_160: '您输入的是网易靓号，请<a target="_blank" href="https://haoma.163.com/?from=zj">前往选购</a>',
        EXCEPTION_REG_MOB_401: "操作超时，请刷新页面重试",
        EXCEPTION_REG_MOB_106: "该帐号不可注册",
        EXCEPTION_REG_MOB_433: "系统繁忙，请刷新页面重试",
        EXCEPTION_REG_MOB_402: "当前网络异常，请检查您的网络环境",
        EXCEPTION_REG_MOB_407: "该帐号已注册",
        EXCEPTION_REG_MOB_409: "注册尝试次数太频繁",
        EXCEPTION_REG_MOB_410: "超过IP限制，请稍后再试",
        EXCEPTION_REG_MOB_422: "该帐号已被冻结",
        EXCEPTION_REG_MOB_412: "验证码错误次数过多，请改天再试",
        EXCEPTION_REG_MOB_413: "请输入正确的验证码",
        EXCEPTION_REG_MOB_421: "该手机号已被注册",
        EXCEPTION_REG_MOB_423: "该手机号是保留帐号",
        EXCEPTION_REG_MOB_500: "系统繁忙，请您稍后再试",
        EXCEPTION_REG_MOB_107: "请输入正确的验证码",
        EXCEPTION_REG_MOB_108: "请输入图片验证码",
        EXCEPTION_REG_MOB_109: "请滑动滑块验证码",
        EXCEPTION_REG_MOB_110: "请点击验证码",
        EXCEPTION_GET_SMS_107: "请输入正确的验证码",
        EXCEPTION_GET_SMS_108: "请输入图片验证码",
        EXCEPTION_GET_SMS_109: "请滑动验证码",
        EXCEPTION_GET_SMS_110: "请点击验证码",
        EXCEPTION_GET_SMS_401: "操作超时，请刷新页面重试",
        EXCEPTION_GET_SMS_284: "请更换手机号再试",
        EXCEPTION_GET_SMS_242: "该手机号码绑定帐号数达到上限，请更换手机号再试",
        EXCEPTION_GET_SMS_433: "系统繁忙，请刷新页面重试",
        EXCEPTION_GET_SMS_410: "超过IP限制，请稍后再试",
        EXCEPTION_GET_SMS_412: "下发验证码超过了次数限制，请改天再试",
        EXCEPTION_GET_SMS_413: "请输入正确的验证码",
        EXCEPTION_GET_SMS_421: "该手机号已被注册",
        EXCEPTION_GET_SMS_423: "该手机号是保留帐号",
        EXCEPTION_GET_SMS_500: "系统繁忙，请您稍后再试",
        EXCEPTION_GET_SMS_415: "获取短信过于频繁，请稍后再试",
        EXCEPTION_GET_SMS_416: "获取短信过于频繁，请重新验证",
        EXCEPTION_SEND_MAIL_104: "帐号不存在。",
        EXCEPTION_SEND_MAIL_106: "用户不是外部邮箱。",
        EXCEPTION_SEND_MAIL_401: "操作超时，请刷新页面重试。",
        EXCEPTION_SEND_MAIL_410: "超过IP限制，请稍后再试。",
        EXCEPTION_SEND_MAIL_421: "帐号已被注册。",
        EXCEPTION_SEND_MAIL_500: "系统繁忙，请您稍后再试。",
        EXCEPTION_SEND_MAIL_503: "服务器维护中，请稍后再试。",
        EXCEPTION_SEND_MAIL_504: "重发邮件次数超过限制。",
        MODAL_MAIL_SUCCESS_TITLE: "激活邮件已再次发送！",
        MODAL_MAIL_SUCCESS_TEXT: "请查看您的邮箱。",
        MODAL_MAIL_SUCCESS_BUTTON: "立即查看邮件",
        MODAL_MAIL_ERROR_TITLE: "出错了"
    };
    return s
});
I$("5b4d28fde6c5928be8e3c7014b09da77",
function() {
    var e = {
        501 : "系统繁忙，请您稍后再试。",
        500 : "系统繁忙，请您稍后再试。",
        "-1": "网络不好，请刷新页面重试",
        "-2": "网络不好，请刷新页面重试",
        404 : "网络异常，请刷新页面重试",
        401 : "操作超时，请刷新页面重试",
        433 : "系统繁忙，请刷新页面重试",
        "-101": "已重新发送激活邮件",
        "-102": "发送邮件失败，请稍后再试。",
        "-103": "正在加载AA资源，请稍后重试"
    };
    return e
});
I$("0d434f17f93250948578c8948f9f01bf",
function(e, t, i, n, s, r, a, o, c, _, d, f, h) {
    var l = {
        haomaEmail: /^[\w-\.]{1,18}@(126\.com|163\.com)$/i,
        eleven: /^1\d{10}$/,
        mobile: /^(13|14|15|16|17|18|19)\d{9}$/,
        netease: /^[a-zA-Z]([a-zA-Z]|\d|_){4,16}([a-zA-Z]|\d)$/
    };
    var u, p = {
        "qq.com": "1",
        "sina.com": "1",
        "foxmail.com": "1",
        "sohu.com": "1",
        "vip.qq.com": "1",
        "live.com": "1",
        "139.com": "1",
        "tom.com": "1",
        "icloud.com": "1",
        "aliyun.com": "1",
        "edu.tw": "1"
    },
    m = {
        qq: "1",
        renren: "2",
        weibo: "3",
        weixin: "13",
        yixin: "8"
    };
    var g = function() {
        var e = document.body.scrollWidth,
        t = document.body.clientHeight,
        i = {
            width: e,
            height: t,
            type: "resize"
        };
        if (e * t > 0) {
            i["URS-CM"] = 1;
            _._$postMessage("_parent", {
                data: i
            })
        }
    };
    _._$resize = g;
    var b = function(e, n, r, a) {
        r = t._$get(r);
        if ('您输入的是网易靓号，请<a target="_blank" href="https://haoma.163.com/?from=zj">前往选购</a>' === n) a = 2;
        if (1 != window._$needCookieSet || n.indexOf("开启浏览器cookies") != -1) {
            a = a || "";
            var o = t._$get("cnt-box-parent");
            var c = e && _._$getParent(e, "inputbox");
            if (c) t._$addClassName(c, "error-color");
            var d = s._$get("error-tmp", {
                str: n || "",
                type: a
            });
            if (3 == a) d = d.replace("ferrorhead3", "ferrorhead2").replace("ferrortail3", "ferrortail2 ferrortail3");
            r.innerHTML = d;
            r.className = "m-nerror";
            if (0 === e) t._$dataset(r, "from", "0");
            else if (100 === e) t._$dataset(r, "from", "100");
            else if (e) {
                t._$dataset(r, "from", e.name);
                t._$addClassName(r, "err_" + e.name)
            } else t._$dataset(r, "from", "null");
            if (window._$errClickHide) {
                i._$clearEvent(r);
                var f = "touchend";
                if (nej.p._$IS.desktop) f = "mouseup";
                i._$addEvent(r, f,
                function() {
                    t._$addClassName(r, "f-dn");
                    t._$delClassName(o, "haserr");
                    g()
                })
            }
            t._$addClassName(o, "haserr");
            g()
        }
    };
    _._$isBadNetease = function(e) {
        return ! l.netease.test(e)
    };
    _._$isNeteaseEmail = function(e) {
        return "163.com" === e || "126.com" === e || "yeah.net" === e || "vip.163.com" == e || "vip.126.com" == e || "188.com" == e || "vip.188.com" == e
    };
    _._$checkMobile = function(e) {
        return l.mobile.test(e)
    };
    _._$getParent = function(e, i) {
        e = t._$get(e);
        if (!e) return null;
        e = e.parentElement || e.parentNode;
        for (; e != document.body;) {
            if (!e) return null;
            if (t._$hasClassName(e, i)) break;
            else e = e.parentElement || e.parentNode
        }
        return e
    };
    _._$showError = function(e, t, i, n) {
        b(e, t, i, n)
    };
    _._$showError2 = function(e, n, r, a) {
        var o = t._$get("cnt-box-parent");
        var c = e && _._$getParent(e, "inputbox");
        if (c) t._$addClassName(c, "error-color");
        if (0 === a) {
            r = t._$get(r);
            r.innerHTML = s._$get("error-tmp", {
                str: n || ""
            });
            r.className = "m-nerror";
            if (e) {
                t._$dataset(r, "from", e.name);
                t._$addClassName(r, "err_" + e.name)
            } else t._$dataset(r, "from", "null")
        }
        i._$addEvent(r, "click",
        function() {
            if (e) try {
                e.focus()
            } catch(i) {} else {
                t._$addClassName(r, "f-dn");
                g()
            }
        });
        t._$addClassName(o, "haserr");
        g()
    };
    _._$removeError = function(e, i) {
        var n = t._$get("cnt-box-parent");
        var s = t._$dataset(i, "from");
        var r = e.name;
        var a = e && _._$getParent(e, "inputbox");
        if (a) t._$delClassName(a, "error-color");
        if (s == r || "null" == s) {
            i = t._$get(i);
            t._$addClassName(i, "f-dn");
            if ("email" == r) t._$delClassName(i, "err_email");
            else if ("password" == r) t._$delClassName(i, "err_password");
            else if ("checkcode" == r) t._$delClassName(i, "err_checkcode");
            else if ("phone" == r) t._$delClassName(i, "err_phone");
            else if ("phonecode" == r) t._$delClassName(i, "err_phonecode")
        }
        if (0 != s) t._$delClassName(n, "haserr");
        g()
    };
    _._$removeError2 = function() {
        var e = t._$get("nerror"),
        i = t._$dataset(e, "from");
        if (100 == i) t._$addClassName(e, "f-dn");
        t._$addClassName(t._$get("nerror"), "f-dn");
        g()
    };
    _._$removeError3 = function() {
        var e = t._$get("nerror");
        t._$addClassName(e, "f-dn")
    };
    _._$showFail = function(e, i) {
        if ("601" != e) {
            u = clearTimeout(u);
            t._$remove("failbox", !0);
            var n = parseInt(r._$KERNEL.version, 10);
            var s = "trident" == r._$KERNEL.engine && n < 10 ? "boxtop": "";
            var a, o = 500 == e ? "fail0 ": "fail1 ",
            d = t._$create("div", o + s, t._$getByClassName(document, "g-bd")[0]);
            a = c[e] || _._$getErrorTxt(e);
            if ("-103" == e) a = a.replace("AA", i);
            d.id = "failbox";
            d.innerHTML = '<div class="box">' + a + "</div>";
            u = setTimeout(function() {
                t._$remove("failbox", !0)
            },
            5e3)
        }
    };
    _._$showFail2 = function(e) {
        u = clearTimeout(u);
        t._$remove("failbox", !0);
        var i = parseInt(r._$KERNEL.version, 10);
        var n = "trident" == r._$KERNEL.engine && i < 10 ? "boxtop": "";
        var s = "fail1 ",
        a = t._$create("div", s + n, t._$getByClassName(document, "g-bd")[0]);
        a.id = "failbox";
        a.innerHTML = '<div class="box">' + e + "</div>";
        u = setTimeout(function() {
            t._$remove("failbox", !0)
        },
        5e3)
    };
    _._$hideFail = function() {
        t._$remove("failbox", !0)
    };
    _._$supportCss3 = function(e) {
        var t = ["webkit", "Moz", "ms", "o"],
        i,
        n = [],
        s = document.documentElement.style,
        r = function(e) {
            return e.replace(/-(\w)/g,
            function(e, t) {
                return t.toUpperCase()
            })
        };
        for (i in t) n.push(r(t[i] + "-" + e));
        n.push(r(e));
        for (i in n) if (n[i] in s) return ! 0;
        return ! 1
    };
    _._$getCommonEmail = function(e) {
        var t = e.split("@")[1];
        return p[t] ? "//mail." + e.substr(e.indexOf("@") + 1) : ""
    };
    _.__hackPush = function() {
        return 0
    };
    _._$loadGaq = function() {
        _gaq = window["_gaq"] || [];
        if (!window.wdaId) _gaq.push = _.__hackPush
    };
    _._$timeCount = function(e) {
        if (!window.timecount) window.timecount = [];
        window.timecount[e] = (new Date).getTime()
    };
    _._$timeCountEnd = function(e) {
        if (!window.timecount) return 0;
        if (!window.timecount[e]) return 0;
        var t = (new Date).getTime() - window.timecount[e];
        window.timecount[e] = 0;
        return t
    };
    _._$requestJsonp = function(e, t, i, n) {
        var s = (new Date).getTime();
        var r = "jsonp" + s;
        window["qrcb"] = [];
        window["qrcb"][r] = i;
        var a = "";
        for (var o in t) a += "&" + o + "=" + t[o];
        a = a.slice(1);
        var c = e + "?" + a + "&callback=qrcb." + r;
        var _ = document.getElementById("mp-script-" + r);
        if (!_) {
            _ = document.createElement("script");
            _.type = "text/javascript";
            _.id = "mp-script-" + r;
            _.src = c;
            document.getElementsByTagName("head")[0].appendChild(_)
        }
        if (!n) document.getElementsByTagName("head")[0].appendChild(_)
    };
    _._$postMessage = function(e, t) {
        t.data["MGID"] = window.mgid;
        a._$postMessage(e, t)
    };
    _._$validateSecIdCard = function(e) {
        var t = 0;
        var i = e;
        var n = {
            11 : "北京",
            12 : "天津",
            13 : "河北",
            14 : "山西",
            15 : "内蒙",
            21 : "辽宁",
            22 : "吉林",
            23 : "黑龙",
            31 : "上海",
            32 : "江苏",
            33 : "浙江",
            34 : "安徽",
            35 : "福建",
            36 : "江西",
            37 : "山东",
            41 : "河南",
            42 : "湖北",
            43 : "湖南",
            44 : "广东",
            45 : "广西",
            46 : "海南",
            50 : "重庆",
            51 : "四川",
            52 : "贵州",
            53 : "云南",
            54 : "西藏",
            61 : "陕西",
            62 : "甘肃",
            63 : "青海",
            64 : "宁夏",
            65 : "新疆",
            71 : "台湾",
            81 : "香港",
            82 : "澳门",
            91 : "国外"
        };
        if (!/^\d{17}(\d|x)$/i.test(i)) return ! 1;
        i = i.replace(/x$/i, "a");
        if (null === n[parseInt(i.substr(0, 2))]) return ! 1;
        var s = i.substr(6, 4) + "-" + Number(i.substr(10, 2)) + "-" + Number(i.substr(12, 2));
        var r = new Date(s.replace(/-/g, "/"));
        if (s != r.getFullYear() + "-" + (r.getMonth() + 1) + "-" + r.getDate()) return ! 1;
        for (var a = 17; a >= 0; a--) t += Math.pow(2, a) % 11 * parseInt(i.charAt(17 - a), 11);
        if (t % 11 != 1) return ! 1;
        else return ! 0
    };
    _._$parseOauth = function() {
        var e = window.URSCONFIG.oauthLoginConfig || !1;
        if (!e) return e;
        var t = location.protocol + "//reg.163.com/outerLogin/oauth2/connect.do?product=" + window.URSCONFIG.product;
        n._$forEach(e,
        function(e) {
            if (!e.url) if ("alipay" == e.name) {
                t = t.replace("/outerLogin/oauth2/connect.do", "/outerLogin/oauth2/aliPayFastLogin.do");
                e.url = t
            } else e.url = t + "&target=" + m[e.name];
            var i = {
                url: location.protocol + "//webzj.reg.163.com/webapp/res/statichtml/third.html",
                url2: location.protocol + "//webzj.reg.163.com/webapp/res/statichtml/third.html"
            };
            if (e.backurl) {
                i = {
                    url: location.protocol + "//webzj.reg.163.com/webapp/res/statichtml/third.html?backurl=" + e.backurl,
                    url2: location.protocol + "//webzj.reg.163.com/webapp/res/statichtml/third.html?backurl=" + e.backurl
                };
                if ("alipay" == e.name) i = {
                    redirect_error: location.protocol + "//webzj.reg.163.com/webapp/res/statichtml/third.html?backurl=" + e.backurl,
                    redirect_url: location.protocol + "//webzj.reg.163.com/webapp/res/statichtml/third.html?backurl=" + e.backurl
                }
            } else if ("alipay" == e.name) i = {
                redirect_error: location.protocol + "//webzj.reg.163.com/webapp/res/statichtml/third.html",
                redirect_url: location.protocol + "//webzj.reg.163.com/webapp/res/statichtml/third.html"
            };
            if (0 == e.url.indexOf("//")) e.url = location.protocol + e.url;
            e.url += "&" + n._$object2query(i)
        });
        return e
    };
    _._$doThirdLogin = function(e) {
        var n = i._$getElement(e),
        s = t._$dataset(n, "link"),
        r = t._$dataset(n, "width"),
        a = t._$dataset(n, "height");
        if (s) {
            var o = r || 514;
            var c = a || 764;
            var d = (window.screen.availHeight - 30 - o) / 2;
            var f = (window.screen.availWidth - 10 - c) / 2;
            if (_._$notURL(s)) s = "";
            if (window.URSCONFIG.openSelf) {
                i._$stop(e);
                location.href = s
            } else window.open(s, "thirdLogin", "height=" + o + ",width=" + c + ",top=" + d + ",left=" + f + ",toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no")
        }
    };
    _._$checkPwd = function() {
        var e = function(e) {
            var t = e.charAt(0),
            i = !0;
            for (var n = 1,
            s = e.length; n < s; n++) if (t !== e.charAt(n)) {
                i = !1;
                break
            }
            return i
        };
        var t = function(e) {
            var t = ["123456", "123456789", "12345678", "123123", "5201314", "1234567", "7758521", "654321", "1314520", "123321", "1234567890", "147258369", "123654", "5211314", "woaini", "1230123", "987654321", "147258", "123123123", "7758258", "520520", "789456", "456789", "159357", "112233", "1314521", "456123", "110110", "521521", "zxcvbnm", "789456123", "0123456789", "0123456", "123465", "159753", "qwertyuiop", "987654", "115415", "1234560", "123000", "123789", "100200", "963852741", "121212", "111222", "123654789", "12301230", "456456", "741852963", "asdasd", "asdfghjkl", "369258", "863786", "258369", "8718693", "666888", "5845201314", "741852", "168168", "iloveyou", "852963", "4655321", "102030", "147852369", "321321"];
            var i = !1;
            for (var n = 0,
            s = t.length; n < s; n++) if (t[n] === e) {
                i = !0;
                break
            }
            return i
        };
        var i = function(e, t) {
            var i = t.substr(0, t.indexOf("@")) || t;
            return e === i || e === t
        };
        var n = function(e) {
            return /[^\x21-\x7E]/g.test(e)
        };
        return function(s, r) {
            var a = s.length,
            c;
            if (a < 6 || a > 16) c = o.CHECK_PASSWORD_LENGTH;
            else if (e(s) || t(s) || /^\d{1,9}$/.test(s)) c = o.CHECK_PASSWORD_SIMPLE;
            else if (i(s, r)) c = o.CHECK_PASSWORD_EQUAL;
            else if (n(s)) c = o.CHECK_PASSWORD_CHARCODE255;
            return c
        }
    } ();
    _.__sendClose = function() {
        var e = {
            type: "close"
        };
        e["URS-CM"] = 1;
        _._$postMessage("_parent", {
            data: e
        })
    };
    _._$getErrorTxt = function(e) {
        if (!e) return "检测出非法请求，为了您的帐号安全，请您稍后再试。";
        e = e.toString();
        if (e.indexOf("601") > -1) return _._$setOutLogin();
        if ("433" == e) return "系统繁忙，请刷新页面重试";
        if (0 === e.indexOf("5")) return "服务器内部错误，请您稍后再试";
        else if (0 === e.indexOf("4")) return "请求错误，请您稍后再试";
        else return "请求错误，请您稍后再试"
    };
    _._$setOutLogin = function() {
        var e = function(e, t, i) {
            return (i ? "?": "&") + e + "=" + encodeURIComponent(t)
        };
        return function(t) {
            var i = window.$loginOpts.promark + +new Date;
            var n = window.$loginOpts.product || "";
            var s = window.$loginOpts.promark || "";
            var r = window.$loginOpts.mbNeedItl || "";
            var a = window.$loginOpts.domains || "";
            var o = window.$loginOpts.cookieDomain || "";
            var c = window.$loginOpts.prdomain || "";
            var _ = window.$loginOpts.needMobileLogin || "";
            var d = window.$loginOpts.mobileFirst || "";
            var f = window.$loginOpts.noqr || "";
            var h = window.$loginOpts.smsLoginFirst || "";
            var l = window.$loginOpts.toolName || "";
            var u = window.$loginOpts.toolUrl || "";
            var p = window.$loginOpts.needQrLogin || "";
            var m = location.protocol;
            var g = "";
            if (window.$loginOpts.uniteLogin) g = JSON.stringify(window.$loginOpts.uniteLogin);
            var v = m + "//webzj.reg.163.com/safelogin.html" + e("loginKey", i, 1) + e("domains", a) + e("prdomain", c) + e("cookieDomain", o) + e("needMobileLogin", _) + e("mobileFirst", d) + e("noqr", f) + e("smsLoginFirst", h) + e("toolName", l) + e("toolUrl", u) + e("needQrLogin", p) + e("promark", s) + e("product", n) + e("mbNeedItl", r) + e("uniteLogin", g);
            var $ = '<strong class="msg"><span style="color:#000;">您的帐号存在风险，</span><a style="color:red;font-size:14px;text-decoration:underline;font-weight:bolder;" target="_blank" href=' + v + ">点此进行安全登录</a></strong>";
            if (t) b(0, $, "nerror");
            return $
        }
    } ();
    _._$addPathB = function(e) {
        if (window._$pathB) e = e.replace(/:\/\/(?:[^\/]+)/,
        function(e) {
            return e + "/b"
        });
        return e
    };
    _._$3pSuccess = function(e) {
        e["URS-CM"] = 1;
        e["type"] = "otherRegSuccess";
        _._$postMessage("_parent", {
            data: e
        })
    };
    _._$configLog = function(e) {
        var t = document.createElement("img"),
        i = e.topURL || "",
        s;
        s = n._$merge({},
        e,
        function(e, t) {
            return "style" == t
        });
        s = JSON.stringify(s);
        s = encodeURIComponent(s);
        t.src = "//webzj.reg.163.com/UA1435545636633/__utm.gif?configlog=1&from=" + i + "&config=" + s
    };
    _._$HtmlEncode = function(e) {
        function t(e) {
            var t = !0;
            var n = e.charCodeAt(0);
            switch (n) {
            case 10:
                return "<br/>";
            case 32:
                return "&nbsp;";
            case 34:
                return "&quot;";
            case 38:
                return "&amp;";
            case 39:
                return "&#x27;";
            case 47:
                return "&#x2F;";
            case 60:
                return "&lt;";
            case 62:
                return "&gt;";
            case 198:
                return "&AElig;";
            case 193:
                return "&Aacute;";
            case 194:
                return "&Acirc;";
            case 192:
                return "&Agrave;";
            case 197:
                return "&Aring;";
            case 195:
                return "&Atilde;";
            case 196:
                return "&Auml;";
            case 199:
                return "&Ccedil;";
            case 208:
                return "&ETH;";
            case 201:
                return "&Eacute;";
            case 202:
                return "&Ecirc;";
            case 200:
                return "&Egrave;";
            case 203:
                return "&Euml;";
            case 205:
                return "&Iacute;";
            case 206:
                return "&Icirc;";
            case 204:
                return "&Igrave;";
            case 207:
                return "&Iuml;";
            case 209:
                return "&Ntilde;";
            case 211:
                return "&Oacute;";
            case 212:
                return "&Ocirc;";
            case 210:
                return "&Ograve;";
            case 216:
                return "&Oslash;";
            case 213:
                return "&Otilde;";
            case 214:
                return "&Ouml;";
            case 222:
                return "&THORN;";
            case 218:
                return "&Uacute;";
            case 219:
                return "&Ucirc;";
            case 217:
                return "&Ugrave;";
            case 220:
                return "&Uuml;";
            case 221:
                return "&Yacute;";
            case 225:
                return "&aacute;";
            case 226:
                return "&acirc;";
            case 230:
                return "&aelig;";
            case 224:
                return "&agrave;";
            case 229:
                return "&aring;";
            case 227:
                return "&atilde;";
            case 228:
                return "&auml;";
            case 231:
                return "&ccedil;";
            case 233:
                return "&eacute;";
            case 234:
                return "&ecirc;";
            case 232:
                return "&egrave;";
            case 240:
                return "&eth;";
            case 235:
                return "&euml;";
            case 237:
                return "&iacute;";
            case 238:
                return "&icirc;";
            case 236:
                return "&igrave;";
            case 239:
                return "&iuml;";
            case 241:
                return "&ntilde;";
            case 243:
                return "&oacute;";
            case 244:
                return "&ocirc;";
            case 242:
                return "&ograve;";
            case 248:
                return "&oslash;";
            case 245:
                return "&otilde;";
            case 246:
                return "&ouml;";
            case 223:
                return "&szlig;";
            case 254:
                return "&thorn;";
            case 250:
                return "&uacute;";
            case 251:
                return "&ucirc;";
            case 249:
                return "&ugrave;";
            case 252:
                return "&uuml;";
            case 253:
                return "&yacute;";
            case 255:
                return "&yuml;";
            case 162:
                return "&cent;";
            case "\r":
                break;
            default:
                t = !1
            }
            if (!t) if (n > 127) {
                var s = n;
                var r = s % 16;
                s = Math.floor(s / 16);
                var a = s % 16;
                s = Math.floor(s / 16);
                var o = s % 16;
                s = Math.floor(s / 16);
                var c = s % 16;
                return "&#x" + i[c] + i[o] + i[a] + i[r] + ";"
            } else return e
        }
        var i = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");
        var n = e;
        var s = "";
        for (var r = 0; r < n.length; r++) {
            var a = n.charAt(r);
            s += t(a)
        }
        return s
    };
    _._$notURL = function(e) {
        return ! /^http[s]?:/i.test(e) && !/^\/\//.test(e);
    };
    _._$isEleven = function(e) {
        return l.eleven.test(e)
    };
    _._$isHaomaEmail = function(e) {
        return l.haomaEmail.test(e)
    };
    _._$doProxyLink = function(e) {
        var t, n = i._$getElement(e) || "";
        if (window.URSCONFIG.openSelf) if ("_blank" == n.target) if ("A" == n.tagName.toUpperCase()) {
            t = n.href;
            if (!_._$notURL(t)) {
                i._$stop(e);
                location.href = t
            }
        }
    };
    _._$getDlapp = function() {
        return '<span style="color:#000;">使用</span><a target="_blank" href="https://id.163.com/gj/?from=webzj_cw">网易帐号管家</a>，<span style="color:#000;">全面保护您的帐号！</span>'
    };
    _._$emailFilter = function(e) {
        e = e || "";
        return e.replace(/[\u202d|\u202c]/g, "")
    };
    return _
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "83c67d5b20eeffc1f687e113ae22189f", "605054bf841321ed40d652370c40f4e5", "4e3477f1faad0e644cf31bd4765e12dc", "2340de615bb0be83782615b5be9a7ef8", "5b4d28fde6c5928be8e3c7014b09da77");
I$("4dadb2ee6ba889b538cf0977b4b3cad0",
function(e, t, i, n, s, r, a, o, c, _) {
    var d = "dl.reg.163.com",
    f = "zc.reg.163.com";
    var h = {
        "/l": {
            name: "/l",
            201 : {
                ret: "201",
                message: "登录成功"
            },
            401 : {
                ret: "401",
                message: "参数错误"
            },
            402 : {
                ret: "402",
                message: "指纹错误"
            },
            423 : {
                ret: "423",
                message: "风控帐号"
            }
        },
        "/lpwd": {
            name: "/lpwd",
            201 : {
                ret: "201",
                message: "登录成功"
            }
        },
        "/lvfsms": {
            name: "/lvfsms",
            201 : {
                ret: "201",
                message: "登录成功"
            }
        }
    };
    a._$request = function() {
        var e = function(e, t) {
            if (h[e]) {
                var i = {
                    data: {}
                };
                var n = t.ret || -1;
                i.data["URS-CM"] = 1;
                i.data["URS-CM-STATE"] = h[e][n] || {
                    ret: -1
                };
                if (t.unprotectedGuide) h[e][n].unprotectedGuide = 1;
                i.data["URS-CM-STATENAME"] = h[e].name;
                r._$postMessage("_parent", i)
            }
        };
        return function(t, i, n, s, a) {
            var o = d;
            var c = f;
            var _;
            if (window["$cookieDomain"]) if (window["$cookieDomain"].indexOf("icourse163.org") >= 0) o = "reg." + window["$cookieDomain"] + "/dl";
            else o = "passport." + window["$cookieDomain"] + "/dl";
            if (window["$regCookieDomain"]) if (window["$regCookieDomain"].indexOf("icourse163.org") >= 0) c = "reg." + window["$regCookieDomain"] + "/zc";
            else c = "passport." + window["$regCookieDomain"] + "/zc";
            if (t.indexOf("mb-") > -1) {
                o += "/yd";
                c += "/yd"
            }
            if (a) _ = o;
            else _ = c;
            MP[t](i,
            function(t, i) {
                e(t, i);
                n(i)
            },
            function(t, i) {
                e(t, i);
                if ("601" == i.ret) r._$setOutLogin(1);
                s(i)
            },
            _)
        }
    } ();
    return a
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "0ce1cf574f7be23168d864b3fb81d053", "46f2cd0a022c7fb344095e1795b5927b", "4e3477f1faad0e644cf31bd4765e12dc", "0d434f17f93250948578c8948f9f01bf");
I$("df9d93a61ae210b34038e92b4416342a",
function(e, t, i, n, s, r, a, o, c, _) {
    var d;
    a._$$Abstract = t._$klass();
    d = a._$$Abstract._$extend(s._$$EventTarget);
    d.__init = function() {
        this.__super();
        i._$dumpCSSText();
        this.__initXGui();
        this.__initNode()
    };
    d.__reset = function(e) {
        this.__super(e);
        this.__doInitClass(e.clazz);
        this._$appendTo(e.parent)
    };
    d.__destroy = function() {
        this.__super();
        this.__doDelParentClass();
        delete this.__parent;
        i._$removeByEC(this.__body);
        i._$delClassName(this.__body, this.__class);
        delete this.__class
    };
    d.__initXGui = c;
    d.__initNode = function() {
        if (!this.__seed_html) this.__initNodeTemplate();
        this.__body = r._$getNodeTemplate(this.__seed_html);
        if (!this.__body) this.__body = i._$create("div", this.__seed_css);
        i._$addClassName(this.__body, this.__seed_css)
    };
    d.__initNodeTemplate = c;
    d.__doInitClass = function(e) {
        this.__class = e || "";
        i._$addClassName(this.__body, this.__class)
    };
    d.__doAddParentClass = function() {
        if (this.__seed_css) {
            var e = this.__seed_css.split(/\s+/);
            i._$addClassName(this.__parent, e.pop() + "-parent")
        }
    };
    d.__doDelParentClass = function() {
        if (this.__seed_css) {
            var e = this.__seed_css.split(/\s+/);
            i._$delClassName(this.__parent, e.pop() + "-parent")
        }
    };
    d._$getBody = function() {
        return this.__body
    };
    d._$appendTo = function(e) {
        if (this.__body) {
            this.__doDelParentClass();
            if (n._$isFunction(e)) this.__parent = e(this.__body);
            else {
                this.__parent = i._$get(e);
                if (this.__parent) this.__parent.appendChild(this.__body)
            }
            this.__doAddParentClass()
        }
    };
    d._$show = function() {
        if (this.__parent && this.__body && this.__body.parentNode != this.__parent) this.__parent.appendChild(this.__body)
    };
    d._$hide = function() {
        i._$removeByEC(this.__body)
    };
    if (!0) e.copy(e.P("nej.ui"), a);
    return a
},
"eddda1e8e7971753192ee8d61ef1680e", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f", "b07a20e1d9be763162954dd0fcf2feb3");
I$("24009e123f5588d3e0d561f49177981a",
function(e, t, i, n) {
    var s = {
        404 : "网络异常，请刷新页面重试",
        "-1": "网络不好，请刷新页面重试",
        "-2": "网络不好，请刷新页面重试",
        0 : "网络不好，请刷新页面重试",
        161 : "该帐号不是网易靓号，此处仅支持网易靓号登录",
        401 : "操作超时，请刷新页面重试",
        40110 : "帐号格式错误",
        405 : "本次登录存在异常，请刷新重试或更换浏览器",
        402 : "当前网络异常，请检查您的网络环境",
        403 : "当前网络环境不安全，请稍后再试!",
        410 : "超过IP限制，请稍后再试",
        433 : "系统繁忙，请刷新页面重试",
        441 : "请输入图片验证码",
        444 : "请滑动验证码",
        445 : "请点击验证码",
        411 : "IP一分钟内登录不存在的用户达到限制，5分钟后再试",
        413 : "帐号或密码错误",
        "412-01": "您登录错误次数过多，请稍后再试",
        "412-02": "您登录错误次数过多，请明天再试",
        "413-01": "您登录错误密码次数过多，请稍后再试",
        "413-02": "您登录错误密码次数过多，请明天再试",
        "413-03": "您的IP登录错误密码次数过多，请稍后再试",
        "414-01": "您的IP登录错误次数过多，请稍后再试",
        "414-02": "您的IP登录错误次数过多，请明天再试",
        416 : "您的IP登录过于频繁,请稍后再试",
        "417-01": "您的IP登录成功次数过多，请稍后再试",
        "417-02": "您的IP登录成功次数过多，请明天再试",
        "418-01": "您登录成功次数过多,请稍后再试",
        "418-02": "您登录成功次数过多,请明天再试",
        "419-01": "您登录过于频繁,请稍后再试",
        "419-02": "您的IP登录过于频繁,请稍后再试",
        422 : '该帐号已被锁定，请使用<a target="_blank" href="https://id.163.com/gj/?from=webzj" style="color:#4aafe9;text-decoration:underline;">网易帐号管家</a>解锁，或24小时后再试。如为被盗，申请<a target="_blank" href="https://mima.163.com/nie/" style="color:#4aafe9;text-decoration:underline;">帐号申诉</a>。',
        420 : "帐号不存在",
        424 : '该靓号服务已到期，<a target="_blank" href="//haoma.163.com/pay/pay.do?ayRenew=1">点击续费</a>，更多精彩',
        425 : '该帐号尚未激活，请到已注册的邮箱<a target="_blank" href="#">激活帐号</a>',
        426 : "该帐号未及时激活，请重新注册",
        442 : "请输入正确的验证码",
        443 : "请输入正确的短信验证码",
        409 : "您登录过于频繁,请稍后再试",
        500 : "系统繁忙，请您稍后再试",
        503 : "服务器繁忙，请稍后再试",
        505 : "次数超限，请稍后再试",
        602 : '邮箱服务已到期，<a target="_blank" href="//vpay.vip.163.com/vippayunion/index.html" style="color:#4aafe9;text-decoration:underline;">点击续费</a>，更多精彩',
        431 : "请求错误，请您稍后再试",
        434 : "您验证错误次数过多，请稍后再试",
        435 : "您验证错误次数过多，请改天再试",
        436 : "您验证错误次数过多，请稍后再试",
        437 : "您验证错误次数过多，请改天再试",
        430 : "此次登录不需要进行密保验证",
        453 : "帐号未关联手机号",
        454 : "帐号关联手机未验证"
    };
    return s
});
I$("6205908130ee8e8e989660217dba1dd4",
function(e, t, i, n, s, r, a, o, c, _, d) {
    var f;
    o._$$Module = e._$klass();
    f = o._$$Module._$extend(s._$$Abstract);
    f.__init = function(e) {
        this.__super(e)
    };
    f.__reset = function(e) {
        this.__super(e);
        this.__initForm();
        this.__initEvent();
        this.__states = {};
        if (!e.errMsg) this._$clearState()
    };
    f.__destroy = function() {
        this.__super();
        n._$forEach(this.__ipts,
        function(e) {
            e = e._$recycle()
        })
    };
    f.__initNode = function() {
        this.__super()
    };
    f.__initCallback = function() {};
    f.__initErrorHandler = function() {};
    f.__setPlaceHolder = function() {
        if (this.__placeholder && !this.__placeholder2) {
            if (this.__placeholder.account) {
                var e = t._$getByClassName(this.__body, "u-input")[0];
                t._$getByClassName(e, "u-label")[0].innerHTML = r._$HtmlEncode(this.__placeholder.account);
                var i = t._$getByClassName(e, "j-inputtext")[0];
                t._$dataset(i, "placeholder", this.__placeholder.account)
            }
            if (this.__placeholder.pwd) {
                var n = t._$getByClassName(this.__body, "u-input")[1];
                t._$getByClassName(n, "u-label")[0].innerHTML = r._$HtmlEncode(this.__placeholder.pwd);
                var s = t._$getByClassName(n, "j-inputtext")[0];
                t._$dataset(s, "placeholder", this.__placeholder.pwd)
            }
            this.__placeholder2 = 1
        }
    };
    f._$stateOK = function(e) {
        this.__form._$checkValidity(null, 1);
        setTimeout(function() {
            var t = 1,
            i = "",
            s = ["email", "password", "tcheckcode", "slidecap"];
            if (void 0 != typeof this.__states["checkcode"]) this.__states["tcheckcode"] = this.__states["checkcode"];
            n._$forEach(s,
            function(e) {
                if (1 == this.__states[e]) if (!i) {
                    t = 0;
                    i = e
                }
            }._$bind(this));
            e(t, i)
        }._$bind(this), 400)
    };
    f._$getValues = function() {
        var e = [];
        n._$forEach(this.__inputs,
        function(t) {
            var i = t.value;
            e.push(i)
        });
        return e
    };
    f._$clearState = function() {
        if (this._$hideCheckCode);
        n._$reverseEach(this.__ipts,
        function(e, t) {
            var i = t ? 0 : 1;
            e._$onClear(i)
        }._$bind(this));
        this.__initError()
    };
    f.__initError = function() {
        var e = t._$get("nerror");
        e.innerHTML = "";
        var i = t._$getByClassName(document, "error-color");
        for (var n = 0; n < i.length; n++) t._$delClassName(i[n], "error-color")
    };
    f.__setSlideSuc = function() {
        var e = t._$getByClassName(document, "ncpt_txt_status")[0];
        if (e) {
            e.style.display = "block";
            e.innerHTML = '<div class="u-success u-suc"></div>'
        }
        e.className = "ncpt_txt_status TxtStatus statusTxt";
        this.__states["slidecap"] = 0
    };
    f.__cbVftcp = function(e) {
        this.__clearSlideErr();
        this.__slideCapLock = 0;
        this.__setSlideSuc();
        this.__checkNextBtn();
        if (e) this._$dispatchEvent("onSlideOk")
    };
    f.__unLockLogin = function() {
        this._$dispatchEvent("onUnLockLogin")
    };
    f.__cbVftcpEx = function(e) {
        var t, i;
        this.__slideCapLock = 0;
        this.__unLockLogin();
        if (e) {
            t = e.ret;
            if ("441" == t) {
                this.__needSlideCap = 0;
                this.__needCheckCode = 1;
                this._$refreshCheckCode(t, 1);
                i = a[t];
                r._$showError({
                    name: "checkcode"
                },
                i, "nerror")
            } else if ("444" == t || "445" == t) {
                this.__needSlideCap = 1;
                this.__needCheckCode = 0;
                this._$refreshCheckCode(t, 1);
                r._$showError({
                    name: "slide"
                },
                this.__slideTxt, "nerror")
            } else {
                i = a[t];
                r._$showError({
                    name: "slide"
                },
                i, "nerror");
                this._$getSlideCap(1)
            }
        } else r._$showError({
            name: "slide"
        },
        this.__slideTxt, "nerror")
    };
    f.__slidebarover = function() {
        if (this.__sdot) this.__sdot = clearTimeout(this.__sdot);
        this.__sdov = setTimeout(function() {
            this.__slideCapBox.style.zIndex = "501"
        }._$bind(this), 100)
    };
    f.__slidebarout = function() {
        if (this.__sdov) this.__sdov = clearTimeout(this.__sdov);
        this.__sdot = setTimeout(function() {
            this.__slideCapBox.style.zIndex = "19"
        }._$bind(this), 100)
    };
    f.__clearSlideErr = function() {
        r._$removeError({
            name: "slide"
        },
        "nerror")
    };
    f.__vSlide = function() {
        if (!this.__myCaptcha) return 1;
        var e = this.__myCaptcha.getPwd() || "";
        if ("" == e || "LG42Dm53vsrZmrXdZ6buHUVNfQcsLzql1gV7HFhl5yZzlILOJmPEY+r+vJComfirFG2deb709GYQQIob6ke6c31j6W+FKrE6QEghCshv5Kc=" == e) return 1;
        else return 0
    };
    f._$getSlideCap = function(e) {
        this.__slideOpt.captchaType = this.__slideTarget;
        this.__slideOpt.element = t._$get("ScapTcha");
        if (e) {
            if (window._$needUrsBgp && window._$BGP) {
                this.__slideOpt.apiServer = "captcha2.reg.163.com/v2";
                this.__slideOpt.staticServer = "captcha2.reg.163.com/v2"
            }
        } else if (window._$needUrsBgp && window._$BGPZC) {
            this.__slideOpt.apiServer = "captcha2.reg.163.com/v2";
            this.__slideOpt.staticServer = "captcha2.reg.163.com/v2"
        }
        this.__slideOpt.showDelay = 300;
        var n = t._$getChildren(this.__slideOpt.element);
        if (this.__myCaptcha && n.length && n.length > 0) this.__myCaptcha.refresh(this.__slideOpt);
        else this.__myCaptcha = new window.NECaptcha(this.__slideOpt);
        setTimeout(function() {
            i._$addEvent(this.__slideCapBox, "mouseout", this.__slidebarout._$bind(this));
            i._$addEvent(this.__slideCapBox, "mouseover", this.__slidebarover._$bind(this))
        }._$bind(this), 300)
    };
    f._$refreshCheckCode = function(e, t) {
        if (this.__needSlideCap) this._$showSlideCode(e, t);
        else if (this.__needCheckCode) this._$showCheckCode()
    };
    f._$hasCheckCode = function() {
        return this.__needCheckCode || this.__needSlideCap
    };
    f._$showSlideCode = function(e, i) {
        if ("444" == e || "109" == e) {
            this.__cf = 4;
            this.__slideTarget = 2;
            this.__slideTxt = "请滑动验证码"
        } else {
            this.__cf = 5;
            this.__slideTarget = 3;
            this.__slideTxt = "请点击验证码"
        }
        this._$hideCheckCode();
        this.__needSlideCap = 1;
        this.__states["slidecap"] = 1;
        t._$delClassName(this.__slideCapBox, "f-dn");
        this.__slideLock = 0;
        this._$getSlideCap(i);
        this._$dispatchEvent("ondisabled", 1);
        this.__checkNextBtn();
        var n = t._$get("cnt-box-parent");
        t._$addClassName(n, "hascheckcode");
        setTimeout(function() {
            r._$resize()
        },
        200)
    };
    f._$hideCheckCode = function() {
        this.__states["checkcode"] = 0;
        this.__states["slidecap"] = 0;
        this.__needSlideCap = 0;
        this.__needCheckCode = 0;
        t._$addClassName(this.__checkCode, "f-dn");
        t._$addClassName(this.__slideCapBox, "f-dn");
        r._$resize()
    };
    return o
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "df9d93a61ae210b34038e92b4416342a", "0d434f17f93250948578c8948f9f01bf", "24009e123f5588d3e0d561f49177981a");
I$("45f6e409ee61dceaf75ba5a4ba67e5aa",
function(e, t, i, n, s, r) {
    i.__focusElement = function() {
        var i = function(i, n) {
            var s = e._$getElement(n);
            if (!s.value) t._$delClassName(s, i)
        };
        var n = function(i, n) {
            t._$addClassName(e._$getElement(n), i)
        };
        return function(t, s, r) {
            if (1 == s) e._$addEvent(t, "blur", i._$bind(null, r));
            if (1 == s || s == -1) e._$addEvent(t, "focus", n._$bind(null, r))
        }
    } ();
    return i
},
"a0c610891b37112b33fc6ca301b06e01", "d73a726efb8534e8d72defb6cd280a1c");
I$("7a8319dbbfec9e4cd71f5bc848f5824a",
function(e, t, i, n, s, r, a, o) {
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release <= "3.0") I$(24,
    function() {
        t.__focusElement = function() {
            var e = function(e, t) {
                n._$delClassName(i._$getElement(t), e)
            };
            return t.__focusElement._$aop(function(t) {
                var n = t.args;
                if (1 != n[1]) {
                    i._$addEvent(n[0], "blur", e._$bind(null, n[2]));
                    n[1] = -1
                }
            })
        } ()
    });
    return t
},
"605054bf841321ed40d652370c40f4e5", "45f6e409ee61dceaf75ba5a4ba67e5aa", "a0c610891b37112b33fc6ca301b06e01", "d73a726efb8534e8d72defb6cd280a1c");
I$("49caaf241a65de254475494142fe0209",
function(e, t, i, n, s, r, a, o, c) {
    r._$focus = function(e, s) {
        e = i._$get(e);
        if (e) {
            var r = 0,
            a = "js-focus";
            if (t._$isNumber(s)) r = s;
            else if (t._$isString(s)) a = s;
            else if (t._$isObject(s)) {
                r = s.mode || r;
                a = s.clazz || a
            }
            var o = parseInt(i._$dataset(e, "mode"));
            if (!isNaN(o)) r = o;
            o = i._$dataset(e, "focus");
            if (o) a = o;
            n.__focusElement(e, r, a)
        }
    };
    s._$merge(r);
    if (!0) e.copy(e.P("nej.e"), r);
    return r
},
"eddda1e8e7971753192ee8d61ef1680e", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "7a8319dbbfec9e4cd71f5bc848f5824a", "4ff36f93915f61da99a05f35c5dcc945");
I$("05facfa96301f752e7608c015b924039",
function(e) {
    e.__length = function() {
        var e = /(\r\n|\r|\n)/g;
        return function(t) {
            return (t || "").replace(e, "**").length
        }
    } ();
    return e
},
"605054bf841321ed40d652370c40f4e5");
I$("53f1f9276a97fd8314a640fa09d0be4a",
function(e, t) {
    if ("trident" === e._$KERNEL.engine) I$(23,
    function() {
        t.__length = function() {
            return (_event.args[0] || "").length
        }
    });
    return t
},
"605054bf841321ed40d652370c40f4e5", "05facfa96301f752e7608c015b924039");
I$("857bde8fed84ae23f8a546bfd38c06cd",
function(e, t, i, n, s, r, a, o, c, _) {
    a._$counter = function() {
        var e = /[\r\n]/gi,
        s = {};
        var a = function(e) {
            return r.__length(e)
        };
        var o = function(e) {
            var i = s[e],
            n = t._$get(e),
            r = t._$get(i.xid);
            if (n && i) {
                var a = {
                    input: n.value
                };
                a.length = i.onlength(a.input);
                a.delta = i.max - a.length;
                i.onchange(a);
                r.innerHTML = a.value || "剩余" + Math.max(0, a.delta) + "个字"
            }
        };
        return function(e, r) {
            var _ = t._$id(e);
            if (_ && !s[_]) {
                var d = n._$merge({},
                r);
                d.onchange = d.onchange || c;
                d.onlength = a;
                if (!d.max) {
                    var f = parseInt(t._$attr(_, "maxlength")),
                    h = parseInt(t._$dataset(_, "maxLength"));
                    d.max = f || h || 100;
                    if (!f && h) d.onlength = n._$length
                }
                s[_] = d;
                i._$addEvent(_, "input", o._$bind(null, _));
                var l = t._$wrapInline(_, {
                    nid: d.nid || "js-counter",
                    clazz: d.clazz
                });
                d.xid = t._$id(l);
                o(_)
            }
        }
    } ();
    s._$merge(a);
    if (!0) e.copy(e.P("nej.e"), a);
    return a
},
"eddda1e8e7971753192ee8d61ef1680e", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "4ff36f93915f61da99a05f35c5dcc945", "53f1f9276a97fd8314a640fa09d0be4a");
I$("a54ea0db5168e10f267d4b6527c4ef6f",
function(e, t, i, n) {
    e.__setPlaceholder = function(e, t) {};
    return e
});
I$("b772706f9d81f1cf77cb59230482cab8",
function(e, t, i, n, s, r, a, o, c) {
    if ("trident" === e._$KERNEL.engine && e._$KERNEL.release <= "5.0") I$(22,
    function() {
        s.__setPlaceholder = function() {
            var e = {},
            s = {
                nid: "j-holder-" + n._$uniqueID()
            };
            var r = function(i) {
                var n = t._$get(i);
                e[i] = 2;
                if (!n.value) t._$setStyle(t._$wrapInline(n, s), "display", "none")
            };
            var a = function(i) {
                var n = t._$get(i);
                e[i] = 1;
                if (!n.value) t._$setStyle(t._$wrapInline(n, s), "display", "")
            };
            var o = function(i) {
                var n = t._$get(i);
                if (2 != e[i]) t._$setStyle(t._$wrapInline(n, s), "display", !n.value ? "": "none")
            };
            var c = function(e, i) {
                var n = t._$id(e),
                r = t._$wrapInline(e, {
                    tag: "label",
                    clazz: i,
                    nid: s.nid
                });
                r.htmlFor = n;
                var a = t._$attr(e, "placeholder") || "";
                r.innerText = "null" == a ? "": a;
                var o = e.offsetHeight + "px";
                t._$style(r, {
                    left: 0,
                    display: !e.value ? "": "none"
                })
            };
            return function(t, n) {
                if (null == e[t.id]) {
                    c(t, n);
                    var s = t.id;
                    e[s] = 1;
                    i._$addEvent(t, "blur", a._$bind(null, s));
                    i._$addEvent(t, "focus", r._$bind(null, s));
                    i._$addEvent(t, "input", o._$bind(null, s))
                }
            }
        } ()
    });
    return s
},
"605054bf841321ed40d652370c40f4e5", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "a54ea0db5168e10f267d4b6527c4ef6f");
I$("b2d90dfd90e068c2898cdf37d2fa2835",
function(e, t, i, n, s, r, a, o) {
    s._$placeholder = function(e, i) {
        e = t._$get(e);
        n.__setPlaceholder(e, t._$dataset(e, "holder") || i || "js-placeholder")
    };
    i._$merge(s);
    if (!0) e.copy(e.P("nej.e"), s);
    return s
},
"eddda1e8e7971753192ee8d61ef1680e", "d73a726efb8534e8d72defb6cd280a1c", "4ff36f93915f61da99a05f35c5dcc945", "b772706f9d81f1cf77cb59230482cab8");
I$("e5feb2c30314dfb26cc8c0ea91b51d97",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l) {
    _._$$WebForm = t._$klass();
    l = _._$$WebForm._$extend(r._$$EventTarget);
    l.__init = function() {
        this.__super();
        this.__wopt = {
            tp: {
                nid: "js-nej-tp"
            },
            ok: {
                nid: "js-nej-ok"
            },
            er: {
                nid: "js-nej-er"
            }
        }
    };
    l.__reset = function(e) {
        this.__super(e);
        this.__form = document.forms[e.form] || i._$get(e.form);
        this.__doInitDomEvent([[this.__form, "enter", this._$dispatchEvent._$bind(this, "onenter")]]);
        this.__message = e.message || {};
        this.__message.pass = this.__message.pass || "&nbsp;";
        var t = this.__dataset(this.__form, "focusMode", 1);
        if (!isNaN(t)) this.__fopt = {
            mode: t,
            clazz: e.focus
        };
        this.__holder = e.holder;
        this.__wopt.tp.clazz = "js-mhd " + (e.tip || "js-tip");
        this.__wopt.ok.clazz = "js-mhd " + (e.pass || "js-pass");
        this.__wopt.er.clazz = "js-mhd " + (e.error || "js-error");
        this.__invalid = e.invalid || "js-invalid";
        this.__doInitValidRule(e);
        this._$refresh();
        if (this.__fnode) this.__fnode.focus()
    };
    l.__destroy = function() {
        this.__super();
        this._$reset();
        delete this.__message;
        delete this.__fnode;
        delete this.__vinfo;
        delete this.__xattr;
        delete this.__form;
        delete this.__treg;
        delete this.__vfun
    };
    l.__dataset = function(e, t, n) {
        var s = i._$dataset(e, t);
        switch (n) {
        case 1:
            return parseInt(s, 10);
        case 2:
            return "true" == (s || "").toLowerCase();
        case 3:
            return this.__doParseDate(s)
        }
        return s
    };
    l.__number = function(e, t, i) {
        if ("date" == t) return this.__doParseDate(e, i);
        else return parseInt(e, 10)
    };
    l.__isValidElement = function() {
        var e = /^button|submit|reset|image|hidden|file$/i;
        return function(t) {
            t = this._$get(t) || t;
            var i = t.type;
            return !! t.name && !e.test(t.type || "")
        }
    } ();
    l.__isValueElement = function() {
        var e = /^hidden$/i;
        return function(t) {
            if (this.__isValidElement(t)) return ! 0;
            t = this._$get(t) || t;
            var i = t.type || "";
            return e.test(i)
        }
    } ();
    l.__doParseDate = function() {
        var e = /[:\.]/;
        return function(t, i) {
            if ("now" == (t || "").toLowerCase()) return + new Date;
            var n = s._$var2date(t);
            if (n && !e.test(t)) {
                var r = (i || "").split(e);
                n.setHours(parseInt(r[0], 10) || 0, parseInt(r[1], 10) || 0, parseInt(r[2], 10) || 0, parseInt(r[3], 10) || 0)
            }
            return + n
        }
    } ();
    l.__doCheckString = function(e, t) {
        var i = this.__vfun[t],
        n = this.__dataset(e, t);
        if (n && i) {
            this.__doPushValidRule(e, i);
            this.__doSaveValidInfo(e, t, n)
        }
    };
    l.__doCheckPattern = function(e, t) {
        try {
            var i = this.__dataset(e, t);
            if (!i) return;
            var n = new RegExp(i);
            this.__doSaveValidInfo(e, t, n);
            this.__doPushValidRule(e, this.__vfun[t])
        } catch(s) {}
    };
    l.__doCheckBoolean = function(e, t) {
        var i = this.__vfun[t];
        if (i && this.__dataset(e, t, 2)) this.__doPushValidRule(e, i)
    };
    l.__doCheckNumber = function(e, t, i) {
        i = parseInt(i, 10);
        if (!isNaN(i)) {
            this.__doSaveValidInfo(e, t, i);
            this.__doPushValidRule(e, this.__vfun[t])
        }
    };
    l.__doCheckDSNumber = function(e, t) {
        this.__doCheckNumber(e, t, this.__dataset(e, t))
    };
    l.__doCheckATNumber = function(e, t) {
        this.__doCheckNumber(e, t, i._$attr(e, t))
    };
    l.__doCheckTPNumber = function(e, t, i) {
        var n = this.__number(this.__dataset(e, t), this.__dataset(e, "type"));
        this.__doCheckNumber(e, t, n)
    };
    l.__doCheckCustomAttr = function(e) {
        s._$loop(this.__xattr,
        function(t, n) {
            var s = i._$dataset(e, n);
            if (null != s) {
                this.__doSaveValidInfo(e, n, s);
                this.__doPushValidRule(e, this.__vfun[n])
            }
        },
        this)
    };
    l.__doPrepareElement = function() {
        var e = /^input|textarea$/i,
        t = /[:\.]/;
        var s = function(e) {
            this._$showTip(n._$getElement(e))
        };
        var r = function(e) {
            var t = n._$getElement(e);
            if (!this.__dataset(t, "ignore", 2)) this.__doCheckValidity(t)
        };
        return function(t) {
            if (this.__dataset(t, "autoFocus", 2)) this.__fnode = t;
            var n = i._$attr(t, "placeholder");
            if (n && "null" != n) c._$placeholder(t, this.__holder);
            if (this.__fopt && e.test(t.tagName)) a._$focus(t, this.__fopt);
            var _ = i._$id(t);
            this.__doCheckBoolean(_, "required");
            this.__doCheckString(_, "type");
            this.__doCheckPattern(_, "pattern");
            this.__doCheckATNumber(_, "maxlength");
            this.__doCheckATNumber(_, "minlength");
            this.__doCheckDSNumber(_, "maxLength");
            this.__doCheckDSNumber(_, "minLength");
            this.__doCheckTPNumber(_, "min");
            this.__doCheckTPNumber(_, "max");
            this.__doCheckCustomAttr(_);
            var f = i._$dataset(_, "time");
            if (f) this.__doSaveValidInfo(_, "time", f);
            var h = t.name;
            this.__message[h + "-tip"] = this.__dataset(t, "tip");
            this.__message[h + "-error"] = this.__dataset(t, "message");
            this._$showTip(t);
            var l = this.__vinfo[_],
            u = (l || d).data || d,
            p = this.__dataset(t, "counter", 2);
            if (p && (u.maxlength || u.maxLength)) o._$counter(_, {
                nid: this.__wopt.tp.nid,
                clazz: "js-counter"
            });
            if (l && e.test(t.tagName)) this.__doInitDomEvent([[t, "focus", s._$bind(this)], [t, "blur", r._$bind(this)]]);
            else if (this.__dataset(t, "focus", 2)) this.__doInitDomEvent([[t, "focus", s._$bind(this)]])
        }
    } ();
    l.__doInitValidRule = function() {
        var t = {
            number: /^[\d]+$/i,
            url: /^[a-z]+:\/\/(?:[\w-]+\.)+[a-z]{2,6}.*$/i,
            email: /^[\w-\.]+@(?:[\w-]+\.)+[a-z]{2,6}$/i,
            email1: /^[\w-\.]+@(?:[\w-]+\.)+[a-z]{2,6}$/i,
            email2: /^[\w-\.]+$/i,
            date: function(e, t) {
                var i = this.__dataset(t, "format") || "yyyy-MM-dd";
                return ! e || !isNaN(this.__doParseDate(e)) && s._$format(this.__doParseDate(e), i) == e
            }
        };
        var i = {
            required: function(e) {
                var t = e.type,
                i = !e.value,
                n = ("checkbox" == t || "radio" == t) && !e.checked;
                if (n || i) return - 1
            },
            type: function(e, t) {
                var i = this.__treg[t.type],
                n = e.value.trim(),
                r = !!i.test && !i.test(n),
                a = s._$isFunction(i) && !i.call(this, n, e);
                if (r || a) return - 2
            },
            pattern: function(e, t) {
                if (!t.pattern.test(e.value)) return - 3
            },
            maxlength: function(e, t) {
                if (e.value.length > t.maxlength) return - 4
            },
            minlength: function(e, t) {
                if (e.value.length < t.minlength) return - 5
            },
            maxLength: function(e, t) {
                if (s._$length(e.value) > t.maxLength) return - 4
            },
            minLength: function(e, t) {
                if (s._$length(e.value) < t.minLength) return - 5
            },
            min: function(e, t) {
                var i = this.__number(e.value, t.type, t.time);
                if (isNaN(i) || i < t.min) return - 6
            },
            max: function(e, t) {
                var i = this.__number(e.value, t.type, t.time);
                if (isNaN(i) || i > t.max) return - 7
            }
        };
        var n = function(e, t, i, n) {
            var r = e[i];
            if (!s._$isFunction(t) || !s._$isFunction(r)) e[i] = t;
            else e[i] = r._$aop(t)
        };
        return function(r) {
            if (r.domain) t.email = t.email2;
            else t.email = t.email1;
            this.__treg = e.X({},
            t);
            s._$loop(r.type, n._$bind(null, this.__treg));
            this.__vfun = e.X({},
            i);
            this.__xattr = r.attr;
            s._$loop(this.__xattr, n._$bind(null, this.__vfun))
        }
    } ();
    l.__doPushValidRule = function(e, t) {
        if (s._$isFunction(t)) {
            var i = this.__vinfo[e];
            if (!i || !i.func) {
                i = i || {};
                i.func = [];
                this.__vinfo[e] = i
            }
            i.func.push(t)
        }
    };
    l.__doSaveValidInfo = function(e, t, i) {
        if (t) {
            var n = this.__vinfo[e];
            if (!n || !n.data) {
                n = n || {};
                n.data = {};
                this.__vinfo[e] = n
            }
            n.data[t] = i
        }
    };
    l.__doCheckValidity = function(e) {
        e = this._$get(e) || e;
        if (!e) return ! 0;
        var t = this.__vinfo[i._$id(e)];
        if (!t && this.__isValidElement(e)) {
            this.__doPrepareElement(e);
            t = this.__vinfo[i._$id(e)]
        }
        if (!t) return ! 0;
        var n;
        s._$forIn(t.func,
        function(i) {
            n = i.call(this, e, t.data);
            return null != n
        },
        this);
        if (null == n) {
            var r = {
                target: e,
                form: this.__form
            };
            this._$dispatchEvent("oncheck", r);
            n = r.value
        }
        var r = {
            target: e,
            form: this.__form
        };
        if (null != n) {
            if (s._$isObject(n)) s._$merge(r, n);
            else r.code = n;
            this._$dispatchEvent("oninvalid", r);
            if (!r.stopped) this._$showMsgError(e, r.value || this.__message[e.name + n])
        } else {
            this._$dispatchEvent("onvalid", r);
            if (!r.stopped) this._$showMsgPass(e, r.value)
        }
        return null == n
    };
    l.__doShowMessage = function() {
        var e = {
            tp: "tip",
            ok: "pass",
            er: "error"
        };
        var t = function(e, t) {
            return e == t ? "block": "none"
        };
        var n = function(e, t, n) {
            var s = r.call(this, e, t);
            if (!s && n) s = i._$wrapInline(e, this.__wopt[t]);
            return s
        };
        var r = function(t, n) {
            var s = i._$get(t.name + "-" + e[n]);
            if (!s) s = i._$getByClassName(t.parentNode, this.__wopt[n].nid)[0];
            return s
        };
        return function(e, a, o) {
            e = this._$get(e) || e;
            if (e) {
                "er" == o ? i._$addClassName(e, this.__invalid) : i._$delClassName(e, this.__invalid);
                var c = n.call(this, e, o, a);
                if (c && a) c.innerHTML = a;
                s._$loop(this.__wopt,
                function(n, s) {
                    i._$setStyle(r.call(this, e, s), "display", t(o, s))
                },
                this)
            }
        }
    } ();
    l._$showTip = function(e, t) {
        this.__doShowMessage(e, t || this.__message[e.name + "-tip"], "tp")
    };
    l._$showMsgPass = function(e, t) {
        this.__doShowMessage(e, t || this.__message[e.name + "-pass"] || this.__message.pass, "ok")
    };
    l._$showMsgError = function(e, t) {
        this.__doShowMessage(e, t || this.__message[e.name + "-error"], "er")
    };
    l._$setValue = function() {
        var e = /^(?:radio|checkbox)$/i;
        var t = function(e) {
            return null == e ? "": e
        };
        var i = function(e, i) {
            if (i.multiple) {
                var n;
                if (!s._$isArray(e)) n[e] = e;
                else n = s._$array2object(e);
                s._$forEach(i.options,
                function(e) {
                    e.selected = null != n[e.value]
                })
            } else i.value = t(e)
        };
        var n = function(n, s) {
            if (e.test(s.type || "")) s.checked = n == s.value;
            else if ("SELECT" == s.tagName) i(n, s);
            else s.value = t(n)
        };
        return function(e, t) {
            var i = this._$get(e);
            if (i) if ("SELECT" == i.tagName || !i.length) n(t, i);
            else s._$forEach(i, n._$bind(null, t))
        }
    } ();
    l._$get = function(e) {
        return this.__form.elements[e]
    };
    l._$form = function() {
        return this.__form
    };
    l._$data = function() {
        var e = /^radio|checkbox$/i,
        t = /^number|date$/;
        var n = function(e) {
            if ("SELECT" == e.tagName && e.multiple) {
                var t = [];
                s._$forEach(e.options,
                function(e) {
                    if (e.selected) t.push(e.value)
                });
                return t.length > 0 ? t: ""
            }
            return e.value
        };
        var r = function(r, a) {
            var o = a.name,
            c = n(a),
            _ = r[o],
            d = this.__dataset(a, "type"),
            f = i._$dataset(a, "time");
            if (t.test(d)) if (s._$isArray(c)) s._$forEach(c,
            function(e, t, i) {
                i[t] = this.__number(e, d, f)
            },
            this);
            else c = this.__number(c, d, f);
            if (e.test(a.type) && !a.checked) {
                c = this.__dataset(a, "value");
                if (!c) return
            }
            if (_) {
                if (!s._$isArray(_)) {
                    _ = [_];
                    r[o] = _
                }
                _.push(c)
            } else r[o] = c
        };
        return function() {
            var e = {};
            s._$forEach(this.__form.elements,
            function(t) {
                if (this.__isValueElement(t)) r.call(this, e, t)
            },
            this);
            return e
        }
    } ();
    l._$reset = function() {
        var e = function(e) {
            if (this.__isValidElement(e)) this._$showTip(e)
        };
        return function() {
            this.__form.reset();
            s._$forEach(this.__form.elements, e, this)
        }
    } ();
    l._$submit = function() {
        this.__form.submit()
    };
    l._$refresh = function() {
        var e = function(e) {
            if (this.__isValidElement(e)) this.__doPrepareElement(e)
        };
        return function() {
            this.__vinfo = {};
            s._$forEach(this.__form.elements, e, this)
        }
    } ();
    l._$checkValidity = function(e, t) {
        e = this._$get(e) || e;
        if (e) return this.__doCheckValidity(e);
        var i = !0;
        s._$forEach(this.__form.elements,
        function(e) {
            var n = this._$checkValidity(e);
            i = i && n;
            if (!i && t) return ! 0
        },
        this);
        return i
    };
    if (!0) e.copy(e.P("nej.ut"), _);
    return _
},
"eddda1e8e7971753192ee8d61ef1680e", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f", "49caaf241a65de254475494142fe0209", "857bde8fed84ae23f8a546bfd38c06cd", "b2d90dfd90e068c2898cdf37d2fa2835");
I$("263ef74b9fd197724ac7ba6e1cbc38f5",
function(e, t, i, n, s) {
    var r;
    s._$$WebForm = e._$klass();
    r = s._$$WebForm._$extend(n._$$WebForm);
    r.__doCheckValidity = function(e) {
        var n;
        e = this._$get(e) || e;
        if (!e) return ! 0;
        var s = this.__vinfo[i._$id(e)];
        if (!s && this.__isValidElement(e)) {
            this.__doPrepareElement(e);
            s = this.__vinfo[i._$id(e)]
        }
        if (!s) return ! 0;
        var r;
        t._$forIn(s.func,
        function(t) {
            r = t.call(this, e, s.data);
            return null != r
        },
        this);
        if (null == r) {
            n = {
                target: e,
                form: this.__form
            };
            this._$dispatchEvent("oncheck", n);
            r = n.value
        }
        n = {
            target: e,
            form: this.__form
        };
        if (null != r) {
            if (t._$isObject(r)) t._$merge(n, r);
            else n.code = r;
            this._$dispatchEvent("oninvalid", n);
            if (!n.stopped) this._$showMsgError(e, n.value || this.__message[e.name + r])
        } else {
            this._$dispatchEvent("onvalid", n);
            if (!n.stopped) this._$showMsgPass(e, n.value)
        }
        if (n.ignore) return ! 0;
        else return null == r
    };
    return s
},
"05e56106e22a09a56a1098c586c2bfe9", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "e5feb2c30314dfb26cc8c0ea91b51d97");
I$("463114e8a272846e4c40906e94261b60",
function(e, t, i, n, s, r, a, o, c, _) {
    r._$$SelectHelper = t._$klass();
    _ = r._$$SelectHelper._$extend(s._$$EventTarget);
    _.__reset = function(e) {
        this.__super(e);
        this.__loop = !!e.loopable;
        this.__parent = i._$get(e.parent);
        this.__selected = e.selected || "js-selected";
        this.__hovered = e.hover || this.__selected;
        this.__nopt = {};
        if (e.clazz) {
            this.__nopt.filter = i._$hasClassName._$bind2(i, e.clazz);
            this.__clazz = e.clazz
        }
        this.__kbody = this.__getKeyBoardParent(this.__parent);
        this.__doInitDomEvent([[this.__kbody, "keydown", this.__doCheckKBAction._$bind(this), !0], [this.__kbody, "enter", this.__doCheckKBEnter._$bind(this)], [this.__parent, "click", this.__onCheckClick._$bind(this)], [this.__parent, "mouseover", this.__onCheckHover._$bind(this)], [this.__parent, "mouseleave", this.__onCheckLeave._$bind(this)]])
    };
    _.__destroy = function() {
        this.__super();
        delete this.__selected;
        delete this.__hovered;
        delete this.__parent;
        delete this.__kbody;
        delete this.__clazz;
        delete this.__nopt;
        delete this.__loop
    };
    _.__isItemElement = function(e) {
        if (this.__clazz) return i._$hasClassName(e, this.__clazz);
        else return e.parentNode == this.__parent
    };
    _.__getKeyBoardParent = function() {
        var e = 1e3;
        return function(t) {
            for (; t && (parseInt(t.tabIndex) || 0) <= e;) t = t.parentNode;
            return t || document
        }
    } ();
    _.__getItemElement = function(e) {
        var t = i._$getByClassName(this.__parent, e);
        return ! t ? null: t[0]
    };
    _.__doSyncSelection = function(e, t) {
        i._$delClassName(e.last, t);
        i._$addClassName(e.target, t);
        if (t == this.__selected && e.last != e.target) {
            this.__doScrollToView(e.target);
            this._$dispatchEvent("onchange", e)
        }
    };
    _.__doScrollToView = function(e) {
        var t = i._$getScrollViewPort(e),
        n = i._$offset(e, t);
        if (! (n.y - t.scrollTop < 0)) {
            var s = n.y + e.offsetHeight - t.clientHeight;
            if (s > t.scrollTop) t.scrollTop = s
        } else t.scrollTop = n.y
    };
    _.__doParseSelection = function(e, t) {
        var i = n._$getElement(e, this.__isItemElement._$bind(this));
        return ! i ? null: {
            last: this.__getItemElement(t),
            target: i
        }
    };
    _.__doCheckKBAction = function(e) {
        var t = e.keyCode;
        if (38 == t || 40 == t) {
            n._$stop(e);
            var s = {
                last: this._$getSelectedNode()
            };
            this.__nopt.backward = 38 == t;
            var r = !this.__clazz ? i._$getChildren(this.__parent) : i._$getByClassName(this.__parent, this.__clazz),
            a = this.__nopt.backward ? r[r.length - 1] : r[0];
            if (!s.last) s.target = this.__getItemElement(this.__hovered) || a;
            else s.target = i._$getSibling(s.last, this.__nopt);
            if (!s.target) {
                if (!this.__loop || r.length <= 1) return;
                s.target = a
            }
            this.__doSyncSelection(s, this.__selected)
        }
    };
    _.__doCheckKBEnter = function(e) {
        n._$stop(e);
        this._$dispatchEvent("onselect", {
            enter: !0,
            target: this._$getSelectedNode()
        })
    };
    _.__onCheckClick = function(e) {
        n._$stop(e);
        var t = this.__doParseSelection(e, this.__selected);
        if (t) {
            this.__doSyncSelection(t, this.__selected);
            this._$dispatchEvent("onselect", {
                target: t.target
            })
        }
    };
    _.__onCheckHover = function(e) {
        var t = this.__doParseSelection(e, this.__hovered);
        if (t) {
            this.__doSyncSelection(t, this.__hovered);
            if (this.__kbody.focus) this.__kbody.focus()
        }
    };
    _.__onCheckLeave = function(e) {
        if (this.__hovered != this.__selected) i._$delClassName(this.__getItemElement(this.__hovered), this.__hovered)
    };
    _._$getSelectedNode = function() {
        return this.__getItemElement(this.__selected);
    };
    if (!0) e.copy(e.P("nej.ut"), r);
    return r
},
"eddda1e8e7971753192ee8d61ef1680e", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "b75e70b49b58692524630910fc7d379f");
I$("adb5659f895512ea176bea2b2a616195",
function(e, t, i, n, s, r, a, o, c) {
    var _;
    r._$$Suggest = t._$klass();
    _ = r._$$Suggest._$extend(n._$$EventTarget);
    _.__init = function() {
        this.__sopt = {
            loopable: !0,
            onselect: this.__onSelect._$bind(this),
            onchange: this.__onSelectionChange._$bind(this)
        };
        this.__super()
    };
    _.__reset = function(e) {
        this.__super(e);
        this.__auto = !!e.autofill;
        this.__input = i._$get(e.input);
        this.__sopt.clazz = e.clazz;
        this.__sopt.parent = i._$get(e.body);
        this.__sopt.selected = e.selected || "js-selected";
        this.__doInitDomEvent([[this.__input, "input", this.__onInput._$bind(this)], [this.__input, "focus", this.__onInput._$bind(this)]]);
        if (!e.noblur) this.__doInitDomEvent([[this.__input, "blur", this.__onBlur._$bind(this)]]);
        this._$visibile(!1);
        this.__helper = s._$$SelectHelper._$allocate(this.__sopt)
    };
    _.__destroy = function() {
        this.__super();
        if (this.__helper) {
            this.__helper._$recycle();
            delete this.__helper
        }
        delete this.__xxx;
        delete this.__input;
        delete this.__sopt.parent
    };
    _.__onBlur = function() {
        this.__onSelect({
            target: this.__helper._$getSelectedNode()
        })
    };
    _.__onInput = function() {
        var e = this.__input.value.trim();
        if (!e) this._$visibile(!1);
        else if (!this.__xxx) this._$dispatchEvent("onchange", e)
    };
    _.__doUpdateValue = function(e) {
        if (!this.__xxx) {
            this.__xxx = !0;
            if (e && e != this.__input.value) this.__input.value = e;
            this.__xxx = !1
        }
    };
    _.__onSelect = function(e) {
        if ("hidden" != i._$getStyle(this.__sopt.parent, "visibility")) {
            var t = i._$dataset(e.target, "value") || "";
            this.__doUpdateValue(t);
            t = t || this.__input.value;
            this._$update("");
            this._$dispatchEvent("onselect", t, {
                target: e.target,
                enter: e.enter,
                value: t
            })
        }
    };
    _.__onSelectionChange = function(e) {
        if (this.__auto) this.__doUpdateValue(i._$dataset(e.target, "value") || "")
    };
    _._$setList = function(e) {
        this._$visibile( !! e && e.length > 0)
    };
    _._$visibile = function(e) {
        var e = !e ? "hidden": "visible";
        this.__sopt.parent.style.visibility = e;
        if ("hidden" === e) this.__sopt.parent.innerHTML = ""
    };
    _._$update = function(e) {
        this.__sopt.parent.innerHTML = e || "&nbsp;";
        this._$visibile( !! e)
    };
    if (!0) e.copy(e.P("nej.ut"), r);
    return r
},
"eddda1e8e7971753192ee8d61ef1680e", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "b75e70b49b58692524630910fc7d379f", "463114e8a272846e4c40906e94261b60");
I$("ad14cce95911c819e5aac8028f7515be", ".#<uispace>-parent{position:relative;}\n.#<uispace>{position:absolute;border:1px solid #aaa;background:#fff;text-align:left;visibility:hidden;}\n.#<uispace> .zitm{height:20px;line-height:20px;cursor:default;}\n.#<uispace> .js-selected{background:#1257F9;}");
I$("a4ca7c8e13af6ad56809fad782fbc6e9", '{if defined("xlist")&&!!xlist.length}\n  {list xlist as x}<div class="zitm" data-value="${x}">${x}</div>{/list}\n{/if}');
I$("e0bb0da6f7024b41d8cdfca433929fe5",
function(e, t, i, n, s, r, a, o, c, _, d, f, h) {
    var l = i._$pushCSSText(o),
    u = a._$add(c),
    p;
    _._$$Suggest = t._$klass();
    p = _._$$Suggest._$extend(s._$$Abstract);
    p.__init = function() {
        this.__sopt = {
            onchange: this.__onChange._$bind(this),
            onselect: this.__onSelect._$bind(this)
        };
        this.__super()
    };
    p.__reset = function(e) {
        this.__super(e);
        this.__sopt.autofill = 0 != e.autofill;
        this.__sopt.input = i._$get(e.input);
        this.__sopt.input.insertAdjacentElement("afterEnd", this.__body);
        this.__suggest = r._$$Suggest._$allocate(this.__sopt)
    };
    p.__destroy = function() {
        if (this.__suggest) {
            this.__suggest._$recycle();
            delete this.__suggest
        }
        this.__super();
        delete this.__sopt.input
    };
    p.__initXGui = function() {
        this.__seed_css = l
    };
    p.__initNode = function() {
        this.__super();
        this.__sopt.body = this.__body
    };
    p.__onChange = function(e) {
        this._$dispatchEvent("onchange", e)
    };
    p.__onSelect = function(e, t) {
        this._$dispatchEvent("onselect", e, t)
    };
    p._$setList = function(e, t) {
        if (n._$isArray(e)) e = a._$get(u, {
            xlist: e
        });
        this.__body.innerHTML = e || "";
        this.__suggest._$setList(!t ? i._$getChildren(this.__body) : i._$getByClassName(this.__body, t))
    };
    if (!0) e.copy(e.P("nej.ui"), _);
    return _
},
"eddda1e8e7971753192ee8d61ef1680e", "05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "0ce1cf574f7be23168d864b3fb81d053", "df9d93a61ae210b34038e92b4416342a", "adb5659f895512ea176bea2b2a616195", "83c67d5b20eeffc1f687e113ae22189f", "ad14cce95911c819e5aac8028f7515be", "a4ca7c8e13af6ad56809fad782fbc6e9");
I$("42cfcb0d5ca074b03c888828877bcfd5",
function(e, t, i, n, s, r, a, o, c, _, d, f, h) {
    var l, u = /^[\w-\.@]*$/i;
    _._$$Input = e._$klass();
    l = _._$$Input._$extend(r._$$EventTarget);
    l.__init = function(e) {
        this.__super(e)
    };
    l.__destroy = function() {
        this.__saveInputValue = null;
        this.__focusTimeout = clearTimeout(this.__focusTimeout);
        this.__blurTimeout = clearTimeout(this.__blurTimeout);
        n._$clearEvent(this.__input);
        n._$clearEvent(this.__label);
        this.__super()
    };
    l.__reset = function(e) {
        this.__super(e);
        this.__opts = e.opts || {};
        this.__input = e.node;
        this.__form = e.form;
        this.__isLogin = e.isLogin || 0;
        this.__inputBox = a._$getParent(this.__input, "inputbox");
        this.__clearBtn = i._$getByClassName(this.__inputBox, "u-tip")[0];
        this.__pwdtext = i._$get("pwdtext");
        this.__needClose = e.needClose;
        this.__isUsername = e.isUsername;
        this.__domain = e.domain;
        this.__needEye = this.__opts.needEye;
        if (this.__needEye) this.__hasEye = e.isPwd;
        else this.__hasEye = 0;
        if (this.__isLogin && this.__hasEye && !this.__clearBtn2) {
            i._$addClassName(this.__clearBtn, "m-eye-close");
            var t = i._$create("div", "u-tip-eye m-eye u-pwdshow");
            t.innerHTML = c._$get("eye-tmp", {});
            this.__clearBtn2 = t;
            this.__clearBtn.insertAdjacentElement("beforeBegin", this.__clearBtn2)
        }
        this.__enterNode = e.enterNode;
        this.__label = i._$getByClassName(this.__inputBox, "u-label")[0];
        var n = this.__supportPH();
        var s = i._$dataset(this.__input, "placeholder");
        if (this.__label) if (!n) i._$delClassName(this.__label, "f-dn");
        else {
            i._$addClassName(this.__label, "f-dn");
            i._$attr(this.__input, "placeholder", s)
        }
        this.__initEvent();
        if (this.__isUsername) this.__initSuggest()
    };
    l.__initEvent = function() {
        var e = [[this.__label, "click", this.__doFocus._$bind(this)], [this.__input, "focus", this.__onFocus._$bind(this)], [this.__input, "blur", this.__onBlur._$bind(this)], [this.__input, "input", this.__onInput._$bind(this, 0)], [this.__input, "keyup", this.__doEnter._$bind(this)]];
        if (this.__hasEye) {
            e.push([this.__pwdtext, "blur", this.__onBlur._$bind(this)]);
            e.push([this.__pwdtext, "focus", this.__onFocus._$bind(this)]);
            e.push([this.__pwdtext, "input", this.__onInput._$bind(this, 1)]);
            e.push([this.__pwdtext, "keyup", this.__doEnter._$bind(this)]);
            e.push([this.__clearBtn2, "click", this.__onEye._$bind(this)]);
            e.push([this.__clearBtn, "click", this._$onClear._$bind(this, 2)])
        } else if (this.__needClose) e.push([this.__clearBtn, "click", this._$onClear._$bind(this, 2)]);
        this.__doInitDomEvent(e)
    };
    l.__supportPH = function() {
        var e = t._$KERNEL;
        if ("trident" == e.engine && parseInt(e.release, 10) <= 5) return 0;
        else return 1
    };
    l.__doEnter = function(e) {
        var t = n._$getElement(e),
        i = t.name;
        if ("password" == i && 13 != e.keyCode) this._$dispatchEvent("onPwdKeyUp");
        if (13 == e.keyCode) n._$dispatchEvent(this.__enterNode, "click")
    };
    l.__onEye = function() {
        var e;
        if (!this.__pwdtext.disabled) if (i._$hasClassName(this.__clearBtn2, "eyeactive")) {
            e = this.__pwdtext.value;
            i._$delClassName(this.__clearBtn2, "eyeactive");
            i._$setStyle(this.__pwdtext, "zIndex", -1);
            this.__input.value = e;
            try {
                this.__input.focus()
            } catch(t) {}
            this.__moveToEnd(this.__input)
        } else {
            e = this.__input.value;
            this.__setPwdText(e);
            i._$addClassName(this.__clearBtn2, "eyeactive");
            i._$setStyle(this.__pwdtext, "zIndex", 1);
            try {
                this.__pwdtext.focus()
            } catch(t) {}
            this.__moveToEnd(this.__pwdtext)
        }
    };
    l.__moveToEnd = function(e) {
        var t;
        var i = e.value.length;
        if (e.createTextRange) {
            t = e.createTextRange();
            t.moveStart("character", i);
            t.collapse(!0);
            t.select()
        }
    };
    l.__setPwdText = function(e) {
        this.__pwdtext.value = e
    };
    l.__doFocus = function() {
        try {
            if (i._$hasClassName(this.__clearBtn2, "eyeactive")) this.__pwdtext.focus();
            else this.__input.focus()
        } catch(e) {}
    };
    l.__onFocus = function() {
        if (this.__blurTimeout) this.__blurTimeout = clearTimeout(this.__blurTimeout);
        this._$dispatchEvent("onClearInptTimeout", this.__input);
        var e;
        if (this.__pwdtext && i._$hasClassName(this.__input, "dlpwd")) {
            e = i._$getStyle(this.__pwdtext, "zIndex");
            if ("1" === e) try {
                this.__pwdtext.focus()
            } catch(t) {}
        }
        i._$replaceClassName(this.__inputBox, "error-color", "active");
        if ("password" == this.__input.id && !this.__firstFocus) {
            this.__input.value = "";
            this.__firstFocus = 1
        }
        if (this.__clearBtn && this.__needEye && "" != this.__input.value) i._$setStyle(this.__clearBtn, "display", "block");
        this.__focusTimeout = setTimeout(function() {
            this._$dispatchEvent("onfocus", this.__input)
        }._$bind(this), window._$inputTime)
    };
    l.__onBlur = function() {
        if (this.__focusTimeout) this.__focusTimeout = clearTimeout(this.__focusTimeout);
        this._$dispatchEvent("onClearInptTimeout", this.__input);
        this.__blurTimeout = setTimeout(function() {
            var e = i._$dataset(this.__input, "loginname");
            if ("loginEmail" == e) this.__input.value = a._$emailFilter(this.__input.value);
            var t = this.__form._$checkValidity(this.__input);
            i._$delClassName(this.__inputBox, "active");
            if (this.__clearBtn && this.__needEye) i._$setStyle(this.__clearBtn, "display", "none");
            this._$dispatchEvent("onstate", t, this.__input)
        }._$bind(this), window._$inputTime)
    };
    l.__onInput = function(e) {
        var t = this.__input;
        if (e) this.__input.value = this.__pwdtext.value;
        var n = (t.value || "").length;
        if (this.__needClose) i._$setStyle(this.__clearBtn, "display", n > 0 ? "block": "none");
        if (n > 0) this.__label.style.display = "none";
        else if (0 == n) this.__label.style.display = "block";
        this._$dispatchEvent("onInput", t, 1)
    };
    l.__initSuggest = function() {
        var e = function(e, t, i) {
            i = i ? " " + i: "";
            return '<div class="itm' + i + '" data-value=' + e + t + ">" + e + t + "</div>"
        };
        var t = function(t) {
            var n = [];
            if (u.test(t)) {
                if (t.indexOf("@") == -1) s._$forEach(this.__suffix,
                function(i) {
                    var s = e(t, i);
                    n.push(s)
                });
                else {
                    var r = t.split("@"),
                    a = r[0],
                    o = r[1];
                    if (t.match(/@/g).length > 1) n = [];
                    else if (!o) s._$forEach(this.__suffix,
                    function(i) {
                        i = i.split("@")[1];
                        var s = e(t, i);
                        n.push(s)
                    });
                    else if (o.indexOf(".com") > -1) n = [];
                    else s._$forEach(this.__suffix,
                    function(t) {
                        if (1 == t.indexOf(o)) {
                            var i = e(a, t);
                            n.push(i)
                        }
                    })
                }
                if (n[0]) n[0] = n[0].replace('class="itm"', 'class="itm js-selected"');
                this.__suggest._$setList(n.join(""));
                i._$get("account-box").style.zIndex = "500";
            } else this.__suggest._$setList(n.join(""))
        };
        var r = function(e) {
            if (!window.outlinkflag) {
                i._$get("account-box").style.zIndex = "0";
                this.__suggest._$setList([]);
                this._$dispatchEvent("onClearEmailTimeout");
                if (!this.__checkIpt(e, "email")) a._$showError(this.__input, "帐号格式错误", "nerror");
                else a._$removeError(this.__input, "nerror");
                if (window.$autoFocus) this._$dispatchEvent("onFocusNext")
            }
        };
        var c = function() {
            i._$get("account-box").style.zIndex = "1"
        };
        return function() {
            this.__suffix = this.__suffix || ["@163.com", "@126.com", "@yeah.net", "@188.com", "@vip.163.com", "@vip.126.com"];
            if (this.__suggest) this.__suggest = o._$$Suggest._$recycle(this.__suggest);
            var e = a._$getParent(this.__input, "u-input");
            if (!this.__suggest) {
                n._$delEvent(this.__input, "blur", c);
                n._$addEvent(this.__input, "blur", c);
                this.__suggest = o._$$Suggest._$allocate({
                    parent: e,
                    clazz: "m-sug",
                    input: this.__input,
                    autofill: !1,
                    onchange: t._$bind(this),
                    onselect: r._$bind(this)
                })
            }
        }
    } ();
    l.__checkIpt = function() {
        var e = {
            email: /^[\w-\.]+@(?:[\w-]+\.)+[a-z]{2,6}$/i
        };
        return function(t, i) {
            t = t.trim();
            return e[i].test(t)
        }
    } ();
    l._$showCloseBtn = function() {
        if (!this.__needEye) i._$setStyle(this.__clearBtn, "display", "block")
    };
    l._$hideCloseBtn = function() {
        i._$setStyle(this.__clearBtn, "display", "none")
    };
    l._$setSuggest = function(e) {
        this.__suffix = e;
        this.__initSuggest()
    };
    l._$hideLabel = function() {
        this.__label.style.display = "none"
    };
    l._$onClear = function(e) {
        var t;
        if (!this.__input.disabled) {
            this.__input.value = "";
            this.__clearBtn.style.display = "none";
            if (this.__clearBtn2 && this.__hasEye) if (this.__pwdtext) this.__pwdtext.value = "";
            this.__label.style.display = "block";
            if ("2" == e) try {
                this.__input.focus();
                if (this.__pwdtext) {
                    t = i._$getStyle(this.__pwdtext, "zIndex");
                    if ("1" === t) this.__pwdtext.focus()
                }
            } catch(s) {}
            n._$stop(e);
            this._$dispatchEvent("onInput", this.__input)
        }
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "605054bf841321ed40d652370c40f4e5", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f", "0d434f17f93250948578c8948f9f01bf", "e0bb0da6f7024b41d8cdfca433929fe5", "83c67d5b20eeffc1f687e113ae22189f");
I$("7aae1cf82be47f0be5a277c5829eb8e4",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u, p) {
    var m, g, b = {
        email: /^[\w-\.]+@(?:[\w-]+\.)+[a-z]{2,6}$/i,
        sms: /^[0-9a-zA-Z]{4}$/,
        pwd: /^[0-9a-zA-Z]{6,16}$/
    };
    h._$$Login = e._$klass();
    m = h._$$Login._$extend(a._$$Module);
    m.__init = function(e) {
        this.__setTimeoutList = {};
        this.__opts = e.opts || {};
        this.__needEye = this.__opts.needEye || 0;
        this.__domainSuffixs = this.__opts.domainSuffixs || "";
        this.__lazyCheck = this.__opts.lazyCheck || 0;
        this.__domainSuffixs = this.__domainSuffixs ? this.__domainSuffixs.split(",") : [];
        this.__placeholder = this.__opts.placeholder || {};
        this.__btnTxt = this.__opts.loginText || "";
        this.__domain = this.__opts.prdomain || "";
        this.__swidth = this.__opts.swidth || 320;
        if (c._$notURL(this.__opts.forgetpwdlink)) this.__opts.forgetpwdlink = "";
        this.__forgetpwdlink = this.__opts.forgetpwdlink || "//reg.163.com/resetpwd/index.do";
        this.__unLoginText = this.__opts.unLoginText || "十天内免登录";
        this.__server = "captcha.reg.163.com/v2";
        if (this.__opts.productKey) this.__opts.productkey = this.__opts.productKey;
        this.__productkey = this.__opts.productkey;
        this.__hintTxt = this.__opts.hintTxt || "按住滑块，拖动完成上方拼图";
        this.__errMsg = c._$HtmlEncode(this.__opts.errMsg || "");
        this.__gotoRegText = this.__opts.gotoRegText || "去注册";
        this.__super()
    };
    m.__slideVerify = function(e) {
        if (this.__lazyCheck) if (e && e.value) this.__cbVftcp();
        else this.__cbVftcpEx();
        else if (e && e.value) this._$verifyCap();
        else this.__cbVftcpEx()
    };
    m.__reset = function(e) {
        this.__slideOpt = {
            element: "ScapTcha",
            staticServer: this.__server,
            apiServer: this.__server,
            captchaId: this.__productkey,
            width: this.__swidth,
            forceHttps: !0,
            alignToSpace: !0,
            hintTxt: this.__hintTxt,
            verifyCallback: this.__slideVerify._$bind(this),
            initCallback: this.__initCallback._$bind(this),
            initErrorHandler: this.__initErrorHandler._$bind(this)
        };
        this.__ipts = [];
        this.__product = this.__opts.product || "";
        this.__pkid = this.__opts.promark || "";
        this.__super(e);
        this.__resetInput();
        this.__imgLock = 0;
        this._$hideCheckCode();
        this.codeTryTime = 0;
        t._$delClassName(this.__footer, "f-dn")
    };
    m.__resetInput = function() {
        if (this.__nameinput) {
            this.__nameinput.disabled = !1;
            this.__nameinput.value = ""
        }
        if (this.__passwordinput) {
            this.__passwordinput.disabled = !1;
            this.__passwordinput.value = ""
        }
        if (this.__smscode) {
            this.__smscode.disabled = !1;
            this.__smscode.value = ""
        }
        if (this.__pwdtext) {
            this.__pwdtext.disabled = !1;
            this.__pwdtext.value = ""
        }
    };
    m.__destroy = function() {
        c._$removeError3();
        this.__super()
    };
    m.__initNode = function() {
        this.__super();
        this.__checkCode = t._$getByClassName(this.__body, "ckbox")[0];
        this.__slideCapBox = t._$getByClassName(this.__body, "slidebox")[0];
        this.__cdImg = t._$getByClassName(this.__body, "ckimg")[0];
        this.__olist = t._$getByClassName(this.__body, "olist")[0];
        this.__footer = t._$getByClassName(document, "m-footer")[0];
        this.__loginBtn = t._$getByClassName(this.__body, "u-loginbtn")[0]
    };
    m.__initXGui = function() {
        var e = this.__parseOauth();
        var t = "登&nbsp;&nbsp;录";
        if (this.__btnTxt) t = c._$HtmlEncode(this.__btnTxt);
        g = s._$addNodeTemplate(r._$get("login-tmp", {
            config: e || [],
            btnTxt: t,
            gotoRegText: this.__gotoRegText,
            unLoginText: this.__unLoginText,
            forgetpwdlink: this.__forgetpwdlink
        }));
        this.__seed_html = g
    };
    m.__parseOauth = function() {
        return c._$parseOauth()
    };
    m.__initEvent = function() {
        this.__inputs = t._$getByClassName(this.__body, "j-inputtext");
        if (this.__needEye) this.__pwdtext = t._$get("pwdtext");
        this.__nameinput = this.__inputs[0];
        this.__passwordinput = this.__inputs[1];
        this.__smscode = this.__inputs[2];
        var e;
        if (0 === this.__ipts.length) {
            this.__setPlaceHolder();
            n._$forEach(this.__inputs,
            function(t, i) {
                var n = {
                    opts: this.__opts,
                    node: t,
                    isLogin: 1,
                    form: this.__form,
                    needClose: 1,
                    onfocus: this.__onFocus._$bind(this),
                    onInput: this.__onInput._$bind(this),
                    onPwdKeyUp: this.__onPwdKeyUp._$bind(this),
                    onFocusNext: this.__onFocusNext._$bind(this),
                    onClearInptTimeout: this.__onClearInptTimeout._$bind(this)
                };
                if (!i) {
                    n.isUsername = this.__domain ? 0 : 1;
                    n.domain = this.__domain
                }
                if (1 == i) n.isPwd = 1;
                e = _._$$Input._$allocate(n);
                if (!i && this.__domainSuffixs && this.__domainSuffixs.length > 0) e._$setSuggest(this.__domainSuffixs);
                this.__ipts.push(e)
            }._$bind(this))
        }
        this.__doInitDomEvent([[this.__cdImg, "click", this._$getCheckCode._$bind(this)], [this.__olist, "click", this._$doThirdLogin._$bind(this)]])
    };
    m._$doThirdLogin = function(e) {
        c._$doThirdLogin(e)
    };
    m.__onPwdKeyUp = function() {
        this._$dispatchEvent("onPwdKeyUp")
    };
    m.__onFocusNext = function() {
        this._stopEnter = 1;
        try {
            this.__inputs[1].focus()
        } catch(e) {}
    };
    m.__onFocus = function(e) {
        c._$removeError(e, "nerror")
    };
    m.__onClearInptTimeout = function(e) {
        var t = e.name;
        if (this.__setTimeoutList["invalid" + t]) this.__setTimeoutList["invalid" + t] = clearTimeout(this.__setTimeoutList["invalid" + t]);
        if (this.__setTimeoutList["valid" + t]) this.__setTimeoutList["valid" + t] = clearTimeout(this.__setTimeoutList["valid" + t])
    };
    m.__initForm = function() {
        if (!this.__form) this.__form = o._$$WebForm._$allocate({
            form: "login-form",
            domain: this.__domain || null,
            oninvalid: function(e) {
                var n = "请输入",
                s = e.code,
                r = i._$getElement(e),
                a = r.name;
                if (!window.outlinkflag) {
                    this.__clearTimeout(a);
                    if ("checkcode" == a && t._$hasClassName(this.__checkCode, "f-dn") && this.__needSlideCap) e.ignore = 1;
                    this.__setTimeoutList["invalid" + a] = setTimeout(function(i) {
                        var a = i;
                        if ("checkcode" != a || !t._$hasClassName(this.__checkCode, "f-dn")) if ("slidecap" != a || t._$hasClassName(this.__slideCapBox, "f-dn")) {
                            if (s == -1) {
                                if ("email" == a) n += "帐号";
                                else if ("password" == a) n += "密码";
                                else if ("checkcode" == a) n = "请输入图片验证码"
                            } else if (s == -4 || s == -2 || s == -3) {
                                n = "格式错误";
                                if ("email" == a) n = "帐号" + n;
                                else if ("password" == a) n = "密码" + n;
                                else if ("checkcode" == a) n = "请输入图片验证码"
                            }
                            if ("slidecap" == a && t._$hasClassName(this.__slideCapBox, "f-dn")) this.__states[a] = 0;
                            else this.__states[a] = 1;
                            if (s != -1) this.__checkList(r, n)
                        } else if (!this.__vSlide()) this.__states["slidecap"] = 0;
                        else this.__states["slidecap"] = 1;
                        else {
                            if (this.__needSlideCap) e.ignore = 1;
                            this.__states[a] = 0
                        }
                    }._$bind(this, a), 100);
                    e.stopped = !0
                } else if (!this.__refocus && 1 == window.outlinkflag) this.__refocus = setTimeout(function() {
                    this.__refocus = clearTimeout(this.__refocus);
                    try {
                        r.focus()
                    } catch(e) {}
                }._$bind(this), 200)
            }._$bind(this),
            onvalid: function(e) {
                var t = i._$getElement(e),
                n = t.name;
                this.__clearTimeout(n);
                this.__setTimeoutList["valid" + n] = setTimeout(function(e) {
                    var i = e;
                    this.__states[i] = 0;
                    this.__hideErrorList(t)
                }._$bind(this, n), 100);
                e.stopped = !0
            }._$bind(this)
        })
    };
    m.__clearTimeout = function(e) {
        if (this.__setTimeoutList["invalid" + e]) this.__setTimeoutList["invalid" + e] = clearTimeout(this.__setTimeoutList["invalid" + e]);
        if (this.__setTimeoutList["valid" + e]) this.__setTimeoutList["valid" + e] = clearTimeout(this.__setTimeoutList["valid" + e])
    };
    m.__hideErrorList = function(e) {
        var i = e.name;
        if ("email" == i) {
            var n = e.value.indexOf("@") != -1 ? e.value.substring(e.value.indexOf("@")).toLocaleLowerCase() : this.__domain;
            if (!n) n = e.value;
            _gaq.push(["_trackEvent", "登录步骤", "【1】帐号输入", "输入成功：" + n])
        } else if ("password" == i) _gaq.push(["_trackEvent", "登录步骤", "【2】密码输入", "输入" + (e.value || "").length + "位密码"]);
        else if ("checkcode" == i && !t._$hasClassName(this.__checkCode, "f-dn")) {
            this.codeTryTime = this.codeTryTime ? this.codeTryTime + 1 : 1;
            _gaq.push(["_trackEvent", "登录步骤", "【3】验证码输入", "图片验证码校验成功,尝试次数：" + this.codeTryTime])
        }
    };
    m.__checkStatus = function(e) {
        var i = e.name;
        if ("password" == i) {
            if (this.__states["email"] && "" != this.__nameinput.value) return
        } else if ("checkcode" == i && !t._$hasClassName(this.__checkCode, "f-dn")) if (this.__states["password"] && "" != this.__passwordinput.value || this.__states["email"] && "" != this.__nameinput.value) return;
        return 1
    };
    m.__checkList = function(e, t) {
        if (this.__checkStatus(e)) c._$showError(e, t, "nerror");
        else c._$showError2(e, t, "nerror", 1)
    };
    m.__onInput = function(e) {
        setTimeout(this.__checkNextBtn._$bind(this, e), 50)
    };
    m.__checkNextBtn = function(e) {
        var t = this.__vName();
        var i = this.__vPwd();
        var n = this.__vSms();
        var s = this.__vSlide();
        if (e && "checkcode" == e.name) {
            var r = this.__smscode.value.trim();
            this.__smscodeValue = r;
            if (b["sms"].test(r) && !this.__lazyCheck) this.__doCheckSmsCode(r)
        }
        if (!this.__needSlideCap && !this.__needCheckCode) if (!t && !i) this._$dispatchEvent("ondisabled", 0);
        else this._$dispatchEvent("ondisabled", 1);
        else if (this.__needSlideCap) if (!t && !i && !s) this._$dispatchEvent("ondisabled", 0);
        else this._$dispatchEvent("ondisabled", 1);
        else if (this.__needCheckCode) if (!t && !i && !n) this._$dispatchEvent("ondisabled", 0);
        else this._$dispatchEvent("ondisabled", 1);
    };
    m.__vSms = function() {
        var e = this.__smscode.value.trim();
        if (b["sms"].test(e)) return 0;
        else return 1
    };
    m.__doCheckSmsCode = function(e) {
        if (!this.__checkSmsCodeLock) {
            this.__checkSmsCodeLock = 1;
            var t = this.__nameinput.value.trim();
            t = this.__domain ? t + this.__domain: t;
            var i = {
                cap: e,
                pd: this.__product,
                pkid: this.__pkid
            };
            i.un = t;
            d._$request("checkSmsCode", i, this.__cbSmsCode._$bind(this), this.__ckSmsCodeEx._$bind(this, "验证码输入错误"), 1, this.__product)
        }
    };
    m.__cbSmsCode = function() {
        this.__checkSmsCodeLock = 0;
        this.__imgLock = 1;
        this.__smscode.disabled = !0;
        this.__ipts[2]._$hideCloseBtn();
        t._$getByClassName(document, "u-tip")[3].style.display = "block";
        c._$removeError(this.__smscode, "nerror")
    };
    m.__ckSmsCodeEx = function(e, t) {
        var i = t.ret;
        this.codeTryTime = this.codeTryTime ? this.codeTryTime + 1 : 1;
        if ("441" == i) {
            this.__needSlideCap = 0;
            this.__needCheckCode = 1;
            this._$refreshCheckCode(i, 1);
            if (1 != e) c._$showError(this.__smscode, e, "nerror")
        } else if ("444" == i || "445" == i) {
            this.__needSlideCap = 1;
            this.__needCheckCode = 0;
            this._$refreshCheckCode(i, 1);
            if (1 != e) {
                if ("444" == i) e = "请滑动验证码";
                if ("445" == i) e = "请点击验证码";
                c._$showError({
                    name: "slide"
                },
                e, "nerror")
            }
        } else {
            this.__checkSmsCodeLock = 0;
            this._$getCheckCode();
            this.__ipts[2]._$onClear();
            this._$dispatchEvent("ondisabled", 1);
            e = f[i] || "验证码输入错误";
            c._$showError(this.__smscode, e, "nerror")
        }
    };
    m.__vName = function() {
        var e = this.__nameinput.value.trim();
        if ("" !== e) return 0;
        else return 1
    };
    m.__vPwd = function() {
        var e = this.__passwordinput.value.trim();
        if ("" !== e) return 0;
        else return 1
    };
    m._$setUsername = function(e) {
        try {
            if (e) this._$hideLabel();
            this.__inputs[0].value = e;
            this.__ipts[0]._$showCloseBtn()
        } catch(t) {}
    };
    m._$setPwd = function(e) {
        try {
            if (e) this._$hideLabel(1);
            this.__inputs[1].value = e;
            this.__ipts[1]._$showCloseBtn();
            if (this.__pwdtext) this.__pwdtext.value = e
        } catch(t) {}
    };
    m._$showCheckCode = function() {
        this.__checkSmsCodeLock = 0;
        this._$hideCheckCode();
        this.__states["checkcode"] = 1;
        this.__needCheckCode = 1;
        t._$delClassName(this.__checkCode, "f-dn");
        this.__imgLock = 0;
        this.__smscode.disabled = !1;
        this._$getCheckCode();
        this.__ipts[2]._$onClear();
        this._$dispatchEvent("ondisabled", 1);
        this.__checkNextBtn();
        setTimeout(function() {
            c._$resize()
        },
        200)
    };
    m._$doFocus = function(e) {
        try {
            if ("pwd" == e) this.__passwordinput.focus();
            if ("username" == e) this.__nameinput.focus()
        } catch(t) {}
    };
    m._$getCheckCode = function() {
        if (!this.__imgLock) {
            this.__cdImg.src = MP.getCaptchaLogin(this.__product, this.__pkid, window["$cookieDomain"]);
            t._$getByClassName(document, "u-tip")[3].style.display = "none"
        }
    };
    m._$hideLabel = function(e) {
        if (1 === e) this.__ipts[1]._$hideLabel();
        else this.__ipts[0]._$hideLabel()
    };
    m.$clearText = function(e) {
        e.value = ""
    };
    m._$verifyCap = function() {
        if (!this.__slideCapLock) {
            this.__slideCapLock = 1;
            var e = this.__myCaptcha.getPwd();
            var t = this.__myCaptcha.getCt();
            var i = this.__nameinput.value.trim();
            i = this.__domain ? i + this.__domain: i;
            var n = {
                cap: e,
                pd: this.__product,
                pkid: this.__pkid,
                capkey: this.__productkey
            };
            n.un = i;
            var s = 2 == this.__slideTarget ? "vftcp": "vfccp";
            n.ct = t;
            d._$request(s, n, this.__cbVftcp._$bind(this), this.__cbVftcpEx._$bind(this), 1)
        }
    };
    m._$getSmsValue = function() {
        return this.__smscodeValue
    };
    m._$clearPwd = function(e) {
        this.__ipts[1]._$onClear(e)
    };
    m._$focusHelper = function() {
        try {
            this.__nameinput.focus()
        } catch(e) {}
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b07a20e1d9be763162954dd0fcf2feb3", "83c67d5b20eeffc1f687e113ae22189f", "6205908130ee8e8e989660217dba1dd4", "263ef74b9fd197724ac7ba6e1cbc38f5", "0d434f17f93250948578c8948f9f01bf", "42cfcb0d5ca074b03c888828877bcfd5", "4dadb2ee6ba889b538cf0977b4b3cad0", "24009e123f5588d3e0d561f49177981a");
I$("df416050c2dc183b66d58f7a1dd85123",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u, p) {
    var m, g, b = {
        phonecode: 0
    };
    h._$$Phone = e._$klass();
    m = h._$$Phone._$extend(a._$$Module);
    m.__init = function(e) {
        this.__opts = e.opts || {};
        this.__super()
    };
    m.__reset = function(e) {
        this.__data = e.data;
        this.__mb = e.mb;
        this.__doback = e.doback;
        this.__ipts = [];
        this.__super(e);
        t._$addClassName(this.__unlockBtn, "btndisabled");
        t._$get("pp_mb").innerHTML = this.__mb;
        this.__canUnlcok = 0
    };
    m.__destroy = function() {
        this.__super()
    };
    m.__initNode = function() {
        this.__super();
        this.__getSmsCode = t._$getByClassName(this.__body, "getsmscode")[0];
        this.__unlockBtn = t._$getByClassName(this.__body, "btncolor")[0]
    };
    m.__initXGui = function() {
        g = s._$addNodeTemplate(r._$get("phone-tmp"));
        this.__seed_html = g
    };
    m.__initEvent = function() {
        this.__inputs = t._$getByClassName(this.__body, "j-inputtext");
        if (0 == this.__ipts.length) n._$forEach(this.__inputs,
        function(e) {
            var t = {
                opts: this.__opts,
                node: e,
                form: this.__form,
                needClose: 1,
                onfocus: this.__onFocus._$bind(this),
                onInput: this.__onInput._$bind(this)
            };
            this.__ipts.push(_._$$Input._$allocate(t))
        }._$bind(this));
        this.__doInitDomEvent([[this.__getSmsCode, "click", this.__onGetSmsCode._$bind(this)]])
    };
    m.__onFocus = function(e) {
        c._$removeError(e, "nerror")
    };
    m.__onInput = function() {
        var e = this.__inputs[0].value.trim();
        if (/^\d{6}$/.test(e)) {
            t._$delClassName(this.__unlockBtn, "btndisabled");
            this.__canUnlcok = 1
        } else {
            t._$addClassName(this.__unlockBtn, "btndisabled");
            this.__canUnlcok = 0
        }
    };
    m.__onGetSmsCode = function() {
        if (!this.__lockSmsCode && !this.__sendSmsLoginLock) {
            this.__sendSmsLoginLock = 1;
            d._$request("sendSmsLogin", this.__data, this.__cbGetSmsCode._$bind(this), this.__cbWarn._$bind(this), 1)
        }
    };
    m.__cbWarn = function(e) {
        this.__sendSmsLoginLock = 0;
        var t = e.ret,
        i;
        if (e) if ("411" == t) {
            var n = e.receiveCode.split(",");
            var s = "请您编辑短信<strong> " + (n[0] || "验证") + " </strong>发送到<strong> " + (n[1] || "106981630163331") + " </strong>获取验证码，短信费用由运营商收取";
            c._$showError(null, s, "nerror", 2)
        } else if ("413" == t) c._$showError(null, "下发验证码超过了次数限制，请改天再试", "nerror", 2);
        else if ("430" == t) {
            this.__doback(1);
            c._$showError(null, "此次登录不需要进行密保验证", "nerror", 2)
        } else {
            i = f[t] || c._$getErrorTxt(e.ret);
            if ("10" == e.dt && "401" == t) i = f["40110"];
            c._$showError(null, i, "nerror")
        }
    };
    m.__cbGetSmsCode = function() {
        var e;
        var i = function() {
            if (0 != e) {
                e--;
                this.__getSmsCode.innerHTML = "重发验证码（" + e + "）"
            } else {
                this.__getSmsCode.innerHTML = "重发验证码";
                t._$delClassName(this.__getSmsCode, "disable");
                this.__getSmsCode.disabled = !1;
                this.__lockSmsCode = 0;
                clearInterval(this.__smsTimerInterval)
            }
        };
        return function() {
            this.__sendSmsLoginLock = 0;
            t._$addClassName(this.__getSmsCode, "disable");
            this.__getSmsCode.disabled = !0;
            this.__lockSmsCode = 1;
            e = 60;
            this.__getSmsCode.innerHTML = "重发验证码（" + e + "）";
            this.__smsTimerInterval = setInterval(i._$bind(this), 1e3)
        }
    } ();
    m.__initForm = function() {
        if (!this.__form) this.__form = o._$$WebForm._$allocate({
            form: "phone-form",
            oninvalid: function(e) {
                var t = "请输入",
                n = e.code,
                s = i._$getElement(e),
                r = s.name;
                if (!window.outlinkflag) {
                    if (n != -1) {
                        if (n == -4 || n == -2 || n == -3) {
                            t = "格式错误";
                            if ("phonecode" == r) t = "手机验证码" + t
                        }
                        this.__states[r] = 1;
                        if ("phonecode" == r) b["phonecode"] = 1;
                        c._$showError(s, t, "nerror");
                        e.stopped = !0
                    } else if ("phonecode" == r) b["phonecode"] = 0
                } else if (!this.__refocus && 1 == window.outlinkflag) this.__refocus = setTimeout(function() {
                    this.__refocus = clearTimeout(this.__refocus);
                    try {
                        s.focus()
                    } catch(e) {}
                }._$bind(this), 200)
            }._$bind(this),
            onvalid: function(e) {
                var t = i._$getElement(e),
                n = t.name;
                this.__states[n] = 0;
                e.stopped = !0
            }._$bind(this)
        })
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b07a20e1d9be763162954dd0fcf2feb3", "83c67d5b20eeffc1f687e113ae22189f", "6205908130ee8e8e989660217dba1dd4", "263ef74b9fd197724ac7ba6e1cbc38f5", "0d434f17f93250948578c8948f9f01bf", "42cfcb0d5ca074b03c888828877bcfd5", "4dadb2ee6ba889b538cf0977b4b3cad0", "24009e123f5588d3e0d561f49177981a");
I$("97b23dfde6b699429cf1206e6d4cc4e7",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u) {
    var p, m, g = {
        otpcode: 0
    };
    f._$$OTP = e._$klass();
    p = f._$$OTP._$extend(a._$$Module);
    p.__init = function(e) {
        this.__opts = e.opts || {};
        this.__super()
    };
    p.__reset = function(e) {
        this.__data = e.data;
        this.__ipts = [];
        this.__super(e);
        t._$addClassName(this.__unlockBtn, "btndisabled");
        this.__canUnlcok = 0
    };
    p.__destroy = function() {
        this.__super()
    };
    p.__initNode = function() {
        this.__super();
        this.__unlockBtn = t._$getByClassName(this.__body, "btncolor")[0]
    };
    p.__initXGui = function() {
        m = s._$addNodeTemplate(r._$get("otp-tmp"));
        this.__seed_html = m
    };
    p.__initEvent = function() {
        this.__inputs = t._$getByClassName(this.__body, "j-inputtext");
        this.__clearBtn = t._$getByClassName(this.__body, "u-clear")[0];
        this.__inputBox = c._$getParent(this.__inputs[0], "inputbox");
        this.__label = t._$getByClassName(this.__inputBox, "u-label")[0];
        if (0 == this.__ipts.length) n._$forEach(this.__inputs,
        function(e) {
            var t = {
                opts: this.__opts,
                node: e,
                form: this.__form,
                needClose: 1,
                onfocus: this.__onFocus._$bind(this),
                onInput: this.__onInput._$bind(this)
            };
            this.__ipts.push(_._$$Input._$allocate(t))
        }._$bind(this))
    };
    p.__onFocus = function(e) {
        c._$removeError(e, "nerror")
    };
    p.__onInput = function() {
        var e = this.__inputs[0].value.trim();
        if (/^\d{6}$/.test(e)) {
            t._$delClassName(this.__unlockBtn, "btndisabled");
            this.__canUnlcok = 1
        } else {
            t._$addClassName(this.__unlockBtn, "btndisabled");
            this.__canUnlcok = 0
        }
    };
    p.__initForm = function() {
        if (!this.__form) this.__form = o._$$WebForm._$allocate({
            form: "otp-form",
            oninvalid: function(e) {
                var t = "请输入",
                n = e.code,
                s = i._$getElement(e),
                r = s.name;
                if (!window.outlinkflag) if (n != -1) {
                    if (n == -4 || n == -2 || n == -3) t = "动态密码格式错误";
                    this.__states[r] = 1;
                    g["otpcode"] = 1;
                    c._$showError(s, t, "nerror");
                    e.stopped = !0
                } else g["otpcode"] = 0;
                else if (!this.__refocus && 1 == window.outlinkflag) this.__refocus = setTimeout(function() {
                    this.__refocus = clearTimeout(this.__refocus);
                    try {
                        s.focus()
                    } catch(e) {}
                }._$bind(this), 200)
            }._$bind(this),
            onvalid: function(e) {
                var t = i._$getElement(e),
                n = t.name;
                this.__states[n] = 0;
                e.stopped = !0
            }._$bind(this)
        })
    };
    p.__clearInpt = function() {
        this.__label.style.display = "block";
        this.__clearBtn.style.display = "none";
        this.__inputs[0].value = "";
        t._$addClassName(this.__unlockBtn, "btndisabled");
        this.__canUnlcok = 0
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b07a20e1d9be763162954dd0fcf2feb3", "83c67d5b20eeffc1f687e113ae22189f", "6205908130ee8e8e989660217dba1dd4", "263ef74b9fd197724ac7ba6e1cbc38f5", "0d434f17f93250948578c8948f9f01bf", "42cfcb0d5ca074b03c888828877bcfd5", "4dadb2ee6ba889b538cf0977b4b3cad0");
I$("2f78a9e6c44dc780264106119e13a727",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u) {
    var p, m, g = {
        ppccode: 0
    };
    f._$$PPC = e._$klass();
    p = f._$$PPC._$extend(a._$$Module);
    p.__init = function(e) {
        this.__opts = e.opts || {};
        this.__super()
    };
    p.__reset = function(e) {
        this.__data = e.data || [];
        this.__mb = e.mb;
        this.__ipts = [];
        this.__super(e);
        this.__setCoord(this.__data.coord);
        t._$addClassName(this.__unlockBtn, "btndisabled");
        this.__canUnlcok = 0
    };
    p.__destroy = function() {
        this.__super()
    };
    p.__initNode = function() {
        this.__super();
        this.__getSmsCode = t._$getByClassName(this.__body, "getsmscode")[0];
        this.__unlockBtn = t._$getByClassName(this.__body, "btncolor")[0]
    };
    p.__initXGui = function() {
        m = s._$addNodeTemplate(r._$get("ppc-tmp"));
        this.__seed_html = m
    };
    p.__initEvent = function() {
        this.__inputs = t._$getByClassName(this.__body, "j-inputtext");
        if (0 == this.__ipts.length) n._$forEach(this.__inputs,
        function(e) {
            var t = {
                opts: this.__opts,
                node: e,
                form: this.__form,
                needClose: 0,
                onfocus: this.__onFocus._$bind(this),
                onInput: this.__onInput._$bind(this)
            };
            this.__ipts.push(_._$$Input._$allocate(t))
        }._$bind(this))
    };
    p.__onFocus = function(e) {
        c._$removeError(e, "nerror")
    };
    p.__onInput = function() {
        var e = this.__inputs[0].value.trim();
        var i = this.__inputs[1].value.trim();
        var n = this.__inputs[2].value.trim();
        if (/^\d{1,3}$/.test(e) && /^\d{1,3}$/.test(i) && /^\d{1,3}$/.test(n)) {
            t._$delClassName(this.__unlockBtn, "btndisabled");
            this.__canUnlcok = 1
        } else {
            t._$addClassName(this.__unlockBtn, "btndisabled");
            this.__canUnlcok = 0
        }
    };
    p.__initForm = function() {
        if (!this.__form) this.__form = o._$$WebForm._$allocate({
            form: "ppc-form",
            oninvalid: function(e) {
                var t = "请输入",
                n = e.code,
                s = i._$getElement(e),
                r = s.name;
                if (!window.outlinkflag) {
                    if (n != -1) {
                        if (n == -4 || n == -2 || n == -3) {
                            t = "格式错误";
                            if ("ppccode" == r) t = "手机验证码" + t
                        }
                        this.__states[r] = 1;
                        if ("ppccode" == r) g["ppccode"] = 1;
                        c._$showError(s, t, "nerror");
                        e.stopped = !0
                    } else if ("ppccode" == r) g["ppccode"] = 0
                } else if (!this.__refocus && 1 == window.outlinkflag) this.__refocus = setTimeout(function() {
                    this.__refocus = clearTimeout(this.__refocus);
                    try {
                        s.focus()
                    } catch(e) {}
                }._$bind(this), 200)
            }._$bind(this),
            onvalid: function(e) {
                var t = i._$getElement(e),
                n = t.name;
                this.__states[n] = 0;
                e.stopped = !0
            }._$bind(this)
        })
    };
    p.__setCoord = function(e) {
        if (e) {
            var i = t._$getByClassName(this.__body, "coord"),
            n = e.split(";") || [];
            i[0].innerHTML = n[0];
            i[1].innerHTML = n[1];
            i[2].innerHTML = n[2]
        }
    };
    p.__clearInpt = function() {
        this.__inputs[0].value = "";
        this.__inputs[1].value = "";
        this.__inputs[2].value = "";
        t._$addClassName(this.__unlockBtn, "btndisabled");
        this.__canUnlcok = 0
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b07a20e1d9be763162954dd0fcf2feb3", "83c67d5b20eeffc1f687e113ae22189f", "6205908130ee8e8e989660217dba1dd4", "263ef74b9fd197724ac7ba6e1cbc38f5", "0d434f17f93250948578c8948f9f01bf", "42cfcb0d5ca074b03c888828877bcfd5", "4dadb2ee6ba889b538cf0977b4b3cad0");
I$("8bdf4bf336ac3e80c5ba9eaf2a14b550",
function(e, t, i, n, s, r, a, o, c, _, d, f, h) {
    var l;
    _._$$Manager = e._$klass();
    l = _._$$Manager._$extend(s._$$EventTarget);
    l.__init = function(e) {
        this.__setMap = {};
        this.__product = e.product;
        this.__promark = e.promark;
        window._$errClickHide = e.errClickHide || 0;
        if (this.__options) {
            this.__options.goEmailLoginTxt = this.__options.goEmailLoginTxt || "网易邮箱帐号登录";
            this.__options.goMbLoginTxt = this.__options.goMbLoginTxt || "网易手机帐号登录";
            this.__options.goEmailRegTxt = this.__options.goEmailRegTxt || "网易邮箱帐号注册";
            this.__options.goMbRegTxt = this.__options.goMbRegTxt || "网易手机帐号注册"
        }
        this.__super(e)
    };
    l.__reset = function(e) {
        this.__super(e);
        window.$outLoginKey = this.__options.outLoginKey || "";
        window.$autoFocus = "0" == this.__options.autoFocus ? 0 : 1;
        this.__box = t._$get("cnt-box");
        this.__box2 = t._$get("cnt-box2");
        r._$render(this.__box, "h-tmp");
        this.__initEvent()
    };
    l.__destroy = function() {
        this.__super()
    };
    l.__initEvent = function() {
        var e = "click";
        var i = t._$get("confirm");
        var n = t._$get("cnt-box-parent");
        this.__doInitDomEvent([[i, e, this.__doAction._$bind(this)], [n, e, this.__doAction._$bind(this)], [document, "mouseover", this.__onMouseover._$bind(this)]])
    };
    l.__checkCookie = function(e, t, i) {};
    l.__onMouseover = function(e) {
        var n = i._$getElement(e),
        s = t._$dataset(n, "outlink") || 0;
        window.outlinkflag = s
    };
    l.__changePage = function(e) {
        t._$setStyle(this.__box, "display", e ? "none": "block");
        t._$setStyle(this.__box2, "display", e ? "block": "none");
        this.__sendSize("moduleResize")
    };
    l.__showFail = function(e) {
        o._$showFail(e)
    };
    l.__showFail2 = function(e) {
        o._$showFail(e)
    };
    l.__showLeak = function(e, t) {
        var i, n;
        this.__isLeak = !0;
        if (1 == e) {
            this.__isLeak1 = !0;
            r._$render(this.__box2, "exception1-tmp", {
                product: this.__product,
                promark: this.__promark
            })
        } else if (2 == e) {
            this.__isLeak2 = !0;
            r._$render(this.__box2, "exception2-tmp", {
                product: this.__product,
                promark: this.__promark
            })
        } else if (3 == e) {
            this.__isLeak3 = !0;
            r._$render(this.__box2, "exception3-tmp", {
                product: this.__product,
                promark: this.__promark
            })
        } else if (4 == e) {
            i = t.mode || {};
            this.__showMode(i)
        } else if (5 == e) {
            this.__isLeak = !1;
            i = t.mode || {};
            n = i.txt0.split("<br>");
            i.txt1 = n[0] || "";
            i.txt2 = n[1] || "";
            r._$render(this.__box2, "exception4-tmp", i)
        } else if (6 == e) r._$render(this.__box2, "exception5-tmp", {
            product: this.__product,
            promark: this.__promark
        });
        this.__changePage(1)
    };
    l.__showMode = function(e) {
        this.__isMode = 1;
        var t = {
            product: this.__product,
            promark: this.__promark
        };
        var i = e;
        i.srclist = i.srcList ? i.srcList.join(",") : "";
        n._$merge(t, i);
        var s = "exception-tmp-" + (e.mode || 0);
        r._$render(this.__box2, s, t);
        this.__changePage(1)
    };
    l.__sendSize = function(e) {
        var t = document.body.scrollWidth,
        i = document.body.clientHeight,
        n = {
            width: t,
            height: i,
            type: e || "resize"
        };
        if (t * i > 0) {
            n["URS-CM"] = 1;
            o._$postMessage("_parent", {
                data: n
            })
        }
    };
    l.__sendClose = function(e) {
        var i = t._$getByClassName(document, "j-inputtext");
        var s = !0;
        n._$forEach(i,
        function(e) {
            if (e.value) s = !1
        });
        if (e || this.__islogin || s) {
            var r = {
                type: "close"
            };
            r["URS-CM"] = 1;
            o._$postMessage("_parent", {
                data: r
            })
        } else this.__showConfirm()
    };
    l.__doAction = function(e) {
        var n = i._$getElement(e),
        s = t._$dataset(n, "action");
        if ("confirmgoon" == s) {
            t._$addClassName(t._$get("confirm"), "f-dn");
            t._$delClassName(t._$get("cnt-box-parent"), "f-dn");
            this.__sendSize("init")
        }
        if ("confirmclose" == s) {
            _gaq.push(["_trackEvent", "注册步骤", "【-】放弃注册", "放弃注册"]);
            var r = {
                type: "close"
            };
            r["URS-CM"] = 1;
            o._$postMessage("_parent", {
                data: r
            });
            this.__closeFlag = !1
        }
    };
    l.__showConfirm = function() {
        t._$addClassName(t._$get("cnt-box-parent"), "f-dn");
        t._$delClassName(t._$get("confirm"), "f-dn");
        this.__sendSize("init")
    };
    l.__sendMsgDomain = function(e, t) {
        this.__onUnLockLogin && this.__onUnLockLogin();
        this.__onUnLockReg && this.__onUnLockReg();
        this.__sendMsg(e);
        if (t && this.__setDomainsOk) this.__setDomainsOk(t)
    };
    l.__addIframe = function(e, i, n, s) {
        if ("https:" == location.protocol) s = s.replace("http:", "https:");
        var r = s.indexOf("zc.reg.163.com") == -1;
        if (r) r = s.indexOf("/zc/") == -1;
        if (r) {
            s = o._$addPathB(s);
            if (window._$URSOPT.opd) s = s + (s.indexOf("?") >= 0 ? "&": "?") + "opd=" + window._$URSOPT.opd;
            if (window._$URSOPT.opkid) s = s + (s.indexOf("?") >= 0 ? "&": "?") + "opkid=" + window._$URSOPT.opkid
        }
        t._$createXFrame({
            src: s,
            parent: document.body,
            visible: !1,
            onload: function() {
                this.__setMap[n].iframeIndex++;
                if (this.__setMap[n].ifarmeSize == this.__setMap[n].iframeIndex) {
                    this.__setMap[n].iframeCt = clearTimeout(this.__setMap[n].iframeCt);
                    this.__sendMsgDomain(e, i)
                }
            }._$bind(this)
        })
    };
    l.__setDomains = function(e, t) {
        var i = e || {};
        t = t || "";
        i["URS-CM"] = 1;
        var s = (new Date).getTime();
        this.__setMap[s] = {};
        this.__setMap[s].iframeIndex = 0;
        var r = i.nextUrls || [];
        this.__setMap[s].ifarmeSize = r.length || 0;
        if (this.__setMap[s].ifarmeSize > 0) this.__setMap[s].iframeCt = setTimeout(function(e, t) {
            this.__sendMsgDomain(e, t)
        }._$bind(this, i, t), 5e3);
        else this.__sendMsgDomain(i, t);
        n._$forEach(r, this.__addIframe._$bind(this, i, t, s))
    };
    l.__sendMsg = function(e) {
        var t = e || {};
        t["URS-CM"] = 1;
        if (window.$outLoginKey && "success" == t.type) t.fromOutLogin = 1;
        o._$postMessage("_parent", {
            data: t
        })
    };
    l.__hideFooter = function() {
        var e = t._$get("footer");
        t._$addClassName(e, "f-dn")
    };
    window.thirdHandler = function(e) {
        var t = {
            type: "success",
            isOther: !0,
            username: e
        };
        t["URS-CM"] = 1;
        if (window.$outLoginKey) t.fromOutLogin = 1;
        o._$postMessage("_parent", {
            data: t
        })
    };
    window.$outLogin = function(e) {
        var t;
        if (e.isOther) window.thirdHandler(e.username);
        else {
            var i = JSON.stringify(e);
            t = JSON.parse(i);
            t.toOpener = 1;
            o._$postMessage("_parent", {
                data: t
            })
        }
    };
    return _
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f", "83c67d5b20eeffc1f687e113ae22189f", "4e3477f1faad0e644cf31bd4765e12dc", "0d434f17f93250948578c8948f9f01bf", "f4dec1b84700c9cc21c1a3746102e1f6");
I$("d240dbd785e56674fcebcea02cbcb6c4",
function(e, t, i, n, s, r, a, o, c, _, d) {
    var f = "https://reg.163.com/services/getqrcodeid";
    var h = "https://reg.163.com/services/getUrlQrcode";
    var l = "https://reg.163.com/services/qrcodeauth";
    var u = "https://reg.163.com/services/ticketloginForZJ";
    o._$initQr = function(e) {
        if (!e) e = [];
        this.__totalState = 0;
        this.__ticket = "";
        this.__domain = "";
        this.__domains = e.domains || "";
        this.__prdomain = e.prdomain || "";
        this.__product = e.product || "urs";
        this.__promark = e.promark;
        this.__usage = e.usage || 0;
        this.__size = e.size || "200";
        this.__format = e.format || "png";
        this.__qrcodeDom = e.qrcodeDom || null;
        this.__imgDom = e.imgDom || null;
        this.__oWarmDom = e.oWarmDom || null;
        this.__qrSuccDom = e.qrSuccDom || null;
        this.__qrBackBrn = e.qrBackDom || null;
        this.__pollingSec = e.pollingSec || 2e3;
        this.__maxPollingTimes = e.maxPollingTimes || 150;
        this.__completePollingTimes = e.completePollingTimes || 60;
        this.__qrLoginSucc = e.qrLoginSucc || this.__qrLoginSucc;
        this.__qrLoginErr = e.qrLoginErr || this.__qrLoginErr;
        this.__confirmLogin = e.confirmLogin || this.__confirmLogin;
        this.__scanIsComplete = e.scanIsComplete || this.__scanIsComplete;
        this.__codeLose = e.codeLose || this.__codeLose;
        this.__oWarmDom.onclick = function() {
            o.__changeState(1)
        };
        this.__qrBackBrn.onclick = function() {
            o.__changeState(1)
        };
        this.__changeState(1)
    };
    o.__changeState = function(e) {
        switch (e) {
        case 0:
            this._$clearAllStatus();
            this.__hideScanSucc();
            this.__showQrcodeM();
            this.__showOWarm();
            this.__totalState = 0;
            break;
        case 1:
            this.__hideScanSucc();
            this.__showQrcodeM();
            this.__getQrcode();
            this.__hideOWarm();
            this.__totalState = 1;
            break;
        case 2:
            this.__hideQrcodeM();
            this.__showScanSucc();
            this.__totalState = 2
        }
    };
    o.__getQrcode = function() {
        var e = this;
        if (1 !== this.__totalState) {
            var t = function(t) {
                t = JSON.parse(t["content"]);
                e.__qrId = t["l"]["i"];
                if (e.__qrId) e.__showQrcode(e.__imgDom)
            };
            var i = {
                product: this.__product,
                usage: this.__usage
            };
            a._$requestJsonp(f, i, t)
        }
    };
    o.__showQrcode = function(e) {
        e.src = h + "?uuid=" + this.__qrId + "&size=" + this.__size + "&format=" + this.__format + "&" + (new Date).getTime();
        this.__restartTiming(0)
    };
    o.__restartTiming = function(e) {
        var t = this;
        this.__qrTiming = 0;
        var i = this.__pollingSec;
        var n = 0 == e ? this.__maxPollingTimes: this.__completePollingTimes;
        if (this.__checkQrStIntv) clearInterval(t.__checkQrStIntv);
        this.__checkQrStIntv = setInterval(function() {
            t.__qrTiming++;
            t.__checkQrStatus();
            if (t.__qrTiming >= n) {
                clearInterval(t.__checkQrStIntv);
                t.__changeState(0);
                t.__codeLose()
            }
        },
        i)
    };
    o.__checkQrStatus = function() {
        var e = this;
        var t = function(t) {
            var i = t.retCode;
            switch (i) {
            case "200":
                if (0 == e.__totalState) break;
                e.__changeState(2);
                e.__ticket = t.ticket;
                e.__domain = t.domain;
                e.__confirmLogin(t);
                e._$clearAllStatus();
                e.__doQrLogin();
                break;
            case "401":
                if (1 != e.__totalState) break;
                e.__changeState(0);
                e.__codeLose(t);
                break;
            case "404":
                if (1 != e.__totalState) break;
                e.__changeState(0);
                e.__codeLose(t);
                break;
            case "408":
                break;
            case "409":
                if (1 != e.__totalState) break;
                e.__scanIsComplete(t);
                e.__changeState(2);
                e.__restartTiming(1);
                break;
            case "500":
                if (1 != e.__totalState) break;
                e.__codeLose(t);
                e.__changeState(0)
            }
        };
        var i = {
            uuid: this.__qrId,
            product: this.__product
        };
        a._$requestJsonp(l, i, t)
    };
    o.__doQrLogin = function() {
        var e = this;
        var t = function(t) {
            var i = t.ret;
            if ("201" == i) {
                var n = t.username;
                n.indexOf("@") === -1 ? n += "@163.com": null;
                if (!e.__prdomain || n.substring(n.indexOf("@")) == e.__prdomain) e.__qrLoginSucc(n, t);
                else {
                    e.__changeState(1);
                    var s = e.__prdomain ? "扫码失败，请使用" + e.__prdomain + "帐号扫码登录": "请使用指定域名帐号扫码登录";
                    e.__qrLoginErr(t, s)
                }
            } else {
                e.__changeState(0);
                e.__qrLoginErr(t)
            }
        };
        var i = {
            tk: this.__ticket,
            pd: this.__product,
            domains: this.__domains,
            pkid: this.__promark
        };
        s._$request("qrlogin", i, t._$bind(this), t._$bind(this), 1)
    };
    o.__qrLoginSucc = function(e) {};
    o.__qrLoginErr = function(e) {};
    o.__confirmLogin = function() {};
    o.__scanIsComplete = function() {};
    o.__codeLose = function() {};
    o._$clearAllStatus = function() {
        clearInterval(this.__checkQrStIntv);
        this.__qrTiming = 0
    };
    o.__showQrcodeM = function() {
        if (this.__qrcodeDom) t._$delClassName(this.__qrcodeDom, "f-dn")
    };
    o.__hideQrcodeM = function() {
        if (this.__qrcodeDom) t._$addClassName(this.__qrcodeDom, "f-dn")
    };
    o.__showOWarm = function() {
        if (this.__oWarmDom) t._$delClassName(this.__oWarmDom, "f-dn")
    };
    o.__hideOWarm = function() {
        if (this.__oWarmDom) t._$addClassName(this.__oWarmDom, "f-dn")
    };
    o.__showScanSucc = function() {
        if (this.__qrSuccDom) t._$delClassName(this.__qrSuccDom, "f-dn")
    };
    o.__hideScanSucc = function() {
        if (this.__qrSuccDom) t._$addClassName(this.__qrSuccDom, "f-dn")
    };
    return o
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "4dadb2ee6ba889b538cf0977b4b3cad0", "46f2cd0a022c7fb344095e1795b5927b", "0d434f17f93250948578c8948f9f01bf");
I$("5ff7df89658ea00701caab652836d5ac",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u) {
    var p, m;
    f._$$QrcodeManager = e._$klass();
    p = f._$$QrcodeManager._$extend(a._$$Abstract);
    p.__init = function(e) {
        this.__product = e.product || "urs";
        this.__prdomain = e.prdomain || "";
        this.__toolName = e.toolName || "网易帐号管家";
        this.__toolUrl = e.toolUrl || "//id.163.com/gj/?from=webzj";
        this.__opts = e.opts;
        this.__super()
    };
    p.__reset = function(e) {
        this.__super(e);
        this.__qrBox = t._$getByClassName(document, "m-qrcode")[0];
        if (o._$notURL(this.__toolUrl)) this.__toolUrl = "";
        this.__tooApp.href = this.__toolUrl;
        this.__tooApp.innerHTML = o._$HtmlEncode(this.__toolName);
        this.__qrcodeDom = t._$getByClassName(this.__qrBox, "j-qrblock")[0];
        this.__qrImgDom = t._$getByClassName(this.__qrBox, "j-qrcode")[0];
        this.__qrOWarmDom = t._$getByClassName(this.__qrBox, "j-owarm")[0];
        this.__qrSuccDom = t._$getByClassName(this.__qrBox, "j-qrsucc")[0];
        this.__qrBackDom = t._$getByClassName(this.__qrBox, "j-qrback")[0];
        var i = {
            promark: this.__opts.promark,
            domains: this.__opts.domains,
            product: this.__product,
            prdomain: this.__prdomain,
            qrcodeDom: this.__qrcodeDom,
            imgDom: this.__qrImgDom,
            oWarmDom: this.__qrOWarmDom,
            qrSuccDom: this.__qrSuccDom,
            qrBackDom: this.__qrBackDom,
            qrLoginSucc: this.__qrLoginSucc._$bind(this),
            qrLoginErr: this.__qrLoginErr._$bind(this),
            confirmLogin: this.__confirmLogin._$bind(this),
            scanIsComplete: this.__scanIsComplete._$bind(this),
            codeLose: this.__codeLose._$bind(this)
        };
        _._$initQr(i);
        o._$resize()
    };
    p.__destroy = function() {
        this.__super();
        _._$clearAllStatus()
    };
    p.__initNode = function() {
        this.__super();
        this.__tooApp = t._$getByClassName(this.__body, "j-toolapp")[0]
    };
    p.__initXGui = function() {
        m = s._$addNodeTemplate(r._$get("qrcode-tmp"));
        this.__seed_html = m
    };
    p.__qrLoginSucc = function(e, t) {
        this.__username = e;
        this.__doQrLoginSucc(t)
    };
    p.__doQrLoginSucc = function(e) {
        d._$cookie("THE_LAST_LOGIN", {
            value: this.__username,
            expires: 30,
            path: "/"
        });
        var t = e.nextUrls;
        var i = {
            type: "success",
            username: this.__username,
            isqr: 1,
            nextUrls: t
        };
        this._$dispatchEvent("sendmsg", i);
        _gaq.push(["_trackEvent", "二维码登录", "【3】二维码登录结果", "扫码登录成功"])
    };
    p.__qrLoginErr = function(e, t) {
        if (!e) e = [];
        var i = t || "扫码登录失败，请重试";
        o._$showFail2(i);
        t = t || e.ret;
        _gaq.push(["_trackEvent", "二维码登录", "【3】二维码登录结果", t ? t: "扫码登录失败"])
    };
    p.__confirmLogin = function() {
        _gaq.push(["_trackEvent", "二维码登录", "【2】二维码确认", "用户确认登录"])
    };
    p.__scanIsComplete = function() {
        _gaq.push(["_trackEvent", "二维码登录", "【1】扫码", "扫码成功"])
    };
    p.__codeLose = function() {
        _gaq.push(["_trackEvent", "二维码登录", "【-】二维码异常", "二维码失效"])
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b07a20e1d9be763162954dd0fcf2feb3", "83c67d5b20eeffc1f687e113ae22189f", "df9d93a61ae210b34038e92b4416342a", "0d434f17f93250948578c8948f9f01bf", "8bdf4bf336ac3e80c5ba9eaf2a14b550", "d240dbd785e56674fcebcea02cbcb6c4", "f4dec1b84700c9cc21c1a3746102e1f6"); !
function(e, t) {
    "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : "object" == typeof exports ? exports.Regular = t() : e.Regular = t()
} (this,
function() {
    return function(e) {
        function t(n) {
            if (i[n]) return i[n].exports;
            var s = i[n] = {
                exports: {},
                id: n,
                loaded: !1
            };
            return e[n].call(s.exports, s, s.exports, t),
            s.loaded = !0,
            s.exports
        }
        var i = {};
        return t.m = e,
        t.c = i,
        t.p = "",
        t(0)
    } ([function(e, t, i) {
        var n = i(1),
        s = i(2),
        r = e.exports = i(3),
        a = r.Parser,
        o = r.Lexer;
        n.browser && (i(6), i(7), i(8), r.dom = i(4)),
        r.env = n,
        r.util = i(5),
        r.parse = function(e, t) {
            t = t || {},
            (t.BEGIN || t.END) && (t.BEGIN && (s.BEGIN = t.BEGIN), t.END && (s.END = t.END), o.setup());
            var i = new a(e).parse();
            return t.stringify ? JSON.stringify(i) : i
        }
    },
    function(e, t, i) {
        var n = i(5);
        t.svg = function() {
            return "undefined" != typeof document && document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")
        } (),
        t.browser = "undefined" != typeof document && document.nodeType,
        t.exprCache = n.cache(1e3),
        t.isRunning = !1
    },
    function(e) {
        e.exports = {
            BEGIN: "{",
            END: "}"
        }
    },
    function(e, t, i) {
        var n = i(1),
        s = i(11),
        r = i(12),
        a = i(2),
        o = i(5),
        c = i(13),
        _ = {};
        if (n.browser) {
            var d = i(4),
            f = i(9),
            h = i(10),
            l = d.doc;
            _ = i(14)
        }
        var u = i(15),
        p = i(16),
        m = i(17),
        g = i(18),
        b = function(e, t) {
            var i = n.isRunning;
            n.isRunning = !0;
            var s, a;
            e = e || {},
            t = t || {},
            e.data = e.data || {},
            e.computed = e.computed || {},
            e.events = e.events || {},
            this.data && o.extend(e.data, this.data),
            this.computed && o.extend(e.computed, this.computed),
            this.events && o.extend(e.events, this.events),
            o.extend(this, e, !0),
            this.$parent && this.$parent._append(this),
            this._children = [],
            this.$refs = {},
            a = this.template,
            "string" == typeof a && a.length < 16 && (s = d.find(a)) && (a = s.innerHTML),
            a && a.nodeType && (a = a.innerHTML),
            "string" == typeof a && (this.template = new r(a).parse()),
            this.computed = v(this.computed),
            this.$root = this.$root || this,
            this.events && this.$on(this.events),
            this.$emit("$config"),
            this.config && this.config(this.data);
            var c = this._body;
            this._body = null,
            c && c.ast && c.ast.length && (this.$body = o.getCompileFn(c.ast, c.ctx, {
                outer: this,
                namespace: t.namespace,
                extra: t.extra,
                record: !0
            })),
            a && (this.group = this.$compile(this.template, {
                namespace: t.namespace
            }), _.node(this)),
            this.$parent || this.$update(),
            this.$ready = !0,
            this.$emit("$init"),
            this.init && this.init(this.data),
            n.isRunning = i
        };
        f && (f.Regular = b),
        o.extend(b, {
            _directives: {
                __regexp__: []
            },
            _plugins: {},
            _protoInheritCache: ["directive", "use"],
            __after__: function(e, t) {
                var i;
                if (this.__after__ = e.__after__, t.name && b.component(t.name, this), i = t.template) {
                    var n, s;
                    "string" == typeof i && i.length < 16 && (n = d.find(i)) && (i = n.innerHTML, (s = d.attr(n, "name")) && b.component(s, this)),
                    i.nodeType && (i = i.innerHTML),
                    "string" == typeof i && (this.prototype.template = new r(i).parse())
                }
                t.computed && (this.prototype.computed = v(t.computed)),
                b._inheritConfig(this, e)
            },
            directive: function(e, t) {
                if ("object" === o.typeOf(e)) {
                    for (var i in e) e.hasOwnProperty(i) && this.directive(i, e[i]);
                    return this
                }
                var n, s = o.typeOf(e),
                r = this._directives;
                if (null != t) return "function" == typeof t && (t = {
                    link: t
                }),
                "string" === s ? r[e] = t: "regexp" === s && (t.regexp = e, r.__regexp__.push(t)),
                this;
                else {
                    if ("string" === s && (n = r[e])) return n;
                    for (var a = r.__regexp__,
                    c = 0,
                    _ = a.length; _ > c; c++) {
                        n = a[c];
                        var d = n.regexp.test(e);
                        if (d) return n
                    }
                }
            },
            plugin: function(e, t) {
                var i = this._plugins;
                return null == t ? i[e] : (i[e] = t, this)
            },
            use: function(e) {
                return "string" == typeof e && (e = b.plugin(e)),
                "function" != typeof e ? this: (e(this, b), this)
            },
            config: function(e) {
                var t = !1;
                if ("object" == typeof e) for (var i in e)("END" === i || "BEGIN" === i) && (t = !0),
                a[i] = e[i];
                t && s.setup()
            },
            expression: m.expression,
            Parser: r,
            Lexer: s,
            _addProtoInheritCache: function(e, t) {
                if (Array.isArray(e)) return e.forEach(b._addProtoInheritCache);
                var i = "_" + e + "s";
                b._protoInheritCache.push(e),
                b[i] = {},
                b[e] || (b[e] = function(n, s) {
                    var r = this[i];
                    if ("object" == typeof n) {
                        for (var a in n) n.hasOwnProperty(a) && this[e](a, n[a]);
                        return this
                    }
                    return null == s ? r[n] : (r[n] = t ? t(s) : s, this)
                })
            },
            _inheritConfig: function(e, t) {
                var i = b._protoInheritCache,
                n = o.slice(i);
                return n.forEach(function(i) {
                    e[i] = t[i];
                    var n = "_" + i + "s";
                    t[n] && (e[n] = o.createObject(t[n]))
                }),
                e
            }
        }),
        c(b),
        b._addProtoInheritCache("component"),
        b._addProtoInheritCache("filter",
        function(e) {
            return "function" == typeof e ? {
                get: e
            }: e
        }),
        u.mixTo(b),
        p.mixTo(b),
        b.implement({
            init: function() {},
            config: function() {},
            destroy: function() {
                this.$emit("$destroy"),
                this.group && this.group.destroy(!0),
                this.group = null,
                this.parentNode = null,
                this._watchers = null,
                this._children = [];
                var e = this.$parent;
                if (e) {
                    var t = e._children.indexOf(this);
                    e._children.splice(t, 1)
                }
                this.$parent = null,
                this.$root = null,
                this._handles = null,
                this.$refs = null
            },
            $compile: function(e, t) {
                t = t || {},
                "string" == typeof e && (e = new r(e).parse());
                var i, n = this.__ext__,
                s = t.record;
                t.extra && (this.__ext__ = t.extra),
                s && this._record();
                var a = this._walk(e, t);
                if (s) {
                    i = this._release();
                    var o = this;
                    i.length && (a.ondestroy = function() {
                        o.$unwatch(i)
                    })
                }
                return t.extra && (this.__ext__ = n),
                a
            },
            $bind: function(e, t, i) {
                var n = o.typeOf(t);
                if ("expression" === t.type || "string" === n) this._bind(e, t, i);
                else if ("array" === n) for (var s = 0,
                r = t.length; r > s; s++) this._bind(e, t[s]);
                else if ("object" === n) for (var s in t) t.hasOwnProperty(s) && this._bind(e, s, t[s]);
                return e.$update(),
                this
            },
            $unbind: function() {},
            $inject: _.inject,
            $mute: function(e) {
                e = !!e;
                var t = e === !1 && this._mute;
                return this._mute = !!e,
                t && this.$update(),
                this
            },
            _bind: function(e, t, i) {
                var n = this;
                if (! (e && e instanceof b)) throw "$bind() should pass Regular component as first argument";
                if (!t) throw "$bind() should  pass as least one expression to bind";
                if (i || (i = t), t = m.expression(t), i = m.expression(i), i.set) {
                    var s = this.$watch(t,
                    function(t) {
                        e.$update(i, t)
                    });
                    e.$on("$destroy",
                    function() {
                        n.$unwatch(s)
                    })
                }
                if (t.set) {
                    var r = e.$watch(i,
                    function(e) {
                        n.$update(t, e)
                    });
                    this.$on("$destroy", e.$unwatch.bind(e, r))
                }
                i.set(e, t.get(this))
            },
            _walk: function(e, t) {
                if ("array" === o.typeOf(e)) {
                    for (var i = [], n = 0, s = e.length; s > n; n++) i.push(this._walk(e[n], t));
                    return new h(i)
                }
                return "string" == typeof e ? l.createTextNode(e) : f[e.type || "default"].call(this, e, t)
            },
            _append: function(e) {
                this._children.push(e),
                e.$parent = this
            },
            _handleEvent: function(e, t, i, n) {
                var s, r = this.constructor,
                a = "function" != typeof i ? o.handleEvent.call(this, i, t) : i,
                c = r.event(t);
                return c ? s = c.call(this, e, a, n) : d.on(e, t, a),
                c ? s: function() {
                    d.off(e, t, a)
                }
            },
            _touchExpr: function(e) {
                var t, i = this.__ext__,
                n = {};
                if ("expression" !== e.type || e.touched) return e;
                if (t = e.get || (e.get = new Function(o.ctxName, o.extName, o.prefix + "return (" + e.body + ")")), n.get = i ?
                function(e) {
                    return t(e, i)
                }: t, e.setbody && !e.set) {
                    var s = e.setbody;
                    e.set = function(t, i, n) {
                        return e.set = new Function(o.ctxName, o.setName, o.extName, o.prefix + s),
                        e.set(t, i, n)
                    },
                    e.setbody = null
                }
                return e.set && (n.set = i ?
                function(t, n) {
                    return e.set(t, n, i)
                }: e.set),
                o.extend(n, {
                    type: "expression",
                    touched: !0,
                    once: e.once || e.constant
                }),
                n
            },
            _f_: function(e) {
                var t = this.constructor,
                i = t.filter(e);
                if (!i) throw Error("filter " + e + " is undefined");
                return i
            },
            _sg_: function(e, t, i) {
                if ("undefined" != typeof i) {
                    var n = this.computed,
                    s = n[e];
                    if (s) {
                        if ("expression" !== s.type || s.get || this._touchExpr(s), s.get) return s.get(this);
                        o.log("the computed '" + e + "' don't define the get function,  get data." + e + " altnately", "warn")
                    }
                }
                return "undefined" == typeof t || "undefined" == typeof e ? void 0 : i && "undefined" != typeof i[e] ? i[e] : t[e]
            },
            _ss_: function(e, t, i, n, s) {
                var r, s = this.computed,
                n = n || "=",
                a = s ? s[e] : null;
                if ("=" !== n) switch (r = a ? a.get(this) : i[e], n) {
                case "+=":
                    t = r + t;
                    break;
                case "-=":
                    t = r - t;
                    break;
                case "*=":
                    t = r * t;
                    break;
                case "/=":
                    t = r / t;
                    break;
                case "%=":
                    t = r % t
                }
                if (a) {
                    if (a.set) return a.set(this, t);
                    o.log("the computed '" + e + "' don't define the set function,  assign data." + e + " altnately", "warn")
                }
                return i[e] = t,
                t
            }
        }),
        b.prototype.inject = function() {
            return o.log("use $inject instead of inject", "error"),
            this.$inject.apply(this, arguments)
        },
        b.filter(g),
        e.exports = b;
        var v = function() {
            function e(e) {
                return function(t) {
                    return e.call(t, t.data)
                }
            }
            function t(e) {
                return function(t, i) {
                    return e.call(t, i, t.data),
                    i
                }
            }
            return function(i) {
                if (i) {
                    var n, s, r, a = {};
                    for (var o in i) n = i[o],
                    r = typeof n,
                    "expression" !== n.type ? "string" === r ? a[o] = m.expression(n) : (s = a[o] = {
                        type: "expression"
                    },
                    "function" === r ? s.get = e(n) : (n.get && (s.get = e(n.get)), n.set && (s.set = t(n.set)))) : a[o] = n;
                    return a
                }
            }
        } ()
    },
    function(e, t, i) {
        function n(e) {
            return ("" + e).replace(/-\D/g,
            function(e) {
                return e.charAt(1).toUpperCase()
            })
        }
        function s(e, t) {
            return "change" === t && c.msie < 9 && e && e.tagName && "input" === e.tagName.toLowerCase() && ("checkbox" === e.type || "radio" === e.type) ? "click": t
        }
        function r(e) {
            if (e = e || window.event, e._fixed) return e;
            this.event = e,
            this.target = e.target || e.srcElement;
            var t = this.type = e.type,
            i = this.button = e.button;
            if (p.test(t) && (this.pageX = null != e.pageX ? e.pageX: e.clientX + m.scrollLeft, this.pageY = null != e.pageX ? e.pageY: e.clientY + m.scrollTop, "mouseover" === t || "mouseout" === t)) {
                for (var n = e.relatedTarget || e[("mouseover" === t ? "from": "to") + "Element"]; n && 3 === n.nodeType;) n = n.parentNode;
                this.relatedTarget = n
            } ("DOMMouseScroll" === t || "mousewheel" === t) && (this.wheelDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3),
            this.which = e.which || e.keyCode,
            this.which || void 0 === i || (this.which = 1 & i ? 1 : 2 & i ? 3 : 4 & i ? 2 : 0),
            this._fixed = !0
        }
        var a, o, c = e.exports,
        _ = i(1),
        d = i(5),
        f = document.createElement("div"),
        h = function() {},
        l = {
            html: "http://www.w3.org/1999/xhtml",
            svg: "http://www.w3.org/2000/svg"
        };
        c.body = document.body,
        c.doc = document,
        c.tNode = f,
        f.addEventListener ? (a = function(e, t, i) {
            e.addEventListener(t, i, !1)
        },
        o = function(e, t, i) {
            e.removeEventListener(t, i, !1)
        }) : (a = function(e, t, i) {
            e.attachEvent("on" + t, i)
        },
        o = function(e, t, i) {
            e.detachEvent("on" + t, i)
        }),
        c.msie = parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]),
        isNaN(c.msie) && (c.msie = parseInt((/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1])),
        c.find = function(e) {
            if (document.querySelector) try {
                return document.querySelector(e)
            } catch(t) {}
            return - 1 !== e.indexOf("#") ? document.getElementById(e.slice(1)) : void 0
        },
        c.inject = function(e, t, i) {
            if (i = i || "bottom", e) {
                if (Array.isArray(e)) {
                    var n = e;
                    e = c.fragment();
                    for (var s = 0,
                    r = n.length; r > s; s++) e.appendChild(n[s])
                }
                var a, o;
                switch (i) {
                case "bottom":
                    t.appendChild(e);
                    break;
                case "top":
                    (a = t.firstChild) ? t.insertBefore(e, t.firstChild) : t.appendChild(e);
                    break;
                case "after":
                    (o = t.nextSibling) ? o.parentNode.insertBefore(e, o) : t.parentNode.appendChild(e);
                    break;
                case "before":
                    t.parentNode.insertBefore(e, t)
                }
            }
        },
        c.id = function(e) {
            return document.getElementById(e)
        },
        c.create = function(e, t) {
            if ("svg" === t) {
                if (!_.svg) throw Error("the env need svg support");
                t = l.svg
            }
            return t ? document.createElementNS(t, e) : document.createElement(e)
        },
        c.fragment = function() {
            return document.createDocumentFragment()
        };
        var u = {
            "class": function(e, t) {
                "className" in e && (e.namespaceURI === l.html || !e.namespaceURI) ? e.className = t || "": e.setAttribute("class", t)
            },
            "for": function(e, t) {
                "htmlFor" in e ? e.htmlFor = t: e.setAttribute("for", t)
            },
            style: function(e, t) {
                e.style ? e.style.cssText = t: e.setAttribute("style", t)
            },
            value: function(e, t) {
                e.value = null != t ? t: ""
            }
        };
        c.attr = function(e, t, i) {
            if (d.isBooleanAttr(t)) {
                if ("undefined" == typeof i) return e[t] || (e.attributes.getNamedItem(t) || h).specified ? t: void 0;
                i ? (e[t] = !0, e.setAttribute(t, t), c.msie && c.msie <= 7 && (e.defaultChecked = !0)) : (e[t] = !1, e.removeAttribute(t))
            } else if ("undefined" != typeof i) u[t] ? u[t](e, i) : null === i ? e.removeAttribute(t) : e.setAttribute(t, i);
            else if (e.getAttribute) {
                var n = e.getAttribute(t, 2);
                return null === n ? void 0 : n
            }
        },
        c.on = function(e, t, i) {
            var n = t.split(" ");
            i.real = function(t) {
                var n = new r(t);
                n.origin = e,
                i.call(e, n)
            },
            n.forEach(function(t) {
                t = s(e, t),
                a(e, t, i.real)
            })
        },
        c.off = function(e, t, i) {
            var n = t.split(" ");
            i = i.real || i,
            n.forEach(function(t) {
                t = s(e, t),
                o(e, t, i)
            })
        },
        c.text = function() {
            var e = {};
            return c.msie && c.msie < 9 ? (e[1] = "innerText", e[3] = "nodeValue") : e[1] = e[3] = "textContent",
            function(t, i) {
                var n = e[t.nodeType];
                return null == i ? n ? t[n] : "": void(t[n] = i)
            }
        } (),
        c.html = function(e, t) {
            return "undefined" == typeof t ? e.innerHTML: void(e.innerHTML = t)
        },
        c.replace = function(e, t) {
            t.parentNode && t.parentNode.replaceChild(e, t)
        },
        c.remove = function(e) {
            e.parentNode && e.parentNode.removeChild(e)
        },
        c.css = function(e, t, i) {
            if ("object" !== d.typeOf(t)) {
                if ("undefined" == typeof i) {
                    var s;
                    return c.msie <= 8 && (s = e.currentStyle && e.currentStyle[t], "" === s && (s = "auto")),
                    s = s || e.style[t],
                    c.msie <= 8 && (s = "" === s ? void 0 : s),
                    s
                }
                t = n(t),
                t && (e.style[t] = i)
            } else for (var r in t) t.hasOwnProperty(r) && c.css(e, r, t[r])
        },
        c.addClass = function(e, t) {
            var i = e.className || ""; - 1 === (" " + i + " ").indexOf(" " + t + " ") && (e.className = i ? i + " " + t: t)
        },
        c.delClass = function(e, t) {
            var i = e.className || "";
            e.className = (" " + i + " ").replace(" " + t + " ", " ").trim()
        },
        c.hasClass = function(e, t) {
            var i = e.className || "";
            return - 1 !== (" " + i + " ").indexOf(" " + t + " ")
        };
        var p = /^(?:click|dblclick|contextmenu|DOMMouseScroll|mouse(?:\w+))$/,
        m = document;
        m = m.compatMode && "CSS1Compat" !== m.compatMode ? m.body: m.documentElement,
        d.extend(r.prototype, {
            immediateStop: d.isFalse,
            stop: function() {
                this.preventDefault().stopPropagation()
            },
            preventDefault: function() {
                return this.event.preventDefault ? this.event.preventDefault() : this.event.returnValue = !1,
                this
            },
            stopPropagation: function() {
                return this.event.stopPropagation ? this.event.stopPropagation() : this.event.cancelBubble = !0,
                this
            },
            stopImmediatePropagation: function() {
                this.event.stopImmediatePropagation && this.event.stopImmediatePropagation()
            }
        }),
        c.nextFrame = function() {
            var e = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame ||
            function(e) {
                setTimeout(e, 16)
            },
            t = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelRequestAnimationFrame ||
            function(e) {
                clearTimeout(e)
            };
            return function(i) {
                var n = e(i);
                return function() {
                    t(n)
                }
            }
        } ();
        var g;
        c.nextReflow = c.msie ?
        function(e) {
            return c.nextFrame(function() {
                g = document.body.offsetWidth,
                e()
            })
        }: c.nextFrame
    },
    function(e, t, i) { (function(t) {
            function n(e, t) {
                "undefined" != typeof console && console[t || "log"](e)
            }
            i(19)();
            var s = e.exports,
            r = i(20),
            a = [].slice,
            o = {}.toString,
            c = "undefined" != typeof window ? window: t;
            s.noop = function() {},
            s.uid = function() {
                var e = 0;
                return function() {
                    return e++
                }
            } (),
            s.extend = function(e, t, i) {
                for (var n in t)("undefined" == typeof e[n] || i === !0) && (e[n] = t[n]);
                return e
            },
            s.keys = function(e) {
                if (Object.keys) return Object.keys(e);
                var t = [];
                for (var i in e) e.hasOwnProperty(i) && t.push(i);
                return t
            },
            s.varName = "d",
            s.setName = "p_",
            s.ctxName = "c",
            s.extName = "e",
            s.rWord = /^[\$\w]+$/,
            s.rSimpleAccessor = /^[\$\w]+(\.[\$\w]+)*$/,
            s.nextTick = "function" == typeof setImmediate ? setImmediate.bind(c) : function(e) {
                setTimeout(e, 0)
            },
            s.prefix = "var " + s.varName + "=" + s.ctxName + ".data;" + s.extName + "=" + s.extName + "||'';",
            s.slice = function(e, t, i) {
                for (var n = [], s = t || 0, r = i || e.length; r > s; s++) {
                    var a = e[s];
                    n.push(a)
                }
                return n
            },
            s.typeOf = function(e) {
                return null == e ? String(e) : o.call(e).slice(8, -1).toLowerCase();
            },
            s.makePredicate = function(e) {
                function t(e) {
                    if (1 === e.length) return i += "return str === '" + e[0] + "';";
                    i += "switch(str){";
                    for (var t = 0; t < e.length; ++t) i += "case '" + e[t] + "':";
                    i += "return true}return false;"
                }
                "string" == typeof e && (e = e.split(" "));
                var i = "",
                n = [];
                e: for (var s = 0; s < e.length; ++s) {
                    for (var r = 0; r < n.length; ++r) if (n[r][0].length === e[s].length) {
                        n[r].push(e[s]);
                        continue e
                    }
                    n.push([e[s]])
                }
                if (n.length > 3) {
                    n.sort(function(e, t) {
                        return t.length - e.length
                    }),
                    i += "switch(str.length){";
                    for (var s = 0; s < n.length; ++s) {
                        var a = n[s];
                        i += "case " + a[0].length + ":",
                        t(a)
                    }
                    i += "}"
                } else t(e);
                return new Function("str", i)
            },
            s.trackErrorPos = function() {
                function e(e, t) {
                    for (var i = 0,
                    n = 0,
                    s = e.length; s > n; n++) {
                        var r = (e[n] || "").length;
                        if (i + r > t) return {
                            num: n,
                            line: e[n],
                            start: t - n - i,
                            prev: e[n - 1],
                            next: e[n + 1]
                        };
                        i += r
                    }
                }
                function t(e, t, i, r) {
                    var a = e.length,
                    o = t - n;
                    0 > o && (o = 0);
                    var c = t + s;
                    c > a && (c = a);
                    var _ = e.slice(o, c),
                    d = "[" + (i + 1) + "] " + (o > 0 ? "..": ""),
                    f = a > c ? "..": "",
                    h = d + _ + f;
                    return r && (h += "\n" + new Array(t - o + d.length + 1).join(" ") + "^^^"),
                    h
                }
                var i = /\r\n|[\n\r\u2028\u2029]/g,
                n = 20,
                s = 20;
                return function(n, s) {
                    s > n.length - 1 && (s = n.length - 1),
                    i.lastIndex = 0;
                    var r = n.split(i),
                    a = e(r, s),
                    o = a.start,
                    c = a.num;
                    return (a.prev ? t(a.prev, o, c - 1) + "\n": "") + t(a.line, o, c, !0) + "\n" + (a.next ? t(a.next, o, c + 1) + "\n": "")
                }
            } ();
            var _ = /\((\?\!|\?\:|\?\=)/g;
            s.findSubCapture = function(e) {
                var t = 0,
                i = 0,
                n = e.length,
                s = e.match(_);
                for (s = s ? s.length: 0; n--;) {
                    var r = e.charAt(n); (0 === n || "\\" !== e.charAt(n - 1)) && ("(" === r && t++, ")" === r && i++)
                }
                if (t !== i) throw "RegExp: " + e + "'s bracket is not marched";
                return t - s
            },
            s.escapeRegExp = function(e) {
                return e.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,
                function(e) {
                    return "\\" + e
                })
            };
            var d = new RegExp("&(?:(#x[0-9a-fA-F]+)|(#[0-9]+)|(" + s.keys(r).join("|") + "));", "gi");
            s.convertEntity = function(e) {
                return ("" + e).replace(d,
                function(e, t, i, n) {
                    var s;
                    return s = i ? parseInt(i.slice(1), 10) : t ? parseInt(t.slice(2), 16) : r[n],
                    String.fromCharCode(s)
                })
            },
            s.createObject = function(e, t) {
                function i() {}
                i.prototype = e;
                var n = new i;
                return t && s.extend(n, t),
                n
            },
            s.createProto = function(e, t) {
                function i() {
                    this.constructor = e
                }
                return i.prototype = t,
                e.prototype = new i
            },
            s.clone = function(e) {
                var t = s.typeOf(e);
                if ("array" === t) {
                    for (var i = [], n = 0, r = e.length; r > n; n++) i[n] = e[n];
                    return i
                }
                if ("object" === t) {
                    var i = {};
                    for (var n in e) e.hasOwnProperty(n) && (i[n] = e[n]);
                    return i
                }
                return e
            },
            s.equals = function(e, t) {
                var i = typeof e;
                return "number" === i && "number" == typeof t && isNaN(e) && isNaN(t) ? !0 : e === t
            };
            var f = /-([a-z])/g;
            s.camelCase = function(e) {
                return e.replace(f,
                function(e, t) {
                    return t.toUpperCase()
                })
            },
            s.throttle = function(e, t) {
                var i, n, s, t = t || 100,
                r = null,
                a = 0,
                o = function() {
                    a = +new Date,
                    r = null,
                    s = e.apply(i, n),
                    i = n = null
                };
                return function() {
                    var c = +new Date,
                    _ = t - (c - a);
                    return i = this,
                    n = arguments,
                    0 >= _ || _ > t ? (clearTimeout(r), r = null, a = c, s = e.apply(i, n), i = n = null) : r || (r = setTimeout(o, _)),
                    s
                }
            },
            s.escape = function() {
                var e = /&/g,
                t = /</g,
                i = />/g,
                n = /\'/g,
                s = /\"/g,
                r = /[&<>\"\']/;
                return function(a) {
                    return r.test(a) ? a.replace(e, "&amp;").replace(t, "&lt;").replace(i, "&gt;").replace(n, "&#39;").replace(s, "&quot;") : a
                }
            } (),
            s.cache = function(e) {
                e = e || 1e3;
                var t = [],
                i = {};
                return {
                    set: function(e, n) {
                        return t.length > this.max && (i[t.shift()] = void 0),
                        void 0 === i[e] && t.push(e),
                        i[e] = n,
                        n
                    },
                    get: function(e) {
                        return void 0 === e ? i: i[e]
                    },
                    max: e,
                    len: function() {
                        return t.length
                    }
                }
            },
            s.handleEvent = function(e) {
                var t, i = this;
                return "expression" === e.type && (t = e.get),
                t ?
                function(e) {
                    i.$update(function() {
                        var n = this.data;
                        n.$event = e;
                        var s = t(i);
                        s === !1 && e && e.preventDefault && e.preventDefault(),
                        n.$event = void 0
                    })
                }: function() {
                    var t = a.call(arguments);
                    t.unshift(e),
                    i.$update(function() {
                        i.$emit.apply(i, t)
                    })
                }
            },
            s.once = function(e) {
                var t = 0;
                return function() {
                    0 === t++&&e.apply(this, arguments)
                }
            },
            s.fixObjStr = function(e) {
                return 0 !== e.trim().indexOf("{") ? "{" + e + "}": e
            },
            s.map = function(e, t) {
                for (var i = [], n = 0, s = e.length; s > n; n++) i.push(t(e[n], n));
                return i
            },
            s.log = n,
            s.isVoidTag = s.makePredicate("area base br col embed hr img input keygen link menuitem meta param source track wbr r-content"),
            s.isBooleanAttr = s.makePredicate("selected checked disabled readonly required open autofocus controls autoplay compact loop defer multiple"),
            s.isFalse -
            function() {
                return ! 1
            },
            s.isTrue -
            function() {
                return ! 0
            },
            s.isExpr = function(e) {
                return e && "expression" === e.type
            },
            s.isGroup = function(e) {
                return e.inject || e.$inject
            },
            s.getCompileFn = function(e, t, i) {
                return t.$compile.bind(t, e, i)
            }
        }).call(t,
        function() {
            return this
        } ())
    },
    function(e, t, i) {
        var n = i(5),
        s = i(4),
        r = (i(21), i(3)),
        a = i(22);
        i(23),
        i(24),
        e.exports = {
            "r-class": function(e, t) {
                "string" == typeof t && (t = n.fixObjStr(t)),
                this.$watch(t,
                function(t) {
                    var i = " " + e.className.replace(/\s+/g, " ") + " ";
                    for (var n in t) t.hasOwnProperty(n) && (i = i.replace(" " + n + " ", " "), t[n] === !0 && (i += n + " "));
                    e.className = i.trim()
                },
                !0)
            },
            "r-style": function(e, t) {
                "string" == typeof t && (t = n.fixObjStr(t)),
                this.$watch(t,
                function(t) {
                    for (var i in t) t.hasOwnProperty(i) && s.css(e, i, t[i])
                },
                !0)
            },
            "r-hide": function(e, t) {
                var i, s = null;
                n.isExpr(t) || "string" == typeof t ? this.$watch(t,
                function(t) {
                    var n = !!t;
                    n !== s && (s = n, n ? e.onleave ? i = e.onleave(function() {
                        e.style.display = "none",
                        i = null
                    }) : e.style.display = "none": (i && i(), e.style.display = "", e.onenter && e.onenter()))
                }) : t && (e.style.display = "none")
            },
            "r-html": function(e, t) {
                this.$watch(t,
                function(t) {
                    t = t || "",
                    s.html(e, t)
                },
                {
                    force: !0
                })
            },
            ref: {
                accept: a.COMPONENT_TYPE + a.ELEMENT_TYPE,
                link: function(e, t) {
                    var i, s = this.$refs || (this.$refs = {});
                    return n.isExpr(t) ? this.$watch(t,
                    function(t, n) {
                        i = t,
                        s[n] === e && (s[n] = null),
                        i && (s[i] = e)
                    }) : s[i = t] = e,
                    function() {
                        s[i] = null
                    }
                }
            }
        },
        r.directive(e.exports)
    },
    function(e, t, i) {
        function n(e) {
            var t, i = [],
            n = 0,
            s = r.noop,
            a = {
                type: e,
                start: function(e) {
                    return t = r.uid(),
                    "function" == typeof e && (s = e),
                    n > 0 ? n = 0 : a.step(),
                    a.compelete
                },
                compelete: function() {
                    t = null,
                    s && s(),
                    s = r.noop,
                    n = 0
                },
                step: function() {
                    i[n] && i[n](a.done.bind(a, t))
                },
                done: function(e) {
                    e === t && (n < i.length - 1 ? (n++, a.step()) : a.compelete())
                },
                push: function(e) {
                    i.push(e)
                }
            };
            return a
        }
        function s(e, t) {
            function i(e) {
                f && g.push(f),
                f = n(e)
            }
            function s(e, t) {
                t && e()
            }
            function a(e) {
                return function() {
                    e.onenter = null,
                    e.onleave = null
                }
            }
            var o = this.constructor;
            r.isExpr(t) && (t = t.get(this)),
            t = t.trim();
            for (var c, f, h, l, u, p, m = t.split(";"), g = [], b = [], v = 0, $ = m.length; $ > v; v++) if (c = m[v], u = c.split(":"), h = u[0] && u[0].trim(), l = u[1] && u[1].trim(), h) if (h !== _) if (h !== d) {
                var p = o.animation(h);
                if (!p || !f) throw Error(p ? "you should start with `on` or `event` in animation": "undefined animator 【" + h + "】");
                f.push(p.call(this, {
                    element: e,
                    done: f.done,
                    param: l
                }))
            } else i(l),
            "leave" === l ? (e.onleave = f.start, b.push(a(e))) : "enter" === l ? (e.onenter = f.start, b.push(a(e))) : "on" + l in e ? b.push(this._handleEvent(e, l, f.start)) : (this.$on(l, f.start), b.push(this.$off.bind(this, l, f.start)));
            else i("when"),
            this.$watch(l, s.bind(this, f.start));
            return b.length ?
            function() {
                b.forEach(function(e) {
                    e()
                })
            }: void 0
        }
        var r = i(5),
        a = i(21),
        o = (i(4), i(3)),
        c = /\s+/,
        _ = "when",
        d = "on";
        o._addProtoInheritCache("animation"),
        o.animation({
            wait: function(e) {
                var t = parseInt(e.param) || 0;
                return function(e) {
                    setTimeout(e, t)
                }
            },
            "class": function(e) {
                var t = e.param.split(","),
                i = t[0] || "",
                n = parseInt(t[1]) || 1;
                return function(t) {
                    a.startClassAnimate(e.element, i, t, n)
                }
            },
            call: function(e) {
                var t = this.$expression(e.param).get,
                i = this;
                return function(e) {
                    t(i),
                    i.$update(),
                    e()
                }
            },
            emit: function(e) {
                var t = e.param,
                i = t.split(","),
                n = i[0] || "",
                s = i[1] ? this.$expression(i[1]).get: null;
                if (!n) throw Error("you shoud specified a eventname in emit command");
                var r = this;
                return function(e) {
                    r.$emit(n, s ? s(r) : void 0),
                    e()
                }
            },
            style: function(e) {
                var t, i = {},
                n = e.param,
                s = n.split(",");
                return s.forEach(function(e) {
                    if (e = e.trim()) {
                        var n = e.split(c),
                        s = n.shift(),
                        r = n.join(" ");
                        if (!s || !r) throw Error("invalid style in command: style");
                        i[s] = r,
                        t = !0
                    }
                }),
                function(n) {
                    t ? a.startStyleAnimate(e.element, i, n) : n()
                }
            }
        }),
        o.directive("r-animation", s),
        o.directive("r-anim", s)
    },
    function(e, t, i) {
        function n(e) {
            e.implement({
                $timeout: function(e, t) {
                    return t = t || 0,
                    setTimeout(function() {
                        e.call(this),
                        this.$update()
                    }.bind(this), t)
                },
                $interval: function(e, t) {
                    return t = t || 1e3 / 60,
                    setInterval(function() {
                        e.call(this),
                        this.$update()
                    }.bind(this), t)
                }
            })
        }
        var s = i(3);
        s.plugin("timeout", n),
        s.plugin("$timeout", n)
    },
    function(e, t, i) {
        function n(e, t) {
            return "object" === t ? d.keys(e) : "array" === t ? e: []
        }
        function s(e, t, i) {
            for (var n = [], s = 0, r = e.length; r > s; s++) {
                var a = this._walk(e[s], {
                    element: t,
                    fromElement: !0,
                    attrs: e,
                    extra: i
                });
                a && n.push(a)
            }
            return n
        }
        var r = i(25).diffArray,
        a = i(14),
        o = i(21),
        c = (i(26), i(10)),
        _ = i(4),
        d = i(5),
        f = e.exports = {};
        f.list = function(e, t) {
            function i(e, t) {
                for (var i = 0; t > i; i++) {
                    var n = E.children.splice(e + 1, 1)[0];
                    n && n.destroy(!0)
                }
            }
            function s(i, n, s, r) {
                for (var c = i; n > c; c++) {
                    var f = s[c],
                    h = {};
                    _(h, c, f, r),
                    h = d.createObject($, h);
                    var l = y.$compile(e.body, {
                        extra: h,
                        namespace: v,
                        record: !0,
                        outer: t.outer
                    });
                    l.data = h;
                    var u = a.last(E.get(c));
                    u.parentNode && o.inject(a.node(l), u, "after"),
                    E.children.splice(c + 1, 0, l)
                }
            }
            function _(e, t, i, n) {
                e[w] = t,
                n ? (e[C] = i, e[T] = n[i]) : (e[T] = i, e[C] = null)
            }
            function h(e, t, i, n) {
                for (var s = e; t > s; s++) {
                    var r = E.get(s + 1),
                    a = i[s];
                    _(r.data, s, a, n)
                }
            }
            function l(e, t, n, a) {
                var o = 0,
                c = e.length;
                if (n || 0 === c && 0 === t.length || (n = r(e, t, !0)), n && n.length) {
                    for (var _ = 0; _ < n.length; _++) {
                        var d = n[_],
                        f = d.index,
                        l = d.removed,
                        u = d.add,
                        p = l.length;
                        if (x && p && u) {
                            for (var g = Math.min(p, u), b = 0; g > b;) m(e[f], f) !== m(l[0], f) && (i(f, 1), s(f, f + 1, e, a)),
                            l.shift(),
                            u--,
                            f++,
                            b++;
                            p = l.length
                        }
                        h(o, f, e, a),
                        i(f, p),
                        s(f, f + u, e, a),
                        o = f + u - p,
                        o = 0 > o ? 0 : o
                    }
                    if (c > o) for (var _ = o; c > _; _++) {
                        var v = E.get(_ + 1);
                        v.data[w] = _
                    }
                }
            }
            function u(e, t, n) {
                var r = e.length,
                a = t.length,
                o = Math.min(r, a);
                h(0, o, e, n),
                a > r ? i(r, a - r) : r > a && s(a, r, e, n)
            }
            function p(e, i, s) {
                var r, c = d.typeOf(e),
                _ = d.typeOf(i),
                f = n(e, c),
                h = n(i, _),
                p = f && f.length,
                m = h && h.length;
                if (!m && p && E.get(1)) {
                    var g = E.children.pop();
                    g.destroy && g.destroy(!0)
                }
                if ("object" === c && (r = e), x === !0 ? u(f, h, r) : l(f, h, s, r), !p && k && k.length) {
                    var w = y.$compile(k, {
                        extra: $,
                        record: !0,
                        outer: t.outer,
                        namespace: v
                    });
                    E.children.push(w),
                    b.parentNode && o.inject(a.node(w), b, "after")
                }
            }
            var m, g, b = (f.Regular, document.createComment("Regular list")),
            v = t.namespace,
            $ = t.extra,
            y = this,
            E = new c([b]),
            w = e.variable + "_index",
            C = e.variable + "_key",
            T = e.variable,
            k = e.alternate,
            x = e.track;
            return x && x !== !0 && (x = this._touchExpr(x), g = d.createObject($), m = function(e, t) {
                return g[T] = e,
                g[w] = t,
                x.get(y, g)
            }),
            this.$watch(e.sequence, p, {
                init: !0,
                diff: x !== !0,
                deep: !0
            }),
            E
        },
        f.template = function(e, t) {
            var i, i, n = e.content,
            s = document.createComment("inlcude"),
            r = t.namespace,
            a = t.extra,
            o = new c([s]);
            if (n) {
                var _ = this;
                this.$watch(n,
                function(e) {
                    var n = o.get(1),
                    c = typeof e;
                    n && (n.destroy(!0), o.children.pop()),
                    e && (o.push(i = "function" === c ? e() : _.$compile("object" !== c ? String(e) : e, {
                        record: !0,
                        outer: t.outer,
                        namespace: r,
                        extra: a
                    })), s.parentNode && i.$inject(s, "before"))
                },
                {
                    init: !0
                })
            }
            return o
        };
        var h = 0;
        f["if"] = function(e, t) {
            var i, n, s = this,
            r = t.extra;
            if (t && t.element) {
                var _ = function(o) {
                    o ? (n && a.destroy(n), e.consequent && (i = s.$compile(e.consequent, {
                        record: !0,
                        element: t.element,
                        extra: r
                    }))) : (i && a.destroy(i), e.alternate && (n = s.$compile(e.alternate, {
                        record: !0,
                        element: t.element,
                        extra: r
                    })))
                };
                return this.$watch(e.test, _, {
                    force: !0
                }),
                {
                    destroy: function() {
                        i ? a.destroy(i) : n && a.destroy(n)
                    }
                }
            }
            var i, n, d = document.createComment("Regular if" + h++),
            f = new c;
            f.push(d);
            var l = null,
            u = t.namespace,
            _ = function(c) {
                var _ = !!c;
                _ !== l && (l = _, f.children[1] && (f.children[1].destroy(!0), f.children.pop()), _ ? e.consequent && e.consequent.length && (i = s.$compile(e.consequent, {
                    record: !0,
                    outer: t.outer,
                    namespace: u,
                    extra: r
                }), f.push(i), d.parentNode && o.inject(a.node(i), d, "before")) : e.alternate && e.alternate.length && (n = s.$compile(e.alternate, {
                    record: !0,
                    outer: t.outer,
                    namespace: u,
                    extra: r
                }), f.push(n), d.parentNode && o.inject(a.node(n), d, "before")))
            };
            return this.$watch(e.test, _, {
                force: !0,
                init: !0
            }),
            f
        },
        f.expression = function(e) {
            var t = document.createTextNode("");
            return this.$watch(e,
            function(e) {
                _.text(t, "" + (null == e ? "": "" + e))
            },
            {
                init: !0
            }),
            t
        },
        f.text = function(e) {
            var t = document.createTextNode(d.convertEntity(e.text));
            return t
        };
        var l = /^on-(.+)$/;
        f.element = function(e, t) {
            var i, n, r = e.attrs,
            c = this.constructor,
            h = e.children,
            l = t.namespace,
            u = t.extra,
            p = e.tag,
            m = c.component(p);
            if ("r-content" === p) return d.log("r-content is deprecated, use {#inc this.$body} instead (`{#include}` as same)", "warn"),
            this.$body && this.$body();
            if (m || "r-component" === p) return t.Component = m,
            f.component.call(this, e, t);
            "svg" === p && (l = "svg"),
            h && h.length && (i = this.$compile(h, {
                outer: t.outer,
                namespace: l,
                extra: u
            })),
            n = _.create(p, l, r),
            i && !d.isVoidTag(p) && _.inject(a.node(i), n),
            e.touched || (r.sort(function(e, t) {
                var i = c.directive(e.name),
                n = c.directive(t.name);
                return i && n ? (n.priority || 1) - (i.priority || 1) : i ? 1 : n ? -1 : "type" === t.name ? 1 : -1
            }), e.touched = !0);
            var g = s.call(this, r, n, u);
            return {
                type: "element",
                group: i,
                node: function() {
                    return n
                },
                last: function() {
                    return n
                },
                destroy: function(e) {
                    e ? o.remove(n, i ? i.destroy.bind(i) : d.noop) : i && i.destroy(),
                    g.length && g.forEach(function(e) {
                        e && ("function" == typeof e.destroy ? e.destroy() : e())
                    })
                }
            }
        },
        f.component = function(e, t) {
            for (var i, n, s, r, o = e.attrs,
            _ = t.Component,
            f = this.constructor,
            h = t.extra,
            u = t.namespace,
            p = this,
            m = {},
            g = 0,
            b = o.length; b > g; g++) {
                var v = o[g],
                $ = this._touchExpr(void 0 === v.value ? !0 : v.value);
                $.constant && ($ = v.value = $.get(this)),
                v.value && v.value.constant === !0 && ($ = $.get(this));
                var y = v.name;
                if (!v.event) {
                    var E = y.match(l);
                    E && (v.event = E[1])
                }
                if ("cmpl" === v.mdf && ($ = d.getCompileFn($, this, {
                    record: !0,
                    namespace: u,
                    extra: h,
                    outer: t.outer
                })), "is" === y && !_) {
                    s = $;
                    var w = this.$get($, !0);
                    if (_ = f.component(w), "function" != typeof _) throw new Error("component " + w + " has not registed!")
                }
                var C; (C = v.event) ? (r = r || {},
                r[C] = d.handleEvent.call(this, $, C)) : (y = v.name = d.camelCase(y), m[y] = "expression" !== $.type ? $: $.get(p), "ref" === y && null != $ && (n = $), "isolate" === y && (i = "expression" === $.type ? $.get(p) : parseInt($ === !0 ? 3 : $, 10), m.isolate = i))
            }
            var T, k = {
                data: m,
                events: r,
                $parent: 2 & i ? null: this,
                $root: this.$root,
                $outer: t.outer,
                _body: {
                    ctx: this,
                    ast: e.children
                }
            },
            t = {
                namespace: u,
                extra: t.extra
            },
            x = new _(k, t);
            n && this.$refs && (T = _.directive("ref").link, this.$on("$destroy", T.call(this, x, n))),
            n && p.$refs && (p.$refs[n] = x);
            for (var g = 0,
            b = o.length; b > g; g++) {
                var v = o[g],
                $ = v.value || !0,
                y = v.name;
                "expression" !== $.type || v.event || ($ = p._touchExpr($), 2 & i || this.$watch($,
                function(e, t) {
                    this.data[e] = t
                }.bind(x, y)), !$.set || 1 & i || x.$watch(y, p.$update.bind(p, $), {
                    sync: !0
                }))
            }
            if (s && "expression" === s.type) {
                var S = new c;
                return S.push(x),
                this.$watch(s,
                function(e) {
                    var t = f.component(e);
                    if (!t) throw new Error("component " + e + " has not registed!");
                    var i = new t(k),
                    s = S.children.pop();
                    S.push(i),
                    i.$inject(a.last(s), "after"),
                    s.destroy(),
                    n && (p.$refs[n] = i)
                },
                {
                    sync: !0
                }),
                S
            }
            return x
        },
        f.attribute = function(e, t) {
            var i = e,
            n = i.name,
            s = i.value || "",
            r = s.constant,
            a = this.constructor,
            o = a.directive(n),
            c = t.element,
            f = this;
            if (s = this._touchExpr(s), r && (s = s.get(this)), o && o.link) {
                var h = o.link.call(f, c, s, n, t.attrs);
                return "function" == typeof h && (h = {
                    destroy: h
                }),
                h
            }
            return "expression" === s.type ? this.$watch(s,
            function(e) {
                _.attr(c, n, e)
            },
            {
                init: !0
            }) : d.isBooleanAttr(n) ? _.attr(c, n, !0) : _.attr(c, n, s),
            t.fromElement ? void 0 : {
                destroy: function() {
                    _.attr(c, n, null)
                }
            }
        }
    },
    function(e, t, i) {
        function n(e) {
            this.children = e || []
        }
        var s = i(5),
        r = i(14),
        a = s.extend(n.prototype, {
            destroy: function(e) {
                r.destroy(this.children, e),
                this.ondestroy && this.ondestroy(),
                this.children = null
            },
            get: function(e) {
                return this.children[e]
            },
            push: function(e) {
                this.children.push(e)
            }
        });
        a.inject = a.$inject = r.inject,
        e.exports = n
    },
    function(e, t, i) {
        function n(e) {
            return function(t) {
                return {
                    type: e,
                    value: t
                }
            }
        }
        function s(e, t) {
            f[d.END] && (this.markStart = f[d.END], this.markEnd = d.END),
            this.input = (e || "").trim(),
            this.opts = t || {},
            this.map = 2 !== this.opts.mode ? o: c,
            this.states = ["INIT"],
            t && t.expression && (this.states.push("JST"), this.expression = !0)
        }
        function r(e) {
            for (var t, i, n = {},
            s = 0,
            r = e.length; r > s; s++) t = e[s],
            i = t[2] || "INIT",
            (n[i] || (n[i] = {
                rules: [],
                links: []
            })).rules.push(t);
            return a(n)
        }
        function a(e) {
            function t(e, t) {
                return "string" == typeof h[t] ? _.escapeRegExp(h[t]) : String(h[t]).slice(1, -1)
            }
            var i, s, r, a, o, c, d;
            for (var f in e) {
                i = e[f],
                i.curIndex = 1,
                s = i.rules,
                r = [];
                for (var l = 0,
                u = s.length; u > l; l++) d = s[l],
                o = d[0],
                a = d[1],
                "string" == typeof a && (a = n(a)),
                "regexp" === _.typeOf(o) && (o = o.toString().slice(1, -1)),
                o = o.replace(/\{(\w+)\}/g, t),
                c = _.findSubCapture(o) + 1,
                i.links.push([i.curIndex, c, a]),
                i.curIndex += c,
                r.push(o);
                i.TRUNK = new RegExp("^(?:(" + r.join(")|(") + "))")
            }
            return e
        }
        var o, c, _ = i(5),
        d = i(2),
        f = {
            "}": "{",
            "]": "["
        },
        h = {
            NAME: /(?:[:_A-Za-z][-\.:_0-9A-Za-z]*)/,
            IDENT: /[\$_A-Za-z][_0-9A-Za-z\$]*/,
            SPACE: /[\r\n\t\f ]/
        },
        l = /a|(b)/.exec("a"),
        u = l && void 0 === l[1] ?
        function(e) {
            return void 0 !== e
        }: function(e) {
            return !! e
        },
        p = s.prototype;
        p.lex = function(e) {
            e = (e || this.input).trim();
            var t, i, n, s, r, a = [];
            this.input = e,
            this.marks = 0,
            this.index = 0;
            for (var o = 0; e;) o++,
            r = this.state(),
            t = this.map[r],
            i = t.TRUNK.exec(e),
            i || this.error("Unrecoginized Token"),
            n = i[0].length,
            e = e.slice(n),
            s = this._process.call(this, i, t, e),
            s && a.push(s),
            this.index += n;
            return a.push({
                type: "EOF"
            }),
            a
        },
        p.error = function(e) {
            throw Error("Parse Error: " + e + ":\n" + _.trackErrorPos(this.input, this.index))
        },
        p._process = function(e, t, i) {
            for (var n, s = t.links,
            r = !1,
            a = s.length,
            o = 0; a > o; o++) {
                var c = s[o],
                _ = c[2],
                d = c[0];
                if (u(e[d])) {
                    r = !0,
                    _ && (n = _.apply(this, e.slice(d, d + c[1])), n && (n.pos = this.index));
                    break
                }
            }
            if (!r) switch (i.charAt(0)) {
            case "<":
                this.enter("TAG");
                break;
            default:
                this.enter("JST")
            }
            return n
        },
        p.enter = function(e) {
            return this.states.push(e),
            this
        },
        p.state = function() {
            var e = this.states;
            return e[e.length - 1]
        },
        p.leave = function(e) {
            var t = this.states;
            e && t[t.length - 1] !== e || t.pop()
        },
        s.setup = function() {
            h.END = d.END,
            h.BEGIN = d.BEGIN,
            o = r([m.ENTER_JST, m.ENTER_TAG, m.TEXT, m.TAG_NAME, m.TAG_OPEN, m.TAG_CLOSE, m.TAG_PUNCHOR, m.TAG_ENTER_JST, m.TAG_UNQ_VALUE, m.TAG_STRING, m.TAG_SPACE, m.TAG_COMMENT, m.JST_OPEN, m.JST_CLOSE, m.JST_COMMENT, m.JST_EXPR_OPEN, m.JST_IDENT, m.JST_SPACE, m.JST_LEAVE, m.JST_NUMBER, m.JST_PUNCHOR, m.JST_STRING, m.JST_COMMENT]),
            c = r([m.ENTER_JST2, m.TEXT, m.JST_COMMENT, m.JST_OPEN, m.JST_CLOSE, m.JST_EXPR_OPEN, m.JST_IDENT, m.JST_SPACE, m.JST_LEAVE, m.JST_NUMBER, m.JST_PUNCHOR, m.JST_STRING, m.JST_COMMENT])
        };
        var m = {
            ENTER_JST: [/[^\x00<]*?(?={BEGIN})/,
            function(e) {
                return this.enter("JST"),
                e ? {
                    type: "TEXT",
                    value: e
                }: void 0
            }],
            ENTER_JST2: [/[^\x00]*?(?={BEGIN})/,
            function(e) {
                return this.enter("JST"),
                e ? {
                    type: "TEXT",
                    value: e
                }: void 0
            }],
            ENTER_TAG: [/[^\x00]*?(?=<[\w\/\!])/,
            function(e) {
                return this.enter("TAG"),
                e ? {
                    type: "TEXT",
                    value: e
                }: void 0
            }],
            TEXT: [/[^\x00]+/, "TEXT"],
            TAG_NAME: [/{NAME}/, "NAME", "TAG"],
            TAG_UNQ_VALUE: [/[^\{}&"'=><`\r\n\f\t ]+/, "UNQ", "TAG"],
            TAG_OPEN: [/<({NAME})\s*/,
            function(e, t) {
                return {
                    type: "TAG_OPEN",
                    value: t
                }
            },
            "TAG"],
            TAG_CLOSE: [/<\/({NAME})[\r\n\f\t ]*>/,
            function(e, t) {
                return this.leave(),
                {
                    type: "TAG_CLOSE",
                    value: t
                }
            },
            "TAG"],
            TAG_ENTER_JST: [/(?={BEGIN})/,
            function() {
                this.enter("JST")
            },
            "TAG"],
            TAG_PUNCHOR: [/[\>\/=&]/,
            function(e) {
                return ">" === e && this.leave(),
                {
                    type: e,
                    value: e
                }
            },
            "TAG"],
            TAG_STRING: [/'([^']*)'|"([^"]*)\"/,
            function(e, t, i) {
                var n = t || i || "";
                return {
                    type: "STRING",
                    value: n
                }
            },
            "TAG"],
            TAG_SPACE: [/{SPACE}+/, null, "TAG"],
            TAG_COMMENT: [/<\!--([^\x00]*?)--\>/,
            function() {
                this.leave()
            },
            "TAG"],
            JST_OPEN: ["{BEGIN}#{SPACE}*({IDENT})",
            function(e, t) {
                return {
                    type: "OPEN",
                    value: t
                }
            },
            "JST"],
            JST_LEAVE: [/{END}/,
            function(e) {
                return this.markEnd === e && this.expression ? {
                    type: this.markEnd,
                    value: this.markEnd
                }: this.markEnd && this.marks ? (this.marks--, {
                    type: this.markEnd,
                    value: this.markEnd
                }) : (this.firstEnterStart = !1, this.leave("JST"), {
                    type: "END"
                })
            },
            "JST"],
            JST_CLOSE: [/{BEGIN}\s*\/({IDENT})\s*{END}/,
            function(e, t) {
                return this.leave("JST"),
                {
                    type: "CLOSE",
                    value: t
                }
            },
            "JST"],
            JST_COMMENT: [/{BEGIN}\!([^\x00]*?)\!{END}/,
            function() {
                this.leave()
            },
            "JST"],
            JST_EXPR_OPEN: ["{BEGIN}",
            function(e) {
                if (e === this.markStart) {
                    if (this.expression) return {
                        type: this.markStart,
                        value: this.markStart
                    };
                    if (this.firstEnterStart || this.marks) return this.marks++,
                    this.firstEnterStart = !1,
                    {
                        type: this.markStart,
                        value: this.markStart
                    };
                    this.firstEnterStart = !0
                }
                return {
                    type: "EXPR_OPEN",
                    escape: !1
                }
            },
            "JST"],
            JST_IDENT: ["{IDENT}", "IDENT", "JST"],
            JST_SPACE: [/[ \r\n\f]+/, null, "JST"],
            JST_PUNCHOR: [/[=!]?==|[-=><+*\/%\!]?\=|\|\||&&|\@\(|\.\.|[<\>\[\]\(\)\-\|\{}\+\*\/%?:\.!,]/,
            function(e) {
                return {
                    type: e,
                    value: e
                }
            },
            "JST"],
            JST_STRING: [/'([^']*)'|"([^"]*)"/,
            function(e, t, i) {
                return {
                    type: "STRING",
                    value: t || i || ""
                }
            },
            "JST"],
            JST_NUMBER: [/(?:[0-9]*\.[0-9]+|[0-9]+)(e\d+)?/,
            function(e) {
                return {
                    type: "NUMBER",
                    value: parseFloat(e, 10)
                }
            },
            "JST"]
        };
        s.setup(),
        e.exports = s
    },
    function(e, t, i) {
        function n(e, t) {
            t = t || {},
            this.input = e,
            this.tokens = new o(e, t).lex(),
            this.pos = 0,
            this.length = this.tokens.length
        }
        var s = i(5),
        r = i(2),
        a = i(26),
        o = i(11),
        c = s.varName,
        _ = s.ctxName,
        d = s.extName,
        f = s.makePredicate("STRING IDENT NUMBER"),
        h = s.makePredicate("true false undefined null this Array Date JSON Math NaN RegExp decodeURI decodeURIComponent encodeURI encodeURIComponent parseFloat parseInt Object"),
        l = n.prototype;
        l.parse = function() {
            this.pos = 0;
            var e = this.program();
            return "TAG_CLOSE" === this.ll().type && this.error("You may got a unclosed Tag"),
            e
        },
        l.ll = function(e) {
            e = e || 1,
            0 > e && (e += 1);
            var t = this.pos + e - 1;
            return t > this.length - 1 ? this.tokens[this.length - 1] : this.tokens[t]
        },
        l.la = function(e) {
            return (this.ll(e) || "").type
        },
        l.match = function(e, t) {
            var i;
            return (i = this.eat(e, t)) ? i: (i = this.ll(), void this.error("expect [" + e + (null == t ? "": ":" + t) + ']" -> got "[' + i.type + (null == t ? "": ":" + i.value) + "]", i.pos))
        },
        l.error = function(e, t) {
            throw e = "\n【 parse failed 】 " + e + ":\n\n" + s.trackErrorPos(this.input, "number" == typeof t ? t: this.ll().pos || 0),
            new Error(e)
        },
        l.next = function(e) {
            e = e || 1,
            this.pos += e
        },
        l.eat = function(e, t) {
            var i = this.ll();
            if ("string" != typeof e) {
                for (var n = e.length; n--;) if (i.type === e[n]) return this.next(),
                i
            } else if (i.type === e && ("undefined" == typeof t || i.value === t)) return this.next(),
            i;
            return ! 1
        },
        l.program = function() {
            for (var e = [], t = this.ll();
            "EOF" !== t.type && "TAG_CLOSE" !== t.type;) e.push(this.statement()),
            t = this.ll();
            return e
        },
        l.statement = function() {
            var e = this.ll();
            switch (e.type) {
            case "NAME":
            case "TEXT":
                var t = e.value;
                for (this.next(); e = this.eat(["NAME", "TEXT"]);) t += e.value;
                return a.text(t);
            case "TAG_OPEN":
                return this.xml();
            case "OPEN":
                return this.directive();
            case "EXPR_OPEN":
                return this.interplation();
            default:
                this.error("Unexpected token: " + this.la())
            }
        },
        l.xml = function() {
            var e, t, i, n;
            return e = this.match("TAG_OPEN").value,
            t = this.attrs(),
            n = this.eat("/"),
            this.match(">"),
            n || s.isVoidTag(e) || (i = this.program(), this.eat("TAG_CLOSE", e) || this.error("expect </" + e + "> gotno matched closeTag")),
            a.element(e, t, i)
        },
        l.xentity = function(e) {
            var t, i, n = e.value;
            if ("NAME" === e.type) {
                if (~n.indexOf(".")) {
                    var s = n.split(".");
                    n = s[0],
                    i = s[1]
                }
                return this.eat("=") && (t = this.attvalue(i)),
                a.attribute(n, t, i)
            }
            return "if" !== n && this.error("current version. ONLY RULE #if #else #elseif is valid in tag, the rule #" + n + " is invalid"),
            this["if"](!0)
        },
        l.attrs = function(e) {
            var t;
            t = e ? ["NAME"] : ["NAME", "OPEN"];
            for (var i, n = []; i = this.eat(t);) n.push(this.xentity(i));
            return n
        },
        l.attvalue = function(e) {
            var t = this.ll();
            switch (t.type) {
            case "NAME":
            case "UNQ":
            case "STRING":
                this.next();
                var i = t.value;
                if (~i.indexOf(r.BEGIN) && ~i.indexOf(r.END) && "cmpl" !== e) {
                    var s = !0,
                    o = new n(i, {
                        mode: 2
                    }).parse();
                    if (1 === o.length && "expression" === o[0].type) return o[0];
                    var c = [];
                    o.forEach(function(e) {
                        e.constant || (s = !1),
                        c.push(e.body || "'" + e.text.replace(/'/g, "\\'") + "'")
                    }),
                    c = "[" + c.join(",") + "].join('')",
                    i = a.expression(c, null, s)
                }
                return i;
            case "EXPR_OPEN":
                return this.interplation();
            default:
                this.error("Unexpected token: " + this.la())
            }
        },
        l.directive = function() {
            var e = this.ll().value;
            return this.next(),
            "function" == typeof this[e] ? this[e]() : void this.error("Undefined directive[" + e + "]")
        },
        l.interplation = function() {
            this.match("EXPR_OPEN");
            var e = this.expression(!0);
            return this.match("END"),
            e
        },
        l.inc = l.include = function() {
            var e = this.expression();
            return this.match("END"),
            a.template(e)
        },
        l["if"] = function(e) {
            var t = this.expression(),
            i = [],
            n = [],
            s = i,
            r = e ? "attrs": "statement";
            this.match("END");
            for (var o, c; ! (c = this.eat("CLOSE"));) if (o = this.ll(), "OPEN" === o.type) switch (o.value) {
            case "else":
                s = n,
                this.next(),
                this.match("END");
                break;
            case "elseif":
                return this.next(),
                n.push(this["if"](e)),
                a["if"](t, i, n);
            default:
                s.push(this[r](!0))
            } else s.push(this[r](!0));
            return "if" !== c.value && this.error("Unmatched if directive"),
            a["if"](t, i, n)
        },
        l.list = function() {
            var e, t, i, n = this.expression(),
            s = [],
            r = [],
            o = s;
            for (this.match("IDENT", "as"), e = this.match("IDENT").value, this.eat("IDENT", "by") && (this.eat("IDENT", e + "_index") ? i = !0 : (i = this.expression(), i.constant && (i = !0))), this.match("END"); ! (t = this.eat("CLOSE"));) this.eat("OPEN", "else") ? (o = r, this.match("END")) : o.push(this.statement());
            return "list" !== t.value && this.error("expect list got /" + t.value + " ", t.pos),
            a.list(n, e, s, r, i)
        },
        l.expression = function() {
            var e;
            return this.eat("@(") ? (e = this.expr(), e.once = !0, this.match(")")) : e = this.expr(),
            e
        },
        l.expr = function() {
            this.depend = [];
            var e = this.filter(),
            t = e.get || e,
            i = e.set;
            return a.expression(t, i, !this.depend.length)
        },
        l.filter = function() {
            var e, t, i, n = this.assign(),
            r = this.eat("|"),
            a = [],
            o = "t",
            c = n.set,
            d = "";
            if (r) {
                c && (e = []),
                t = "(function(" + o + "){";
                do d = o + " = " + _ + "._f_('" + this.match("IDENT").value + "' ).get.call( " + s.ctxName + "," + o,
                d += this.eat(":") ? ", " + this.arguments("|").join(",") + ");": ");",
                a.push(d),
                e && e.unshift(d.replace(" ).get.call", " ).set.call"));
                while (r = this.eat("|"));
                return a.push("return " + o),
                e && e.push("return " + o),
                i = t + a.join("") + "})(" + n.get + ")",
                e && (c = c.replace(s.setName, t + e.join("") + "})(" + s.setName + ")")),
                this.getset(i, c)
            }
            return n
        },
        l.assign = function() {
            var e, t = this.condition();
            return (e = this.eat(["=", "+=", "-=", "*=", "/=", "%="])) ? (t.set || this.error("invalid lefthand expression in assignment expression"), this.getset(t.set.replace("," + s.setName, "," + this.condition().get).replace("'='", "'" + e.type + "'"), t.set)) : t
        },
        l.condition = function() {
            var e = this.or();
            return this.eat("?") ? this.getset([e.get + "?", this.assign().get, this.match(":").type, this.assign().get].join("")) : e
        },
        l.or = function() {
            var e = this.and();
            return this.eat("||") ? this.getset(e.get + "||" + this.or().get) : e
        },
        l.and = function() {
            var e = this.equal();
            return this.eat("&&") ? this.getset(e.get + "&&" + this.and().get) : e
        },
        l.equal = function() {
            var e, t = this.relation();
            return (e = this.eat(["==", "!=", "===", "!=="])) ? this.getset(t.get + e.type + this.equal().get) : t
        },
        l.relation = function() {
            var e, t = this.additive();
            return (e = this.eat(["<", ">", ">=", "<="]) || this.eat("IDENT", "in")) ? this.getset(t.get + e.value + this.relation().get) : t
        },
        l.additive = function() {
            var e, t = this.multive();
            return (e = this.eat(["+", "-"])) ? this.getset(t.get + e.value + this.additive().get) : t
        },
        l.multive = function() {
            var e, t = this.range();
            return (e = this.eat(["*", "/", "%"])) ? this.getset(t.get + e.type + this.multive().get) : t
        },
        l.range = function() {
            var e, t, i = this.unary();
            if (e = this.eat("..")) {
                t = this.unary();
                var n = "(function(start,end){var res = [],step=end>start?1:-1; for(var i = start; end>start?i <= end: i>=end; i=i+step){res.push(i); } return res })(" + i.get + "," + t.get + ")";
                return this.getset(n)
            }
            return i
        },
        l.unary = function() {
            var e;
            return (e = this.eat(["+", "-", "~", "!"])) ? this.getset("(" + e.type + this.unary().get + ")") : this.member()
        },
        l.member = function(e, t, i, n) {
            var r, a, o, h = !1;
            if (e)"string" == typeof t && f(t) ? i.push(t) : (i && i.length && this.depend.push(i), i = null);
            else {
                a = this.primary();
                var l = typeof a;
                "string" === l ? (i = [], i.push(a), t = a, o = d + "." + a, e = _ + "._sg_('" + a + "', " + c + ", " + d + ")", h = !0) : "this" === a.get ? (e = _, i = ["this"]) : (i = null, e = a.get)
            }
            if (r = this.eat(["[", ".", "("])) switch (r.type) {
            case ".":
                var u = this.match("IDENT").value;
                return n = e,
                "(" !== this.la() ? e = _ + "._sg_('" + u + "', " + e + ")": e += "['" + u + "']",
                this.member(e, u, i, n);
            case "[":
                return a = this.assign(),
                n = e,
                "(" !== this.la() ? e = _ + "._sg_(" + a.get + ", " + e + ")": e += "[" + a.get + "]",
                this.match("]"),
                this.member(e, a, i, n);
            case "(":
                var p = this.arguments().join(",");
                return e = e + "(" + p + ")",
                this.match(")"),
                this.member(e, null, i)
            }
            i && i.length && this.depend.push(i);
            var m = {
                get: e
            };
            return t && (m.set = _ + "._ss_(" + (t.get ? t.get: "'" + t + "'") + "," + s.setName + "," + (n ? n: s.varName) + ", '=', " + (h ? 1 : 0) + ")"),
            m
        },
        l.arguments = function(e) {
            e = e || ")";
            var t = [];
            do this.la() !== e && t.push(this.assign().get);
            while (this.eat(","));
            return t
        },
        l.primary = function() {
            var e = this.ll();
            switch (e.type) {
            case "{":
                return this.object();
            case "[":
                return this.array();
            case "(":
                return this.paren();
            case "STRING":
                return this.next(),
                this.getset("'" + e.value + "'");
            case "NUMBER":
                return this.next(),
                this.getset("" + e.value);
            case "IDENT":
                return this.next(),
                h(e.value) ? this.getset(e.value) : e.value;
            default:
                this.error("Unexpected Token: " + e.type)
            }
        },
        l.object = function() {
            for (var e = [this.match("{").type], t = this.eat(["STRING", "IDENT", "NUMBER"]); t;) {
                e.push("'" + t.value + "'" + this.match(":").type);
                var i = this.assign().get;
                e.push(i),
                t = null,
                this.eat(",") && (t = this.eat(["STRING", "IDENT", "NUMBER"])) && e.push(",")
            }
            return e.push(this.match("}").type),
            {
                get: e.join("")
            }
        },
        l.array = function() {
            var e, t = [this.match("[").type];
            if (this.eat("]")) t.push("]");
            else {
                for (; (e = this.assign()) && (t.push(e.get), this.eat(","));) t.push(",");
                t.push(this.match("]").type)
            }
            return {
                get: t.join("")
            }
        },
        l.paren = function() {
            this.match("(");
            var e = this.filter();
            return e.get = "(" + e.get + ")",
            this.match(")"),
            e
        },
        l.getset = function(e, t) {
            return {
                get: e,
                set: t
            }
        },
        e.exports = n
    },
    function(e, t, i) {
        function n(e, t, i) {
            return function() {
                var n = this.supr;
                this.supr = i[e];
                var s = t.apply(this, arguments);
                return this.supr = n,
                s
            }
        }
        function s(e, t, i) {
            for (var s in t) t.hasOwnProperty(s) && (e[s] = o(t[s]) && o(i[s]) && a.test(t[s]) ? n(s, t[s], i) : t[s])
        }
        var r = i(5),
        a = /xy/.test(function() {;
            "xy"
        }) ? /\bsupr\b/: /.*/,
        o = function(e) {
            return "function" == typeof e
        },
        c = ["events", "data", "computed"],
        _ = c.length;
        e.exports = function d(e) {
            function t() {
                a.apply(this, arguments)
            }
            function i(e) {
                for (var t = _; t--;) {
                    var i = c[t];
                    e.hasOwnProperty(i) && n.hasOwnProperty(i) && (r.extend(n[i], e[i], !0), delete e[i])
                }
                return s(n, e, o),
                this
            }
            e = e || {};
            var n, a = this,
            o = a && a.prototype || {};
            return "function" == typeof e ? (n = e.prototype, e.implement = i, e.extend = d, e) : (n = r.createProto(t, o), t.implement = i, t.implement(e), a.__after__ && a.__after__.call(t, a, e), t.extend = d, t)
        }
    },
    function(e, t, i) {
        var n = i(4),
        s = i(21),
        r = e.exports = {
            node: function(e) {
                var t, i, n;
                if (e) {
                    if (e.element) return e.element;
                    if ("function" == typeof e.node) return e.node();
                    if ("number" == typeof e.nodeType) return e;
                    if (e.group) return r.node(e.group);
                    if (t = e.children) {
                        if (1 === t.length) return r.node(t[0]);
                        n = [];
                        for (var s = 0,
                        a = t.length; a > s; s++) i = r.node(t[s]),
                        Array.isArray(i) ? n.push.apply(n, i) : i && n.push(i);
                        return n
                    }
                }
            },
            inject: function(e, t) {
                var i = this,
                a = r.node(i.group || i);
                if (e === !1) return s.remove(a),
                i;
                if (!a) return i;
                if ("string" == typeof e && (e = n.find(e)), !e) throw Error("injected node is not found");
                if (s.inject(a, e, t), i.$emit) {
                    var o = i.parentNode,
                    c = "after" === t || "before" === t ? e.parentNode: e;
                    i.parentNode = c,
                    i.$emit("$inject", e, t, o)
                }
                return i
            },
            last: function(e) {
                var t = e.children;
                return "function" == typeof e.last ? e.last() : "number" == typeof e.nodeType ? e: t && t.length ? r.last(t[t.length - 1]) : e.group ? r.last(e.group) : void 0
            },
            destroy: function(e, t) {
                if (e) {
                    if (Array.isArray(e)) for (var i = 0,
                    s = e.length; s > i; i++) r.destroy(e[i], t);
                    var a = e.children;
                    if ("function" == typeof e.destroy) return e.destroy(t);
                    "number" == typeof e.nodeType && t && n.remove(e),
                    a && a.length && (r.destroy(a, !0), e.children = null)
                }
            }
        };
        n.element = function(e, t) {
            if (!e) return t ? [] : null;
            var i = r.node(e);
            if (1 === i.nodeType) return t ? [i] : i;
            for (var n = [], s = 0; s < i.length; s++) {
                var a = i[s];
                if (a && 1 === a.nodeType) {
                    if (!t) return a;
                    n.push(a)
                }
            }
            return t ? n: n[0]
        }
    },
    function(e, t, i) {
        function n() {}
        var s = [].slice,
        r = i(5),
        a = {
            $on: function(e, t) {
                if ("object" == typeof e) for (var i in e) this.$on(i, e[i]);
                else {
                    var n = this,
                    s = n._handles || (n._handles = {}),
                    r = s[e] || (s[e] = []);
                    r.push(t)
                }
                return this
            },
            $off: function(e, t) {
                var i = this;
                if (i._handles) {
                    e || (this._handles = {});
                    var n, s = i._handles;
                    if (n = s[e]) {
                        if (!t) return s[e] = [],
                        i;
                        for (var r = 0,
                        a = n.length; a > r; r++) if (t === n[r]) return n.splice(r, 1),
                        i
                    }
                    return i
                }
            },
            $emit: function(e) {
                var t, i, n, r = this,
                a = r._handles;
                if (e) {
                    var i = s.call(arguments, 1),
                    n = e;
                    if (!a) return r;
                    if (t = a[n.slice(1)]) for (var o = 0,
                    c = t.length; c > o; o++) t[o].apply(r, i);
                    if (! (t = a[n])) return r;
                    for (var _ = 0,
                    c = t.length; c > _; _++) t[_].apply(r, i);
                    return r
                }
            },
            $one: function() {}
        };
        r.extend(n.prototype, a),
        n.mixTo = function(e) {
            e = "function" == typeof e ? e.prototype: e,
            r.extend(e, a)
        },
        e.exports = n
    },
    function(e, t, i) {
        function n() {}
        var s = i(5),
        r = i(17).expression,
        a = i(25),
        o = a.diffArray,
        c = a.diffObject,
        _ = {
            $watch: function(e, t, i) {
                var n, a, o, c, _ = this.__ext__;
                this._watchers || (this._watchers = []),
                i = i || {},
                i === !0 && (i = {
                    deep: !0
                });
                var d = s.uid("w_");
                if (Array.isArray(e)) {
                    for (var f = [], h = 0, l = e.length; l > h; h++) f.push(this.$expression(e[h]).get);
                    var u = [];
                    o = function(e) {
                        for (var t = !0,
                        i = 0,
                        n = f.length; n > i; i++) {
                            var r = f[i](e, _);
                            s.equals(r, u[i]) || (t = !1, u[i] = s.clone(r))
                        }
                        return t ? !1 : u
                    }
                } else "function" == typeof e ? n = e.bind(this) : (e = this._touchExpr(r(e)), n = e.get, a = e.once);
                var p = {
                    id: d,
                    get: n,
                    fn: t,
                    once: a,
                    force: i.force,
                    diff: i.diff,
                    test: o,
                    deep: i.deep,
                    last: i.sync ? n(this) : i.last
                };
                if (this._watchers.push(p), c = this._records && this._records.length, c && this._records[c - 1].push(d), i.init === !0) {
                    var m = this.$phase;
                    this.$phase = "digest",
                    this._checkSingleWatch(p, this._watchers.length - 1),
                    this.$phase = m
                }
                return p
            },
            $unwatch: function(e) {
                if (e = e.uid || e, this._watchers || (this._watchers = []), Array.isArray(e)) for (var t = 0,
                i = e.length; i > t; t++) this.$unwatch(e[t]);
                else {
                    var n, s, r = this._watchers;
                    if (!e || !r || !(s = r.length)) return;
                    for (; s--;) n = r[s],
                    n && n.id === e && r.splice(s, 1)
                }
            },
            $expression: function(e) {
                return this._touchExpr(r(e))
            },
            $digest: function() {
                if ("digest" !== this.$phase && !this._mute) {
                    this.$phase = "digest";
                    for (var e = !1,
                    t = 0; e = this._digest();) if (++t > 20) throw Error("there may a circular dependencies reaches");
                    t > 0 && this.$emit && this.$emit("$update"),
                    this.$phase = null
                }
            },
            _digest: function() {
                var e, t, i, n = this._watchers,
                s = !1;
                if (n && n.length) for (var r = 0,
                a = n.length; a > r; r++) t = n[r],
                i = this._checkSingleWatch(t, r),
                i && (s = !0);
                if (e = this._children, e && e.length) for (var o = 0,
                c = e.length; c > o; o++) {
                    var _ = e[o];
                    _ && _._digest() && (s = !0)
                }
                return s
            },
            _checkSingleWatch: function(e, t) {
                var i = !1;
                if (e) {
                    var n, r, a, _, d, f;
                    if (e.test) {
                        var h = e.test(this);
                        h && (i = !0, e.fn.apply(this, h))
                    } else n = e.get(this),
                    r = e.last,
                    a = s.typeOf(r),
                    _ = s.typeOf(n),
                    d = !0,
                    f,
                    "object" === _ && "object" === a && e.deep ? (f = c(n, r, e.diff), (f === !0 || f.length) && (i = !0)) : "array" !== _ || "undefined" != a && "array" !== a ? (d = s.equals(n, r), (!d || e.force) && (e.force = null, i = !0)) : (f = o(n, e.last || [], e.diff), ("array" !== a || f === !0 || f.length) && (i = !0));
                    return i && !e.test && (e.last = "object" === _ && e.deep || "array" === _ ? s.clone(n) : n, e.fn.call(this, n, r, f), e.once && this._watchers.splice(t, 1)),
                    i
                }
            },
            $set: function(e, t) {
                if (null != e) {
                    var i = s.typeOf(e);
                    if ("string" === i || "expression" === e.type) e = this.$expression(e),
                    e.set(this, t);
                    else if ("function" === i) e.call(this, this.data);
                    else for (var n in e) this.$set(n, e[n])
                }
            },
            $get: function(e, t) {
                return t && "string" == typeof e ? e: this.$expression(e).get(this)
            },
            $update: function() {
                var e = this;
                do {
                    if (e.data.isolate || !e.$parent) break;
                    e = e.$parent
                } while ( e );
                var t = e.$phase;
                return e.$phase = "digest",
                this.$set.apply(this, arguments),
                e.$phase = t,
                e.$digest(),
                this
            },
            _record: function() {
                this._records || (this._records = []),
                this._records.push([])
            },
            _release: function() {
                return this._records.pop()
            }
        };
        s.extend(n.prototype, _),
        n.mixTo = function(e) {
            return e = "function" == typeof e ? e.prototype: e,
            s.extend(e, _)
        },
        e.exports = n
    },
    function(e, t, i) {
        var n = i(1).exprCache,
        s = (i(5), i(12));
        e.exports = {
            expression: function(e) {
                return "string" == typeof e && (e = e.trim()) && (e = n.get(e) || n.set(e, new s(e, {
                    mode: 2,
                    expression: !0
                }).expression())),
                e ? e: void 0
            },
            parse: function(e) {
                return new s(e).parse()
            }
        }
    },
    function(e) {
        var t = e.exports = {};
        t.json = {
            get: function(e) {
                return "undefined" != typeof JSON ? JSON.stringify(e) : e
            },
            set: function(e) {
                return "undefined" != typeof JSON ? JSON.parse(e) : e
            }
        },
        t.last = function(e) {
            return e && e[e.length - 1]
        },
        t.average = function(e, i) {
            return e = e || [],
            e.length ? t.total(e, i) / e.length: 0
        },
        t.total = function(e, t) {
            var i = 0;
            if (e) return e.forEach(function(e) {
                i += t ? e[t] : e
            }),
            i
        }
    },
    function(e) {
        function t(e, t) {
            for (var i in t) void 0 === e[i] && (e[i] = t[i]);
            return t
        }
        var i = [].slice,
        n = {}.toString;
        e.exports = function() {
            t(String.prototype, {
                trim: function() {
                    return this.replace(/^\s+|\s+$/g, "")
                }
            }),
            t(Array.prototype, {
                indexOf: function(e, t) {
                    t = t || 0;
                    for (var i = t,
                    n = this.length; n > i; i++) if (this[i] === e) return i;
                    return - 1
                },
                forEach: function(e, t) {
                    var i = 0,
                    n = Object(this),
                    s = n.length >>> 0;
                    if ("function" != typeof e) throw new TypeError(e + " is not a function");
                    for (; s > i;) {
                        var r;
                        i in n && (r = n[i], e.call(t, r, i, n)),
                        i++
                    }
                },
                filter: function(e, t) {
                    var i = Object(this),
                    n = i.length >>> 0;
                    if ("function" != typeof e) throw new TypeError;
                    for (var s = [], r = 0; n > r; r++) if (r in i) {
                        var a = i[r];
                        e.call(t, a, r, i) && s.push(a)
                    }
                    return s
                }
            }),
            t(Function.prototype, {
                bind: function(e) {
                    var t = this,
                    n = i.call(arguments, 1);
                    return function() {
                        var s = n.concat(i.call(arguments));
                        return t.apply(e, s)
                    }
                }
            }),
            t(Array, {
                isArray: function(e) {
                    return "[object Array]" === n.call(e)
                }
            })
        }
    },
    function(e) {
        var t = {
            quot: 34,
            amp: 38,
            apos: 39,
            lt: 60,
            gt: 62,
            nbsp: 160,
            iexcl: 161,
            cent: 162,
            pound: 163,
            curren: 164,
            yen: 165,
            brvbar: 166,
            sect: 167,
            uml: 168,
            copy: 169,
            ordf: 170,
            laquo: 171,
            not: 172,
            shy: 173,
            reg: 174,
            macr: 175,
            deg: 176,
            plusmn: 177,
            sup2: 178,
            sup3: 179,
            acute: 180,
            micro: 181,
            para: 182,
            middot: 183,
            cedil: 184,
            sup1: 185,
            ordm: 186,
            raquo: 187,
            frac14: 188,
            frac12: 189,
            frac34: 190,
            iquest: 191,
            Agrave: 192,
            Aacute: 193,
            Acirc: 194,
            Atilde: 195,
            Auml: 196,
            Aring: 197,
            AElig: 198,
            Ccedil: 199,
            Egrave: 200,
            Eacute: 201,
            Ecirc: 202,
            Euml: 203,
            Igrave: 204,
            Iacute: 205,
            Icirc: 206,
            Iuml: 207,
            ETH: 208,
            Ntilde: 209,
            Ograve: 210,
            Oacute: 211,
            Ocirc: 212,
            Otilde: 213,
            Ouml: 214,
            times: 215,
            Oslash: 216,
            Ugrave: 217,
            Uacute: 218,
            Ucirc: 219,
            Uuml: 220,
            Yacute: 221,
            THORN: 222,
            szlig: 223,
            agrave: 224,
            aacute: 225,
            acirc: 226,
            atilde: 227,
            auml: 228,
            aring: 229,
            aelig: 230,
            ccedil: 231,
            egrave: 232,
            eacute: 233,
            ecirc: 234,
            euml: 235,
            igrave: 236,
            iacute: 237,
            icirc: 238,
            iuml: 239,
            eth: 240,
            ntilde: 241,
            ograve: 242,
            oacute: 243,
            ocirc: 244,
            otilde: 245,
            ouml: 246,
            divide: 247,
            oslash: 248,
            ugrave: 249,
            uacute: 250,
            ucirc: 251,
            uuml: 252,
            yacute: 253,
            thorn: 254,
            yuml: 255,
            fnof: 402,
            Alpha: 913,
            Beta: 914,
            Gamma: 915,
            Delta: 916,
            Epsilon: 917,
            Zeta: 918,
            Eta: 919,
            Theta: 920,
            Iota: 921,
            Kappa: 922,
            Lambda: 923,
            Mu: 924,
            Nu: 925,
            Xi: 926,
            Omicron: 927,
            Pi: 928,
            Rho: 929,
            Sigma: 931,
            Tau: 932,
            Upsilon: 933,
            Phi: 934,
            Chi: 935,
            Psi: 936,
            Omega: 937,
            alpha: 945,
            beta: 946,
            gamma: 947,
            delta: 948,
            epsilon: 949,
            zeta: 950,
            eta: 951,
            theta: 952,
            iota: 953,
            kappa: 954,
            lambda: 955,
            mu: 956,
            nu: 957,
            xi: 958,
            omicron: 959,
            pi: 960,
            rho: 961,
            sigmaf: 962,
            sigma: 963,
            tau: 964,
            upsilon: 965,
            phi: 966,
            chi: 967,
            psi: 968,
            omega: 969,
            thetasym: 977,
            upsih: 978,
            piv: 982,
            bull: 8226,
            hellip: 8230,
            prime: 8242,
            Prime: 8243,
            oline: 8254,
            frasl: 8260,
            weierp: 8472,
            image: 8465,
            real: 8476,
            trade: 8482,
            alefsym: 8501,
            larr: 8592,
            uarr: 8593,
            rarr: 8594,
            darr: 8595,
            harr: 8596,
            crarr: 8629,
            lArr: 8656,
            uArr: 8657,
            rArr: 8658,
            dArr: 8659,
            hArr: 8660,
            forall: 8704,
            part: 8706,
            exist: 8707,
            empty: 8709,
            nabla: 8711,
            isin: 8712,
            notin: 8713,
            ni: 8715,
            prod: 8719,
            sum: 8721,
            minus: 8722,
            lowast: 8727,
            radic: 8730,
            prop: 8733,
            infin: 8734,
            ang: 8736,
            and: 8743,
            or: 8744,
            cap: 8745,
            cup: 8746,
            "int": 8747,
            there4: 8756,
            sim: 8764,
            cong: 8773,
            asymp: 8776,
            ne: 8800,
            equiv: 8801,
            le: 8804,
            ge: 8805,
            sub: 8834,
            sup: 8835,
            nsub: 8836,
            sube: 8838,
            supe: 8839,
            oplus: 8853,
            otimes: 8855,
            perp: 8869,
            sdot: 8901,
            lceil: 8968,
            rceil: 8969,
            lfloor: 8970,
            rfloor: 8971,
            lang: 9001,
            rang: 9002,
            loz: 9674,
            spades: 9824,
            clubs: 9827,
            hearts: 9829,
            diams: 9830,
            OElig: 338,
            oelig: 339,
            Scaron: 352,
            scaron: 353,
            Yuml: 376,
            circ: 710,
            tilde: 732,
            ensp: 8194,
            emsp: 8195,
            thinsp: 8201,
            zwnj: 8204,
            zwj: 8205,
            lrm: 8206,
            rlm: 8207,
            ndash: 8211,
            mdash: 8212,
            lsquo: 8216,
            rsquo: 8217,
            sbquo: 8218,
            ldquo: 8220,
            rdquo: 8221,
            bdquo: 8222,
            dagger: 8224,
            Dagger: 8225,
            permil: 8240,
            lsaquo: 8249,
            rsaquo: 8250,
            euro: 8364
        };
        e.exports = t
    },
    function(e, t, i) {
        function n(e) {
            var t, i = 0,
            n = 0,
            r = 0,
            a = 0,
            o = 0,
            c = 5 / 3;
            return window.getComputedStyle && (t = window.getComputedStyle(e), n = s(t[f + "Duration"]) || n, r = s(t[f + "Delay"]) || r, a = s(t[h + "Duration"]) || a, o = s(t[h + "Delay"]) || o, i = Math.max(n + r, a + o)),
            1e3 * i * c
        }
        function s(e) {
            var t, i = 0;
            return e ? (e.split(",").forEach(function(e) {
                t = parseFloat(e),
                t > i && (i = t)
            }), i) : 0
        }
        var r = i(5),
        a = i(4),
        o = {},
        c = i(1),
        _ = "transitionend",
        d = "animationend",
        f = "transition",
        h = "animation";
        "ontransitionend" in window || ("onwebkittransitionend" in window ? (_ += " webkitTransitionEnd", f = "webkitTransition") : ("onotransitionend" in a.tNode || "Opera" === navigator.appName) && (_ += " oTransitionEnd", f = "oTransition")),
        "onanimationend" in window || ("onwebkitanimationend" in window ? (d += " webkitAnimationEnd", h = "webkitAnimation") : "onoanimationend" in a.tNode && (d += " oAnimationEnd", h = "oAnimation")),
        o.inject = function(e, t, i, n) {
            if (n = n || r.noop, Array.isArray(e)) {
                for (var s = a.fragment(), o = 0, c = 0, _ = e.length; _ > c; c++) s.appendChild(e[c]);
                a.inject(s, t, i);
                var d = function() {
                    o++,
                    o === _ && n()
                };
                for (_ === o && n(), c = 0; _ > c; c++) e[c].onenter ? e[c].onenter(d) : d()
            } else a.inject(e, t, i),
            e.onenter ? e.onenter(n) : n()
        },
        o.remove = function(e, t) {
            function i() {
                n++,
                n === r && t && t()
            }
            if (e) {
                var n = 0;
                if (Array.isArray(e)) {
                    for (var s = 0,
                    r = e.length; r > s; s++) o.remove(e[s], i);
                    return e
                }
                e.onleave ? e.onleave(function() {
                    l(e, t)
                }) : l(e, t)
            }
        };
        var l = function(e, t) {
            a.remove(e),
            t && t()
        };
        o.startClassAnimate = function(e, t, i, s) {
            var o, f, h, l;
            return ! d && !_ || c.isRunning ? i() : (l = r.once(4 !== s ?
            function() {
                h && clearTimeout(h),
                2 === s && a.delClass(e, o),
                3 !== s && a.delClass(e, t),
                a.off(e, d, l),
                a.off(e, _, l),
                i()
            }: function() {
                h && clearTimeout(h),
                i()
            }), 2 === s ? (a.addClass(e, t), o = r.map(t.split(/\s+/),
            function(e) {
                return e + "-active"
            }).join(" "), a.nextReflow(function() {
                a.addClass(e, o),
                f = n(e),
                h = setTimeout(l, f)
            })) : a.nextReflow(4 === s ?
            function() {
                a.delClass(e, t),
                f = n(e),
                h = setTimeout(l, f)
            }: function() {
                a.addClass(e, t),
                f = n(e),
                h = setTimeout(l, f)
            }), a.on(e, d, l), a.on(e, _, l), l)
        },
        o.startStyleAnimate = function(e, t, i) {
            var s, o, c;
            return a.nextReflow(function() {
                a.css(e, t),
                s = n(e),
                c = setTimeout(o, s)
            }),
            o = r.once(function() {
                c && clearTimeout(c),
                a.off(e, d, o),
                a.off(e, _, o),
                i()
            }),
            a.on(e, d, o),
            a.on(e, _, o),
            o
        },
        e.exports = o
    },
    function(e) {
        e.exports = {
            COMPONENT_TYPE: 1,
            ELEMENT_TYPE: 2
        }
    },
    function(e, t, i) {
        function n(e, t, i) {
            if (i) for (var n, s = e.target; s && s !== i;) {
                for (var r = 0,
                a = t.length; a > r; r++) n = t[r],
                n && n.element === s && n.fire(e);
                s = s.parentNode
            }
        }
        var s = i(5),
        r = i(4),
        a = i(3);
        a._addProtoInheritCache("event"),
        a.directive(/^on-\w+$/,
        function(e, t, i, n) {
            if (i && t) {
                var s = i.split("-")[1];
                return this._handleEvent(e, s, t, n)
            }
        }),
        a.directive(/^(delegate|de)-\w+$/,
        function(e, t, i) {
            function a(e) {
                n(e, c[_], o.parentNode)
            }
            var o = this.$root,
            c = o._delegates || (o._delegates = {});
            if (i && t) {
                var _ = i.split("-")[1],
                d = s.handleEvent.call(this, t, _);
                c[_] || (c[_] = [], o.parentNode ? r.on(o.parentNode, _, a) : o.$on("$inject",
                function(e, t, i) {
                    var n = this.parentNode;
                    i && r.off(i, _, a),
                    n && r.on(this.parentNode, _, a)
                }), o.$on("$destroy",
                function() {
                    o.parentNode && r.off(o.parentNode, _, a),
                    c[_] = null
                }));
                var f = {
                    element: e,
                    fire: d
                };
                return c[_].push(f),
                function() {
                    var e = c[_];
                    if (e && e.length) for (var t = 0,
                    i = e.length; i > t; t++) e[t] === f && e.splice(t, 1)
                }
            }
        })
    },
    function(e, t, i) {
        function n(e, t) {
            function i() {
                t.set(n, this.value),
                s.last = this.value,
                n.$update()
            }
            var n = this,
            s = this.$watch(t,
            function(t) {
                var i = o.slice(e.getElementsByTagName("option"));
                i.forEach(function(i, n) {
                    i.value == t && (e.selectedIndex = n)
                })
            });
            return c.on(e, "change", i),
            void 0 === t.get(n) && e.value && t.set(n, e.value),
            function() {
                c.off(e, "change", i)
            }
        }
        function s(e, t) {
            var i = this,
            n = this.$watch(t,
            function(t) {
                e.value !== t && (e.value = null == t ? "": "" + t)
            }),
            s = function(e) {
                var s = this;
                if ("cut" === e.type || "paste" === e.type) o.nextTick(function() {
                    var e = s.value;
                    t.set(i, e),
                    n.last = e,
                    i.$update()
                });
                else {
                    var r = s.value;
                    t.set(i, r),
                    n.last = r,
                    i.$update()
                }
            };
            return 9 !== c.msie && "oninput" in c.tNode ? e.addEventListener("input", s) : (c.on(e, "paste", s), c.on(e, "keyup", s), c.on(e, "cut", s), c.on(e, "change", s)),
            void 0 === t.get(i) && e.value && t.set(i, e.value),
            function() {
                9 !== c.msie && "oninput" in c.tNode ? e.removeEventListener("input", s) : (c.off(e, "paste", s), c.off(e, "keyup", s), c.off(e, "cut", s), c.off(e, "change", s))
            }
        }
        function r(e, t) {
            var i = this,
            n = this.$watch(t,
            function(t) {
                c.attr(e, "checked", !!t)
            }),
            s = function() {
                var e = this.checked;
                t.set(i, e),
                n.last = e,
                i.$update()
            };
            return t.set && c.on(e, "change", s),
            void 0 === t.get(i) && t.set(i, !!e.checked),
            function() {
                t.set && c.off(e, "change", s)
            }
        }
        function a(e, t) {
            var i = this,
            n = (this.$watch(t,
            function(t) {
                e.checked = t == e.value ? !0 : !1
            }),
            function() {
                var e = this.value;
                t.set(i, e),
                i.$update()
            });
            return t.set && c.on(e, "change", n),
            void 0 === t.get(i) && e.checked && t.set(i, e.value),
            function() {
                t.set && c.off(e, "change", n)
            }
        }
        var o = i(5),
        c = i(4),
        _ = i(3),
        d = {
            text: s,
            select: n,
            checkbox: r,
            radio: a
        };
        _.directive("r-model",
        function(e, t) {
            var i = e.tagName.toLowerCase(),
            n = i;
            return "input" === n ? n = e.type || "text": "textarea" === n && (n = "text"),
            "string" == typeof t && (t = this.$expression(t)),
            d[n] ? d[n].call(this, e, t) : "input" === i ? d.text.call(this, e, t) : void 0
        })
    },
    function(e, t, i) {
        function n(e, t) {
            var i = e.length,
            n = t.length;
            if (i !== n) return ! 0;
            for (var s = 0; i > s; s++) if (e[s] !== t[s]) return ! 0;
            return ! 1
        }
        function s(e, t) {
            return e === t
        }
        function r(e, t, i) {
            for (var n = e.length,
            r = t.length,
            i = i || s,
            a = [], o = 0; n >= o; o++) a.push([o]);
            for (var c = 1; r >= c; c++) a[0][c] = c;
            for (var o = 1; n >= o; o++) for (var c = 1; r >= c; c++) a[o][c] = i(e[o - 1], t[c - 1]) ? a[o - 1][c - 1] : Math.min(a[o - 1][c] + 1, a[o][c - 1] + 1);
            return a
        }
        function a(e, t, i, s) {
            if (!i) return n(e, t);
            for (var a = r(t, e, s), o = t.length, c = o, _ = e.length, d = _, f = [], h = a[c][d]; c > 0 || d > 0;) if (0 !== c) if (0 !== d) {
                var l = a[c - 1][d - 1],
                u = a[c - 1][d],
                p = a[c][d - 1],
                m = Math.min(p, u, l);
                m === u ? (f.unshift(2), c--, h = u) : m === l ? (l === h ? f.unshift(0) : (f.unshift(1), h = l), c--, d--) : (f.unshift(3), d--, h = p)
            } else f.unshift(2),
            c--;
            else f.unshift(3),
            d--;
            var g = 0,
            b = 3,
            v = 2,
            $ = 1,
            o = 0;
            _ = 0;
            for (var y = [], E = {
                index: null,
                add: 0,
                removed: []
            },
            c = 0; c < f.length; c++) switch (f[c] > 0 ? null === E.index && (E.index = _) : null != E.index && (y.push(E), E = {
                index: null,
                add: 0,
                removed: []
            }), f[c]) {
            case g:
                o++,
                _++;
                break;
            case b:
                E.add++,
                _++;
                break;
            case v:
                E.removed.push(t[o]),
                o++;
                break;
            case $:
                E.add++,
                E.removed.push(t[o]),
                o++,
                _++
            }
            return null != E.index && y.push(E),
            y
        }
        function o(e, t, i) {
            if (i) {
                var n = c.keys(e),
                s = c.keys(t);
                return a(n, s, i,
                function(i, n) {
                    return e[n] === t[i]
                })
            }
            for (var r in e) if (t[r] !== e[r]) return ! 0;
            for (var o in t) if (t[o] !== e[o]) return ! 0;
            return ! 1
        }
        var c = i(5);
        e.exports = {
            diffArray: a,
            diffObject: o
        }
    },
    function(e) {
        e.exports = {
            element: function(e, t, i) {
                return {
                    type: "element",
                    tag: e,
                    attrs: t,
                    children: i
                }
            },
            attribute: function(e, t, i) {
                return {
                    type: "attribute",
                    name: e,
                    value: t,
                    mdf: i
                }
            },
            "if": function(e, t, i) {
                return {
                    type: "if",
                    test: e,
                    consequent: t,
                    alternate: i
                }
            },
            list: function(e, t, i, n, s) {
                return {
                    type: "list",
                    sequence: e,
                    alternate: n,
                    variable: t,
                    body: i,
                    track: s
                }
            },
            expression: function(e, t, i) {
                return {
                    type: "expression",
                    body: e,
                    constant: i || !1,
                    setbody: t || !1
                }
            },
            text: function(e) {
                return {
                    type: "text",
                    text: e
                }
            },
            template: function(e) {
                return {
                    type: "template",
                    content: e
                }
            }
        }
    }])
});
I$("caaecd3c396a93b245bbd554253cba73",
function(e, t, i, n, s, r, a, o, c, _, d) {
    var f = function(e, t) {
        t.data["MGID"] = window.mgid;
        t.data["URS-CM"] = 1;
        a._$postMessage(e, t)
    };
    var h = function() {
        var e = document.body.scrollWidth,
        t = document.body.clientHeight,
        i = {
            width: e,
            height: t,
            type: "resize"
        };
        if (e * t > 0) f("_parent", {
            data: i
        })
    };
    var l = Regular.extend({
        data: {},
        config: function(e) {
            t._$merge(this.data, e || {});
            this.supr(e);
            if (this.data.productKey) this.data.productkey = this.data.productKey
        },
        init: function(e) {
            this.supr(e)
        },
        _findErrorIndex: function() {
            var e = 100;
            t._$forIn(this.errorIndexMap,
            function(t) {
                if (t <= e && t >= 0) e = t
            }._$bind(this));
            this.errorIndex = e
        },
        _addIframe: function(e, t) {
            if ("https:" == location.protocol) t = t.replace("http:", "https:");
            var n = t.indexOf("zc.reg.163.com") == -1;
            if (n) n = t.indexOf("/zc/") == -1;
            if (n) {
                t = r._$addPathB(t);
                if (window._$URSOPT.opd) t = t + (t.indexOf("?") >= 0 ? "&": "?") + "opd=" + window._$URSOPT.opd;
                if (window._$URSOPT.opkid) t = t + (t.indexOf("?") >= 0 ? "&": "?") + "opkid=" + window._$URSOPT.opkid
            }
            i._$createXFrame({
                src: t,
                parent: document.body,
                visible: !1,
                onload: function() {
                    this.__iframeIndex++;
                    if (this.__ifarmeSize == this.__iframeIndex) {
                        this.__iframeCt = clearTimeout(this.__iframeCt);
                        this._$sendMsg(e)
                    }
                }._$bind(this)
            })
        },
        _$sendMsg: function(e) {
            if ("reg" == this.data.module) this.doUnlockReg && this.doUnlockReg();
            if ("login" == this.data.module) this.doUnlockLogin && this.doUnlockLogin();
            if ("uniteLogin" == this.data.module) this.doUniteLoginUnLock && this.doUniteLoginUnLock();
            if (window.$outLoginKey && "success" == e.type) e.fromOutLogin = 1;
            f("_parent", {
                data: e
            })
        },
        _$setDomains: function(e) {
            var i = e || {};
            this.__iframeIndex = 0;
            var n = i.nextUrls || [];
            this.__ifarmeSize = n.length || 0;
            if (this.__ifarmeSize > 0) this.__iframeCt = setTimeout(function() {
                this._$sendMsg(i)
            }._$bind(this), 5e3);
            else this._$sendMsg(i);
            t._$forEach(n, this._addIframe._$bind(this, i))
        },
        _$doShowError: function(e) {
            var t = e.type || "",
            n = e.target,
            a = i._$get(e.node),
            o = e.str || "请求错误",
            c = i._$get("cnt-box-parent"),
            _ = e.tabIndex;
            if (1 != window._$needCookieSet || o.indexOf("开启浏览器cookies") != -1) {
                if (o.indexOf("点此进行安全登录") > -1) _ = 99;
                if (! (o.indexOf("网络不好") >= 0)) {
                    var d = n && r._$getParent(n, "inputbox");
                    if (d) i._$addClassName(d, "error-color");
                    this.errorIndexMap[_] = _;
                    if (a && (this.errorIndex == -1 || _ <= this.errorIndex)) {
                        this.errorIndex = _;
                        a.innerHTML = s._$get("error-tmp", {
                            str: o || "",
                            type: t
                        });
                        a.className = "m-nerror"
                    }
                    i._$addClassName(c, "haserr");
                    h()
                } else {
                    r._$showFail( - 1);
                    h()
                }
            }
        },
        _$removeError: function(e) {
            var t = i._$get("cnt-box-parent"),
            n = e.target,
            s = n && r._$getParent(n, "inputbox"),
            a = i._$get(e.node),
            o = e.tabIndex;
            if (!window._$needCookieSet) {
                if (s) i._$delClassName(s, "error-color");
                if (this.errorIndex == o || this.errorIndex == -1) i._$addClassName(a, "f-dn");
                delete this.errorIndexMap[o];
                this._findErrorIndex();
                i._$delClassName(t, "haserr");
                h()
            }
        },
        _$resize: function() {
            h()
        },
        _$postMessage: function(e) {
            f("_parent", {
                data: e
            })
        }
    });
    return l
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "55ecf251619aa03ad5e02d8743c45f0a", "83c67d5b20eeffc1f687e113ae22189f", "0d434f17f93250948578c8948f9f01bf", "4e3477f1faad0e644cf31bd4765e12dc");
I$("80db439a8709cf21b70d2cc4c6f497b8",
function(e, t, i, n) {
    var s = {
        "mb-nini-433": "系统繁忙，请刷新页面重试",
        "mb-nini-401": "操作超时，请刷新页面重试",
        "mb-nini--1": "网络不好，请刷新页面重试",
        "mb-nini--2": "网络不好，请刷新页面重试",
        "mb-nini-404": "网络不好，请刷新页面重试",
        "mb-nini-500": "系统繁忙，请您稍后再试",
        "mb-nini-0": "网络不好，请刷新页面重试",
        "mb-nlgt-433": "系统繁忙，请刷新页面重试",
        "mb-nlgt-401": "操作超时，请刷新页面重试",
        "mb-nlgt-40110": "手机号格式错误",
        "mb-nlgt--1": "网络不好，请刷新页面重试",
        "mb-nlgt--2": "网络不好，请刷新页面重试",
        "mb-nlgt-404": "网络不好，请刷新页面重试",
        "mb-nlgt-500": "系统繁忙，请您稍后再试",
        "mb-nlgt-0": "网络不好，请刷新页面重试",
        "mb-nvfcp-433": "系统繁忙，请刷新页面重试",
        "mb-nvfcp-442": "请输入正确的验证码",
        "mb-nvfcp-401": "操作超时，请刷新页面重试",
        "mb-nvfcp-441": "请输入图片验证码",
        "mb-nvfcp-444": "请滑动验证码",
        "mb-nvfcp-445": "请点击验证码",
        "mb-nvfcp--1": "网络不好，请刷新页面重试",
        "mb-nvfcp--2": "网络不好，请刷新页面重试",
        "mb-nvfcp-404": "网络不好，请刷新页面重试",
        "mb-nvfcp-500": "系统繁忙，请您稍后再试",
        "mb-nvfcp-0": "网络不好，请刷新页面重试",
        "mb-nvfcp-505": "次数超限，请稍后再试",
        "mb-nvftcp-433": "系统繁忙，请刷新页面重试",
        "mb-nvftcp-401": "操作超时，请刷新页面重试",
        "mb-nvftcp-441": "请输入图片验证码",
        "mb-nvftcp-444": "请滑动验证码",
        "mb-nvftcp-445": "请点击验证码",
        "mb-nvftcp--1": "网络不好，请刷新页面重试",
        "mb-nvftcp--2": "网络不好，请刷新页面重试",
        "mb-nvftcp-404": "网络不好，请刷新页面重试",
        "mb-nvftcp-500": "系统繁忙，请您稍后再试",
        "mb-nvftcp-0": "网络不好，请刷新页面重试",
        "mb-nvftcp-505": "次数超限，请稍后再试",
        "mb-nvfccp-433": "系统繁忙，请刷新页面重试",
        "mb-nvfccp-401": "操作超时，请刷新页面重试",
        "mb-nvfccp-441": "请输入图片验证码",
        "mb-nvfccp-444": "请滑动验证码",
        "mb-nvfccp-445": "请点击验证码",
        "mb-nvfccp--1": "网络不好，请刷新页面重试",
        "mb-nvfccp--2": "网络不好，请刷新页面重试",
        "mb-nvfccp-404": "网络不好，请刷新页面重试",
        "mb-nvfccp-500": "系统繁忙，请您稍后再试",
        "mb-nvfccp-0": "网络不好，请刷新页面重试",
        "mb-nvfccp-505": "次数超限，请稍后再试",
        "mb-nlregssms-433": "系统繁忙，请刷新页面重试",
        "mb-nlregssms-635": "该帐号在考察期（24小时）内，请使用原手机号登录",
        "mb-nlregssms-410": "超过IP限制，请稍后再试",
        "mb-nlregssms-412": "验证码错误超过限制，请稍后再试",
        "mb-nlregssms-413": "验证码发送超过限制，请改天再试",
        "mb-nlregssms-441": "请输入图片验证码",
        "mb-nlregssms-444": "请滑动验证码",
        "mb-nlregssms-445": "请点击验证码",
        "mb-nlregssms-422": '该帐号已被锁定，<a target="_blank" href="https://mob.163.com/web/accunlock" style="color:#4aafe9;text-decoration:underline;">尝试解锁</a>。',
        "mb-nlregssms-602": '帐号长期未使用已冻结，请<a target="_blank" href="https://mob.163.com/web/freezappeal">自助解冻</a>',
        "mb-nlregssms-401": "操作超时，请刷新页面重试",
        "mb-nlregssms-40110": "手机号格式错误",
        "mb-nlregssms--1": "网络不好，请刷新页面重试",
        "mb-nlregssms--2": "网络不好，请刷新页面重试",
        "mb-nlregssms-404": "网络不好，请刷新页面重试",
        "mb-nlregssms-500": "系统繁忙，请您稍后再试",
        "mb-nlregssms-0": "网络不好，请刷新页面重试",
        "mb-nlregssms-505": "次数超限，请稍后再试",
        "mb-nlregvfsms-415": "请重新下发短信验证码",
        "mb-nlregvfsms-40901": "您的操作太频繁，请稍后再试",
        "mb-nlregvfsms-401": "操作超时，请刷新页面重试",
        "mb-nlregvfsms-402": "当前网络异常，请检查您的网络环境",
        "mb-nlregvfsms-40110": "手机号格式错误",
        "mb-nlregvfsms-409": "您的操作太频繁，请稍后再试",
        "mb-nlregvfsms-410": "超过IP限制，请稍后再试",
        "mb-nlregvfsms-412": "验证码验证错误次数过多，请稍后再试",
        "mb-nlregvfsms-413": "帐号或验证码错误",
        "mb-nlregvfsms-416": "您的IP登录过于频繁，请稍后再试",
        "mb-nlregvfsms-433": "系统繁忙，请刷新页面重试",
        "mb-nlregvfsms-420": "该手机帐号未注册",
        "mb-nlregvfsms-422": '该帐号已被锁定，<a target="_blank" href="https://mob.163.com/web/accunlock" style="color:#4aafe9;text-decoration:underline;">尝试解锁</a>。',
        "mb-nlregvfsms-41201": "您登录错误次数过多，请稍后再试",
        "mb-nlregvfsms-41301": "您登录错误验证码次数过多，请稍后再试",
        "mb-nlregvfsms-41303": "您的IP登录错误验证码次数过多，请稍后再试",
        "mb-nlregvfsms-41401": "您的IP登录错误次数过多，请稍后再试",
        "mb-nlregvfsms-41701": "您的IP登录成功次数过多，请稍后后再试",
        "mb-nlregvfsms-41801": "您登录成功次数过多，请稍后再试",
        "mb-nlregvfsms-41901": "您登录过于频繁，请稍后再试",
        "mb-nlregvfsms-41902": "您的IP登录过于频繁，请稍后再试",
        "mb-nlregvfsms-443": "请输入正确的短信验证码",
        "mb-nlregvfsms-40107": '请设置<a target="_blank" href="https://www.baidu.com/s?wd=safari%E5%BC%80%E5%90%AFcookie">浏览器接受第三方cookie</a>，或者更换浏览器尝试',
        "mb-nlregvfsms--1": "网络不好，请刷新页面重试",
        "mb-nlregvfsms--2": "网络不好，请刷新页面重试",
        "mb-nlregvfsms-404": "网络不好，请刷新页面重试",
        "mb-nlregvfsms-500": "系统繁忙，请您稍后再试",
        "mb-nlregvfsms-503": "服务器繁忙，请稍后再试",
        "mb-nlregvfsms-0": "网络不好，请刷新页面重试",
        "mb-nlregvfsms-602": '帐号长期未使用已冻结，请<a target="_blank" href="https://mob.163.com/web/freezappeal">自助解冻</a>',
        "mb-nlregvfsms-635": "该帐号在考察期（24小时）内，请使用原手机号登录",
        "mb-ini-433": "系统繁忙，请刷新页面重试",
        "mb-ini-401": "操作超时，请刷新页面重试",
        "mb-ini--1": "网络不好，请刷新页面重试",
        "mb-ini--2": "网络不好，请刷新页面重试",
        "mb-ini-404": "网络不好，请刷新页面重试",
        "mb-ini-500": "系统繁忙，请您稍后再试",
        "mb-ini-0": "网络不好，请刷新页面重试",
        "mb-gt-401": "操作超时，请刷新页面重试",
        "mb-gt-40110": "手机号格式错误",
        "mb-gt--1": "网络不好，请刷新页面重试",
        "mb-gt--2": "网络不好，请刷新页面重试",
        "mb-gt-404": "网络不好，请刷新页面重试",
        "mb-gt-500": "系统繁忙，请您稍后再试",
        "mb-gt-0": "网络不好，请刷新页面重试",
        "mb-vfcp-442": "请输入正确的验证码",
        "mb-vfcp-401": "操作超时，请刷新页面重试",
        "mb-vfcp-441": "请输入图片验证码",
        "mb-vfcp-444": "请滑动验证码",
        "mb-vfcp-445": "请点击验证码",
        "mb-vfcp--1": "网络不好，请刷新页面重试",
        "mb-vfcp--2": "网络不好，请刷新页面重试",
        "mb-vfcp-404": "网络不好，请刷新页面重试",
        "mb-vfcp-500": "系统繁忙，请您稍后再试",
        "mb-vfcp-0": "网络不好，请刷新页面重试",
        "mb-vfcp-505": "次数超限，请稍后再试",
        "mb-vftcp-442": "请输入正确的验证码",
        "mb-vftcp-401": "操作超时，请刷新页面重试",
        "mb-vftcp-441": "请输入图片验证码",
        "mb-vftcp-444": "请滑动验证码",
        "mb-vftcp-445": "请点击验证码",
        "mb-vftcp--1": "网络不好，请刷新页面重试",
        "mb-vftcp--2": "网络不好，请刷新页面重试",
        "mb-vftcp-404": "网络不好，请刷新页面重试",
        "mb-vftcp-500": "系统繁忙，请您稍后再试",
        "mb-vftcp-0": "网络不好，请刷新页面重试",
        "mb-vftcp-505": "次数超限，请稍后再试",
        "mb-vfccp-442": "请输入正确的验证码",
        "mb-vfccp-401": "操作超时，请刷新页面重试",
        "mb-vfccp-441": "请输入图片验证码",
        "mb-vfccp-444": "请滑动验证码",
        "mb-vfccp-445": "请点击验证码",
        "mb-vfccp--1": "网络不好，请刷新页面重试",
        "mb-vfccp--2": "网络不好，请刷新页面重试",
        "mb-vfccp-404": "网络不好，请刷新页面重试",
        "mb-vfccp-500": "系统繁忙，请您稍后再试",
        "mb-vfccp-0": "网络不好，请刷新页面重试",
        "mb-vfccp-505": "次数超限，请稍后再试",
        "mb-login-401": "操作超时，请刷新页面重试",
        "mb-login-40110": "手机号格式错误",
        "mb-login-409": "您的操作太频繁，请稍后再试",
        "mb-login-413": "帐号或密码错误",
        "mb-login-402": "当前网络异常，请检查您的网络环境",
        "mb-login-433": "系统繁忙，请刷新页面重试",
        "mb-login-410": "超过IP限制，请稍后再试",
        "mb-login-420": "该手机帐号未注册",
        "mb-login-422": '该帐号已被锁定，请使用<a target="_blank" href="https://id.163.com/gj/?from=webzj" style="color:#4aafe9;text-decoration:underline;">网易帐号管家</a>尝试解锁。',
        "mb-login-602": '帐号长期未使用已冻结，请<a target="_blank" href="https://mob.163.com/web/freezappeal">自助解冻</a>',
        "mb-login-609": "请通过手机短信登录",
        "mb-login-635": "该帐号在考察期（24小时）内，请使用原手机号登录",
        "mb-login-41201": "您登录错误次数过多，请稍后再试",
        "mb-login-41202": "您登录错误次数过多，请明天再试",
        "mb-login-41301": "您登录错误密码次数过多，请稍后再试",
        "mb-login-41302": "您登录错误密码次数过多，请明天再试",
        "mb-login-41303": "您的IP登录错误密码次数过多，请稍后再试",
        "mb-login-41401": "您的IP登录错误次数过多，请稍后再试",
        "mb-login-41402": "您的IP登录错误次数过多，请明天再试",
        "mb-login-41701": "您的IP登录成功次数过多，请稍后后再试",
        "mb-login-41702": "您的IP登录成功次数过多，请明天再试",
        "mb-login-41801": "您登录成功次数过多，请稍后再试",
        "mb-login-41802": "您登录成功次数过多，请明天再试",
        "mb-login-416": "您的IP登录过于频繁，请稍后再试",
        "mb-login-41901": "您登录过于频繁，请稍后再试",
        "mb-login-41902": "您的IP登录过于频繁，请稍后再试",
        "mb-login-441": "请输入图片验证码",
        "mb-login-444": "请滑动验证码",
        "mb-login-445": "请点击验证码",
        "mb-login-40107": '请设置<a target="_blank" href="https://www.baidu.com/s?wd=safari%E5%BC%80%E5%90%AFcookie">浏览器接受第三方cookie</a>，或者更换浏览器尝试',
        "mb-login--1": "网络不好，请刷新页面重试",
        "mb-login--2": "网络不好，请刷新页面重试",
        "mb-login-404": "网络不好，请刷新页面重试",
        "mb-login-500": "系统繁忙，请您稍后再试",
        "mb-login-503": "服务器繁忙，请稍后再试",
        "mb-login-0": "网络不好，请刷新页面重试",
        "mb-lvfsms-635": "该帐号在考察期（24小时）内，请使用原手机号登录",
        "mb-lvfsms-443": "请输入正确的短信验证码",
        "mb-lvfsms-409": "您的操作太频繁，请稍后再试",
        "mb-lvfsms-410": "超过IP限制，请稍后再试",
        "mb-lvfsms-441": "请输入图片验证码",
        "mb-lvfsms-444": "请滑动验证码",
        "mb-lvfsms-445": "请点击验证码",
        "mb-lvfsms-412": "验证码错误次数过多，请改天再试",
        "mb-lvfsms-41201": "您登录错误次数过多，请稍后再试",
        "mb-lvfsms-41202": "您登录错误次数过多，请明天再试",
        "mb-lvfsms-41301": "您登录错误验证码次数过多，请稍后再试",
        "mb-lvfsms-41302": "您登录错误验证码次数过多，请明天再试",
        "mb-lvfsms-41303": "您的IP登录错误验证码次数过多，请稍后再试",
        "mb-lvfsms-41401": "您的IP登录错误次数过多，请稍后再试",
        "mb-lvfsms-41402": "您的IP登录错误次数过多，请明天再试",
        "mb-lvfsms-41701": "您的IP登录成功次数过多，请稍后后再试",
        "mb-lvfsms-41702": "您的IP登录成功次数过多，请明天再试",
        "mb-lvfsms-41801": "您登录成功次数过多，请稍后再试",
        "mb-lvfsms-41802": "您登录成功次数过多，请明天再试",
        "mb-lvfsms-416": "您的IP登录过于频繁,请稍后再试",
        "mb-lvfsms-41901": "您登录过于频繁，请稍后再试",
        "mb-lvfsms-41902": "您的IP登录过于频繁，请稍后再试",
        "mb-lvfsms-420": "该手机帐号未注册",
        "mb-lvfsms-422": '该帐号已被锁定，请使用<a target="_blank" href="https://id.163.com/gj/?from=webzj" style="color:#4aafe9;text-decoration:underline;">网易帐号管家</a>尝试解锁。',
        "mb-lvfsms-602": '帐号长期未使用已冻结，请<a target="_blank" href="https://mob.163.com/web/freezappeal">自助解冻</a>',
        "mb-lvfsms-402": "当前网络异常，请检查您的网络环境",
        "mb-lvfsms-401": "操作超时，请刷新页面重试",
        "mb-lvfsms-40109": "手机号格式错误",
        "mb-lvfsms--1": "网络不好，请刷新页面重试",
        "mb-lvfsms--2": "网络不好，请刷新页面重试",
        "mb-lvfsms-404": "网络不好，请刷新页面重试",
        "mb-lvfsms-500": "系统繁忙，请您稍后再试",
        "mb-lvfsms-0": "网络不好，请刷新页面重试",
        "mb-sms-lsm-10710": "请输入图片验证码",
        "mb-sms-lsm-635": "该帐号在考察期（24小时）内，请使用原手机号登录",
        "mb-sms-lsm-407": "该帐号已注册",
        "mb-sms-lsm-410": "超过IP限制，请稍后再试",
        "mb-sms-lsm-412": "验证码错误超过限制，请稍后再试",
        "mb-sms-lsm-413": "验证码发送超过限制，请改天再试",
        "mb-sms-lsm-441": "请输入图片验证码",
        "mb-sms-lsm-444": "请滑动验证码",
        "mb-sms-lsm-445": "请点击验证码",
        "mb-sms-lsm-420": "该手机帐号未注册",
        "mb-sms-lsm-442": "请输入正确的验证码",
        "mb-sms-lsm-422": '该帐号已被锁定，请使用<a target="_blank" href="https://id.163.com/gj/?from=webzj" style="color:#4aafe9;text-decoration:underline;">网易帐号管家</a>尝试解锁。',
        "mb-sms-lsm-602": '帐号长期未使用已冻结，请<a target="_blank" href="https://mob.163.com/web/freezappeal">自助解冻</a>',
        "mb-sms-lsm-401": "操作超时，请刷新页面重试",
        "mb-sms-lsm-40109": "手机号格式错误",
        "mb-sms-lsm--1": "网络不好，请刷新页面重试",
        "mb-sms-lsm--2": "网络不好，请刷新页面重试",
        "mb-sms-lsm-404": "网络不好，请刷新页面重试",
        "mb-sms-lsm-500": "系统繁忙，请您稍后再试",
        "mb-sms-lsm-0": "网络不好，请刷新页面重试",
        "mb-sms-lsm-505": "次数超限，请稍后再试",
        "mb-reg-sm-10700": "请输入图片验证码",
        "mb-reg-sm-10704": "请滑动验证码",
        "mb-reg-sm-10705": "请点击验证码",
        "mb-reg-sm-407": "该帐号已注册",
        "mb-reg-sm-410": "超过IP限制，请稍后再试",
        "mb-reg-sm-108": "请输入图片验证码",
        "mb-reg-sm-109": "请滑动验证码",
        "mb-reg-sm-110": "请点击验证码",
        "mb-reg-sm-441": "请输入图片验证码",
        "mb-reg-sm-444": "请滑动验证码",
        "mb-reg-sm-445": "请点击验证码",
        "mb-reg-sm-41201": "验证码发送超过限制，请改天再试",
        "mb-reg-sm-41202": "验证码错误超过限制，请稍后再试",
        "mb-reg-sm-401": "操作超时，请刷新页面重试",
        "mb-reg-sm-40113": "手机号格式错误",
        "mb-reg-sm--1": "网络不好，请刷新页面重试",
        "mb-reg-sm--2": "网络不好，请刷新页面重试",
        "mb-reg-sm-404": "网络不好，请刷新页面重试",
        "mb-reg-sm-500": "系统繁忙，请您稍后再试",
        "mb-reg-sm-0": "网络不好，请刷新页面重试",
        "mb-reg-sm-433": "系统繁忙，请刷新页面重试",
        "mb-reg-sm-635": "该帐号在考察期（24小时）内，请使用原手机号登录",
        "mb-reg-vfsms-402": "当前网络异常，请检查您的网络环境",
        "mb-reg-vfsms-409": "您的操作太频繁，请稍后再试",
        "mb-reg-vfsms-410": "超过IP限制，请稍后再试",
        "mb-reg-vfsms-407": "该帐号已注册",
        "mb-reg-vfsms-412": "验证码错误次数过多，请改天再试",
        "mb-reg-vfsms-413": "请输入正确的验证码",
        "mb-reg-vfsms-401": "操作超时，请刷新页面重试",
        "mb-reg-vfsms-40113": "手机号格式错误",
        "mb-reg-vfsms--1": "网络不好，请刷新页面重试",
        "mb-reg-vfsms--2": "网络不好，请刷新页面重试",
        "mb-reg-vfsms-404": "网络不好，请刷新页面重试",
        "mb-reg-vfsms-500": "系统繁忙，请您稍后再试",
        "mb-reg-vfsms-635": "该帐号在考察期（24小时）内，请使用原手机号登录",
        "mb-reg-vfsms-0": "网络不好，请刷新页面重试",
        "mb-reg-vfsms-433": "系统繁忙，请刷新页面重试",
        "mb-reg-ini-433": "系统繁忙，请刷新页面重试",
        "mb-reg-ini-401": "操作超时，请刷新页面重试",
        "mb-reg-ini--1": "网络不好，请刷新页面重试",
        "mb-reg-ini--2": "网络不好，请刷新页面重试",
        "mb-reg-ini-404": "网络不好，请刷新页面重试",
        "mb-reg-ini-500": "系统繁忙，请您稍后再试",
        "mb-reg-ini-0": "网络不好，请刷新页面重试",
        "mb-reg-chn-407": "该帐号已注册",
        "mb-reg-chn-409": "您的操作太频繁，请稍后再试",
        "mb-reg-chn-410": "超过IP限制，请稍后再试",
        "mb-reg-chn-401": "操作超时，请刷新页面重试",
        "mb-reg-chn-40113": "手机号格式错误",
        "mb-reg-chn-422": '帐号长期未使用已冻结，请<a target="_blank" href="https://mob.163.com/web/freezappeal">自助解冻</a>',
        "mb-reg-chn--1": "网络不好，请刷新页面重试",
        "mb-reg-chn--2": "网络不好，请刷新页面重试",
        "mb-reg-chn-404": "网络不好，请刷新页面重试",
        "mb-reg-chn-500": "系统繁忙，请您稍后再试",
        "mb-reg-chn-0": "网络不好，请刷新页面重试",
        "mb-reg-chn-504": "次数超限，请稍后再试",
        "mb-reg-chn-505": "次数超限，请稍后再试"
    };
    return s
});
I$("2ac3f77d0ef746bec9bbcf1bce8e537b",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u) {
    var p = o.extend({
        data: {},
        config: function(t) {
            i._$merge(this.data, t || {});
            this.data.pwdfind = e._$is("desktop") ? "https://mob.163.com/web/passwdfind": "https://aq.reg.163.com/ydaq/welcome?module=offlinePasswordFind";
            this.data.hasQuestion = e._$is("desktop") ? "https://mob.163.com/": "https://aq.reg.163.com/ydaq/welcome";
            this.supr(t)
        },
        init: function(e) {
            if (this.data.mobileUnLoginTime) this.data.unLoginSelected = 1;
            else this.data.unLoginSelected = 0;
            this.errorIndex = -1;
            this.errorIndexMap = {};
            if (this.data.noqr) {
                var t = n._$getByClassName(document, "j-btnqrcode")[0];
                n._$addClassName(t, "f-dn")
            }
            this.supr(e);
            var i;
            if (!this.data.uniteLogin && this.data.mbRegGuide) {
                i = this.data.mbRegGuide;
                i = "1" == i ? "去注册": a._$HtmlEncode(i);
                i = '该手机帐号未注册，<a class="u-goToReg" style="color:#4cb5ff;" href="javascript:void(0);" data-action="changepage" data-mdtype="1">' + i + "</a>";
                _["mb-login-420"] = i;
                _["mb-lvfsms-420"] = i;
                _["mb-sms-lsm-420"] = i
            }
        },
        doEnter: function(e) {
            var t = e.keyCode;
            if (13 == t) {
                if ("login" === this.data.page) {
                    if (this.__ml && "1" == this.__config.channel) this.__ml.doLogin();
                    if (this.__msl && "2" == this.__config.channel) this.__msl.doLogin()
                }
                if ("register" === this.data.page && this.__mbreg) this.__mbreg.doReg()
            }
        },
        getSlideTarget: function() {
            return this.data.slideTarget
        },
        getUn: function() {
            return this.$refs.mninput._$getValue().trim()
        },
        iniSuccess: function(e) {
            if (this.$refs) {
                this._$doToggleLoingLockMb();
                this.data.initSuccess = 1;
                if (!this.__errMsg && e.dlapp) {
                    var t = {
                        tabIndex: -1,
                        str: a._$getDlapp(),
                        node: "nerror",
                        type: 3
                    };
                    this._$doShowError(t)
                }
                var i = e.capFlag || e.cf;
                if (1 == i) {
                    this.data.hasImgCap = 1;
                    this.data.hasSlide = 0;
                    this._$postMessage({
                        type: "mbInitSuccess"
                    })
                } else if (4 == i || 5 == i) {
                    this.data.hasSlide = 1;
                    this.data.hasImgCap = 0;
                    this.data.slideTarget = 4 == i ? 2 : 3
                } else this._$postMessage({
                    type: "mbInitSuccess"
                });
                var n = d._$cookie("regmbcookiename");
                var s = d._$cookie("THE_LAST_LOGIN_MOBILE");
                if (n && "login" == this.data.module) {
                    if (n.indexOf("-") < 0) {
                        this.$refs.mninput._$setValue(n);
                        d._$cookie("regmbcookiename", "")
                    }
                } else if (s && "login" == this.data.module) if (s.indexOf("-") < 0) this.$refs.mninput._$setValue(s);
                if (this.data.preFilledMobile && "login" == this.data.module) {
                    this.$refs.mninput._$setValue(this.data.preFilledMobile);
                    this.data.preFilledMobile = ""
                }
                this.$update();
                setTimeout(function() {
                    if (this.data.focusHelper) this.$refs.mninput._$focusHelper();
                    this._$resize()
                }._$bind(this), 200)
            }
        },
        iniError: function(e, t) {
            var i = t.ret,
            n, s;
            if ("mb-reg-ini-" == e) s = 0;
            else s = 1;
            if (window._$needUrsBgp) if (!this.tmpChannel && ("-2" == i || "-1" == i || "0" == i)) {
                this.tmpChannel = 1;
                if (s) window._$BGP = 1;
                else window._$BGPZC = 1;
                setTimeout(this.doInit._$bind(this), 200);
                return
            }
            if ("-401" != i) {
                if ("401" == i) i = e + t.ret;
                else i = e + t.ret + (t.dt || "");
                var r = {
                    tabIndex: -1,
                    str: _[i] || a._$getErrorTxt(t.ret),
                    node: "nerror"
                };
                this._$doShowError(r)
            } else {
                n = s ? "登录": "注册";
                this._$doShowError({
                    tabIndex: -1,
                    str: "无法" + n + '，请<a style="color:#4aafe9;" target="_blank" href="https://www.baidu.com/s?wd=%E6%B5%8F%E8%A7%88%E5%99%A8%E5%BC%80%E5%90%AFcookies">开启浏览器cookies</a>或更换浏览器后刷新重试',
                    node: "nerror"
                });
                window._$needCookieSet = 1
            }
        },
        doClick: function(e) {
            var i = t._$getElement(e),
            s = n._$dataset(i, "link");
            if (s) a._$doThirdLogin(e)
        },
        doInit: function() {
            var e = {};
            e.pd = this.data.product;
            e.pkid = this.data.promark;
            e.pkht = this.data.host || "";
            e.channel = this.data.channel;
            this.data.initSuccess = 0;
            c._$request("mb-ini", e, this.iniSuccess._$bind(this), this.iniError._$bind(this, "mb-ini-"), 1)
        },
        __getUserName: function() {
            return {
                username: this.__username
            }
        },
        loginSuccess: function(e, t) {
            var i = this.__getUserName();
            var n = e ? "密码方式": "验证码方式";
            _gaq.push(["_trackEvent", "手机帐号登录", "登录成功", n + "###" + JSON.stringify(i)]);
            MP.getCookieId("l_yd_sign",
            function(e) {
                if ("null" != e) d._$cookie("l_yd_sign", {
                    value: e,
                    expires: 3650,
                    path: "/"
                });
                d._$cookie("THE_LAST_LOGIN_MOBILE", {
                    value: this.__username,
                    expires: 30,
                    path: "/"
                });
                this._$setDomains({
                    type: "success",
                    username: this.__username || "",
                    nextUrls: t.nextUrls
                })
            }._$bind(this))
        },
        onShowErr: function(t, i, n) {
            var s = t.ret;
            var r = _[s] || a._$getErrorTxt(s);
            if (!e._$is("desktop") && s.indexOf("602") >= 0) r = '帐号长期未使用已冻结，请<a target="_blank" href="https://aq.reg.163.com/ydaq/welcome?module=offAccountAppeal">自助解冻</a>';
            var o = {
                tabIndex: i || -1,
                str: r,
                node: "nerror",
                type: n || ""
            };
            this._$doShowError(o)
        },
        doRefreshCap: function(e) {
            e = e || {};
            this.refreshCaps(null, e.code);
            if (e.hasError) this.doShowError(e.hasError)
        },
        doRefreshCaps: function(e, t) {
            if ("mb-lvfsms-" != e) {
                if (this.data.hasImgCap && "411" != t) this.$refs.captcha._$refreshImg();
                if (this.data.hasSlide) this.$refs.slidecap._$refreshSlide(t)
            }
            this.$update()
        },
        refreshCaps: function(e, t) {
            if ("441" != t) if ("444" != t && "445" != t) this.doRefreshCaps(e, t);
            else {
                if (this.$refs.captcha) this.$refs.captcha.destroy();
                this.$refs.captcha = null;
                delete this.$refs.captcha;
                if (this.data.hasSlide) {
                    this.doRefreshCaps(e, t);
                    return
                }
                if ("444" == t) this.data.slideTarget = 2;
                if ("445" == t) this.data.slideTarget = 3;
                this.data.hasSlide = 1;
                this.data.hasImgCap = 0;
                this.$update()
            } else {
                if (this.$refs.slidecap) this.$refs.slidecap.destroy();
                this.$refs.slidecap = null;
                delete this.$refs.slidecap;
                if (this.data.hasImgCap) {
                    this.doRefreshCaps(e, t);
                    return
                }
                this.data.hasImgCap = 1;
                this.data.hasSlide = 0;
                this.$update()
            }
        },
        loginError: function(e, t) {
            var i = -1,
            n, s;
            var r = t.ret;
            var a = this.__getUserName();
            this.doUnlockLogin();
            if ("mb-login-" === e) {
                _gaq.push(["_trackEvent", "手机帐号登录", "密码登录失败", r + "###" + JSON.stringify(a)]);
                if ("401" == r && (!t.dt || "10" != t.dt)) t.ret = e + r;
                else t.ret = e + r + (t.dt || "")
            } else {
                _gaq.push(["_trackEvent", "手机帐号登录", "短信登录失败", r + "###" + JSON.stringify(a)]);
                if ("401" == r && (!t.dt || "09" != t.dt)) t.ret = e + r;
                else t.ret = e + r + (t.dt || "")
            }
            if ("1" == t.capFlag || "4" == t.capFlag || "5" == t.capFlag) {
                s = "44" + t.capFlag;
                this.refreshCaps(e, s)
            } else this.refreshCaps(e, r);
            if ("07" == t.dt || "602" == r) n = 2;
            if ("422" == r) n = 2;
            this.$update();
            this.onShowErr(t, i, n)
        },
        getGtError: function(e) {
            this.doUnlockLogin();
            var t = e.ret,
            i = "mb-gt-";
            if ("401" == t && (!e.dt || "10" != e.dt)) e.ret = i + t;
            else e.ret = i + t + (e.dt || "");
            this.onShowErr(e)
        },
        doUnlockLogin: function() {
            this.__getTicketLock = 0;
            this.__loginBtn.innerHTML = a._$HtmlEncode(this.__loginBtnTxt)
        },
        doLockLogin: function() {
            this.__getTicketLock = 1;
            this.__loginBtn = this.$refs.loginBtn;
            this.__loginBtnTxt = "string" == typeof this.__loginBtn.textContent ? this.__loginBtn.textContent: this.__loginBtn.innerText;
            this.__loginBtn.innerHTML = a._$HtmlEncode(this.__loginLockTxtMb)
        },
        getTicket: function() {
            if (!this.__getTicketLock) {
                this.doLockLogin();
                var e = {};
                e.un = this.$refs.mninput._$getValue().trim();
                this.__username = e.un;
                e.channel = this.data.channel;
                e.pd = this.data.product;
                e.pkid = this.data.promark;
                c._$request("mb-gt", e, this.getGtSuccess._$bind(this), this.getGtError._$bind(this), 1)
            }
        },
        checkForm: function() {
            var e = 0;
            i._$forIn(this.$refs,
            function(t) {
                if (!t.data || !t.data.ignore) {
                    t.onCheckRegexp && t.onCheckRegexp();
                    if (t.data) {
                        if (t.data.emptyTxt) {
                            e = t._$emptyCheck();
                            if (e) return e
                        }
                        if (t.otherCheck && t.otherCheck()) if (t.data.hasError) {
                            e = 1;
                            return e
                        }
                        if (t.data.hasError) {
                            e = 1;
                            return e
                        }
                    }
                }
            }._$bind(this));
            return e
        },
        doShowInitFail: function(e) {
            var t = "-103";
            a._$showFail(t, e)
        },
        onChangeUnLogin: function() {
            this.data.mobileDefaultUnLogin = !this.data.mobileDefaultUnLogin
        },
        doLogin: function() {
            if (!this.data.mbLoginLock) if (this.data.initSuccess) {
                if (!this.checkForm()) this.getTicket()
            } else this.doShowInitFail("登录");
            else this._$postMessage({
                type: "lockMbLoginState",
                value: this.data.mbLoginLock
            })
        },
        doShowError: function(e) {
            if (!e.node) e.node = "nerror";
            this._$doShowError(e)
        },
        rmError: function(e) {
            if (!e.node) e.node = "nerror";
            this._$removeError(e)
        },
        _$doToggleLoingLockMb: function() {
            this.data.mbLoginLock = window._$mbLoginLock;
            this.$update()
        }
    });
    return p
},
"605054bf841321ed40d652370c40f4e5", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "55ecf251619aa03ad5e02d8743c45f0a", "83c67d5b20eeffc1f687e113ae22189f", "0d434f17f93250948578c8948f9f01bf", "caaecd3c396a93b245bbd554253cba73", "4dadb2ee6ba889b538cf0977b4b3cad0", "80db439a8709cf21b70d2cc4c6f497b8", "f4dec1b84700c9cc21c1a3746102e1f6");
I$("0830f7c7062399cb2d29a6a897f4ff06",
function(e, t, i, n, s, r, a, o, c, _) {
    var d = Regular.extend({
        data: {},
        config: function(e) {
            i._$merge(this.data, e || {});
            if (this.data.needEye) this.data.showBtn = 0;
            else this.data.showBtn = 1;
            this.supr(e)
        },
        init: function(e) {
            if (!this.supporPlaceHolder()) this.data.labelHidden = 0;
            else this.data.labelHidden = 1;
            this.supr(e)
        },
        onLabelFocus: function() {
            try {
                this.$refs.input.focus()
            } catch(e) {}
        },
        onPropertychange: function(e) {
            var t = e && e.event || {};
            if (t.propertyName && "value" == t.propertyName.toLowerCase()) this.onInput()
        },
        onInput: function() {
            if (this.$refs && this.$refs.input) {
                var e = this.$refs.input.value;
                this.data.hasError = 0;
                this.data.active = 1;
                if (e) {
                    this.data.hasValue = 1;
                    this.data.showBtn = 1
                } else this.data.hasValue = 0;
                this.$update()
            }
        },
        onFocus: function() {
            this.data.active = 1;
            this.data.hasError = 0;
            this.data.showBtn = 1;
            if (this.data.pwdValue) this.data.hasValue = 1;
            this.$emit("rmError", {
                tabIndex: this.data.tabIndex,
                target: this.$refs.input
            });
            this.$update()
        },
        onCheckRegexp: function() {
            if (this.$refs && this.$refs.input) {
                if ("phoneipt" == this.$refs.input.id) this.$refs.input.value = n._$emailFilter(this.$refs.input.value);
                var e = this.$refs.input.value;
                if (e) if (this.data.regexp) if (this.data.regexp.test(e)) {
                    this.data.hasError = 0;
                    this.data.active = 0;
                    this.$emit("rmError", {
                        tabIndex: this.data.tabIndex,
                        target: this.$refs.input
                    })
                } else {
                    this.data.hasError = 1;
                    this.$emit("showError", {
                        tabIndex: this.data.tabIndex,
                        str: this.data.errTxt,
                        target: this.$refs.input
                    })
                } else {
                    this.data.hasError = 0;
                    this.data.active = 0
                } else this.data.active = 0;
                this.$update()
            }
        },
        onMouseOver: function() {
            this.data.isCloseOver = 1
        },
        onMouseOut: function() {
            this.data.isCloseOver = 0
        },
        onBlur: function() {
            if (!this.data.isCloseOver) {
                if (this.data.needEye) this.data.showBtn = 0;
                this.onCheckRegexp();
                if (!this.data.hasError && this.chn) this.doChn();
                this.otherCheck && this.otherCheck();
                this.$update()
            }
        },
        onClearInput: function() {
            this.onClearInputPuer();
            try {
                this.$refs.input.focus()
            } catch(e) {}
        },
        onClearInputPuer: function() {
            this.data.pwdValue = "";
            this.$refs.input.value = "";
            this.data.hasValue = 0;
            this.data.active = 0;
            this.data.hasError = 0;
            this.$update()
        },
        supporPlaceHolder: function() {
            var t = e._$KERNEL;
            if ("trident" == t.engine && parseInt(t.release, 10) <= 5) return 0;
            else return 1
        },
        _$getValue: function() {
            return this.$refs.input.value
        },
        _$setValue: function(e) {
            this.$refs.input.value = e;
            if (e) this.data.hasValue = 1
        },
        _$emptyCheck: function() {
            if (!this.$refs.input.value) {
                this.data.hasError = 1;
                this.$emit("showError", {
                    tabIndex: this.data.tabIndex,
                    str: this.data.emptyTxt,
                    target: this.$refs.input
                });
                return 1
            }
            return 0
        },
        _$focusHelper: function() {
            try {
                this.$refs.input.focus()
            } catch(e) {}
        }
    });
    return d
},
"605054bf841321ed40d652370c40f4e5", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "0d434f17f93250948578c8948f9f01bf", "d73a726efb8534e8d72defb6cd280a1c", "55ecf251619aa03ad5e02d8743c45f0a");
I$("aaa561831f2b0f93b2b3f16b921cc469", '<div ref="mbInput" {#if itlOpened}style="z-index:999;"{/if} {#if active && !hasError}class="inputbox active"{#elseif hasError}class="inputbox error-color"{#else}class="inputbox"{/if}>\n    {#if !mbHasItl}\n        <div class="u-logo"><div class="u-logo-img3"></div></div>\n    {/if}\n    {#if mbHasItl}\n        <div ref="itlBox" class="u-input box mbItlBox">\n            <label on-click={this.onLabelFocus($event)} {#if !labelHidden && !hasValue}class="u-label"{#else}class="u-label f-dn"{/if}>{placeholder}</label>\n            <div ref="itlBtn" class={itlClazz} on-click={this.__toggleC($event)} data-code="{firstCountry}"><em></em></div>\n            <input id="phoneipt" on-propertychange={this.onPropertychange($event)} on-input={this.onInput($event)} ref="input" on-focus={this.onFocus($event)} on-blur={this.onBlur($event)} placeholder="{placeholder}" name="email" class="dlemail" type="tel" autocomplete="off" tabindex="1" spellcheck="false">\n            <country ref="country" on-setCode={this.__toggleC($event)}></country>\n        </div>\n    {#else}\n        <div class="u-input box">\n        <label on-click={this.onLabelFocus($event)} {#if !labelHidden && !hasValue}class="u-label"{#else}class="u-label f-dn"{/if}>{placeholder}</label>\n        <input id="phoneipt" on-propertychange={this.onPropertychange($event)} on-input={this.onInput($event)} ref="input" on-focus={this.onFocus($event)} on-blur={this.onBlur($event)} placeholder="{placeholder}" name="email" class="dlemail" type="tel" autocomplete="off" tabindex="1" spellcheck="false">\n    </div>\n    {/if}\n    <div on-mouseover={this.onMouseOver()} on-mouseout={this.onMouseOut()}  on-click={this.onClearInput($event)} class="u-tip" {#if hasValue && showBtn}style="display:block;"{/if}><div class="u-success u-clear"></div></div>\n    {#if mbNeedItl}\n    <div class="mbtoggleitl-box"><a class="mbtoggleitl" on-click={this.onChangeItl($event)} href="javascript:void(0);">{changeItlTxt}</a></div>\n    {/if}\n</div>');
I$("8df50dd69e15cafac181536c096790d7", '<div {#if hidden}class="j-country u-country f-dn"{#else}class="j-country u-country"{/if} on-click="{this.onClick($event)}">\n    <a href="javascript:void(0);" class="flag-CN" data-code="+86-"><em>&nbsp;</em>中国(Chinese) +86</a><a href="javascript:void(0);" class="flag-AL" data-code="+355-"><em>&nbsp;</em>阿尔巴尼亚(Shqip?ria) +355</a><a href="javascript:void(0);" class="flag-DZ" data-code="+213-"><em>&nbsp;</em>阿尔及利亚(??????????) +213</a><a href="javascript:void(0);" class="flag-AF" data-code="+93-"><em>&nbsp;</em>阿富汗(????????????) +93</a><a href="javascript:void(0);" class="flag-AR" data-code="+54-"><em>&nbsp;</em>阿根廷(Argentina) +54</a><a href="javascript:void(0);" class="flag-AE" data-code="+971-"><em>&nbsp;</em>阿拉伯联合大公国(????????? ???????? ??????????) +971</a><a href="javascript:void(0);" class="flag-AW" data-code="+297-"><em>&nbsp;</em>阿鲁巴(Aruba) +297</a><a href="javascript:void(0);" class="flag-OM" data-code="+968-"><em>&nbsp;</em>阿曼(???????) +968</a><a href="javascript:void(0);" class="flag-AZ" data-code="+994-"><em>&nbsp;</em>阿塞拜疆(Az?rbaycan) +994</a><a href="javascript:void(0);" class="flag-EG" data-code="+20-"><em>&nbsp;</em>埃及(??????) +20</a><a href="javascript:void(0);" class="flag-ET" data-code="+251-"><em>&nbsp;</em>埃塞俄比亚(Ityop\'iya) +251</a><a href="javascript:void(0);" class="flag-IE" data-code="+353-"><em>&nbsp;</em>爱尔兰(Ireland) +353</a><a href="javascript:void(0);" class="flag-EE" data-code="+372-"><em>&nbsp;</em>爱沙尼亚(Eesti) +372</a><a href="javascript:void(0);" class="flag-AD" data-code="+376-"><em>&nbsp;</em>安道尔(Andorra) +376</a><a href="javascript:void(0);" class="flag-AO" data-code="+244-"><em>&nbsp;</em>安哥拉(Angola) +244</a><a href="javascript:void(0);" class="flag-AI" data-code="+1264-"><em>&nbsp;</em>安圭拉(Anguilla) +1264</a><a href="javascript:void(0);" class="flag-AG" data-code="+1268-"><em>&nbsp;</em>安提瓜和巴布达(Antigua and Barbuda) +1268</a><a href="javascript:void(0);" class="flag-AT" data-code="+43-"><em>&nbsp;</em>奥地利(?sterreich) +43</a><a href="javascript:void(0);" class="flag-AU" data-code="+61-"><em>&nbsp;</em>澳大利亚(Australia) +61</a><a href="javascript:void(0);" class="flag-MO" data-code="+853-"><em>&nbsp;</em>澳门地区(Macau) +853</a><a href="javascript:void(0);" class="flag-BB" data-code="+1246-"><em>&nbsp;</em>巴巴多斯(Barbados) +1246</a><a href="javascript:void(0);" class="flag-PG" data-code="+675-"><em>&nbsp;</em>巴布亚新几内亚 +675</a><a href="javascript:void(0);" class="flag-BS" data-code="+1242-"><em>&nbsp;</em>巴哈马(Bahamas) +1242</a><a href="javascript:void(0);" class="flag-PK" data-code="+92-"><em>&nbsp;</em>巴基斯坦(??????????) +92</a><a href="javascript:void(0);" class="flag-PY" data-code="+595-"><em>&nbsp;</em>巴拉圭(Paraguay) +595</a><a href="javascript:void(0);" class="flag-PS" data-code="+970-"><em>&nbsp;</em>巴勒斯坦领土(Palestinian Territories) +970</a><a href="javascript:void(0);" class="flag-BH" data-code="+973-"><em>&nbsp;</em>巴林(??????????) +973</a><a href="javascript:void(0);" class="flag-PA" data-code="+507-"><em>&nbsp;</em>巴拿马(Panamá) +507</a><a href="javascript:void(0);" class="flag-BR" data-code="+55-"><em>&nbsp;</em>巴西(Brasil) +55</a><a href="javascript:void(0);" class="flag-BY" data-code="+375-"><em>&nbsp;</em>白俄罗斯(Белару?сь) +375</a><a href="javascript:void(0);" class="flag-BM" data-code="+1441-"><em>&nbsp;</em>百慕大(Bermuda) +1441</a><a href="javascript:void(0);" class="flag-BG" data-code="+359-"><em>&nbsp;</em>保加利亚(България) +359</a><a href="javascript:void(0);" class="flag-BJ" data-code="+229-"><em>&nbsp;</em>贝宁(Bénin) +229</a><a href="javascript:void(0);" class="flag-BE" data-code="+32-"><em>&nbsp;</em>比利时(Belgi?) +32</a><a href="javascript:void(0);" class="flag-IS" data-code="+354-"><em>&nbsp;</em>冰岛(ísland) +354</a><a href="javascript:void(0);" class="flag-PR" data-code="+1787-"><em>&nbsp;</em>波多黎各(Puerto Rico) +1787</a><a href="javascript:void(0);" class="flag-PL" data-code="+48-"><em>&nbsp;</em>波兰 +48</a><a href="javascript:void(0);" class="flag-BA" data-code="+387-"><em>&nbsp;</em>波斯尼亚和黑塞哥维那(Bosna i Hercegovina) +387</a><a href="javascript:void(0);" class="flag-BO" data-code="+591-"><em>&nbsp;</em>玻利维亚(Bolivia) +591</a><a href="javascript:void(0);" class="flag-BZ" data-code="+501-"><em>&nbsp;</em>伯利兹(Belize) +501</a><a href="javascript:void(0);" class="flag-BW" data-code="+267-"><em>&nbsp;</em>博茨瓦纳(Botswana) +267</a><a href="javascript:void(0);" class="flag-BT" data-code="+975-"><em>&nbsp;</em>不丹(??????????) +975</a><a href="javascript:void(0);" class="flag-BF" data-code="+226-"><em>&nbsp;</em>布基纳法索(Burkina Faso) +226</a><a href="javascript:void(0);" class="flag-BI" data-code="+257-"><em>&nbsp;</em>布隆迪(Uburundi) +257</a><a href="javascript:void(0);" class="flag-KP" data-code="+850-"><em>&nbsp;</em>朝鲜 +850</a><a href="javascript:void(0);" class="flag-GQ" data-code="+240-"><em>&nbsp;</em>赤道几内亚(Guinea Ecuatorial) +240</a><a href="javascript:void(0);" class="flag-DK" data-code="+45-"><em>&nbsp;</em>丹麦(Danmark) +45</a><a href="javascript:void(0);" class="flag-DE" data-code="+49-"><em>&nbsp;</em>德国(Deutschland) +49</a><a href="javascript:void(0);" class="flag-TL" data-code="+670-"><em>&nbsp;</em>东帝汶 +670</a><a href="javascript:void(0);" class="flag-TG" data-code="+228-"><em>&nbsp;</em>多哥(Togo) +228</a><a href="javascript:void(0);" class="flag-DM" data-code="+1767-"><em>&nbsp;</em>多米尼加(Dominica) +1767</a><a href="javascript:void(0);" class="flag-DO" data-code="+1809-"><em>&nbsp;</em>多明尼加共和国(Dominican Republic) +1809</a><a href="javascript:void(0);" class="flag-RU" data-code="+7-"><em>&nbsp;</em>俄罗斯(Россия) +7</a><a href="javascript:void(0);" class="flag-EC" data-code="+593-"><em>&nbsp;</em>厄瓜多尔(Ecuador) +593</a><a href="javascript:void(0);" class="flag-ER" data-code="+291-"><em>&nbsp;</em>厄立特里亚(Ertra) +291</a><a href="javascript:void(0);" class="flag-FR" data-code="+33-"><em>&nbsp;</em>法国(France) +33</a><a href="javascript:void(0);" class="flag-FO" data-code="+298-"><em>&nbsp;</em>法罗群岛(Faroe Islands) +298</a><a href="javascript:void(0);" class="flag-PF" data-code="+689-"><em>&nbsp;</em>法属波利尼西亚(French Polynesia) +689</a><a href="javascript:void(0);" class="flag-GF" data-code="+594-"><em>&nbsp;</em>法属圭亚那(French Guiana) +594</a><a href="javascript:void(0);" class="flag-PH" data-code="+63-"><em>&nbsp;</em>菲律宾 +63</a><a href="javascript:void(0);" class="flag-FJ" data-code="+679-"><em>&nbsp;</em>斐济(Fiji) +679</a><a href="javascript:void(0);" class="flag-FI" data-code="+358-"><em>&nbsp;</em>芬兰(Suomi) +358</a><a href="javascript:void(0);" class="flag-CV" data-code="+238-"><em>&nbsp;</em>佛得角(Cabo Verde) +238</a><a href="javascript:void(0);" class="flag-GM" data-code="+220-"><em>&nbsp;</em>冈比亚(Gambia) +220</a><a href="javascript:void(0);" class="flag-CG" data-code="+242-"><em>&nbsp;</em>刚果共和国(Congo [Republic]) +242</a><a href="javascript:void(0);" class="flag-CD" data-code="+243-"><em>&nbsp;</em>刚果民主共和国(Congo [DRC]) +243</a><a href="javascript:void(0);" class="flag-CO" data-code="+57-"><em>&nbsp;</em>哥伦比亚(Colombia) +57</a><a href="javascript:void(0);" class="flag-CR" data-code="+506-"><em>&nbsp;</em>哥斯达黎加(Costa Rica) +506</a><a href="javascript:void(0);" class="flag-GD" data-code="+1473-"><em>&nbsp;</em>格林纳达(Grenada) +1473</a><a href="javascript:void(0);" class="flag-GL" data-code="+299-"><em>&nbsp;</em>格陵兰(Greenland) +299</a><a href="javascript:void(0);" class="flag-GE" data-code="+995-"><em>&nbsp;</em>格鲁吉亚(??????????) +995</a><a href="javascript:void(0);" class="flag-CU" data-code="+53-"><em>&nbsp;</em>古巴(Cuba) +53</a><a href="javascript:void(0);" class="flag-GP" data-code="+590-"><em>&nbsp;</em>瓜德罗普岛(Guadeloupe) +590</a><a href="javascript:void(0);" class="flag-GU" data-code="+1671-"><em>&nbsp;</em>关岛(Guam) +1671</a><a href="javascript:void(0);" class="flag-GY" data-code="+592-"><em>&nbsp;</em>圭亚那(Guyana) +592</a><a href="javascript:void(0);" class="flag-KZ" data-code="+7-"><em>&nbsp;</em>哈萨克斯坦(Россия) +7</a><a href="javascript:void(0);" class="flag-HT" data-code="+509-"><em>&nbsp;</em>海地(Ha?ti) +509</a><a href="javascript:void(0);" class="flag-KR" data-code="+82-"><em>&nbsp;</em>韩国(??) +82</a><a href="javascript:void(0);" class="flag-NL" data-code="+31-"><em>&nbsp;</em>荷兰(Nederland) +31</a><a href="javascript:void(0);" class="flag-AN" data-code="+599-"><em>&nbsp;</em>荷属安的列斯群岛(Netherlands Antilles) +599</a><a href="javascript:void(0);" class="flag-ME" data-code="+382-"><em>&nbsp;</em>黑山(Црна Гора) +382</a><a href="javascript:void(0);" class="flag-HN" data-code="+504-"><em>&nbsp;</em>洪都拉斯(Honduras) +504</a><a href="javascript:void(0);" class="flag-DJ" data-code="+253-"><em>&nbsp;</em>吉布提(Djibouti) +253</a><a href="javascript:void(0);" class="flag-KG" data-code="+996-"><em>&nbsp;</em>吉尔吉斯斯坦(Кыргызстан) +996</a><a href="javascript:void(0);" class="flag-GN" data-code="+224-"><em>&nbsp;</em>几内亚(Guinée) +224</a><a href="javascript:void(0);" class="flag-GW" data-code="+245-"><em>&nbsp;</em>几内亚比绍 +245</a><a href="javascript:void(0);" class="flag-CA" data-code="+1-"><em>&nbsp;</em>加拿大(United States) +1</a><a href="javascript:void(0);" class="flag-GH" data-code="+233-"><em>&nbsp;</em>加纳(Ghana) +233</a><a href="javascript:void(0);" class="flag-GA" data-code="+241-"><em>&nbsp;</em>加蓬(Gabon) +241</a><a href="javascript:void(0);" class="flag-KH" data-code="+855-"><em>&nbsp;</em>柬埔寨(Kampuchea) +855</a><a href="javascript:void(0);" class="flag-CZ" data-code="+420-"><em>&nbsp;</em>捷克共和国(?esko) +420</a><a href="javascript:void(0);" class="flag-ZW" data-code="+263-"><em>&nbsp;</em>津巴布韦(Zimbabwe) +263</a><a href="javascript:void(0);" class="flag-CM" data-code="+237-"><em>&nbsp;</em>喀麦隆(Cameroun) +237</a><a href="javascript:void(0);" class="flag-QA" data-code="+974-"><em>&nbsp;</em>卡塔尔(??????) +974</a><a href="javascript:void(0);" class="flag-KY" data-code="+1345-"><em>&nbsp;</em>开曼群岛(Cayman Islands) +1345</a><a href="javascript:void(0);" class="flag-KM" data-code="+269-"><em>&nbsp;</em>科摩罗(Comoros) +269</a><a href="javascript:void(0);" class="flag-KW" data-code="+965-"><em>&nbsp;</em>科威特(?????????) +965</a><a href="javascript:void(0);" class="flag-HR" data-code="+385-"><em>&nbsp;</em>克罗地亚(Hrvatska) +385</a><a href="javascript:void(0);" class="flag-KE" data-code="+254-"><em>&nbsp;</em>肯尼亚(Kenya) +254</a><a href="javascript:void(0);" class="flag-CK" data-code="+682-"><em>&nbsp;</em>库克群岛 +682</a><a href="javascript:void(0);" class="flag-LV" data-code="+371-"><em>&nbsp;</em>拉脱维亚(Latvija) +371</a><a href="javascript:void(0);" class="flag-LS" data-code="+266-"><em>&nbsp;</em>莱索托(Lesotho) +266</a><a href="javascript:void(0);" class="flag-LA" data-code="+856-"><em>&nbsp;</em>老挝(?????????????) +856</a><a href="javascript:void(0);" class="flag-LB" data-code="+961-"><em>&nbsp;</em>黎巴嫩(????????) +961</a><a href="javascript:void(0);" class="flag-LT" data-code="+370-"><em>&nbsp;</em>立陶宛(Lietuva) +370</a><a href="javascript:void(0);" class="flag-LR" data-code="+231-"><em>&nbsp;</em>利比里亚(Liberia) +231</a><a href="javascript:void(0);" class="flag-LY" data-code="+218-"><em>&nbsp;</em>利比亚(????????) +218</a><a href="javascript:void(0);" class="flag-LI" data-code="+423-"><em>&nbsp;</em>列支敦士登(Liechtenstein) +423</a><a href="javascript:void(0);" class="flag-RE" data-code="+262-"><em>&nbsp;</em>留尼旺岛(Réunion) +262</a><a href="javascript:void(0);" class="flag-LU" data-code="+352-"><em>&nbsp;</em>卢森堡(L?tzebuerg) +352</a><a href="javascript:void(0);" class="flag-RW" data-code="+250-"><em>&nbsp;</em>卢旺达(Rwanda) +250</a><a href="javascript:void(0);" class="flag-RO" data-code="+40-"><em>&nbsp;</em>罗马尼亚(Romania) +40</a><a href="javascript:void(0);" class="flag-MG" data-code="+261-"><em>&nbsp;</em>马达加斯加(Madagasikara) +261</a><a href="javascript:void(0);" class="flag-MV" data-code="+960-"><em>&nbsp;</em>马尔代夫(????????? ?????????????) +960</a><a href="javascript:void(0);" class="flag-MT" data-code="+356-"><em>&nbsp;</em>马耳他(Malta) +356</a><a href="javascript:void(0);" class="flag-MW" data-code="+265-"><em>&nbsp;</em>马拉维(Malawi) +265</a><a href="javascript:void(0);" class="flag-MY" data-code="+60-"><em>&nbsp;</em>马来西亚(Malaysia) +60</a><a href="javascript:void(0);" class="flag-ML" data-code="+223-"><em>&nbsp;</em>马里(Mali) +223</a><a href="javascript:void(0);" class="flag-MK" data-code="+389-"><em>&nbsp;</em>马其顿(Македони?а) +389</a><a href="javascript:void(0);" class="flag-MQ" data-code="+596-"><em>&nbsp;</em>马提尼克(Martinique) +596</a><a href="javascript:void(0);" class="flag-MU" data-code="+230-"><em>&nbsp;</em>毛里求斯(Mauritius) +230</a><a href="javascript:void(0);" class="flag-MR" data-code="+222-"><em>&nbsp;</em>毛里塔尼亚(????????????) +222</a><a href="javascript:void(0);" class="flag-US" data-code="+1-"><em>&nbsp;</em>美国(United States) +1</a><a href="javascript:void(0);" class="flag-MN" data-code="+976-"><em>&nbsp;</em>蒙古(Монгол Улс) +976</a><a href="javascript:void(0);" class="flag-MS" data-code="+1664-"><em>&nbsp;</em>蒙特塞拉特(Montserrat) +1664</a><a href="javascript:void(0);" class="flag-BD" data-code="+880-"><em>&nbsp;</em>孟加拉国(????????) +880</a><a href="javascript:void(0);" class="flag-PE" data-code="+51-"><em>&nbsp;</em>秘鲁(Perú) +51</a><a href="javascript:void(0);" class="flag-MD" data-code="+373-"><em>&nbsp;</em>摩尔多瓦(Moldova) +373</a><a href="javascript:void(0);" class="flag-MA" data-code="+212-"><em>&nbsp;</em>摩洛哥(?????????) +212</a><a href="javascript:void(0);" class="flag-MC" data-code="+377-"><em>&nbsp;</em>摩纳哥(Monaco) +377</a><a href="javascript:void(0);" class="flag-MZ" data-code="+258-"><em>&nbsp;</em>莫桑比克(Mo?ambique) +258</a><a href="javascript:void(0);" class="flag-MX" data-code="+52-"><em>&nbsp;</em>墨西哥(México) +52</a><a href="javascript:void(0);" class="flag-NA" data-code="+264-"><em>&nbsp;</em>纳米比亚(Namibia) +264</a><a href="javascript:void(0);" class="flag-ZA" data-code="+27-"><em>&nbsp;</em>南非(South Africa) +27</a><a href="javascript:void(0);" class="flag-SS" data-code="+211-"><em>&nbsp;</em>南苏丹 +211</a><a href="javascript:void(0);" class="flag-NP" data-code="+977-"><em>&nbsp;</em>尼泊尔(?????) +977</a><a href="javascript:void(0);" class="flag-NI" data-code="+505-"><em>&nbsp;</em>尼加拉瓜(Nicaragua) +505</a><a href="javascript:void(0);" class="flag-NE" data-code="+227-"><em>&nbsp;</em>尼日尔(Niger) +227</a><a href="javascript:void(0);" class="flag-NG" data-code="+234-"><em>&nbsp;</em>尼日利亚(Nigeria) +234</a><a href="javascript:void(0);" class="flag-NO" data-code="+47-"><em>&nbsp;</em>挪威(Norge) +47</a><a href="javascript:void(0);" class="flag-PT" data-code="+351-"><em>&nbsp;</em>葡萄牙(Portugal) +351</a><a href="javascript:void(0);" class="flag-JP" data-code="+81-"><em>&nbsp;</em>日本(にっぽんこく，にほんこく) +81</a><a href="javascript:void(0);" class="flag-SE" data-code="+46-"><em>&nbsp;</em>瑞典(Sverige) +46</a><a href="javascript:void(0);" class="flag-CH" data-code="+41-"><em>&nbsp;</em>瑞士(Schweiz) +41</a><a href="javascript:void(0);" class="flag-SV" data-code="+503-"><em>&nbsp;</em>萨尔瓦多(El Salvador) +503</a><a href="javascript:void(0);" class="flag-WS" data-code="+685-"><em>&nbsp;</em>萨摩亚(Samoa) +685</a><a href="javascript:void(0);" class="flag-RS" data-code="+381-"><em>&nbsp;</em>塞尔维亚(Срби?а) +381</a><a href="javascript:void(0);" class="flag-SL" data-code="+232-"><em>&nbsp;</em>塞拉利昂(Sierra Leone) +232</a><a href="javascript:void(0);" class="flag-SN" data-code="+221-"><em>&nbsp;</em>塞内加尔(Sénégal) +221</a><a href="javascript:void(0);" class="flag-CY" data-code="+357-"><em>&nbsp;</em>塞浦路斯(Κυπρο?) +357</a><a href="javascript:void(0);" class="flag-SC" data-code="+248-"><em>&nbsp;</em>塞舌尔(Seychelles) +248</a><a href="javascript:void(0);" class="flag-SA" data-code="+966-"><em>&nbsp;</em>沙特阿拉伯(???????? ??????? ??????????) +966</a><a href="javascript:void(0);" class="flag-ST" data-code="+239-"><em>&nbsp;</em>圣多美和普林西比 +239</a><a href="javascript:void(0);" class="flag-KN" data-code="+1869-"><em>&nbsp;</em>圣基茨和尼维斯(Saint Kitts and Nevis) +1869</a><a href="javascript:void(0);" class="flag-LC" data-code="+1758-"><em>&nbsp;</em>圣卢西亚(Saint Lucia) +1758</a><a href="javascript:void(0);" class="flag-SM" data-code="+378-"><em>&nbsp;</em>圣马力诺(San Marino) +378</a><a href="javascript:void(0);" class="flag-PM" data-code="+508-"><em>&nbsp;</em>圣皮埃尔和密克隆群岛(Saint Pierre and Miquelon) +508</a><a href="javascript:void(0);" class="flag-VC" data-code="+1784-"><em>&nbsp;</em>圣文森特和格林纳丁斯(Saint Vincent and the Grenadines) +1784</a><a href="javascript:void(0);" class="flag-LK" data-code="+94-"><em>&nbsp;</em>斯里兰卡(Sri Lanka) +94</a><a href="javascript:void(0);" class="flag-SK" data-code="+421-"><em>&nbsp;</em>斯洛伐克(Slovensko) +421</a><a href="javascript:void(0);" class="flag-SI" data-code="+386-"><em>&nbsp;</em>斯洛文尼亚(Slovenija) +386</a><a href="javascript:void(0);" class="flag-SZ" data-code="+268-"><em>&nbsp;</em>斯威士兰(Swaziland) +268</a><a href="javascript:void(0);" class="flag-SD" data-code="+249-"><em>&nbsp;</em>苏丹(??????????) +249</a><a href="javascript:void(0);" class="flag-SR" data-code="+597-"><em>&nbsp;</em>苏里南(Suriname) +597</a><a href="javascript:void(0);" class="flag-SO" data-code="+252-"><em>&nbsp;</em>索马里(Soomaaliya) +252</a><a href="javascript:void(0);" class="flag-TJ" data-code="+992-"><em>&nbsp;</em>塔吉克斯坦(То?икистон) +992</a><a href="javascript:void(0);" class="flag-TW" data-code="+886-"><em>&nbsp;</em>台湾地区(台灣) +886</a><a href="javascript:void(0);" class="flag-TH" data-code="+66-"><em>&nbsp;</em>泰国(??????????????) +66</a><a href="javascript:void(0);" class="flag-TZ" data-code="+255-"><em>&nbsp;</em>坦桑尼亚(Tanzania) +255</a><a href="javascript:void(0);" class="flag-TO" data-code="+676-"><em>&nbsp;</em>汤加(Tonga) +676</a><a href="javascript:void(0);" class="flag-TC" data-code="+1649-"><em>&nbsp;</em>特克斯和凯科斯群岛(Turks and Caicos Islands) +1649</a><a href="javascript:void(0);" class="flag-TT" data-code="+1868-"><em>&nbsp;</em>特里尼达和多巴哥(Trinidad and Tobago) +1868</a><a href="javascript:void(0);" class="flag-TN" data-code="+216-"><em>&nbsp;</em>突尼斯(???????) +216</a><a href="javascript:void(0);" class="flag-TR" data-code="+90-"><em>&nbsp;</em>土耳其(Türkiye) +90</a><a href="javascript:void(0);" class="flag-TM" data-code="+993-"><em>&nbsp;</em>土库曼斯坦(Türkmenistan) +993</a><a href="javascript:void(0);" class="flag-VU" data-code="+678-"><em>&nbsp;</em>瓦努阿图(Vanuatu) +678</a><a href="javascript:void(0);" class="flag-GT" data-code="+502-"><em>&nbsp;</em>危地马拉(Guatemala) +502</a><a href="javascript:void(0);" class="flag-VE" data-code="+58-"><em>&nbsp;</em>委内瑞拉(Venezuela) +58</a><a href="javascript:void(0);" class="flag-BN" data-code="+673-"><em>&nbsp;</em>文莱(Brunei Darussalam) +673</a><a href="javascript:void(0);" class="flag-UG" data-code="+256-"><em>&nbsp;</em>乌干达(Uganda) +256</a><a href="javascript:void(0);" class="flag-UA" data-code="+380-"><em>&nbsp;</em>乌克兰(Укра?на) +380</a><a href="javascript:void(0);" class="flag-UY" data-code="+598-"><em>&nbsp;</em>乌拉圭(Uruguay) +598</a><a href="javascript:void(0);" class="flag-UZ" data-code="+998-"><em>&nbsp;</em>乌兹别克斯坦(O\'zbekiston) +998</a><a href="javascript:void(0);" class="flag-ES" data-code="+34-"><em>&nbsp;</em>西班牙(Espa?a) +34</a><a href="javascript:void(0);" class="flag-GR" data-code="+30-"><em>&nbsp;</em>希腊(Ελλ??) +30</a><a href="javascript:void(0);" class="flag-HK" data-code="+852-"><em>&nbsp;</em>香港地区(Hong Kong) +852</a><a href="javascript:void(0);" class="flag-CI" data-code="+225-"><em>&nbsp;</em>象牙海岸(C?te d\'Ivoire) +225</a><a href="javascript:void(0);" class="flag-SG" data-code="+65-"><em>&nbsp;</em>新加坡(Singapura) +65</a><a href="javascript:void(0);" class="flag-NC" data-code="+687-"><em>&nbsp;</em>新喀里多尼亚(New Caledonia) +687</a><a href="javascript:void(0);" class="flag-NZ" data-code="+64-"><em>&nbsp;</em>新西兰(New Zealand) +64</a><a href="javascript:void(0);" class="flag-HU" data-code="+36-"><em>&nbsp;</em>匈牙利(Magyarország) +36</a><a href="javascript:void(0);" class="flag-SY" data-code="+963-"><em>&nbsp;</em>叙利亚(????????) +963</a><a href="javascript:void(0);" class="flag-JM" data-code="+1876-"><em>&nbsp;</em>牙买加(Jamaica) +1876</a><a href="javascript:void(0);" class="flag-AM" data-code="+374-"><em>&nbsp;</em>亚美尼亚(????????) +374</a><a href="javascript:void(0);" class="flag-YE" data-code="+967-"><em>&nbsp;</em>也门(????????) +967</a><a href="javascript:void(0);" class="flag-IQ" data-code="+964-"><em>&nbsp;</em>伊拉克(?????????) +964</a><a href="javascript:void(0);" class="flag-IR" data-code="+98-"><em>&nbsp;</em>伊朗(????????) +98</a><a href="javascript:void(0);" class="flag-IL" data-code="+972-"><em>&nbsp;</em>以色列(????????) +972</a><a href="javascript:void(0);" class="flag-IT" data-code="+39-"><em>&nbsp;</em>意大利(Italia) +39</a><a href="javascript:void(0);" class="flag-IN" data-code="+91-"><em>&nbsp;</em>印度(India) +91</a><a href="javascript:void(0);" class="flag-ID" data-code="+62-"><em>&nbsp;</em>印尼(Indonesia) +62</a><a href="javascript:void(0);" class="flag-GB" data-code="+44-"><em>&nbsp;</em>英国(United Kingdom) +44</a><a href="javascript:void(0);" class="flag-VG" data-code="+1340-"><em>&nbsp;</em>英属维尔京群岛(U.S. Virgin Islands) +1340</a><a href="javascript:void(0);" class="flag-JO" data-code="+962-"><em>&nbsp;</em>约旦(?????????) +962</a><a href="javascript:void(0);" class="flag-VN" data-code="+84-"><em>&nbsp;</em>越南(Vi?t Nam) +84</a><a href="javascript:void(0);" class="flag-ZM" data-code="+260-"><em>&nbsp;</em>赞比亚(Zambia) +260</a><a href="javascript:void(0);" class="flag-JE" data-code="+44-"><em>&nbsp;</em>泽西岛(United Kingdom) +44</a><a href="javascript:void(0);" class="flag-TD" data-code="+235-"><em>&nbsp;</em>乍得(Tchad) +235</a><a href="javascript:void(0);" class="flag-GI" data-code="+350-"><em>&nbsp;</em>直布罗陀(Gibraltar) +350</a><a href="javascript:void(0);" class="flag-CL" data-code="+56-"><em>&nbsp;</em>智利(Chile) +56</a><a href="javascript:void(0);" class="flag-CF" data-code="+236-"><em>&nbsp;</em>中非共和国(République Centrafricaine) +236</a>\n    </div>');
I$("2a43840b16363f33ff35f85bac1eaffb",
function(e, t, i, n, s, r, a, o, c) {
    var _ = Regular.extend({
        template: s,
        name: "country",
        data: {
            hidden: 1
        },
        config: function(e) {
            t._$merge(this.data, e || {});
            this.supr(e)
        },
        init: function(e) {
            this.supr(e)
        },
        onClick: function(t) {
            e._$stop(t);
            var n = e._$getElement(t),
            s = i._$dataset(n, "code");
            if (s) this.$emit("setCode", {
                code: s,
                className: n.className
            })
        },
        setCountry: function(e) {
            var n = i._$getByClassName(document, "j-country")[0];
            var s = i._$getChildren(n);
            t._$forEach(s,
            function(t) {
                var n = i._$dataset(t, "code");
                if (n == e) {
                    this.$emit("setCode", {
                        code: e,
                        className: t.className
                    });
                    this.data.hidden = 1;
                    this.$update()
                }
            }._$bind(this))
        }
    });
    return _
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "55ecf251619aa03ad5e02d8743c45f0a", "8df50dd69e15cafac181536c096790d7");
I$("81e1ce8efe96c75235628db75e167e9c",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l) {
    var u = s.extend({
        template: r,
        data: {
            needCheck: 1,
            tabIndex: 1,
            changeItlTxt: "切换到国际手机",
            placeholder: "请输入手机号",
            regexp: /^(13|14|15|16|17|18|19)\d{9}$/,
            errTxt: "手机号格式错误",
            emptyTxt: "请输入手机号"
        },
        config: function(t) {
            var n = e._$KERNEL;
            if ("trident" == n.engine && parseInt(n.release, 10) <= 3) this.data.isLowIE = 1;
            i._$merge(this.data, t || {});
            this.supr(t)
        },
        init: function(e) {
            this.data.mbHasItl = 0;
            if ("1" == this.data.fromUnite) {
                this.data.itlClazz = "country flag-CN";
                this.data.firstCountry = "+86-";
                this.data.regexp = /^\d+$/
            } else {
                this.data.itlClazz = "country flag-US";
                this.data.firstCountry = "+1-"
            }
            this.supr(e)
        },
        onChangeItl: function() {
            this.data.hasError = 0;
            this.data.active = 0;
            this.data.hasValue = 0;
            this.$emit("rmError", {
                tabIndex: this.data.tabIndex,
                target: this.$refs.input
            });
            this.data.mbHasItl = !this.data.mbHasItl;
            this.data.regexp = this.data.mbHasItl ? /^\d+$/: /^(13|14|15|16|17|18|19)\d{9}$/;
            this.data.changeItlTxt = this.data.mbHasItl ? "切换到国内手机": "切换到国际手机"
        },
        __toggleC: function(e) {
            var i = e.code;
            var s = e.className;
            t._$stop(i);
            if (this.data.isLowIE) {
                this.$refs.mbInput.style.position = "absolute";
                this.$refs.mbInput.style.zIndex = "999";
                setTimeout(function() {
                    this.$refs.mbInput.style.position = "relative"
                }._$bind(this), 40)
            }
            this.$refs.country.data.hidden = this.$refs.country.data.hidden ? 0 : 1;
            this.data.itlOpened = !this.$refs.country.data.hidden;
            if ("string" == typeof i) {
                this.data.itlClazz = "country " + s;
                n._$dataset(this.$refs.itlBtn, "code", i);
                try {
                    this.$refs.input.focus()
                } catch(r) {}
            }
            this.$refs.country.$update();
            this.$update()
        },
        onFocus: function(e) {
            this.supr(e);
            if (this.$refs && this.$refs.country) {
                this.$refs.country.data.hidden = 1;
                this.data.itlOpened = !this.$refs.country.data.hidden;
                this.$refs.country.$update()
            }
            this.$update()
        },
        chnSuccess: function() {},
        chnError: function(e) {
            var t = e.ret,
            i = "mb-reg-chn-",
            n = -1,
            s;
            if (407 == t) n = 1;
            if ("422" == t) s = 2;
            if ("401" == t && (!e.dt || "13" != e.dt)) t = i + t;
            else t = i + t + (e.dt || "");
            var r = a[t] || c._$getErrorTxt(e.ret);
            this.$emit("showError", {
                tabIndex: n,
                str: r,
                target: this.$refs.input,
                type: s
            })
        },
        doChn: function() {
            var e = {};
            e.id = this.data.chnId || "";
            e.mb = this._$getValue();
            if (e.mb) o._$request("mb-reg-chn", e, this.chnSuccess._$bind(this), this.chnError._$bind(this))
        },
        _$getValue: function() {
            var e, t;
            if (this.data.mbHasItl) {
                e = n._$dataset(this.$refs.itlBtn, "code");
                t = this.$refs.input.value.trim();
                if ("+86-" == e) return c._$emailFilter(t);
                e = e.split("+")[1];
                if (!t) return "";
                else return c._$emailFilter(e + t)
            } else return c._$emailFilter(this.$refs.input.value.trim())
        }
    });
    return u
},
"605054bf841321ed40d652370c40f4e5", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "0830f7c7062399cb2d29a6a897f4ff06", "aaa561831f2b0f93b2b3f16b921cc469", "80db439a8709cf21b70d2cc4c6f497b8", "4dadb2ee6ba889b538cf0977b4b3cad0", "0d434f17f93250948578c8948f9f01bf", "2a43840b16363f33ff35f85bac1eaffb");
I$("8a55a2e46d43c65db1891440ac1835db", '<div {#if active && !hasError}class="inputbox active"{#elseif hasError}class="inputbox error-color"{#else}class="inputbox"{/if}>\n    <div class="u-logo"><div class="u-logo-img2"></div></div>\n    <div class="u-input box">\n        <label on-click={this.onLabelFocus($event)} {#if !labelHidden && !hasValue}class="u-label"{#else}class="u-label f-dn"{/if}>{placeholder}</label>\n        <input type="password" style="display:none;width:0;height:0;">\n        <input on-propertychange={this.onPropertychange($event)} ref="input" on-focus={this.onFocus($event)} on-input={this.onInput($event)} on-blur={this.onBlur($event)} placeholder="{placeholder}" name="email" class="j-inputtext dlemail" type="password" autocomplete="new-password" tabindex="{tabindex}" r-model={pwdValue} spellcheck="false">\n        <input type="text" on-propertychange={this.onPropertychange($event)} on-focus={this.onFocus($event)} on-input={this.onInput($event)} on-blur={this.onBlur($event)} ref="inputtext" class="u-pwdtext" {#if needEye && eyeActive}style="z-index:1;"{#else}style="z-index:-1;"{/if} r-model={pwdValue} spellcheck="false" />\n    </div>\n    {#if needEye}\n        <div on-click={this.onChangePwdType($event)} {#if eyeActive}class="u-tip-eye m-eye u-pwdshow-mb eyeactive"{#else}class="u-tip-eye m-eye u-pwdshow-mb"{/if} ><div class="u-success u-eye u-clear"></div></div>\n        <div on-mouseover={this.onMouseOver()} on-mouseout={this.onMouseOut()}  on-click={this.onClearInput($event)} class="u-tip" {#if hasValue && showBtn}style="display:block;"{#else}style="display:none;"{/if}><div class="u-success u-clear"></div></div>\n    {#else}\n        <div on-mouseover={this.onMouseOver()} on-mouseout={this.onMouseOut()}  on-click={this.onClearInput($event)} class="u-tip" {#if hasValue && showBtn}style="display:block;"{#else}style="display:none;"{/if}><div class="u-success u-clear"></div></div>\n    {/if}\n</div>');
I$("c776399168982332f3dc3521e4501bd8",
function(e, t, i, n, s, r, a, o, c) {
    var _ = n.extend({
        template: s,
        data: {
            tabindex: 2,
            tabIndex: 2,
            placeholder: "请输入密码",
            errTxt: "密码须由6-16个字符组成，区分大小写",
            emptyTxt: "请输入密码",
            eyeActive: 0
        },
        config: function(e) {
            t._$merge(this.data, e || {});
            if (this.data.needCheck) this.otherCheck = this.__doOtherCheck._$bind(this);
            this.supr(e)
        },
        init: function(e) {
            this.supr(e)
        },
        onCheckRegexp: function() {
            this.data.active = 0;
            this.data.hasError = 0
        },
        onChangePwdType: function() {
            this.data.eyeActive = this.data.eyeActive ? 0 : 1;
            try {
                if (this.data.eyeActive) this.$refs.inputtext.focus();
                else this.$refs.input.focus()
            } catch(e) {}
            this.$update()
        },
        __doOtherCheck: function() {
            var e = this.$refs.input.value;
            if (e) {
                this.$emit("pwdOtherCheck", e);
                return 1
            }
        }
    });
    return _
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "0830f7c7062399cb2d29a6a897f4ff06", "8a55a2e46d43c65db1891440ac1835db");
I$("60e78cb8cadea94e785a25c6006ecd04", '<div class="ckbox m-ckcnt f-cb">\n    <div {#if active && !hasError}class="inputbox ckin active"{#elseif hasError}class="inputbox ckin error-color"{#else}class="inputbox ckin"{/if}>\n        <div class="u-input">\n            <label on-click={this.onLabelFocus($event)} {#if !labelHidden && !hasValue}class="u-label"{#else}class="u-label f-dn"{/if}>{placeholder}</label>\n            <input on-propertychange={this.onPropertychange($event)} ref="input" placeholder="{placeholder}" on-focus={this.onFocus($event)} on-input={this.onInput($event)} on-blur={this.onBlur($event)} name="checkcode" class="cktext" type="text" maxlength="4" tabindex="2" autocomplete="off" spellcheck="false" {#if disabled}disabled="disabled"{/if}></div>\n        <div on-mouseover={this.onMouseOver()} on-click={this.onClearInput($event)} class="u-tip" {#if showBtn && hasValue && !vfsuc}style="display:block;"{/if}><div class="u-success u-clear"></div></div>\n        <div class="u-tip" {#if vfsuc}style="display:block;"{/if}><div class="u-success u-suc"></div></div>\n    </div>\n    <div class="inputbox ckimgbox f-fr">\n        <img on-click={this.refreshImg()} ref="captcha" class="ckimg" title="点击刷新验证码" alt="点击获取验证码" /></div>\n</div>');
I$("a52fc2bf539dc8f248ee3ef41455766c",
function(e, t, i, n, s, r, a, o, c, _, d, f) {
    var h = n.extend({
        template: a,
        data: {
            ignore: 1,
            needCheck: 1,
            tabIndex: 2,
            placeholder: "请输入图片验证码",
            regexp: /^[0-9a-zA-Z]{4}$/,
            errTxt: "图片验证码格式错误",
            emptyTxt: "请输入图片验证码"
        },
        config: function(e) {
            t._$merge(this.data, e || {});
            this.__product = e.product;
            this.__pkid = e.promark;
            this.supr(e)
        },
        init: function(e) {
            this.supr(e);
            this.refreshImg()
        },
        vfCapSuccess: function() {
            this.__vfcapLock = 0;
            this.data.vfsuc = 1;
            this.data.disabled = 1;
            this.data.hasValue = 1;
            this.getImglock = 1;
            this.data.active = 0;
            this.$update()
        },
        vfCapError: function(e) {
            var t = "",
            i = "mb-vfcp-";
            if (this.data.isUnite) i = "mb-nvfcp-";
            this.__vfcapLock = 0;
            this.data.active = 1;
            var n = e.ret;
            if ("441" != n && "444" != n && "445" != n) {
                this._$refreshImg();
                if ("401" == n) n = i + e.ret;
                else n = i + e.ret + (e.dt || "");
                t = r[n] || o._$getErrorTxt(e.ret);
                this.$emit("showError", {
                    tabIndex: this.data.tabIndex,
                    str: t,
                    target: this.$refs.input
                });
                this.$update()
            } else {
                t = r[i + n] || o._$getErrorTxt(n);
                this.$emit("refreshCap", {
                    code: n,
                    hasError: {
                        tabIndex: this.data.tabIndex,
                        str: t,
                        target: null
                    }
                })
            }
        },
        _vfcaptcha: function(e) {
            if (!this.__vfcapLock) {
                this.__vfcapLock = 1;
                var t = {};
                t.pd = this.data.product;
                t.pkid = this.data.promark;
                t.cap = e;
                t.channel = this.data.channel;
                t.un = this.$parent.getUn();
                var i = "mb-vfcp";
                if (this.data.isUnite) {
                    t.pkht = this.data.host;
                    t.topURL = this.data.topURL;
                    i = "mb-nvfcp"
                }
                s._$request(i, t, this.vfCapSuccess._$bind(this), this.vfCapError._$bind(this), 1)
            }
        },
        onInput: function(e) {
            this.supr(e);
            var t = this.$refs.input.value.trim();
            if (this.data.needVf && this.data.regexp.test(t)) this._vfcaptcha(t)
        },
        refreshImg: function() {
            if (!this.getImglock) if (this.data.isUnite) this.$refs.captcha.src = MP["mb-ncp"]({
                product: this.__product,
                pkid: this.__pkid,
                pkht: this.data.host,
                channel: this.data.channel,
                topURL: this.data.topURL
            },
            window["$cookieDomain"]);
            else if (this.data.isReg) MP.getId("yd_" + this.data.promark,
            function(e) {
                this.$refs.captcha.src = MP["mb-reg-cp"](e)
            }._$bind(this));
            else this.$refs.captcha.src = MP["mb-cp"](this.__product, this.__pkid, window["$cookieDomain"])
        },
        _$refreshImg: function() {
            this.onClearInput();
            this.__vfcapLock = 0;
            this.getImglock = 0;
            this.data.disabled = 0;
            this.data.vfsuc = 0;
            this.data.hasValue = 0;
            this.$update();
            this.refreshImg()
        }
    });
    return h
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "0830f7c7062399cb2d29a6a897f4ff06", "4dadb2ee6ba889b538cf0977b4b3cad0", "80db439a8709cf21b70d2cc4c6f497b8", "60e78cb8cadea94e785a25c6006ecd04", "0d434f17f93250948578c8948f9f01bf");
I$("616874829ae80baf5686b013636a9fce", '<div ref=slidebox class="ckbox m-ckcnt slidebox f-cb" style="position: relative;">\n    <div ref=ScapTcha class="ScapTcha" id="ScapTcha"></div>\n    <input ref=slidecap name="slidecap" style="height:0;width:0;display:none;" type="text" value="" />\n</div>');
I$("a6d6e6ccf0a43578bdd958ea6017b66b",
function(e, t, i, n, s, r, a, o, c, _, d) {
    var f = n.extend({
        template: r,
        data: {
            ignore: 1,
            needCheck: 1,
            tabIndex: 3,
            errTxt: "请滑动验证码",
            hasError: 1
        },
        config: function(e) {
            t._$merge(this.data, e || {});
            this.__product = e.product;
            this.__pkid = e.promark;
            this.__server = "captcha.reg.163.com/v2";
            this.__productkey = this.data.productkey;
            this.__swidth = this.data.swidth || 320;
            this.__hintTxt = this.data.hintTxt || "按住滑块，拖动完成上方拼图";
            this.__slideOpt = {
                staticServer: this.__server,
                apiServer: this.__server,
                captchaId: this.__productkey,
                width: this.__swidth,
                forceHttps: !0,
                alignToSpace: !0,
                hintTxt: this.__hintTxt,
                verifyCallback: this.__slideVerify._$bind(this),
                initCallback: this.__initCallback._$bind(this),
                initErrorHandler: this.__initErrorHandler._$bind(this)
            };
            this.supr(e)
        },
        __initCallback: function() {
            this._$postMessage({
                type: "mbInitSuccess"
            })
        },
        __initErrorHandler: function() {
            this._$postMessage({
                type: "mbInitSuccess"
            })
        },
        init: function(e) {
            this.supr(e);
            this.data.slideTarget = this.$parent.getSlideTarget();
            this.refreshSlide()
        },
        __verifyOk: function() {
            this.__clearSlideErr();
            this.__setSlideSuc()
        },
        __verifyFail: function(e) {
            var t = e.ret;
            this.__showSlideErr(1, t)
        },
        __doVerify: function() {
            var e = {
                pd: this.__product,
                pkid: this.__pkid,
                capkey: this.__productkey,
                channel: this.data.channel
            };
            var t;
            e.un = this.$parent.getUn();
            e.cap = this.__myCaptcha.getPwd();
            e.ct = this.__myCaptcha.getCt();
            t = 2 == this.data.slideTarget ? "mb-vftcp": "mb-vfccp";
            if (this.data.isUniteLogin) {
                delete e.ct;
                e.pkht = this.data.host;
                e.topURL = this.data.topURL || "";
                t = 2 == this.data.slideTarget ? "mb-nvftcp": "mb-nvfccp"
            }
            this.prefix = t + "-";
            s._$request(t, e, this.__verifyOk._$bind(this), this.__verifyFail._$bind(this), 1)
        },
        __setSlideSuc: function() {
            var e = i._$getByClassName(document, "ncpt_txt_status")[0];
            if (e) {
                e.style.display = "block";
                e.innerHTML = '<div class="u-success u-suc"></div>'
            }
            e.className = "ncpt_txt_status TxtStatus statusTxt"
        },
        __slideVerify: function(e) {
            if (e.value) {
                this.data.hasError = 0;
                this.__clearSlideErr();
                if (this.data.isLogin || this.data.isUniteLogin) this.__doVerify();
                else this.__setSlideSuc()
            } else this.__showSlideErr()
        },
        __showSlideErr: function(e, t) {
            if (e) {
                this.data.hasError = 1;
                this.prefix += t;
                var i = a[this.prefix];
                this.$emit("showError", {
                    tabIndex: this.data.tabIndex,
                    str: i,
                    target: this.$refs && this.$refs.input
                });
                if ("441" == t || "444" == t || "445" == t) this.$emit("refreshCap", {
                    code: t
                });
                else this.refreshSlide()
            } else {
                this.data.hasError = 1;
                this.data.errTxt = 2 == this.data.slideTarget ? "请滑动验证码": "请点击验证码";
                this.$emit("showError", {
                    tabIndex: this.data.tabIndex,
                    str: this.data.errTxt,
                    target: this.$refs.input
                })
            }
        },
        __clearSlideErr: function() {
            this.$emit("rmError", {
                tabIndex: this.data.tabIndex
            })
        },
        refreshSlide: function() {
            this.__slideOpt.captchaType = this.data.slideTarget;
            this.__slideOpt.element = this.$refs.ScapTcha;
            var e = this.data.isUniteLogin || this.data.isLoginModule ? 1 : 0;
            if (e) {
                if (window._$needUrsBgp && window._$BGP) {
                    this.__slideOpt.apiServer = "captcha2.reg.163.com/v2";
                    this.__slideOpt.staticServer = "captcha2.reg.163.com/v2"
                }
            } else if (window._$needUrsBgp && window._$BGPZC) {
                this.__slideOpt.apiServer = "captcha2.reg.163.com/v2";
                this.__slideOpt.staticServer = "captcha2.reg.163.com/v2"
            }
            this.__slideOpt.showDelay = 300;
            var t = i._$getChildren(this.__slideOpt.element);
            if (this.__myCaptcha && t.length && t.length > 0) this.__myCaptcha.refresh(this.__slideOpt);
            else this.__myCaptcha = new window.NECaptcha(this.__slideOpt)
        },
        onCheckRegexp: function() {
            if (this.data.hasError) this.__showSlideErr();
            return this.data.hasError
        },
        _$getPwdValue: function() {
            return this.__myCaptcha.getPwd()
        },
        _$getCapKey: function() {
            return this.__productkey
        },
        _$getCt: function() {
            return this.__myCaptcha.getCt()
        },
        _$refreshSlide: function(e) {
            this.data.hasError = 1;
            if ("444" == e) this.data.slideTarget = 2;
            if ("445" == e) this.data.slideTarget = 3;
            this.refreshSlide()
        }
    });
    return f
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "2ac3f77d0ef746bec9bbcf1bce8e537b", "4dadb2ee6ba889b538cf0977b4b3cad0", "616874829ae80baf5686b013636a9fce", "80db439a8709cf21b70d2cc4c6f497b8");
I$("32009cdc1ab04fe82a4b17f79eb858ce", '<div class="m-container">\n    <div class="u-tab f-cb">\n        <a class="tab1" on-click={this.goSmsLogin()}>{mbSmsLoginTxt}</a>\n    </div>\n    <!--帐号-->\n    <mninput mbNeedItl="{mbNeedItl}" needEye="{needEye}" ref=mninput on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} placeholder="{mobilePlaceholder.mobile}" />\n    <div class="fur-change-email"></div>\n    <!--密码needEye="{needEye}"-->\n    <mpinput needEye="{needEye}" ref=mpinput on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} placeholder="{mobilePlaceholder.pwd1}" />\n    <!-- 验证码 -->\n    {#if hasImgCap}\n    <captcha needEye="{needEye}" ref=captcha on-refreshCap={this.doRefreshCap($event)} on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} product="{product}" promark="{promark}" needVf="1" channel="{channel}" placeholder="{mobilePlaceholder.cap1}" />\n    {/if}\n    <!-- 滑块验证码 -->\n    {#if hasSlide}\n    <slidecap tabIndex=-1 ref=slidecap on-refreshCap={this.doRefreshCap($event)} isLogin=1 on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} server="{server}" productkey="{productkey}" swidth="{swidth}" product="{product}" promark="{promark}" hintTxt="{hintTxt}" channel="{channel}" isLoginModule=1 />\n    {/if}\n    <!-- 错误提示 -->\n    <div class="m-nerror f-dn" id="nerror"></div>\n    <!-- 登录按钮 -->\n    <div class="f-cb loginbox">\n        <a ref=loginBtn id="submitBtn" on-click={this.doLogin()} {#if mbLoginLock}class="u-loginbtn btncolor tabfocus u-loginbtn-gary"{#else}class="u-loginbtn btncolor tabfocus"{/if} tabindex="8">{mbBtnTxt}</a>\n    </div>\n    <!-- 免登复选框 -->\n    <div class="m-unlogin">\n        {#if mobileUnLoginTime}\n            <div on-click={this.onChangeUnLogin()} class="b-unlogn">\n                <span {#if mobileDefaultUnLogin}class="u-checkbox tabfocus u-checkbox-select"{#else}class="u-checkbox tabfocus"{/if}>\n                </span>\n                <label for="un-login">{mobileUnLoginTimeTxt}</label>\n            </div>\n        {/if}\n        <a class="forgetpwdReg" data-outlink="1" href={pwdfind} target="_blank">忘记密码？</a>\n        {#if !single}\n        <a class="u-regbtn bgcolor tabfocus j-redirect" href="javascript:void(0);" data-outlink="2" target="_self" tabindex="11" data-action="changepage" data-mdtype="1">{gotoRegTextMb}</a>\n        {/if}\n    </div>\n    <!-- 第三方登录 -->\n    {#if config && config.length}\n    <div ref=thirdLogin class="m-ologin">\n        <div class="otip f-fl">其他方式登录</div>\n        <div class="olist">\n            {#list config as o}\n                <a data-width="{o.width}" data-height="{o.height}" data-outlink="1" data-link="{o.url}" class="f-cb f-fl third {o.name} j-redirect" href="javascript:void(0);"></a>\n            {/list}\n        </div>\n    </div>\n    {/if}\n</div>\n');
I$("fb7f27727cad3598d635a3e7187a5e0b",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u) {
    var p = s.extend({
        template: d,
        data: {
            module: "login",
            warn: "",
            btnTxt: "登  录",
            unLoginText: "几天免登录",
            gotoRegText: "注册手机帐号",
            channel: 1,
            mbSmsLoginTxt: "使用短信验证登录",
            mobileDefaultUnLogin: 0,
            mobileUnLoginTime: 0,
            mobileUnLoginTimeTxt: "十天内免登录"
        },
        config: function(e) {
            if (e.uniteLogin) this.data.mbSmsLoginTxt = "短信快捷登录";
            t._$merge(this.data, e || {});
            this.supr(e);
            this.__loginLockTxtMb = this.data.lockConfig && this.data.lockConfig.loginLockTxtMb || "正在登录..."
        },
        init: function(t) {
            this.supr(t);
            this.doInit(t);
            if (this.$refs.thirdLogin) {
                e._$clearEvent(this.$refs.thirdLogin);
                e._$addEvent(this.$refs.thirdLogin, "click", this.doClick._$bind(this))
            }
            _gaq.push(["_trackEvent", "手机帐号密码登录模块", "初始化", ""])
        },
        destroy: function() {
            if (this.$refs && this.$refs.captcha) this.$refs.captcha._$setValue("");
            this.supr()
        },
        goSmsLogin: function() {
            var e = 0;
            var t = this.$refs.mninput._$getValue().trim();
            var i = {
                username: t
            };
            this._$postMessage({
                type: "mbChangeModule"
            });
            _gaq.push(["_trackEvent", "手机帐号登录页面", "点击切换登录方式", "切换到用验证码登录###" + JSON.stringify(i)]);
            if (this.data.uniteLogin) e = 2;
            this.$emit("changeModule", e)
        },
        getGtSuccess: function(e) {
            this.ticket = e.tk;
            var t = {};
            if (this.data.mobileDefaultUnLogin) {
                t.l = 1;
                t.d = this.data.mobileUnLoginTime
            }
            t.un = this.$refs.mninput._$getValue().trim();
            t.pw = MP.encrypt2(this.$refs.mpinput._$getValue() || "0");
            t.pd = this.data.product;
            t.pkid = this.data.promark;
            t.tk = this.ticket;
            t.domains = this.data.domains || "";
            _._$request("mb-login", t, this.loginSuccess._$bind(this, 1), this.loginError._$bind(this, "mb-login-"), 1)
        }
    });
    p.component("mninput", r);
    p.component("mpinput", a);
    p.component("captcha", o);
    p.component("slidecap", c);
    return p
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "0d434f17f93250948578c8948f9f01bf", "d73a726efb8534e8d72defb6cd280a1c", "2ac3f77d0ef746bec9bbcf1bce8e537b", "81e1ce8efe96c75235628db75e167e9c", "c776399168982332f3dc3521e4501bd8", "a52fc2bf539dc8f248ee3ef41455766c", "a6d6e6ccf0a43578bdd958ea6017b66b", "4dadb2ee6ba889b538cf0977b4b3cad0", "32009cdc1ab04fe82a4b17f79eb858ce");
I$("4b8a011ef397f944ac6ae4710b7660e0",
function(e, t, i, n, s, r, a, o, c, _, d) {
    var f;
    o._$$CountDown = e._$klass();
    f = o._$$CountDown._$extend(s._$$EventTarget);
    f.__init = function(e) {
        this.__super(e);
        this.__btn = e.btn
    };
    f.__reset = function(e) {
        this.__super(e);
        this.__lock = 0;
        this.__initEvent()
    };
    f.__initEvent = function() {
        this.__doInitDomEvent([[this.__btn, "click", this.__onClick._$bind(this)]])
    };
    f.__setTimeout = function() {
        var e, i;
        var n = function() {
            if (0 != e) {
                e--;
                this.__btn.innerHTML = e + "秒后重发"
            } else {
                this.__btn.innerHTML = "获取验证码";
                t._$delClassName(this.__btn, "disable");
                this.__btn.disabled = !1;
                this.__lock = 0;
                i = clearInterval(i)
            }
        };
        return function() {
            t._$addClassName(this.__btn, "disable");
            this.__btn.disabled = !0;
            e = 30;
            this.__btn.innerHTML = e + "秒后重发";
            i = setInterval(n._$bind(this), 1e3)
        }
    } ();
    f.__onClick = function() {
        try {
            this.__btn.focus()
        } catch(e) {}
        if (!this.__lock) this._$dispatchEvent("onclick")
    };
    f._$getSms = function() {
        this.__lock = 1;
        this.__setTimeout()
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f", "0d434f17f93250948578c8948f9f01bf", "e0bb0da6f7024b41d8cdfca433929fe5");
I$("25133d8df8b8abafd3835677a2e679e5", '<div class="m-pccnt f-cb">\n    <div class="m-pcbox">\n        <div {#if active && !hasError}class="inputbox m-mb m-pc f-fl active"{#elseif hasError}class="inputbox m-mb m-pc f-fl error-color"{#else}class="inputbox m-mb m-pc f-fl"{/if}>\n            <div class="u-input">\n                <label on-click={this.onLabelFocus($event)} {#if !labelHidden && !hasValue}class="u-label"{#else}class="u-label f-dn"{/if}>{placeholder}</label>\n                <input on-propertychange={this.onPropertychange($event)} ref="input" on-focus={this.onFocus($event)} on-input={this.onInput($event)} on-blur={this.onBlur($event)} placeholder="{placeholder}" name="phonecode" class="j-inputtext pcin" type="tel" data-max-length="6" maxlength="6" tabindex="5" spellcheck="false" autocomplete="off"></div>\n            <div on-mouseover={this.onMouseOver()} on-mouseout={this.onMouseOut()} on-click={this.onClearInput($event)} class="u-tip" {#if hasValue && showBtn}style="display:block;"{/if}><div class="u-success u-clear"></div></div>\n        </div>\n\n        <div class="pcbtn f-fl">\n            <a ref=smsBtn href="javascript:void(0);" class="tabfocus getsmscode">获取验证码</a>\n        </div>\n    </div>\n</div>');
I$("4707e346b4989a11d35ab88a4cc8f690",
function(e, t, i, n, s, r, a, o, c, _) {
    var d = n.extend({
        template: r,
        data: {
            needCheck: 1,
            tabIndex: 4,
            placeholder: "请输入短信验证码",
            regexp: /^\d{6}$/,
            errTxt: "短信验证码格式错误",
            emptyTxt: "请输入短信验证码",
            slideKey: "123"
        },
        config: function(e) {
            t._$merge(this.data, e || {});
            this.supr(e)
        },
        init: function(e) {
            this.supr(e);
            if (!this.__countDownBtn) this.__countDownBtn = s._$$CountDown._$allocate({
                btn: this.$refs.smsBtn,
                onclick: this.onSendSms._$bind(this)
            })
        },
        onSendSms: function() {
            this.$emit("sendSms")
        },
        getSms: function() {
            this.__countDownBtn._$getSms()
        }
    });
    return d
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "0830f7c7062399cb2d29a6a897f4ff06", "4b8a011ef397f944ac6ae4710b7660e0", "25133d8df8b8abafd3835677a2e679e5");
I$("99a9d552b1b3896e77e85dfa862d77cf", '<div class="m-container">\n    <div class="u-tab f-cb">\n        <a class="tab0" on-click={this.goPwdLogin()}>{mbPwdLoginTxt}</a>\n    </div>\n    <!--帐号-->\n    <mninput mbNeedItl="{mbNeedItl}" needEye="{needEye}" ref=mninput on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} placeholder="{mobilePlaceholder.mobile2}" />\n    <!-- 验证码 -->\n    {#if hasImgCap}\n    <captcha tabIndex=-1 needEye="{needEye}" ref=captcha on-refreshCap={this.doRefreshCap($event)} on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} product="{product}" pkid="{pkid}" promark="{promark}" placeholder="{mobilePlaceholder.cap2}" />\n    {/if}\n    <!-- 滑块验证码 -->\n    {#if hasSlide}\n    <slidecap tabIndex=-1 ref=slidecap on-refreshCap={this.doRefreshCap($event)} on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} server="{server}" productkey="{productkey}" swidth="{swidth}" product="{product}" promark="{promark}" hintTxt="{hintTxt}" channel="{channel}" isLoginModule=1 />\n    {/if}\n    <!-- 短信 -->\n    <smsinput needEye="{needEye}" ref=smsinput on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} on-sendSms={this.sendSms($event)} product="{product}" pkid="{pkid}" promark="{promark}" placeholder="{mobilePlaceholder.sms2}" />\n    <!-- 错误提示 -->\n    <div class="m-nerror f-dn" id="nerror"></div>\n    <!-- 登录按钮 -->\n    <div class="f-cb loginbox">\n        <a ref=loginBtn id="submitBtn" on-click={this.doLogin()} {#if mbLoginLock}class="u-loginbtn btncolor tabfocus u-loginbtn-gary"{#else}class="u-loginbtn btncolor tabfocus"{/if} tabindex="8">{smsBtnTxt}</a>\n    </div>\n    <!-- 免登复选框 -->\n    <div class="m-unlogin">\n        {#if mobileUnLoginTime}\n            <div  on-click={this.onChangeUnLogin()} class="b-unlogn">\n                <span {#if mobileDefaultUnLogin}class="u-checkbox tabfocus u-checkbox-select"{#else}class="u-checkbox tabfocus"{/if}>\n                </span>\n                <label for="un-login">{mobileUnLoginTimeTxt}</label>\n            </div>\n        {/if}\n        <a class="forgetpwdReg" data-outlink="1" href={hasQuestion} target="_blank">遇到问题？</a>\n        <div class="b-unlogn j-unlogn f-dn">\n            <span class="u-checkbox tabfocus">\n                <input type="checkbox" name="un-login" class="un-login">\n            </span>\n            <label for="un-login">{unLoginText}</label>\n        </div>\n        {#if !single}\n        <a class="u-regbtn bgcolor tabfocus" href="javascript:void(0);" data-outlink="2" target="_self" tabindex="11" data-action="changepage" data-mdtype="1">{gotoRegTextMb}</a>\n        {/if}\n    </div>\n    <!-- 第三方登录 -->\n    {#if config && config.length}\n    <div ref=thirdLogin class="m-ologin">\n        <div class="otip f-fl">其他方式登录</div>\n        <div class="olist">\n            {#list config as o}\n                <a data-width="{o.width}" data-height="{o.height}" data-outlink="1" data-link="{o.url}" class="f-cb f-fl third {o.name} j-redirect" href="javascript:void(0);"></a>\n            {/list}\n        </div>\n    </div>\n    {/if}\n</div>\n');
I$("8612fd84ac4a799a61883cb87f823cdd",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u, p) {
    var m = n.extend({
        template: _,
        data: {
            module: "login",
            warn: "",
            btnTxt: "登  录",
            unLoginText: "几天免登录",
            gotoRegText: "注册手机帐号",
            channel: 2,
            mbPwdLoginTxt: "使用密码验证登录",
            mobileDefaultUnLogin: 0,
            mobileUnLoginTime: 0,
            mobileUnLoginTimeTxt: "十天内免登录"
        },
        config: function(e) {
            t._$merge(this.data, e || {});
            this.supr(e);
            this.__loginLockTxtMb = this.data.lockConfig && this.data.lockConfig.loginLockTxtMb || "正在登录..."
        },
        init: function(t) {
            this.supr(t);
            this.doInit();
            if (this.$refs.thirdLogin) {
                e._$clearEvent(this.$refs.thirdLogin);
                e._$addEvent(this.$refs.thirdLogin, "click", this.doClick._$bind(this))
            }
            _gaq.push(["_trackEvent", "手机帐号验证码登录模块", "初始化", ""])
        },
        iniSuccess: function(e) {
            if (this.$refs) this.supr(e)
        },
        goPwdLogin: function() {
            var e = this.$refs.mninput._$getValue().trim();
            var t = {
                username: e
            };
            this._$postMessage({
                type: "mbChangeModule"
            });
            _gaq.push(["_trackEvent", "手机帐号登录页面", "点击切换登录方式", "切换到用密码登录###" + JSON.stringify(t)]);
            this.$emit("changeModule", 1)
        },
        getGtSuccess: function(e) {
            this.ticket = e.tk;
            var t = {};
            if (this.data.mobileDefaultUnLogin) {
                t.l = 1;
                t.d = this.data.mobileUnLoginTime || 10
            }
            t.un = this.$refs.mninput._$getValue().trim();
            t.pw = this.$refs.smsinput._$getValue().trim();
            t.pd = this.data.product;
            t.pkid = this.data.promark;
            t.tk = this.ticket;
            t.domains = this.data.domains || "";
            c._$request("mb-lvfsms", t, this.loginSuccess._$bind(this, 0), this.loginError._$bind(this, "mb-lvfsms-"), 1)
        },
        getSmsSuccess: function(e) {
            this.__sendSmsLock = 0;
            this.$refs.smsinput.getSms(e)
        },
        getSmsFail: function(e) {
            var t = e.ret,
            i = -1,
            n, s = "mb-sms-lsm-";
            this.__sendSmsLock = 0;
            this.refreshCaps(s, t);
            if (411 == t) {
                var r = e.receiveCode.split(",");
                n = 2;
                d["mb-sms-lsm-411"] = "请您编辑短信<a>" + r[0] + "</a>发送到<a>" + r[1] + "</a> 获取验证码，短信费用由运营商收取";
                this.$refs.smsinput.onClearInputPuer()
            }
            if (420 == t || 422 == t || 602 == t) {
                if (422 == t || 602 == t) n = 2;
                i = 1
            }
            if ("401" == t && (!e.dt || "09" != e.dt)) e.ret = s + t;
            else e.ret = s + t + (e.dt || "");
            this.onShowErr(e, i, n)
        },
        sendSms: function() {
            if (this.data.initSuccess) {
                var e = this.$refs.mninput._$emptyCheck(),
                t = this.$refs.mninput.data.hasError,
                i,
                n;
                this.$refs.smsinput.onClearInputPuer();
                if (!e && !t) {
                    if (this.data.hasImgCap) {
                        i = this.$refs.captcha._$emptyCheck();
                        n = this.$refs.captcha.data.hasError
                    }
                    if (this.data.hasSlide) i = this.$refs.slidecap.onCheckRegexp();
                    if (!i && !n) {
                        var s = {};
                        s.mb = this.$refs.mninput._$getValue().trim();
                        s.pd = this.data.product;
                        s.pkid = this.data.promark;
                        if (this.data.hasImgCap) s.cap = this.$refs.captcha._$getValue().trim();
                        if (this.data.hasSlide) {
                            s.cap = this.$refs.slidecap._$getPwdValue();
                            s.capkey = this.$refs.slidecap._$getCapKey();
                            s.ct = this.$refs.slidecap._$getCt()
                        }
                        if (!this.__sendSmsLock) {
                            this.__sendSmsLock = 1;
                            c._$request("mb-sms-lsm", s, this.getSmsSuccess._$bind(this), this.getSmsFail._$bind(this), 1)
                        }
                    }
                }
            } else this.doShowInitFail("登录")
        }
    });
    m.component("mninput", s);
    m.component("captcha", a);
    m.component("smsinput", r);
    m.component("slidecap", o);
    return m
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "2ac3f77d0ef746bec9bbcf1bce8e537b", "81e1ce8efe96c75235628db75e167e9c", "4707e346b4989a11d35ab88a4cc8f690", "a52fc2bf539dc8f248ee3ef41455766c", "a6d6e6ccf0a43578bdd958ea6017b66b", "4dadb2ee6ba889b538cf0977b4b3cad0", "99a9d552b1b3896e77e85dfa862d77cf", "80db439a8709cf21b70d2cc4c6f497b8", "f4dec1b84700c9cc21c1a3746102e1f6");
I$("dd8e0d5b50944106b06476e733ddbc7d", '<div class="m-container m-uniteLogin">\n    <div class="u-tab f-cb">\n        <a class="tab0" on-click={this.goPwdLogin()}>{mbPwdLoginTxt}</a>\n    </div>\n    <mninput fromUnite="{uniteLogin.isItl}" mbHasItl="{uniteLogin.isItl}" needEye="{needEye}" ref=mninput on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} placeholder="{uniteLogin.placeholders.mob}" />\n    <!--帐号-->\n    <!-- 验证码 -->\n    {#if hasImgCap}\n    <captcha tabIndex=-1 needVf=1 isUnite=1 needEye="{needEye}" ref=captcha on-refreshCap={this.doRefreshCap($event)} on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} product="{product}" pkid="{pkid}" promark="{promark}" topURL="{topURL}" host="{host}" channel="{channel}" placeholder="{uniteLogin.placeholders.cap}" />\n    {/if}\n    <!-- 滑块验证码 -->\n    {#if hasSlide}\n    <slidecap tabIndex=-1 isUniteLogin=1 ref=slidecap on-refreshCap={this.doRefreshCap($event)} on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} server="{server}" productkey="{productkey}" swidth="{swidth}" product="{product}" promark="{promark}" hintTxt="{hintTxt}" topURL="{topURL}" host="{host}" channel="{channel}" />\n    {/if}\n    <!-- 短信 -->\n    <smsinput needEye="{needEye}" ref=smsinput on-showError={this.doShowError($event)} on-rmError={this.rmError($event)} on-sendSms={this.sendSms($event)} product="{product}" pkid="{pkid}" promark="{promark}" placeholder="{uniteLogin.placeholders.sms}" />\n    <!-- 错误提示 -->\n    <div class="m-nerror f-dn" id="nerror"></div>\n    <!-- 登录按钮 -->\n    <div class="f-cb loginbox">\n        <a ref=loginBtn on-click={this.doLogin()} {#if mbLoginLock}class="u-loginbtn btncolor tabfocus u-loginbtn-gary"{#else}class="u-loginbtn btncolor tabfocus"{/if} r-html={uniteLogin.loginTxtNew} tabindex="8"></a>\n    </div>\n    <!-- 条款 -->\n    {#if uniteLogin.needClause == \'1\'}\n    <span on-click={this.doCheckBox()} {#if uniteLogin.clause}class="u-zc-agree u-zc-agree-select"{#else}class="u-zc-agree"{/if}><input type="checkbox" class="zc-un-login" /></span>\n    <div class="fur-item fur-agree" style="padding: 0 0 4px 0;margin-left:24px;">\n        <label><span on-click={this.doCheckBox()}>我同意</span><a href="{uniteLogin.terms0Link}" target="_blank" tabindex="-1" data-outlink="1">{uniteLogin.terms0}</a><span on-click={this.doCheckBox()}> 和 </span><a href="{uniteLogin.terms1Link}" target="_blank" tabindex="-1" data-outlink="1">{uniteLogin.terms1}</a>\n        </label>\n    </div>\n    {/if}\n    <!-- 免登复选框 -->\n    <div class="m-unlogin">\n        {#if uniteLogin.needUnLogin == \'1\'}\n        {#if uniteLogin.unLoginTime}\n            <div on-click={this.onChangeUnLogin()} class="b-unlogn" style="border-right:0;">\n                <span {#if uniteLogin.unLoginDefautl==\'1\'}class="u-checkbox tabfocus u-checkbox-select"{#else}class="u-checkbox tabfocus"{/if}>\n                </span>\n                <label for="un-login">{uniteLogin.unLoginTxt}</label>\n            </div>\n        {/if}\n        {/if}\n        <a class="forgetpwdReg" style="float:right;color:#9eb8d4;" data-outlink="1" href={hasQuestion} target="_blank">遇到问题？</a>\n    </div>\n</div>');
I$("d8dfe6ec402af0f078763ac3230d5084",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u, p, m, g) {
    var b = {
        module: "uniteLogin",
        warn: "同意服务条款才能注册",
        channel: 14,
        mbPwdLoginTxt: "使用密码验证登录",
        uniteLogin: {
            needClause: 1,
            isItl: 0,
            clause: 1,
            needUnLogin: 0,
            unLoginTime: 10,
            unLoginDefautl: 1,
            unLoginTxt: "十天内免登录",
            loginTxt: "快捷登录",
            terms0: "《服务条款》",
            terms0Link: "//reg.163.com/agreement_mobile.shtml",
            terms1: "《网易隐私政策》",
            terms1Link: "//reg.163.com/agreement_mobile_ysbh.shtml",
            placeholders: {
                mob: "请输入手机号",
                cap: "请输入图片验证码",
                sms: "请输入短信验证码"
            }
        }
    };
    var v = s.extend({
        template: d,
        config: function(e) {
            i._$merge(b.uniteLogin, e.uniteLogin);
            i._$merge(this.data, b);
            this.data.uniteLogin.loginTxtNew = l._$HtmlEncode(this.data.uniteLogin.loginTxt);
            if (l._$notURL(this.data.uniteLogin.terms0Link)) this.data.uniteLogin.terms0Link = "";
            if (l._$notURL(this.data.uniteLogin.terms1Link)) this.data.uniteLogin.terms1Link = "";
            this.supr(e);
            this.errorIndex = -1;
            this.errorIndexMap = {}
        },
        init: function(e) {
            this.supr(e);
            this.doInit();
            if (this.$refs.thirdLogin) {
                t._$clearEvent(this.$refs.thirdLogin);
                t._$addEvent(this.$refs.thirdLogin, "click", this.doClick._$bind(this))
            }
            _gaq.push(["_trackEvent", "手机帐号验证码登录模块", "初始化", ""])
        },
        doClick: function(e) {
            var i = t._$getElement(e),
            s = n._$dataset(i, "link");
            if (s) l._$doThirdLogin(e)
        },
        doInit: function() {
            var e = {};
            e.pd = this.data.product;
            e.pkid = this.data.promark;
            e.pkht = this.data.host;
            e.channel = this.data.channel;
            e.topURL = this.data.topURL || "";
            this.data.initSuccess = 0;
            _._$request("mb-nini", e, this.iniSuccess._$bind(this), this.iniError._$bind(this, "mb-nini-"), 1)
        },
        getUn: function() {
            return this.$refs.mninput._$getValue().trim()
        },
        iniSuccess: function(e) {
            this._$doToggleLoingLockMb();
            this.data.initSuccess = 1;
            if (e.dlapp) {
                var t = {
                    tabIndex: -1,
                    str: l._$getDlapp(),
                    node: "nerror",
                    type: 3
                };
                this._$doShowError(t)
            }
            var i = e.capFlag || e.cf;
            if (1 == i) {
                this.data.hasImgCap = 1;
                this.data.hasSlide = 0;
                this._$postMessage({
                    type: "mbInitSuccess"
                })
            } else if (4 == i || 5 == i) {
                this.data.hasSlide = 1;
                this.data.hasImgCap = 0;
                this.data.slideTarget = 4 == i ? 2 : 3
            } else this._$postMessage({
                type: "mbInitSuccess"
            });
            if ("1" != this.data.uniteLogin.isItl && this.data.uniteLogin.preFillUnite) {
                this.$refs.mninput._$setValue(this.data.uniteLogin.preFillUnite);
                this.data.uniteLogin.preFillUnite = ""
            }
            this.$update();
            setTimeout(function() {
                if (this.data.focusHelper) this.$refs.mninput._$focusHelper();
                this._$resize()
            }._$bind(this), 200)
        },
        onChangeUnLogin: function() {
            this.data.uniteLogin.unLoginDefautl = !this.data.uniteLogin.unLoginDefautl
        },
        getSlideTarget: function() {
            return this.data.slideTarget
        },
        iniError: function(e, t) {
            var i = t.ret;
            if (window._$needUrsBgp) if (!this.tmpChannel && ("-2" == i || "-1" == i || "0" == i)) {
                this.tmpChannel = 1;
                window._$BGP = 1;
                setTimeout(this.doInit._$bind(this), 200);
                return
            }
            if ("-401" != i) {
                if ("401" == i) i = e + t.ret;
                else i = e + t.ret + (t.dt || "");
                var n = {
                    tabIndex: -1,
                    str: f[i] || l._$getErrorTxt(t.ret),
                    node: "nerror"
                };
                this._$doShowError(n)
            } else {
                this._$doShowError({
                    tabIndex: -1,
                    str: '无法登录，请<a style="color:#4aafe9;" target="_blank" href="https://www.baidu.com/s?wd=%E6%B5%8F%E8%A7%88%E5%99%A8%E5%BC%80%E5%90%AFcookies">开启浏览器cookies</a>或更换浏览器后刷新重试',
                    node: "nerror"
                });
                window._$needCookieSet = 1
            }
        },
        goPwdLogin: function() {
            this._$postMessage({
                type: "mbChangeModule"
            });
            this.$emit("changeModule", 1)
        },
        getGtSuccess: function(e) {
            this.ticket = e.tk;
            var t = {};
            if ("1" == this.data.uniteLogin.unLoginDefautl && "1" == this.data.uniteLogin.needUnLogin) {
                t.l = 1;
                t.d = this.data.uniteLogin.unLoginTime
            }
            t.un = this.$refs.mninput._$getValue().trim();
            t.sms = this.$refs.smsinput._$getValue().trim();
            t.pd = this.data.product;
            t.pkid = this.data.promark;
            t.pkht = this.data.host;
            t.topURL = this.data.topURL || "";
            t.tk = this.ticket;
            t.domains = this.data.domains || "";
            t.channel = this.data.channel || "";
            _._$request("mb-nlregvfsms", t, this.loginSuccess._$bind(this, 0), this.loginError._$bind(this, "mb-nlregvfsms-"), 1)
        },
        loginSuccess: function(e, t) {
            MP.getCookieId("l_yd_sign",
            function(e) {
                if ("null" != e) h._$cookie("l_yd_sign", {
                    value: e,
                    expires: 3650,
                    path: "/"
                });
                h._$cookie("THE_LAST_LOGIN_MOBILE", {
                    value: this.__username,
                    expires: 30,
                    path: "/"
                });
                this._$setDomains({
                    type: "success",
                    username: this.__username || "",
                    nextUrls: t.nextUrls
                })
            }._$bind(this))
        },
        loginError: function(e, t) {
            var i = -1,
            n;
            var s = t.ret;
            this.doUniteLoginUnLock();
            if ("401" == s && (!t.dt || "10" != t.dt)) t.ret = e + s;
            else t.ret = e + s + (t.dt || "");
            if ("602" == s || "422" == s) n = 2;
            this.$update();
            this.onShowErr(t, i, n)
        },
        getGtError: function(e) {
            this.doUniteLoginUnLock();
            var t = e.ret,
            i = "mb-nlgt-";
            if ("401" == t && (!e.dt || "10" != e.dt)) e.ret = i + t;
            else e.ret = i + t + (e.dt || "");
            this.onShowErr(e)
        },
        doLogin: function() {
            if (!this.data.mbLoginLock) if (this.data.initSuccess) {
                if (!this.checkForm() && this.checkClause()) this.getTicket()
            } else this.doShowInitFail("登录");
            else this._$postMessage({
                type: "lockMbLoginState",
                value: this.data.mbLoginLock
            })
        },
        doShowInitFail: function(e) {
            var t = "-103";
            l._$showFail(t, e)
        },
        checkClause: function() {
            if (this.data.uniteLogin.needClause) if ("1" == this.data.uniteLogin.clause) return 1;
            else {
                this._$doShowError({
                    tabIndex: 5,
                    str: this.data.warn,
                    node: "nerror"
                });
                return 0
            } else return 1
        },
        checkForm: function() {
            var e = 0;
            i._$forIn(this.$refs,
            function(t) {
                if (!t.data || !t.data.ignore) {
                    t.onCheckRegexp && t.onCheckRegexp();
                    if (t.data) {
                        if (t.data.emptyTxt) {
                            e = t._$emptyCheck();
                            if (e) return e
                        }
                        if (t.otherCheck && t.otherCheck()) if (t.data.hasError) {
                            e = 1;
                            return e
                        }
                        if (t.data.hasError) {
                            e = 1;
                            return e
                        }
                    }
                }
            }._$bind(this));
            return e
        },
        doUniteLoginUnLock: function() {
            this.__getTicketLock = 0;
            this.__loginBtn.innerHTML = this.data.uniteLogin.loginTxtNew;
            n._$delClassName(this.__loginBtn, "u-btn-loading")
        },
        doUniteLoginLock: function() {
            this.__getTicketLock = 1;
            this.__loginBtn = this.$refs.loginBtn;
            this.__loginBtn.innerHTML = "";
            n._$addClassName(this.__loginBtn, "u-btn-loading")
        },
        getTicket: function() {
            if (!this.__getTicketLock) {
                this.doUniteLoginLock();
                var e = {};
                e.un = this.$refs.mninput._$getValue().trim();
                this.__username = e.un;
                e.channel = this.data.channel;
                e.pd = this.data.product;
                e.pkid = this.data.promark;
                e.pkht = this.data.host;
                e.topURL = this.data.topURL || "";
                _._$request("mb-nlgt", e, this.getGtSuccess._$bind(this), this.getGtError._$bind(this), 1)
            }
        },
        getSmsSuccess: function(e) {
            this.__sendSmsLock = 0;
            this.$refs.smsinput.getSms(e)
        },
        doShowError: function(e) {
            if (!e.node) e.node = "nerror";
            this._$doShowError(e)
        },
        rmError: function(e) {
            if (!e.node) e.node = "nerror";
            this._$removeError(e)
        },
        doRefreshCaps: function(e, t) {
            if ("mb-lvfsms-" != e) {
                if (this.data.hasImgCap && "411" != t) this.$refs.captcha._$refreshImg();
                if (this.data.hasSlide) this.$refs.slidecap._$refreshSlide(t)
            }
            this.$update()
        },
        refreshCaps: function(e, t) {
            if ("441" != t) if ("444" != t && "445" != t) this.doRefreshCaps(e, t);
            else {
                if (this.$refs.captcha) this.$refs.captcha.destroy();
                this.$refs.captcha = null;
                delete this.$refs.captcha;
                if (this.data.hasSlide) {
                    this.doRefreshCaps(e, t);
                    return
                }
                if ("444" == t) this.data.slideTarget = 2;
                if ("445" == t) this.data.slideTarget = 3;
                this.data.hasSlide = 1;
                this.data.hasImgCap = 0;
                this.$update()
            } else {
                if (this.$refs.slidecap) this.$refs.slidecap.destroy();
                this.$refs.slidecap = null;
                delete this.$refs.slidecap;
                if (this.data.hasImgCap) {
                    this.doRefreshCaps(e, t);
                    return
                }
                this.data.hasImgCap = 1;
                this.data.hasSlide = 0;
                this.$update()
            }
        },
        doRefreshCap: function(e) {
            e = e || {};
            this.refreshCaps(null, e.code);
            if (e.hasError) this.doShowError(e.hasError)
        },
        getSmsFail: function(e) {
            var t = e.ret,
            i = -1,
            n, s = "mb-nlregssms-";
            this.__sendSmsLock = 0;
            this.refreshCaps(s, t);
            if (411 == t) {
                var r = e.receiveCode.split(",");
                n = 2;
                f["mb-nlregssms-411"] = "请您编辑短信<a>" + r[0] + "</a>发送到<a>" + r[1] + "</a> 获取验证码，短信费用由运营商收取";
                this.$refs.smsinput.onClearInputPuer()
            }
            if (420 == t || 422 == t || 602 == t) {
                if (422 == t || 602 == t) n = 2;
                i = 1
            }
            if ("401" == t && (!e.dt || "10" != e.dt)) e.ret = s + t;
            else e.ret = s + t + (e.dt || "");
            this.onShowErr(e, i, n)
        },
        doCheckBox: function() {
            this.data.uniteLogin.clause = !this.data.uniteLogin.clause;
            if (this.data.uniteLogin.clause) this.rmError({
                tabIndex: 5
            })
        },
        onShowErr: function(t, i, n) {
            var s = t.ret;
            var r = f[s] || l._$getErrorTxt(s);
            if (!e._$is("desktop") && s.indexOf("602") >= 0) r = '帐号长期未使用已冻结，请<a target="_blank" href="https://aq.reg.163.com/ydaq/welcome?module=offAccountAppeal">自助解冻</a>';
            if (!e._$is("desktop") && s.indexOf("422") >= 0) r = '该帐号已被锁定，<a target="_blank" href="https://aq.reg.163.com/ydaq/welcome?module=offAccountUnlock" style="color:#4aafe9;text-decoration:underline;">尝试解锁</a>。';
            var a = {
                tabIndex: i || -1,
                str: r,
                node: "nerror",
                type: n || ""
            };
            this._$doShowError(a)
        },
        sendSms: function() {
            if (this.data.initSuccess) {
                var e = this.$refs.mninput._$emptyCheck(),
                t = this.$refs.mninput.data.hasError,
                i,
                n;
                this.$refs.smsinput.onClearInputPuer();
                if (!e && !t) {
                    if (this.data.hasImgCap) {
                        i = this.$refs.captcha._$emptyCheck();
                        n = this.$refs.captcha.data.hasError
                    }
                    if (this.data.hasSlide) i = this.$refs.slidecap.onCheckRegexp();
                    if (!i && !n) {
                        var s = {};
                        s.un = this.$refs.mninput._$getValue().trim();
                        s.pd = this.data.product;
                        s.pkid = this.data.promark;
                        s.pkht = this.data.host;
                        s.topURL = this.data.topURL || "";
                        s.channel = this.data.channel;
                        if (!this.__sendSmsLock) {
                            this.__sendSmsLock = 1;
                            _._$request("mb-nlregssms", s, this.getSmsSuccess._$bind(this), this.getSmsFail._$bind(this), 1)
                        }
                    }
                }
            } else this.doShowInitFail("登录")
        },
        _$doToggleLoingLockMb: function() {
            this.data.mbLoginLock = window._$mbLoginLock;
            this.$update()
        }
    });
    v.component("mninput", r);
    v.component("captcha", o);
    v.component("smsinput", a);
    v.component("slidecap", c);
    return v
},
"605054bf841321ed40d652370c40f4e5", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "caaecd3c396a93b245bbd554253cba73", "81e1ce8efe96c75235628db75e167e9c", "4707e346b4989a11d35ab88a4cc8f690", "a52fc2bf539dc8f248ee3ef41455766c", "a6d6e6ccf0a43578bdd958ea6017b66b", "4dadb2ee6ba889b538cf0977b4b3cad0", "dd8e0d5b50944106b06476e733ddbc7d", "80db439a8709cf21b70d2cc4c6f497b8", "f4dec1b84700c9cc21c1a3746102e1f6", "0d434f17f93250948578c8948f9f01bf");
I$("13cc29cff4b27a337aabd617ae9d48de", '<form id="login-form"></form>');
I$("8fbb863276f6e70b6bebef7ceadbfc67",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l) {
    var u = s.extend({
        template: _,
        data: {},
        config: function(e) {
            t._$merge(this.data, e || {});
            this.supr(e)
        },
        init: function(i) {
            this.supr(i);
            this.__config = {};
            t._$merge(this.__config, i);
            this.__config.config = n._$parseOauth();
            e._$addEvent(document, "keyup", this.doEnter._$bind(this))
        },
        destroy: function() {
            e._$clearEvent(document, "keyup");
            this.supr()
        },
        _$changeModule: function(e) {
            if (this.__ml) this.__ml.destroy();
            if (this.__msl) this.__msl.destroy();
            if (this.__uml) this.__uml.destroy();
            this.__config2 = {};
            t._$merge(this.__config2, this.__config);
            this.__config2.hasImgCap = 0;
            this.__config2.hasSlide = 0;
            if ("2" == e) {
                this.__config2.channel = 14;
                this.__uml = new c({
                    data: this.__config2
                }).$inject("#login-form");
                this.__uml.$on("changeModule", this._$changeModule._$bind(this))
            } else if ("1" == e) {
                this.__config2.channel = 1;
                this.__ml = new a({
                    data: this.__config2
                }).$inject("#login-form");
                this.__ml.$on("changeModule", this._$changeModule._$bind(this))
            } else {
                this.__config2.channel = 2;
                this.__msl = new o({
                    data: this.__config2
                }).$inject("#login-form");
                this.__msl.$on("changeModule", this._$changeModule._$bind(this))
            }
        },
        _$doToggleLoingLockMb: function(e) {
            window._$mbLoginLock = e;
            if (this.__ml) this.__ml._$doToggleLoingLockMb();
            if (this.__msl) this.__msl._$doToggleLoingLockMb();
            if (this.__uml) this.__uml._$doToggleLoingLockMb()
        }
    });
    return u
},
"a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "d73a726efb8534e8d72defb6cd280a1c", "0d434f17f93250948578c8948f9f01bf", "2ac3f77d0ef746bec9bbcf1bce8e537b", "4dadb2ee6ba889b538cf0977b4b3cad0", "fb7f27727cad3598d635a3e7187a5e0b", "8612fd84ac4a799a61883cb87f823cdd", "d8dfe6ec402af0f078763ac3230d5084", "13cc29cff4b27a337aabd617ae9d48de");
I$("a99696d07d5ab1aa5d16c147f1e71971",
function(e, t, i, n, s, r, a, o, c, _, d) {
    var f;
    o._$$Collect = e._$klass();
    f = o._$$Collect._$extend(s._$$EventTarget);
    f.__init = function(e) {
        this.__super(e)
    };
    f.__reset = function(e) {
        this.__super(e);
        this.__el = e.holder;
        this.__threMouse = e.threMouse || 32;
        this.__threKey = e.threKey || 32;
        this.__initEvent();
        this.__timeBase = new Date;
        this._events = {
            scrSx: 0,
            scrSy: 0,
            winLF: 0,
            winSx: 0,
            winSy: 0,
            winPx: 0,
            winPy: 0,
            ursSx: 0,
            ursSy: 0,
            ursPx: 0,
            ursPy: 0,
            pw1Sx: 0,
            pw1Sy: 0,
            pw1Px: 0,
            pw1Py: 0,
            check: 0,
            mouseN: 0,
            mouseL: [],
            mouseT: 0,
            keyN: 0,
            keyL: [],
            keyT: 0
        }
    };
    f.__initEvent = function() {
        var e = [[this.__el, "mousedown", this.__onMouseDown._$bind(this)], [this.__el, "keydown", this.__onKeyDown._$bind(this)]];
        this.__doInitDomEvent(e)
    };
    f.__onMouseDown = function(e) {
        var t = new Date;
        if (this._events.mouseL.length > this.__threMouse) {
            this._events.mouseL = [];
            this._events.mouseT++
        }
        this._events.mouseL.push([e.which, t - this.__timeBase]);
        this._events.mouseN++
    };
    f.__onKeyDown = function(e) {
        var t = new Date;
        var i = "T";
        if (this._events.keyL.length > this.__threKey) {
            this._events.keyL = [];
            this._events.keyT++
        }
        var n = e.keyCode;
        if (n >= 48 && n <= 57 || n >= 96 && n <= 105) i = "D";
        else if (n >= 65 && n <= 90) i = "S";
        this._events.keyL.push([i, t - this.__timeBase]);
        this._events.keyN++
    };
    f._$check = function() {
        this._events.check++
    };
    f._$getEvents = function() {
        return this._events
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f", "0d434f17f93250948578c8948f9f01bf", "e0bb0da6f7024b41d8cdfca433929fe5");
I$("0daa8e33bb0f0c21f86585042f3c5a03",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u, p, m, g, b) {
    var v, $, y = {
        phone: 0,
        phonecode: 0
    };
    p._$$BindMobile = e._$klass();
    v = p._$$BindMobile._$extend(a._$$Abstract);
    v.__init = function(e) {
        this.__opts = e.opts || {};
        this.__mobile = e.mobile || "";
        this.__pbHasReged = e.mbreged || 0;
        this.__ipts = [];
        this.__super();
        this.__disabled = !0;
        this._mob_can_pass = !1;
        this.__cgp = "切换到国际手机";
        this.__country = new u({
            data: {}
        });
        this.__country.$on("setCode", this.__toggleC._$bind(this));
        this.__country.$inject(this.__itlCountry)
    };
    v.__reset = function(e) {
        this.__super(e);
        this.__hasShow = 1;
        this.__mobile = e.mobile || "";
        if (this.__mobile) {
            t._$addClassName(this.__regPhoneBox, "f-dn");
            t._$delClassName(this.__inputbox3, "f-dn");
            if (!/^\d+$/.test(this.__mobile)) this.__mobile = "";
            this.__inputbox3mobile.innerHTML = this.__mobile
        } else {
            t._$addClassName(this.__inputbox3, "f-dn");
            t._$delClassName(this.__regPhoneBox, "f-dn")
        }
        this.__promark = e.promark || "";
        this.__product = e.product || "";
        this.__captcha = e.captcha || "";
        this.__un = e.un || "";
        this.__un = this.__un.trim();
        this.__pbHasReged = e.mbreged || 0;
        this.__initForm();
        this.__initEvent();
        this.__states = {};
        this.__error.style.display = "none";
        this.__error2.style.display = "none";
        if (!this.__countDownBtn) this.__countDownBtn = h._$$CountDown._$allocate({
            btn: this.__getSmsCode,
            onclick: this.__onSendSms._$bind(this)
        });
        try {
            if (this.__mobile) {
                this.__inputs[1].focus();
                _gaq.push(["_trackEvent", "注册步骤", "【4】手机号输入", "【手机邮】" + this.__mobile.substring(0, 3)])
            } else this.__inputs[0].focus()
        } catch(i) {}
        this._$clearState();
        this._$dispatchEvent("onhidefooter")
    };
    v.__toggleC = function(e) {
        var n = e.code;
        var s = e.className;
        i._$stop(e);
        this.__country.data.hidden = this.__country.data.hidden ? 0 : 1;
        if ("string" == typeof n) {
            this.__itlBtn.className = "country " + s;
            t._$dataset(this.__itlBtn, "code", n);
            try {
                this.__itlMobileInput.focus()
            } catch(r) {}
        }
        this.__country.$update()
    };
    v.__hideC = function() {
        if (this.__country) {
            this.__country.data.hidden = 1;
            this.__country.$update()
        }
    };
    v.__toggleCgp = function() {
        if ("切换到国际手机" == this.__cgp) {
            this.__cgp = "切换到国内手机";
            this.__isItlPhone = 1;
            t._$addClassName(this.__phoneBox, "f-dn");
            t._$delClassName(this.__itlCountry, "f-dn");
            setTimeout(function() {
                this.__ipts[0]._$onClear();
                this.__ipts[2]._$onClear();
                c._$removeError(this.__inputs[0], "nerror");
                c._$removeError(this.__inputs[2], "nerror");
                this.__ipts[1]._$onClear(2)
            }._$bind(this), 150)
        } else {
            this.__cgp = "切换到国际手机";
            this.__isItlPhone = 0;
            t._$delClassName(this.__phoneBox, "f-dn");
            t._$addClassName(this.__itlCountry, "f-dn");
            setTimeout(function() {
                this.__ipts[1]._$onClear();
                this.__ipts[2]._$onClear();
                c._$removeError(this.__inputs[1], "nerror");
                c._$removeError(this.__inputs[2], "nerror");
                this.__ipts[0]._$onClear(2)
            }._$bind(this), 150)
        }
        this.__cgpBtn.innerHTML = this.__cgp;
        t._$addClassName(this.__doreg, "btndisabled")
    };
    v.__destroy = function() {
        this.__hasShow = 0;
        this.__super()
    };
    v.__initNode = function() {
        this.__super();
        this.__inputBoxs = t._$getByClassName(this.__body, "inputbox");
        this.__inputbox3 = t._$getByClassName(this.__body, "inputbox3")[0];
        this.__inputbox3mobile = t._$getByClassName(this.__body, "inputbox3mobile")[0];
        this.__regPhoneBox = t._$getByClassName(this.__body, "reg-phone-nomobile-box")[0];
        this.__phoneBox = this.__inputBoxs[0];
        this.__itlCountry = this.__inputBoxs[1];
        this.__getSmsCode = t._$getByClassName(this.__body, "tabfocus")[0];
        this.__error = t._$getByClassName(this.__body, "fur-smserror")[0];
        this.__errorInner = t._$getByClassName(this.__body, "ettext")[0];
        this.__error2 = t._$getByClassName(this.__body, "fur-smserror2")[0];
        this.__error2Inner = t._$getByClassName(this.__body, "smserror2")[0];
        this.__itlMobileInput = t._$getByClassName(this.__body, "j-itlphone")[0];
        this.__itlBtn = t._$getByClassName(this.__body, "j-itlBtn")[0];
        this.__cgpBtn = t._$getByClassName(this.__body, "j-cgp")[0]
    };
    v.__initXGui = function() {
        var e = this.__mobile;
        if (this.__mobile) e = this.__mobile.substring(0, 3) + "****" + this.__mobile.substring(7);
        $ = s._$addNodeTemplate(r._$get("register-phone-tmp", {
            mobile: e
        }));
        this.__seed_html = $
    };
    v.__initEvent = function() {
        this.__inputs = t._$getByClassName(this.__body, "j-inputtext");
        this.__doreg = t._$getByClassName(this.__body, "u-loginbtn")[0];
        this.__phone = this.__inputs[0];
        this.__itlPhone = this.__inputs[1];
        this.__phonecode = this.__inputs[2];
        if (0 === this.__ipts.length) n._$forEach(this.__inputs,
        function(e) {
            var t = {
                opts: this.__opts,
                node: e,
                form: this.__form,
                needClose: 1,
                onfocus: this.__onFocus._$bind(this),
                onInput: this.__onInput._$bind(this)
            };
            this.__ipts.push(d._$$Input._$allocate(t))
        }._$bind(this));
        this.__doInitDomEvent([[this.__doreg, "click", this.__doReg._$bind(this)], [this.__itlBtn, "click", this.__toggleC._$bind(this)], [this.__cgpBtn, "click", this.__toggleCgp._$bind(this)], [this.__body, "click", this.__hideC._$bind(this)]]);
        this.__doInitDomEvent([[document, "keyup", this.__doEnter._$bind(this)]])
    };
    v.__onFocus = function(e) {
        if (e == this.__itlPhone) {
            this.__country.data.hidden = 1;
            this.__country.$update()
        }
        c._$removeError(e, "nerror")
    };
    v.__doEnter = function(e) {
        if (13 == e.keyCode && this.__hasShow) this.__doReg()
    };
    v.__doReg = function() {
        var e, t, i, n, s;
        if (this.__mobile) {
            n = this.__form._$checkValidity(this.__phonecode);
            t = this.__phonecode.value.trim();
            if ("" == t) c._$showError(this.__phonecode, "请输入验证码", "nerror");
            if (n) {
                e = this.__mobile;
                _gaq.push(["_trackEvent", "注册步骤", "【6】短信验证码验证", "短信验证码输入成功"]);
                this._$dispatchEvent("onfastReg", e, t)
            }
        } else {
            t = this.__phonecode.value.trim();
            if (this.__isItlPhone) {
                e = this.__getItlPhone();
                s = this.__itlPhone.value.trim();
                if (!s) {
                    c._$showError(this.__itlPhone, "请输入手机号", "nerror");
                    return
                }
                if (!this._mob_can_pass) {
                    c._$showError(null, "请先获取验证码", "nerror");
                    return
                }
                if ("" == t) c._$showError(this.__phonecode, "请输入验证码", "nerror");
                n = this.__form._$checkValidity(this.__phonecode);
                if (n) this._$dispatchEvent("onfastReg", e, t)
            } else {
                i = this.__form._$checkValidity(this.__phone);
                if (!i) {
                    if ("" == this.__phone.value.trim()) c._$showError(this.__phone, "请输入手机号", "nerror");
                    return
                }
                if (!this._mob_can_pass) {
                    c._$showError(null, "请先获取验证码", "nerror");
                    return
                }
                if ("" == t) c._$showError(this.__phonecode, "请输入验证码", "nerror");
                n = this.__form._$checkValidity(this.__phonecode);
                if (i && n) {
                    e = this.__phone.value.trim();
                    _gaq.push(["_trackEvent", "注册步骤", "【4】手机号输入", "【绑定手机输入】" + e]);
                    _gaq.push(["_trackEvent", "注册步骤", "【6】短信验证码验证", "短信验证码输入成功"]);
                    this._$dispatchEvent("onfastReg", e, t)
                }
            }
        }
    };
    v.__initForm = function() {
        if (!this.__form) this.__form = o._$$WebForm._$allocate({
            form: "reg-phone-form",
            oninvalid: function(e) {
                var t = "请输入",
                n = e.code,
                s = i._$getElement(e),
                r = s.name;
                if (n != -1) {
                    if (n == -4 || n == -2 || n == -3) {
                        t = "格式错误";
                        if ("phone" == r) t = "手机号" + t;
                        if ("phonecode" == r) t = "验证码" + t
                    }
                    this.__states[r] = 1;
                    if ("phone" == r) y["phone"] = 1;
                    else if ("phonecode" == r) {
                        if (1 == y["phone"] && !this.__isItlPhone) {
                            c._$showError2(s, t, "nerror", 1);
                            return
                        }
                        y["phonecode"] = 1
                    }
                    c._$showError(s, t, "nerror");
                    e.stopped = !0
                } else {
                    t = "格式错误";
                    if ("phone" == r) y["phone"] = 0;
                    if ("phonecode" == r) y["phonecode"] = 0
                }
            }._$bind(this),
            onvalid: function(e) {
                var t = i._$getElement(e),
                n = t.name;
                this.__states[n] = 0;
                if ("phone" == n && 1 == y["phone"]) {
                    c._$removeError(t, "nerror");
                    y["phone"] = 0
                } else if ("phonecode" == n && 1 == y["phonecode"]) {
                    c._$removeError(t, "nerror");
                    y["phonecode"] = 0
                }
                e.stopped = !0
            }._$bind(this)
        })
    };
    v.__onInput = function(e) {
        var t = e.name,
        i;
        if (this.__mobile) {
            if ("phonecode" == t) {
                var n = this.__phonecode.value.trim();
                if (6 == n.length) {
                    i = this.__form._$checkValidity(this.__phonecode);
                    if (i) this.__disabled = !1;
                    else this.__disabled = !0
                } else this.__disabled = !0
            }
        } else {
            var s = this.__phone.value.trim();
            var r = this.__phonecode.value.trim();
            var a = this.__itlPhone.value.trim();
            if (6 == r.length && 11 == s.length) {
                var o = this.__form._$checkValidity(this.__phone);
                if (!o) return;
                i = this.__form._$checkValidity(this.__phonecode);
                if (o && i) this.__disabled = !1;
                else this.__disabled = !0
            } else if (6 == r.length && a) {
                i = this.__form._$checkValidity(this.__phonecode);
                if (i) this.__disabled = !1;
                else this.__disabled = !0
            } else this.__disabled = !0
        }
        this.__checkDisable()
    };
    v.__checkDisable = function() {
        var e = t._$getByClassName(this.__body, "u-loginbtn")[0];
        if (this.__disabled) t._$addClassName(e, "btndisabled");
        else t._$delClassName(e, "btndisabled")
    };
    v.__onSendSms = function() {
        return function() {
            var e;
            if (!this.__mobile) {
                if (!this.__isItlPhone) {
                    var t = this.__form._$checkValidity(this.__phone);
                    if (!t) {
                        e = "" == this.__phone.value.trim() ? "请输入手机号": "手机号格式错误";
                        c._$showError(this.__phone, e, "nerror");
                        return
                    }
                } else if ("" == this.__itlPhone.value.trim()) {
                    e = "请输入手机号";
                    c._$showError(this.__itlPhone, e, "nerror");
                    return
                }
                this.__doSendSms()
            } else this.__doSendSms2()
        }
    } ();
    v.__getItlPhone = function() {
        var e = t._$dataset(this.__itlBtn, "code");
        var i = this.__inputs[1].value.trim();
        if ("+86-" == e) return c._$emailFilter(i);
        e = e.split("+")[1];
        return c._$emailFilter(e + i)
    };
    v.__doSendSms = function() {
        if (!this.__sendSmsLock) {
            var e = this.__getItlPhone();
            var t = this.__isItlPhone ? e: this.__phone.value.trim();
            var i = {
                id: MP.promarkIdData[this.__promark],
                mb: this.__mobile || t,
                tk: MP.TICKET,
                channel: 2,
                un: this.__un
            };
            this.__sendSmsLock = 1;
            _._$request("getMailSms", i, this.__getSms._$bind(this), this.__getSmsException._$bind(this))
        }
    };
    v.__doSendSms2 = function() {
        if (!this.__sendSms2Lock) {
            var e = {
                id: MP.promarkIdData[this.__promark],
                mb: this.__mobile || this.__phone.value.trim(),
                isreactive: this.__pbHasReged || 0,
                channel: 2,
                un: this.__un
            };
            this.__sendSms2Lock = 1;
            _._$request("getMobileSms", e, this.__getSms._$bind(this), this.__getSmsException._$bind(this))
        }
    };
    v.__getSms = function() {
        if (this.__phonecode) c._$removeError(this.__phonecode, "nerror");
        this.__sendSms2Lock = 0;
        this.__sendSmsLock = 0;
        this._mob_can_pass = !0;
        this.__countDownBtn._$getSms();
        _gaq.push(["_trackEvent", "注册步骤", "【5】手机验证码获取", "短信验证码获取成功"])
    };
    v.__getSmsException = function(e) {
        this.__sendSms2Lock = 0;
        this.__sendSmsLock = 0;
        this._mob_can_pass = !0;
        var t, i, n, s = e.ret,
        r = e.dt,
        a;
        if ("416" != s) if ("412" != s && "413" != s && "415" != s) if ("107" != s && "108" != s && "109" != s && "110" != s) if ("500" != s) {
            i = "EXCEPTION_GET_SMS_" + s;
            if ("411" == s) {
                n = e.receiveCode.split(",");
                t = '请您编辑短信"<strong class="msg">' + n[0] + '</strong>",发送到<strong class="phone">' + n[1] + "</strong> 获取验证码，短信费用由运营商收取";
                c._$showError(null, t, "nerror", 2)
            } else {
                if ("02" == r && "401" == s) i = "40102";
                t = f[i] || f[s] || c._$getErrorTxt(e.ret);
                if ("401" == s && r && "13" == r) t = "请输入正确的手机号";
                c._$showError(null, t, "nerror")
            }
        } else this._$dispatchEvent("onfail", 1);
        else {
            i = "EXCEPTION_GET_SMS_" + s;
            t = f[i] || f[s] || c._$getErrorTxt(e.ret);
            a = 1;
            if ("108" == s) a = 1;
            if ("109" == s) a = 4;
            if ("110" == s) a = 5;
            this._$dispatchEvent("onback", {
                cf: a,
                errorTxt: t,
                noRefresh: 1
            })
        } else {
            i = "EXCEPTION_GET_SMS_" + s;
            t = f[i] || f[s] || c._$getErrorTxt(e.ret);
            c._$showError(null, t, "nerror")
        } else {
            i = "EXCEPTION_GET_SMS_" + s;
            t = f[i] || f[s] || c._$getErrorTxt(e.ret);
            this._$dispatchEvent("onback", {
                cf: e.cf,
                errorTxt: t,
                noRefresh: 1
            })
        }
    };
    v._$clearState = function(e) {
        this.__ipts[1]._$onClear();
        this.__ipts[0]._$onClear(1);
        c._$removeError(this.__inputs[0], "nerror");
        c._$removeError(this.__inputs[2], "nerror");
        if (this.__ipts[2]) this.__ipts[2]._$onClear();
        this.__error.style.display = "none";
        this.__error2.style.display = "none";
        if (e) this.__un = e
    };
    v._$fastRegException = function(e) {
        var t = e.ret,
        i, n = "EXCEPTION_REG_MOB_" + t;
        var s = e.dt;
        if ("02" == s && "401" == t) n = "40102";
        i = f[n] || f[t] || c._$getErrorTxt(e.ret);
        if ("108" == t) c._$showError({
            name: "checkcode"
        },
        i, "nerror");
        else if ("109" == t || "110" == t) c._$showError({
            name: "slide"
        },
        i, "nerror");
        else c._$showError(null, i, "nerror")
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b07a20e1d9be763162954dd0fcf2feb3", "83c67d5b20eeffc1f687e113ae22189f", "df9d93a61ae210b34038e92b4416342a", "263ef74b9fd197724ac7ba6e1cbc38f5", "0d434f17f93250948578c8948f9f01bf", "4dadb2ee6ba889b538cf0977b4b3cad0", "42cfcb0d5ca074b03c888828877bcfd5", "2340de615bb0be83782615b5be9a7ef8", "4b8a011ef397f944ac6ae4710b7660e0", "a99696d07d5ab1aa5d16c147f1e71971", "2a43840b16363f33ff35f85bac1eaffb");
I$("f635d10c8380eb5c0f2520c4a555bf57",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u, p, m, g, b, v) {
    var $, y;
    m._$$VerifyMobile = e._$klass();
    $ = m._$$VerifyMobile._$extend(p._$$BindMobile);
    $.__initXGui = function() {
        var e = this.__mobile;
        if (this.__mobile) e = this.__mobile.substring(0, 3) + "****" + this.__mobile.substring(7);
        y = s._$addNodeTemplate(r._$get("verify-phone-tmp", {
            mobile: e,
            notify: "请输入手机号和短信验证码"
        }));
        this.__seed_html = y
    };
    $.__doReg = function() {
        var e, t, i, n, s;
        if (this.__mobile) {
            n = this.__form._$checkValidity(this.__phonecode);
            t = this.__phonecode.value.trim();
            if ("" == t) c._$showError(this.__phonecode, "请输入验证码", "nerror");
            if (n) {
                e = this.__mobile;
                this._$dispatchEvent("onVerifyOk", e, t)
            }
        } else {
            t = this.__phonecode.value.trim();
            if (this.__isItlPhone) {
                e = this.__getItlPhone();
                s = this.__itlPhone.value.trim();
                if (!s) {
                    c._$showError(this.__itlPhone, "请输入手机号", "nerror");
                    return
                }
                if (!this._mob_can_pass) {
                    c._$showError(null, "请先获取验证码", "nerror");
                    return
                }
                if ("" == t) c._$showError(this.__phonecode, "请输入验证码", "nerror");
                n = this.__form._$checkValidity(this.__phonecode);
                if (n) this._$dispatchEvent("onVerifyOk", e, t)
            } else {
                i = this.__form._$checkValidity(this.__phone);
                if (!i) {
                    if ("" == this.__phone.value.trim()) c._$showError(this.__phone, "请输入手机号", "nerror");
                    return
                }
                if (!this._mob_can_pass) {
                    c._$showError(null, "请先获取验证码", "nerror");
                    return
                }
                if ("" == t) c._$showError(this.__phonecode, "请输入验证码", "nerror");
                n = this.__form._$checkValidity(this.__phonecode);
                if (i && n) {
                    e = this.__phone.value.trim();
                    this._$dispatchEvent("onVerifyOk", e, t)
                }
            }
        }
    };
    $.__doSendSms = function() {
        if (!this.__sendSmsLock) {
            this.__sendSmsLock = 1;
            var e = this.__getItlPhone();
            var t = this.__isItlPhone ? e: this.__phone.value.trim();
            var i = {
                un: this.__un,
                mb: this.__mobile || t,
                pd: this.__product,
                pkid: this.__promark
            };
            this.__sendSmsLock = 1;
            _._$request("mbsm", i, this.__getSms._$bind(this), this.__getSmsException._$bind(this), 1)
        }
    };
    $.__doSendSms2 = function() {
        if (!this.__sendSms2Lock) {
            var e = {
                id: MP.promarkIdData[this.__promark],
                mb: this.__mobile || this.__phone.value.trim(),
                isreactive: this.__pbHasReged || 0,
                channel: 2
            };
            this.__sendSms2Lock = 1;
            _._$request("mbsm", e, this.__getSms._$bind(this), this.__getSmsException._$bind(this))
        }
    };
    $.__getSmsException = function(e) {
        var t = e.ret,
        i = e.dt || 0,
        n;
        this.__sendSms2Lock = 0;
        this.__sendSmsLock = 0;
        this._mob_can_pass = !0;
        if (e) if ("401" == t && "09" == i) {
            n = "手机号格式错误";
            c._$showError(null, n, "nerror")
        } else if ("411" == t) {
            var s = e.receiveCode.split(",");
            var r = "请您编辑短信<strong> " + (s[0] || "验证") + " </strong>发送到<strong> " + (s[1] || "106981630163331") + " </strong>获取验证码，短信费用由运营商收取";
            c._$showError(null, r, "nerror", 2)
        } else if ("413" == t) c._$showError(null, "下发验证码超过了次数限制，请改天再试", "nerror", 2);
        else if ("430" == t) {
            this._$hide();
            this._$dispatchEvent("onback", {
                errorTxt: "此次登录不需要进行密保验证"
            })
        } else {
            n = f[t] || c._$getErrorTxt(e.ret);
            if ("401" == t && "10" == i) n = f["40110"];
            c._$showError(null, n, "nerror")
        }
    }
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b07a20e1d9be763162954dd0fcf2feb3", "83c67d5b20eeffc1f687e113ae22189f", "df9d93a61ae210b34038e92b4416342a", "263ef74b9fd197724ac7ba6e1cbc38f5", "0d434f17f93250948578c8948f9f01bf", "4dadb2ee6ba889b538cf0977b4b3cad0", "42cfcb0d5ca074b03c888828877bcfd5", "2340de615bb0be83782615b5be9a7ef8", "4b8a011ef397f944ac6ae4710b7660e0", "a99696d07d5ab1aa5d16c147f1e71971", "2a43840b16363f33ff35f85bac1eaffb", "0daa8e33bb0f0c21f86585042f3c5a03");
I$("4aa6cf516ea6fc0ac929d28786a3165e",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l, u, p, m, g, b, v, $, y) {
    var E, w = 2e3,
    C = 1e3;
    b._$$LoginManager = e._$klass();
    E = b._$$LoginManager._$extend(u._$$Manager);
    E.__init = function(e) {
        var t;
        s._$loadGaq();
        this.__options = e || {};
        window.$loginOpts = this.__options;
        p["601"] = s._$setOutLogin();
        this.__loginLockTxt = e.lockConfig && e.lockConfig.loginLockTxt || "正在登录...";
        this.__preFilledMail = e.preFilledMail || "";
        this.__domains = e.domains || "";
        this.__product = e.product || "";
        this.__promark = e.promark || "";
        this.__host = e.host || "";
        this.__focusHelper = e.focusHelper || 0;
        this.__lazyCheck = e.lazyCheck || 0;
        this.__autoSuffix = e.autoSuffix || 0;
        this.__needUnLogin = e.needUnLogin || 0;
        this.__defaultUnLogin = e.defaultUnLogin || 0;
        this.__needQrLogin = e.needQrLogin || 0;
        this.__toolName = e.toolName || 0;
        this.__toolUrl = e.toolUrl || 0;
        this.__unLoginChecked = this.__defaultUnLogin || 0;
        this.__unLoginTime = e.unLoginTime || 10;
        if (e.loadTime) {
            t = window._$BGP ? "BGP": "非BGP";
            _gaq.push(["_trackEvent", "外层用时" + window._$PKID, "加载成功", t + "-【" + e.loadTime + "】ms"])
        }
        this.__gaqo = {
            pid: this.__promark,
            pdt: this.__product
        };
        this.__domain = e.prdomain;
        window["$cookieDomain"] = e.cookieDomain;
        this.__errMsg = s._$HtmlEncode(e.errMsg || "");
        this.__errMode = e.errMode || 1;
        this.__super(e);
        if (this.__errMsg) setTimeout(function() {
            s._$showError(null, this.__errMsg, "nerror")
        }._$bind(this), 20);
        s._$resize();
        i._$addEvent(window, "message", this.onMessage._$bind(this))
    };
    E.onMessage = function(e) {
        var t;
        var i = e && e.data;
        if (i) {
            if ("string" == typeof i) try {
                i = JSON.parse(i)
            } catch(n) {}
            if ("object" == typeof i && "URS|" == i.from) if (i.fromLoginLockMb && this.__mbLoginModule) {
                t = i.lock || 0;
                this.__mbLoginModule._$doToggleLoingLockMb(t)
            }
        }
    };
    E.__reset = function(e) {
        this.__super(e);
        this.__islogin = 1;
        this.__disabled = 1;
        this.__onpage = "login";
        this.__single = parseInt(e.single);
        this.__includeBox = !!e.includeBox;
        this.__mobileFirst = e.mobileFirst || 0;
        this.__regUrl = e.regUrl;
        this.__renderBox();
        s._$resize()
    };
    E.__renderLogin = function() {
        if (this.__needQrLogin) this.__showQrcodeBtn();
        this.__module = "goEmailLogin";
        this.__initLogin();
        this.__initUnLogin();
        this.__setUsername();
        this.__sendSize("init");
        this.__checkDisable();
        this.__inputs = t._$getByClassName(this.__box, "j-inputtext");
        this.__pwdtext = t._$get("pwdtext");
        this.__nameinput = this.__inputs[0];
        this.__passwordinput = this.__inputs[1];
        this.__checkcodeinput = this.__inputs[2];
        if (this.__domain && !this.__domain2) {
            this.__initUserNameDomain(this.__domain);
            this.__domain2 = 1
        }
    };
    E.__renderBox = function() {
        o._$render(this.__box, "index-tmp", {
            needMobileLogin: this.__options.needMobileLogin,
            goEmailLoginTxt: this.__options.goEmailLoginTxt,
            goMbLoginTxt: this.__options.goMbLoginTxt,
            goEmailRegTxt: this.__options.goEmailRegTxt,
            goMbRegTxt: this.__options.goMbRegTxt
        });
        this.__cnt = t._$getByClassName(this.__box, "m-cnt")[0];
        this.__footer = t._$getByClassName(this.__box, "m-footer")[0];
        if (this.__includeBox) {
            var e = t._$get("cnt-box-parent");
            if (!t._$hasClassName(e, "cnt-box-include")) t._$addClassName(e, "cnt-box-include")
        }
        var i = t._$get("mobileModule");
        if (this.__mobileFirst && i) this.__doAction(i);
        else this.__renderLogin()
    };
    E.__initUserNameDomain = function(e) {
        try {
            var i = t._$getByClassName(this.__box, "j-prdomain")[0];
            var n = t._$getByClassName(this.__box, "j-inputtext")[0];
            var r = t._$getByClassName(this.__box, "inputbox")[0];
            var a = t._$getByClassName(this.__box, "u-logo")[0];
            i.innerHTML = s._$HtmlEncode(e);
            t._$delClassName(i, "f-dn");
            n.style.width = r.clientWidth - a.clientWidth - i.clientWidth - 22 + "px";
            i.style.right = -5 - i.clientWidth + "px"
        } catch(o) {}
    };
    E.__showQrcodeBtn = function() {
        this.__qrm = t._$getByClassName(this.__box, "j-btnqrcode")[0];
        if (this.__qrm) {
            t._$delClassName(this.__qrm, "f-dn");
            i._$clearEvent(this.__qrm);
            i._$addEvent(this.__qrm, "click", this.__showQrcodeModule._$bind(this))
        }
    };
    E.__hideQrcodeBtn = function() {
        if (this.__qrm) t._$addClassName(this.__qrm, "f-dn")
    };
    E.__doEnter = function(e) {
        if (this.__loginModule && "login" == this.__onpage && !this.__isAppSafe) if (13 == e.keyCode && !this.__loginModule._stopEnter) this.__doAction(null, "dologin");
        else if (this.__loginModule) this.__loginModule._stopEnter = 0
    };
    E.__checkDisable = function() {
        var e = t._$get("dologin");
        if (this.__disabled) t._$addClassName(e, "btndisabled");
        else t._$delClassName(e, "btndisabled")
    };
    E.__destroy = function() {
        this.__clearModule();
        this.__super();
        this.__hideQrcodeBtn();
        delete this.__module
    };
    E.__initComp = function(e) {
        var t = s._$timeCountEnd("initLogin");
        if (t > 0) {
            var i = window._$BGP ? "BGP": "非BGP";
            _gaq.push(["_trackEvent", "登录初始化" + window._$PKID, "初始化成功", "详细耗时【" + e.time + "ms】渠道" + i]);
            t = -1
        }
        if (this.__loginModule) {
            if (this.__focusHelper) this.__loginModule._$focusHelper();
            this.__showOtpOrPPcError();
            if (!this.__errMsg && e.dlapp) {
                var n = s._$getDlapp();
                s._$showError(0, n, "nerror", 3)
            }
            if (this.__loginVerifyError) s._$showError(null, this.__loginVerifyError, "nerror", 2);
            this.__hasInit = 1;
            this.__needWatchman = "1" == e.watchman ? 1 : 0;
            this.__capFlag = e ? e.capFlag: this.__capFlag;
            if (this.__capFlag) this.__showCheckCode(e);
            this.__sendMsg({
                type: "loginInitSuccess"
            })
        }
    };
    E.__onPwdKeyUp = function() {
        this.__pwdKeyUp = 1
    };
    E.__initLogin = function() {
        if (!this.__loginModule) this.__createLoginModule(1);
        this.__mainBtn = t._$getByClassName(this.__box, "u-loginbtn")[0];
        if (this.__single) {
            var e = t._$get("changepage");
            t._$dataset(e, "action", "none");
            if (s._$notURL(this.__regUrl)) this.__regUrl = "";
            e.href = this.__regUrl ? this.__regUrl: "//zc.reg.163.com/regInitialized";
            e.target = "_blank"
        }
    };
    E.__onDisabled = function(e) {
        this.__disabled = e;
        this.__checkDisable()
    };
    E.__onUnLockLogin = function() {
        this.__doLoginLock = 0;
        if (this.__loginBtn && this.__loginBtnTxt) this.__loginBtn.innerHTML = s._$HtmlEncode(this.__loginBtnTxt)
    };
    E.__onDoLockLogin = function(e) {
        e = e || {};
        this.__doLoginLock = 1;
        this.__loginBtn = t._$getByClassName(document, "u-loginbtn")[0];
        this.__loginBtnTxt = "string" == typeof this.__loginBtn.textContent ? this.__loginBtn.textContent: this.__loginBtn.innerText;
        if (!e.noTxt) this.__loginBtn.innerHTML = s._$HtmlEncode(e.txt || this.__loginLockTxt)
    };
    E.__createLoginModule = function(e) {
        var t = {
            pd: this.__product,
            pkid: this.__promark,
            pkht: this.__host
        };
        this.__iniData = t;
        if (e) {
            s._$timeCount("initLogin");
            r._$request("initComponentLogin", t, this.__initComp._$bind(this), this.__showFail3._$bind(this, 0), 1, this.__product)
        }
        this.__loginModule = _._$$Login._$allocate({
            parent: this.__cnt,
            opts: this.__options,
            onSlideOk: this.__onSlideOk._$bind(this),
            onPwdKeyUp: this.__onPwdKeyUp._$bind(this),
            ondisabled: this.__onDisabled._$bind(this),
            onUnLockLogin: this.__onUnLockLogin._$bind(this)
        });
        if (this.__password) this.__loginModule._$setPwd(this.__password);
        this.__onpage = "login";
        i._$delEvent(document, "keyup", this.__doEnter._$bind(this));
        i._$addEvent(document, "keyup", this.__doEnter._$bind(this))
    };
    E._$doRefresh = function() {
        s._$timeCount("initLogin");
        r._$request("initComponentLogin", this.__iniData, this.__initComp._$bind(this), this.__showFail3._$bind(this, 1), 1, this.__product)
    };
    E.__createMbLoginModule = function() {
        var e = this.__options.smsLoginFirst ? 0 : 1;
        if (this.__options.uniteLogin) if ("0" == this.__options.uniteLogin.first) e = 1;
        else e = 2;
        if (this.__needQrLogin) this.__showQrcodeBtn();
        this.__mbLoginModule = new m({
            data: this.__options
        });
        if (this.__options.preFilledMobile) this.__options.preFilledMobile = "";
        this.__mbLoginModule.$inject(this.__cnt);
        this.__mbLoginModule._$changeModule(e, this.__cnt)
    };
    E.__goModule = function() {
        this.__clearModule();
        if ("goEmailLogin" == this.__module) this.__renderLogin();
        else this.__createMbLoginModule()
    };
    E.__doAction = function(e, r, a) {
        var o = i._$getElement(e) || e,
        _ = r || t._$dataset(o, "action"),
        d = t._$dataset(this.__mainBtn, "lock") || 0,
        f = t._$dataset(o, "srclist") || "";
        if ("dounlocklogin" != _) {
            if ("myphonegoon" == _) {
                var h = {};
                var l = this.__loginModule._$getValues();
                l[0] = l[0].trim();
                h.un = this.__domain ? l[0] + this.__domain: l[0];
                var u = t._$get("ismyphonebox");
                h.ck = "0";
                if (u) h.ck = u.checked ? "1": "0";
                f = f ? f.split(",") : [];
                if (f.length > 0) for (var p = 0,
                m; p < f.length; p++) {
                    m = f[p];
                    f[p] = m + "&ck=" + h.ck
                }
                this.__setDomains({
                    type: "success",
                    username: this.__username || "",
                    nextUrls: f
                });
                c._$cookie("THE_LAST_LOGIN", {
                    value: this.__username || "",
                    expires: 30,
                    path: "/"
                })
            } else if ("goEmailLogin" == _ || "goMbLogin" == _) {
                if (_ == this.__module) return;
                this.__heads = t._$getByClassName(this.__box, "j-head");
                n._$forEach(this.__heads,
                function(e) {
                    t._$delClassName(e, "active")
                });
                t._$addClassName(o, "active");
                this.__module = _;
                this.__goModule()
            } else if ("modeBack" == _) this.__doBack(1);
            else if ("modeGoon" == _) {
                f = f ? f.split(",") : [];
                this.__setDomains({
                    type: "success",
                    username: this.__username || "",
                    nextUrls: f
                });
                c._$cookie("THE_LAST_LOGIN", {
                    value: this.__username || "",
                    expires: 30,
                    path: "/"
                })
            } else if ("leakLogin" == _) {
                if (this.__isLeak1) this.__doGoon(1);
                else if (this.__isLeak2) {
                    this.__isLeak = !1;
                    this.__doBack(1)
                } else if (this.__isLeak3) this.__doGoon()
            } else if ("dologin" == _) {
                if (d) this.__sendMsg({
                    type: "lockLoginState",
                    value: d
                });
                if ("1" == d) return;
                this.__doLogin()
            } else if ("dounlock-ph" == _) {
                if (this.__phoneModule.__canUnlcok) this.__unlockAndLogin(1)
            } else if ("dounlock-otp" == _) {
                if (this.__otpModule.__canUnlcok) this.__unlockAndLogin(2)
            } else if ("dounlock-ppc" == _) if (this.__ppcModule.__canUnlcok) this.__unlockAndLogin(3);
            else s._$showError(null, "请正确输入密保卡上对应的数字", "nerror");
            else if ("doback" == _) {
                this.__isLeak = !1;
                a = !a;
                this.__doBack(a)
            } else if ("doclose" == _) if (!this.__closeFlag) {
                this.__closeFlag = !0;
                this.__sendClose()
            }
            this.__super(e)
        } else {
            this.__unLockLoginState(1);
            setTimeout(function() {
                s._$showError(null, "已取消登录，请重新登录", "nerror", 2)
            },
            200)
        }
    };
    E.__goonLog = function(e) {
        if (e && "10" == e.dt && "401" == e.ret) {
            var t = p["40110"];
            s._$showError(null, t, "nerror")
        }
    };
    E.__doGoon = function(e) {
        var t = {
            pd: this.__product,
            pkid: this.__promark,
            type: 0
        };
        if (1 == e) {
            var i = this.__loginModule._$getValues();
            i[0] = i[0].trim();
            t.un = this.__domain ? i[0] + this.__domain: i[0];
            r._$request("goonlog", t, this.__goonLog._$bind(this), this.__goonLog._$bind(this), 1, this.__product)
        }
        c._$cookie("THE_LAST_LOGIN", {
            value: this.__username || "",
            expires: 30,
            path: "/"
        });
        setTimeout(function() {
            this.__sendMsg({
                type: "success",
                username: this.__username || ""
            })
        }._$bind(this), 100)
    };
    E.__clearModule = function() {
        this.__isDoBack = 0;
        if (this.__isAppSafe) this.__unLockLoginState();
        if (this.__mbLoginModule) this.__mbLoginModule.destroy();
        if (this.__phoneModule) this.__phoneModule = this.__phoneModule._$recycle();
        else if (this.__otpModule) this.__otpModule = this.__otpModule._$recycle();
        else if (this.__ppcModule) this.__ppcModule = this.__ppcModule._$recycle();
        if (this.__verifyMobileModule) this.__verifyMobileModule = this.__verifyMobileModule._$recycle();
        if (this.__loginModule) this.__loginModule = this.__loginModule._$recycle();
        if (this.__qrcodeModule) this.__qrcodeModule = this.__qrcodeModule._$recycle()
    };
    E.__doBack = function(e) {
        if ("object" == typeof e) this.__loginVerifyError = e.errorTxt || "";
        this.__clearModule();
        this.__isDoBack = 1;
        if (this.__module && "goMbLogin" == this.__module) {
            this.__module = null;
            this.__doAction(t._$get("mobileModule"))
        } else {
            this.__createLoginModule(e);
            this.__setUsername();
            this.__changePage()
        }
        s._$resize()
    };
    E.__initUnLogin = function() {
        var e = function() {
            var e = t._$getByClassName(this.__box, "u-checkbox")[0];
            if (!t._$hasClassName(e, "u-checkbox-select")) {
                this.__unLoginChecked = 1;
                t._$addClassName(e, "u-checkbox-select")
            } else {
                this.__unLoginChecked = 0;
                t._$delClassName(e, "u-checkbox-select")
            }
        };
        return function() {
            var i = t._$getByClassName(this.__box, "j-unlogn")[0];
            if (this.__needUnLogin && i) {
                t._$delClassName(i, "f-dn");
                var n = t._$getByClassName(i, "un-login")[0];
                if (this.__unLoginChecked) t._$addClassName(t._$getByClassName(this.__box, "u-checkbox")[0], "u-checkbox-select");
                this.__doInitDomEvent([[n, "click", e._$bind(this)]])
            } else t._$addClassName(i, "f-dn")
        }
    } ();
    E.__setUsername = function() {
        var e;
        var t = this.__preFilledMail || this.__username || c._$cookie("THE_LAST_LOGIN");
        if (t) {
            if (this.__domain) if (t.substring(t.indexOf("@")) === this.__domain) e = t.substring(0, t.indexOf("@"));
            else e = "";
            else e = t;
            this.__loginModule._$setUsername(e);
            this.__preFilledMail = ""
        }
    };
    E.__unlockAndLogin = function(e) {
        if (1 == e) this.__phoneModule._$stateOK(this.__doUnlockAndLogin._$bind(this, e));
        else if (2 == e) this.__otpModule._$stateOK(this.__doUnlockAndLogin._$bind(this, e));
        else if (3 == e && this.__ppcModule.__canUnlcok) this.__doUnlockAndLogin(3, 1)
    };
    E.__doUnlockAndLogin = function(e, t) {
        if (t) {
            var i, n = {},
            s = {};
            n.un = this.__username;
            n.pw = MP.encrypt2(this.__password || "0");
            n.pkid = this.__promark;
            n.pd = this.__product;
            n.l = this.__unLoginChecked ? 1 : 0;
            n.d = this.__unLoginTime;
            if (1 == e) {
                i = this.__phoneModule._$getValues();
                s.sms = i[0];
                s.un = this.__username;
                s.pd = this.__product;
                s.pkid = this.__promark;
                this.__dovfsms(s, n)
            } else if (2 == e) {
                _value = this.__otpModule._$getValues() || "";
                s.otppwd = _value;
                s.un = this.__username;
                s.pd = this.__product;
                s.pkid = this.__promark;
                this.__dovfotp(s, n)
            } else if (3 == e) {
                i = this.__ppcModule._$getValues() || [];
                s.cos = this.__ppcCos;
                s.ppcpwd = i[0] + i[1] + i[2];
                s.un = this.__username;
                s.pd = this.__product;
                s.pkid = this.__promark;
                this.__dovfppc(s, n);
            }
        }
    };
    E.__dovfsms = function(e, t) {
        if (!this.__vfLock) {
            this.__vfLock = 1;
            r._$request("vfsms", e, this.__vfSuccess._$bind(this, t), this.__vfsmsWarn._$bind(this), 1, this.__product)
        }
    };
    E.__vfSuccess = function(e) {
        this.__vfLock = 0;
        this.__doAction(null, "doback", 1);
        this.__safeLogin(e, 1)
    };
    E.__vfsmsWarn = function(e) {
        this.__vfLock = 0;
        var t = e.ret;
        var i;
        if (e) if ("423" == t) this.__showLeak();
        else if ("401" == t) {
            if ("10" == e.dt) i = p["40110"];
            else i = p[t];
            s._$showError(null, i, "nerror")
        } else if ("412" == t) {
            this.__doAction(null, "doback");
            this.__phoneError = "验证码错误次数过多，请改天再试"
        } else if ("501" == t || "500" == t) this.__showFail(t);
        else {
            if (e.dt) t = t + "-" + e.dt;
            if (t) {
                var n = p[t] || s._$getErrorTxt(e.ret),
                r = 424 == t || 425 == t || 426 == t ? 2 : 0;
                if (425 == t) n = n.replace("#",
                function() {
                    return s._$getCommonEmail(this.__username)
                }._$bind(this));
                s._$showError(null, n, "nerror", r)
            }
        }
    };
    E.__dovfppc = function(e, t) {
        if (!this.__vfLock) {
            this.__vfLock = 1;
            r._$request("vfppc", e, this.__vfSuccess._$bind(this, t), this.__vfppcWarn._$bind(this), 1, this.__product)
        }
    };
    E.__setError = function(e) {
        s._$showError(null, e, "nerror")
    };
    E.__vfppcWarn = function(e) {
        this.__vfLock = 0;
        var t = e.ret;
        if (e) if ("494" == t || "493" == t) {
            if ("494" == t) {
                this.__ppcCos = e.cos || "";
                this.__ppcModule.__setCoord(this.__ppcCos)
            }
            this.__ppcModule.__clearInpt();
            this.__setError("验证码验证错误，请重新输入坐标对应数字")
        } else if ("501" == t || "500" == t) this.__showFail(t);
        else {
            this.__doAction(null, "doback");
            if ("412" == t) this.__ppcError = "密保卡验证错误次数过多，请改天再试";
            else if ("492" == t) this.__ppcError = "帐号未绑定密保卡";
            else {
                var i = p[t] || s._$getErrorTxt(e.ret);
                if ("10" == e.dt && "401" == t) i = p["40110"];
                this.__ppcError = i
            }
        }
    };
    E.__dovfotp = function(e, t) {
        if (!this.__vfLock) {
            this.__vfLock = 1;
            r._$request("vfotp", e, this.__vfSuccess._$bind(this, t), this.__vfotpWarn._$bind(this), 1, this.__product)
        }
    };
    E.__vfotpWarn = function(e) {
        this.__vfLock = 0;
        var t = e.ret,
        i;
        if (e) if ("480" == t) {
            this.__otpModule.__clearInpt();
            this.__setError("动态密码错误，请重试")
        } else if ("501" == t || "500" == t) this.__showFail(t);
        else {
            this.__doAction(null, "doback");
            if ("412" == t) this.__otpError = "将军令验证错误次数过多，请改天再试";
            else if ("481" == t) this.__otpError = "尝试次数过多，请稍后再试";
            else if ("484" == t) this.__otpError = "帐号未绑定将军令";
            else {
                i = p[t] || s._$getErrorTxt(e.ret);
                if ("10" == e.dt && "401" == t) i = p["40110"];
                this.__otpError = i
            }
        }
    };
    E.__doLogin = function() {
        var e = "-103";
        if (this.__hasInit) {
            if (!this.__doLoginLock) {
                this.__onDoLockLogin({
                    noTxt: 1
                });
                this.__nameinput.value = s._$emailFilter(this.__nameinput.value);
                this.__loginModule._$stateOK(this.__doLoginCb._$bind(this))
            }
        } else s._$showFail(e, "登录")
    };
    E.__doLoginCb = function(e, t) {
        var i;
        this.__pass = e;
        this.__errKey = t;
        if (e && this.__hasInit) {
            this.__onDoLockLogin();
            this.__doLoginReal.call(this)
        } else if (1 === this.__errMode) {
            this.__sendMsg({
                type: "loginstate",
                state: 0
            });
            this.__onUnLockLogin();
            if ("email" === t && !this.__nameinput.value) s._$showError(this.__nameinput, "请输入帐号", "nerror");
            else if ("password" === t && !this.__passwordinput.value) s._$showError(this.__passwordinput, "请输入密码", "nerror");
            else if ("tcheckcode" === t && !this.__checkcodeinput.value) s._$showError(this.__checkcodeinput, "请输入图片验证码", "nerror");
            else if ("slidecap" === t) {
                if (this.__loginModule) i = 2 == this.__loginModule.__slideTarget ? "请滑动验证码": "请点击验证码";
                s._$showError({
                    name: "slide"
                },
                i, "nerror")
            }
        }
    };
    E.__doLoginReal = function() {
        if (this.__pass && this.__hasInit) {
            s._$timeCount("LOGIN_TIME");
            var e = this.__loginModule._$getValues(),
            t = {};
            e[0] = e[0].trim();
            t.un = this.__domain ? e[0] + this.__domain: e[0];
            t.pw = MP.encrypt2(e[1]);
            t.pd = this.__product;
            t.l = this.__unLoginChecked ? 1 : 0;
            t.d = this.__unLoginTime;
            t.t = (new Date).getTime();
            t.pkid = this.__promark;
            this.__username = t.un;
            this.__password = e[1];
            this.__safeLogin(t)
        }
    };
    E.__safeLogin = function() {
        var e = function(e) {
            var t = [],
            i = {};
            n._$forEach(e,
            function(e) {
                if (!i[e]) {
                    i[e] = 1;
                    t.push(e)
                }
            });
            return t
        };
        var t = function(t, i, n) {
            if (n) {
                var s = t.split("@")[1];
                i = i + (i ? ",": "") + s
            }
            i = i.replace("vip.188.com", "188.com");
            var r = i.split(",");
            r = e(r);
            return r.join(",")
        };
        return function(e, i) {
            e.domains = this.__domains || "";
            e.domains = t(e.un, e.domains, this.__autoSuffix);
            if (this.__loginModule && this.__password) this.__loginModule._$setPwd(this.__password);
            if (!i && this.__lazyCheck && this.__capFlag) {
                this.__dataTemp = e;
                if (1 == this.__capFlag) this.__doLazyCheck();
                else this.__doLazyCheckSlide()
            } else this.__getLoginTicket(e)
        }
    } ();
    E.__doLazyCheckSlide = function() {
        this.__loginModule._$verifyCap()
    };
    E.__onSlideOk = function() {
        if (this.__dataTemp) this.__getLoginTicket(this.__dataTemp)
    };
    E.__doLazyCheck = function() {
        var e = this.__loginModule._$getSmsValue();
        if (!this.__checkSmsCodeLock) {
            this.__checkSmsCodeLock = 1;
            var t = this.__nameinput.value.trim();
            t = this.__domain ? t + this.__domain: t;
            var i = {
                cap: e,
                pd: this.__product,
                pkid: this.__promark
            };
            i.un = t;
            r._$request("checkSmsCode", i, this.__cbSmsCode._$bind(this), this.__ckSmsCodeEx._$bind(this, "验证码输入错误"), 1, this.__product)
        }
    };
    E.__cbSmsCode = function() {
        this.__checkSmsCodeLock = 0;
        if (this.__dataTemp) this.__getLoginTicket(this.__dataTemp)
    };
    E.__ckSmsCodeEx = function(e, t) {
        this.__checkSmsCodeLock = 0;
        this.__onUnLockLogin();
        this.__loginModule.__ckSmsCodeEx(e, t)
    };
    E.__getLoginTicket = function(e) {
        if (!this.__getTkLock) {
            this.__watchmanFlushTime = (new Date).getTime();
            if (this.__needWatchman && window.watchman) watchman.flush(function() {
                this.__watchmanFlush = 1
            }._$bind(this));
            var t = {};
            t.un = e.un;
            t.pkid = this.__promark;
            t.pd = this.__product;
            this.__getTkLock = 1;
            r._$request("getLoginTicket", t, this.__gltSuccess._$bind(this, e), this.__gltWarn._$bind(this), 1, this.__product)
        }
    };
    E.__sendLogin = function(e) {
        if (this.__needWatchman && window.watchman) {
            e.clientToken = watchman.getToken();
            this.__watchmanFlush = 0;
            watchman.reset()
        }
        e.tk = this.__tk;
        e.pwdKeyUp = this.__pwdKeyUp || 0;
        r._$request("safelogin", e, this.__loginSuccess._$bind(this), this.__cbWarn._$bind(this), 1, this.__product)
    };
    E.__gltSuccess = function(e, t) {
        var i;
        this.__getTkLock = 0;
        var n = t.ret;
        this.__tk = t.tk;
        if (201 == n) if (this.__needWatchman && "1" == this.__options.watchMan) if (this.__watchmanFlush) this.__sendLogin(e);
        else this.__watchmanFlushStl = setInterval(function() {
            i = (new Date).getTime() - this.__watchmanFlushTime;
            if (this.__watchmanFlush || i > 1e4) {
                this.__watchmanFlushStl = clearInterval(this.__watchmanFlushStl);
                this.__sendLogin(e)
            }
        }._$bind(this), 200);
        else this.__sendLogin(e);
        else {
            var r = p[n] || s._$getErrorTxt(t.ret);
            _gaq.push(["_trackEvent", "登录结果", "登录失败", "【" + n + "-gt】" + r]);
            s._$showError(null, r, "nerror")
        }
    };
    E.__gltWarn = function(e) {
        this.__sendMsg({
            type: "loginstate",
            state: 0
        });
        if (this.__needWatchman && window.watchman) watchman.reset();
        this.__onUnLockLogin();
        this.__getTkLock = 0;
        var t = e.ret || 0;
        var i = e.dt || "";
        var n = p[t] || s._$getErrorTxt(e.ret);
        if ("10" == i && "401" == t) n = p["40110"];
        _gaq.push(["_trackEvent", "登录结果", "登录失败", "【" + t + "-" + i + "】" + n]);
        if ("441" != t && "444" != t && "445" != t) s._$showError(null, n, "nerror")
    };
    E.__setLlpTime = function() {
        s._$showError(0, '已开启登录保护，请打开<a class="u-llp-color1" style="color:#2c85ff;" href="https://id.163.com/gj/?from=webzj" target="_blank">网易帐号管家</a>完成验证   <span class="u-llp-color2" style="color:#2c85ff;">' + this.__llpNumber + '</span>秒后超时。<a class="u-llp-color3" style="color:#2c85ff;" href="https://id.163.com/gj/faq/s/p_o.html?ct=1&from=webzj" target="_blank">无法收到验证消息?</a>', "nerror", 3)
    };
    E.__lockLoginState = function() {
        if (!this.__isAppSafe) {
            this.__isAppSafe = 1;
            this.__nameinput.disabled = !0;
            this.__passwordinput.disabled = !0;
            if (this.__checkcodeinput) this.__checkcodeinput.disabled = !0;
            if (this.__pwdtext) this.__pwdtext.disabled = !0;
            this.__onDoLockLogin({
                txt: "取消登录"
            });
            setTimeout(function() {
                this.__llpNumber = 120;
                this.__setLlpTime();
                this.__safeItl2 = clearInterval(this.__safeItl2);
                this.__safeItl = clearInterval(this.__safeItl);
                this.__safeItl2 = setInterval(this.__setSafeItl._$bind(this), C);
                this.__startllp = 0;
                this.__safeItl = setInterval(this.__doCheckLlp._$bind(this), w);
                t._$dataset(this.__loginBtn, "action", "dounlocklogin")
            }._$bind(this), 200)
        }
    };
    E.__setSafeItl = function() {
        this.__llpNumber--;
        if (this.__llpNumber < 0) this.__safeItl2 = clearInterval(this.__safeItl2);
        else this.__setLlpTime()
    };
    E.__doCheckLlp = function() {
        this.__startllp++;
        var e = this.__checkLlpTimeout();
        if (!e) {
            var t = {
                uuid: this.__uuid,
                pd: this.__product,
                pkid: this.__promark
            };
            r._$request("llp", t, this.__llpOK._$bind(this), this.__llpFail._$bind(this), 1, this.__product)
        }
    };
    E.__checkLlpTimeout = function() {
        if (this.__startllp > 59) {
            this.__unLockLoginState(1);
            setTimeout(function() {
                s._$showError(null, "登录验证超时，请重新登录", "nerror", 2)
            },
            200);
            return 1
        }
        return 0
    };
    E.__llpFail = function(e) {
        var t = e.ret;
        if ("401" == t) {
            this.__unLockLoginState(1);
            setTimeout(function() {
                s._$showError(null, "登录验证超时，请重新登录", "nerror", 2)
            },
            200)
        }
        if ("446" == t) {
            this.__unLockLoginState(1);
            setTimeout(function() {
                s._$showError(null, "网易帐号管家已拒绝本次登录", "nerror", 2)
            },
            200)
        }
    };
    E.__llpOK = function(e) {
        var t = e.ret;
        if ("201" == t) {
            this.__safeItl2 = clearInterval(this.__safeItl2);
            this.__safeItl = clearInterval(this.__safeItl);
            this.__loginSuccess(e)
        }
    };
    E.__unLockLoginState = function(e) {
        this.__safeItl2 = clearInterval(this.__safeItl2);
        this.__safeItl = clearInterval(this.__safeItl);
        this.__isAppSafe = 0;
        e = e || 0;
        this.__doBack(e);
        this.__onUnLockLogin();
        t._$dataset(this.__loginBtn, "action", "dologin")
    };
    E.__setDomainsOk = function(e) {
        if (! (e.mode && (e.mode.mode || "0" == e.mode.mode) && this.__options.version && this.__options.version > 1)) if (e.unprotectedGuide) {
            this.__onUnLockLogin();
            this.__showLeak(3)
        } else if (e.safeMobileGuide) {
            this.__onUnLockLogin();
            this.__showLeak(4, e)
        } else this.__setDomains({
            type: "success",
            username: this.__username || ""
        });
        else {
            this.__onUnLockLogin();
            this.__showMode(e.mode)
        }
    };
    E.__loginSuccess = function(e) {
        if (e && "201" == e.ret && !e.nextUrls && !e.mode && !e.unprotectedGuide) this.__sendMsg({
            type: "loginstate",
            state: 1,
            username: this.__username
        });
        else this.__sendMsg({
            type: "loginstate",
            state: 0
        });
        this.__pwdKeyUp = 0;
        _gaq.push(["_trackEvent", "登录结果", "登录成功", "【登录成功】from:" + this.__product + ",domain:" + this.__username.substring(this.__username.indexOf("@"))]);
        var t = s._$timeCountEnd("LOGIN_TIME");
        if (t > 0) {
            _gaq.push(["_trackEvent", "登录效率", "耗时【" + 50 * Math.ceil(t / 50) + "ms】", "详细耗时【" + t + "ms】"]);
            t = -1
        }
        c._$cookie("THE_LAST_LOGIN", {
            value: this.__username,
            expires: 30,
            path: "/"
        });
        if (e && e.nextUrls) this.__setDomains({
            type: "fksuccess",
            username: this.__username || "",
            nextUrls: e.nextUrls
        },
        e);
        else this.__setDomainsOk(e)
    };
    E.__doVerifyOk = function(e, t) {
        var i = {};
        if (!this.__doVfoLock) {
            this.__doVfoLock = 1;
            i.un = this.__username;
            i.pd = this.__product;
            i.pkid = this.__promark;
            i.mb = e;
            i.sms = t;
            r._$request("vfmbsms", i, this.__vfmbsmsOk._$bind(this), this.__vfmbsmsFail._$bind(this), 1, this.__product)
        }
    };
    E.__vfmbsmsOk = function() {
        var e = {};
        this.__doVfoLock = 0;
        e.un = this.__username;
        e.pw = MP.encrypt2(this.__password || "0");
        e.pkid = this.__promark;
        e.pd = this.__product;
        e.l = this.__unLoginChecked ? 1 : 0;
        e.d = this.__unLoginTime;
        if (this.__verifyMobileModule) this.__verifyMobileModule = this.__verifyMobileModule._$recycle();
        this.__doAction(null, "doback", 1);
        this.__safeLogin(e, 1)
    };
    E.__vfmbsmsFail = function(e) {
        this.__doVfoLock = 0;
        var t = e.ret,
        i = e.dt || "";
        if (e) if ("401" == t && "09" == i) s._$showError(null, "手机号格式错误", "nerror");
        else if ("401" == t || "500" == t) {
            if ("10" == e.dt && "401" == t) t = "40110";
            s._$showError(null, p[t], "nerror")
        } else if ("412" == t) s._$showError(null, "验证码错误次数过多，请改天再试", "nerror");
        else {
            if ("430" == t) {
                if (this.__verifyMobileModule) this.__verifyMobileModule = this.__verifyMobileModule._$recycle();
                this.__doAction(null, "doback", 1)
            }
            if (t) {
                var n = p[t] || s._$getErrorTxt(e.ret);
                s._$showError(null, n, "nerror")
            }
        }
    };
    E.__cbWarn = function(e) {
        var t;
        this.__sendMsg({
            type: "loginstate",
            state: 0
        });
        this.__pwdKeyUp = 0;
        this.__onUnLockLogin();
        var i = e.ret,
        n = e.pp || 0;
        if ("438" != i) {
            if ("408" == i) s._$showError(0, '已开启登录保护，请打开<a class="u-app-color" style="color:#2c85ff;" href="https://id.163.com/gj/?from=webzj" target="_blank">网易帐号管家</a>绑定帐号并重新登录验证', "nerror", 3);
            else if (e) {
                if (e.nextUrls) this.__setDomains({
                    type: "fksuccess",
                    username: this.__username || "",
                    nextUrls: e.nextUrls
                });
                if (e.mode && (e.mode.mode || "0" == e.mode.mode) && this.__options.version && this.__options.version > 1) {
                    this.__showMode(e.mode);
                    return
                } else if ("421" == i) {
                    this.__showLeak(5, e);
                    return
                }
                if ("423" == i) {
                    _gaq.push(["_trackEvent", "登录结果", "登录异常", "【423】风控帐号"]);
                    this.__showLeak(1)
                } else if ("428" == i) {
                    _gaq.push(["_trackEvent", "登录结果", "登录异常", "【428】标记帐号"]);
                    this.__showLeak(2)
                } else if ("427" == i) {
                    this.__showLeak(6, e);
                    return
                } else if ("401" == i) {
                    t = p[i] || s._$getErrorTxt(e.ret);
                    if ("10" == e.dt) t = p["40110"];
                    _gaq.push(["_trackEvent", "登录结果", "登录失败", "【401-" + (e.dt || "00") + "】参数错误"]);
                    s._$showError(null, t, "nerror")
                } else if ("501" == i) {
                    _gaq.push(["_trackEvent", "登录结果", "登录异常", "【501】"]);
                    this.__showFail(i)
                } else if ("500" == i) {
                    _gaq.push(["_trackEvent", "登录结果", "登录异常", "【500】"]);
                    this.__showFail(i)
                } else {
                    if (e.dt) i = i + "-" + e.dt;
                    if (n && ("403" == i || "429" == i || "412-01" == i || "413-01" == i || "413-03" == i || "414-01" == i || "417-01" == i || "418-01" == i || "419-01" == i || "419-02" == i || "405" == i)) {
                        var a = this.__loginModule._$getValues(),
                        o = {};
                        a[0] = a[0].trim();
                        o.un = this.__domain ? a[0] + this.__domain: a[0];
                        o.pd = this.__product;
                        o.pkid = this.__promark;
                        r._$request("getPP", o, this.__getPPSuccess._$bind(this, i), this.__getPPWarn._$bind(this, i), 1, this.__product)
                    } else if (i) {
                        t = p[i] || s._$getErrorTxt(e.ret);
                        var c = 424 == i || 425 == i || 426 == i || 422 == i || 602 == i ? 2 : 0;
                        if (425 == i) t = t.replace("#",
                        function() {
                            return s._$getCommonEmail(this.__username)
                        }._$bind(this));
                        _gaq.push(["_trackEvent", "登录结果", "登录失败", "【" + i + "】" + t]);
                        if ("441" != i && "444" != i && "445" != i) s._$showError(null, t, "nerror", c);
                        else if ("444" == i || "445" == i) s._$showError({
                            name: "slide"
                        },
                        t, "nerror", c);
                        else if ("441" == i) s._$showError(this.__checkcodeinput, t, "nerror", c)
                    }
                }
                var _ = s._$timeCountEnd("LOGIN_TIME");
                if (_ > 0) {
                    _gaq.push(["_trackEvent", "登录效率", "耗时【" + 50 * Math.ceil(_ / 50) + "ms】", "详细耗时【" + _ + "ms】"]);
                    _ = -1
                }
            }
            this.__showCheckCode(e)
        } else {
            this.__uuid = e.uuid || 0;
            this.__lockLoginState()
        }
    };
    E.__getPPSuccess = function(e, i) {
        var n = i.ret;
        if (201 == n) {
            var r = i.yz;
            if (1 == r) {
                var a = i.mb;
                this.__showPhoneModule(a);
                t._$addClassName(this.__footer, "f-dn");
                this.__onpage = "pp_phone"
            } else if (2 == r) {
                this.__showOTPModule();
                t._$addClassName(this.__footer, "f-dn");
                this.__onpage = "pp_otp"
            } else if (3 == r) {
                this.__ppcCos = i.cos || "";
                this.__showPPCModule(this.__ppcCos);
                t._$addClassName(this.__footer, "f-dn");
                this.__onpage = "pp_ppc"
            } else if (4 == r) if (this.__options.version && this.__options.version > 1) {
                this.__clearModule();
                this.__verifyMobileModule = g._$$VerifyMobile._$allocate({
                    parent: this.__cnt,
                    un: this.__username,
                    promark: this.__promark,
                    product: this.__product,
                    onhidefooter: this.__hideFooter._$bind(this),
                    onback: this.__doBack._$bind(this),
                    onVerifyOk: this.__doVerifyOk._$bind(this),
                    onfail: this.__showFail._$bind(this)
                });
                this.__onpage = "pp_vmb"
            } else this.__getPPWarn(e, i);
            else this.__getPPWarn(e, i);
            s._$resize()
        } else this.__getPPWarn(e, i)
    };
    E.__getPPWarn = function(e, t) {
        if (434 == t.ret || 435 == t.ret || 436 == t.ret || 437 == t.ret) e = t.ret;
        var i = p[e] || s._$getErrorTxt(t.ret);
        if ("401" == t.ret && "10" == t.dt) i = p["40110"];
        _gaq.push(["_trackEvent", "登录结果", "登录失败", "【" + e + "】" + i]);
        s._$showError(null, i, "nerror", 0)
    };
    E.__showCheckCode = function(e) {
        var t;
        if (this.__loginModule) if (e) {
            if (e.capFlag) {
                e.ret = "44" + e.capFlag;
                t = 1
            }
            if ("441" == e.ret) {
                _gaq.push(["_trackEvent", "登录结果", "登录异常", "【411】需要图片验证码"]);
                this.__capFlag = 1;
                t = t || "请输入图片验证码";
                this.__loginModule.__ckSmsCodeEx(t, e)
            } else if ("444" == e.ret) {
                _gaq.push(["_trackEvent", "登录结果", "登录异常", "【444】需要滑块验证码"]);
                this.__capFlag = 4;
                t = t || "请滑动验证码";
                this.__loginModule.__ckSmsCodeEx(t, e)
            } else if ("445" == e.ret) {
                _gaq.push(["_trackEvent", "登录结果", "登录异常", "【445】需要点击验证码"]);
                this.__capFlag = 5;
                t = t || "请点击验证码";
                this.__loginModule.__ckSmsCodeEx(t, e)
            } else if (this.__loginModule.__needSlideCap || this.__loginModule.__needCheckCode) {
                var i = "44" + (this.__loginModule.__needSlideCap ? 2 == this.__loginModule.__slideTarget ? "4": "5": "1");
                t = 1;
                e = {
                    ret: i
                };
                this.__loginModule.__ckSmsCodeEx(t, e)
            }
        }
    };
    E.__hideCheckCode = function() {
        this.__loginModule._$hideCheckCode()
    };
    E.__getCheckCode = function() {
        this.__loginModule._$getCheckCode()
    };
    E.__showPhoneModule = function(e) {
        var t = this.__loginModule._$getValues(),
        i = {};
        t[0] = t[0].trim();
        i.un = this.__domain ? t[0] + this.__domain: t[0];
        i.pd = this.__product;
        i.pkid = this.__promark;
        this.__clearModule();
        if (!this.__phoneModule) this.__phoneModule = d._$$Phone._$allocate({
            opts: this.__options,
            parent: this.__cnt,
            data: i,
            mb: e,
            doback: this.__doBack._$bind(this)
        })
    };
    E.__showOTPModule = function() {
        var e = this.__loginModule._$getValues(),
        t = {};
        t.un = this.__domain ? e[0] + this.__domain: e[0];
        t.pd = this.__product;
        t.pkid = this.__promark;
        this.__clearModule();
        if (!this.__otpModule) {
            var i = f._$$OTP._$allocate({
                parent: this.__cnt,
                data: t
            });
            this.__otpModule = i
        }
    };
    E.__showPPCModule = function(e) {
        var t = this.__loginModule._$getValues(),
        i = {};
        i.un = this.__domain ? t[0] + this.__domain: t[0];
        i.pd = this.__product;
        i.pkid = this.__promark;
        i.coord = e;
        this.__clearModule();
        if (!this.__ppcModule) {
            var n = h._$$PPC._$allocate({
                parent: this.__cnt,
                data: i
            });
            this.__ppcModule = n
        }
    };
    E.__showQrcodeModule = function() {
        this.__clearModule();
        var e = t._$getByClassName(this.__box, "j-headimg")[0];
        if (!this.__qrcodeModule && "qrcode" != this.__onpage) {
            e.style.display = "none";
            this.__qrcodeModule = l._$$QrcodeManager._$allocate({
                parent: this.__cnt,
                opts: this.__options,
                product: this.__product,
                prdomain: this.__domain,
                toolName: this.__toolName,
                toolUrl: this.__toolUrl,
                sendmsg: this.__setDomains._$bind(this)
            });
            this.__onpage = "qrcode";
            t._$addClassName(this.__qrm, "pc")
        } else {
            e.style.display = "block";
            this.__doBack(1);
            this.__onpage = "login";
            t._$delClassName(this.__qrm, "pc")
        }
    };
    E.__showFail = function(e) {
        _gaq.push(["_trackEvent", "异常", "登录异常", "异常【" + (p[e] || "未知异常" + e) + "】"]);
        this.__super(e)
    };
    E.__showOtpOrPPcError = function() {
        if (this.__otpError) {
            this.__errMsg = 1;
            s._$showError(null, this.__otpError, "nerror");
            this.__otpError = null
        }
        if (this.__ppcError) {
            this.__errMsg = 1;
            s._$showError(null, this.__ppcError, "nerror");
            this.__ppcError = null
        }
        if (this.__phoneError) {
            this.__errMsg = 1;
            s._$showError(null, this.__phoneError, "nerror");
            this.__phoneError = null
        }
    };
    E.__showFail3 = function(e, t) {
        var i = t && t.ret || "0";
        var n = this.__host || "未知产品";
        var r = window._$BGP ? "dl2失败": "dl失败";
        _gaq.push(["_trackEvent", "初始化失败" + window._$PKID, r + "code:" + i, "e1ee1"]);
        this.__hasInit = 0;
        _gaq.push(["_trackEvent", "登录步骤", "【" + i + "】初始化", "初始化失败,from:" + n]);
        if (window._$needUrsBgp) if (!window._$BGP && ("0" == i || "-1" == i || "-2" == i)) {
            window._$BGP = 1;
            setTimeout(this._$doRefresh._$bind(this), 200);
            return
        }
        if ("-401" != i) {
            this.__showOtpOrPPcError();
            this.__showFail(i)
        } else {
            s._$showError(0, '无法登录，请<a style="color:#4aafe9;" target="_blank" href="https://www.baidu.com/s?wd=%E6%B5%8F%E8%A7%88%E5%99%A8%E5%BC%80%E5%90%AFcookies">开启浏览器cookies</a>或更换浏览器后刷新重试', "nerror");
            window._$needCookieSet = 1
        }
    };
    E.__showLeak = function(e, t) {
        _gaq.push(["_trackEvent", "异常", "登录异常", "异常"]);
        this.__super(e, t);
        s._$resize()
    };
    E._$doToggleLock = function(e, i) {
        if (e) {
            t._$addClassName(this.__mainBtn, i);
            t._$dataset(this.__mainBtn, "lock", 1)
        } else {
            t._$delClassName(this.__mainBtn, i);
            t._$dataset(this.__mainBtn, "lock", 0)
        }
    };
    E._$doLoginProxy = function() {
        var e = function(e, t) {
            this.__loginModule._$setUsername(e);
            this.__loginModule._$setPwd(t);
            this.__doAction(null, "dologin")
        };
        return function(i) {
            var n = i.username,
            s = i.pwd,
            r = i.defaultUnLogin;
            this.__defaultUnLogin = r;
            this.__unLoginChecked = this.__defaultUnLogin;
            if (this.__unLoginChecked) t._$addClassName(t._$getByClassName(this.__box, "u-checkbox")[0], "u-checkbox-select");
            else t._$delClassName(t._$getByClassName(this.__box, "u-checkbox")[0], "u-checkbox-select");
            if (this.__loginModule) e.call(this, n, s);
            else {
                this.__module = "goEmailLogin";
                this.__doBack();
                e.call(this, n, s)
            }
        }
    } ()
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "0d434f17f93250948578c8948f9f01bf", "4dadb2ee6ba889b538cf0977b4b3cad0", "b07a20e1d9be763162954dd0fcf2feb3", "83c67d5b20eeffc1f687e113ae22189f", "f4dec1b84700c9cc21c1a3746102e1f6", "7aae1cf82be47f0be5a277c5829eb8e4", "df416050c2dc183b66d58f7a1dd85123", "97b23dfde6b699429cf1206e6d4cc4e7", "2f78a9e6c44dc780264106119e13a727", "5ff7df89658ea00701caab652836d5ac", "8bdf4bf336ac3e80c5ba9eaf2a14b550", "24009e123f5588d3e0d561f49177981a", "8fbb863276f6e70b6bebef7ceadbfc67", "f635d10c8380eb5c0f2520c4a555bf57");
I$("7a040d0f0a58d780ab5949c8cfb99e7f",
function(e, t, i, n, s, r, a, o, c, _, d, f, h, l) {
    var u, p, m = {
        1 : "red",
        2 : "orange",
        3 : "green",
        4 : "blue"
    };
    r._$parseTemplate("jst-template");
    d._$$Index = e._$klass();
    u = d._$$Index._$extend(s._$$EventTarget);
    u.__init = function(e) {
        this.__super(e);
        this.__loadConfig(e);
        i._$addEvent(document, "click", this.__changePage._$bind(this))
    };
    u.__reset = function(e) {
        this.__super(e)
    };
    u.__destroy = function() {
        this.__super()
    };
    u.__doClose = function() {
        var e = {
            type: "close"
        };
        e["URS-CM"] = 1;
        _._$postMessage("_parent", {
            data: e
        })
    };
    u.__addWatchMan = function() {
        var e = document.createElement("script");
        e.type = "text/javascript";
        e.setAttribute("pro-data", " ");
        e.src = "//nos.netease.com/yidun/res-wm-1.0.js";
        document.getElementsByTagName("head")[0].appendChild(e)
    };
    u.__loadConfig = function(e) {
        this.__options = e;
        if (e) {
            e.single = e.single || 0;
            this.__page = e.page || "login";
            if (e.notFastReg) {
                this.__page = "login";
                e.single = 1
            }
            window._$inputTime = 300;
            window._$URSOPT = e || {};
            window._$PRODUCT = e.product || "";
            window._$PKID = e.promark || "";
            e.topURL = encodeURIComponent(e.topURL);
            window._$TOPURL = e.topURL || "";
            if ("1" == e.watchMan) this.__addWatchMan();
            window._$pathB = e.pathB || 0;
            window._$needUrsBgp = e.needUrsBgp || 0;
            window._$bgpTime2 = e.bgpTime2 || 1e4;
            _._$configLog(e);
            var t = e.cookieDomain;
            if (t && t.indexOf("dl.reg.163.com") < 0) if (window._$needUrsBgp && e.passportNeedUrsBgp) window._$needUrsBgp = 1;
            else window._$needUrsBgp = 0;
            window.isHttps = e.isHttps || 0;
            window.PROTOCOL = "http" == e.PROTOCOL ? "http://": "https://";
            window.REGPROTOCOL = "http" == e.REGPROTOCOL ? "http://": "https://";
            if (window.isHttps) {
                window.PROTOCOL = "https://";
                window.REGPROTOCOL = "https://"
            }
            this.__loadStyle(e);
            this.__opt = e;
            this.__showPage()
        } else this.__doClose()
    };
    u.__loadStyle = function(e) {
        var i = e.skin || "0";
        var n = e.cssFiles || "";
        var s = e.style || "";
        if (s) t._$addStyle(s);
        else if (!n && 0 != i) {
            i = m[i] || "red";
            var r = document.createElement("link");
            r.rel = "stylesheet";
            r.type = "text/css";
            r.href = "../../webapp/res/css/" + i + ".css";
            document.getElementsByTagName("head")[0].appendChild(r)
        }
    };
    u.__changePage = function(e) {
        var n = i._$getElement(e),
        s = t._$dataset(n, "action"),
        r = t._$dataset(n, "mdtype"),
        a;
        _._$doProxyLink(e);
        if ("changepage" == s) {
            this.__mdType = r;
            this.__page = "login" == this.__page ? "register": "login";
            if ("login" == this.__page && t._$get("VIP")) t._$get("VIP").style.display = "none";
            a = {
                type: "changepage",
                page: this.__page,
                mdtype: this.__mdType || ""
            };
            a["URS-CM"] = 1;
            _._$postMessage("_parent", {
                data: a
            });
            this.__showPage(1)
        }
    };
    u._$LgRefresh = function() {
        this.__page = "login";
        this.__showPage()
    };
    u.__showPage = function(e) {
        _._$hideFail();
        this.__opt.page = this.__page;
        if (e) {
            this.__opt.mobileFirst = this.__mdType ? 1 : 0;
            var i = t._$get("cnt-box-parent");
            t._$addClassName(i, "switching");
            setTimeout(function() {
                t._$delClassName(i, "switching")
            },
            0)
        }
        setTimeout(function() {
            if (this.__lg) this.__lg = this.__lg._$recycle();
            this.__opt.onRefresh = this._$LgRefresh._$bind(this);
            this.__lg = a._$$LoginManager._$allocate(this.__opt);
            if (this.__options.doLoginLockStyle) this._$doToggleLoingLock();
            if (!e) setTimeout(function() {
                _._$postMessage("_parent", {
                    data: {
                        "URS-READY-DONE": 1
                    }
                })
            },
            150)
        }._$bind(this), 0)
    };
    u._$doToggleLoingLock = function(e) {
        var t = 1;
        if (e) t = e.lock;
        if (this.__lg) this.__lg._$doToggleLock(t, this.__options.doLoginLockStyle)
    };
    u._$doLoginProxy = function(e) {
        if (this.__lg) this.__lg._$doLoginProxy(e)
    };
    i._$addEvent(document, "templateready",
    function() {
        var e = function(e) {
            var t = e.data;
            if (t) {
                if ("string" == typeof t) try {
                    t = JSON.parse(t)
                } catch(i) {}
                if ("object" == typeof t && "URS|" == t.from) if (t.doLoginProxy) p._$doLoginProxy(t);
                else if (t.fromLoginLock) p._$doToggleLoingLock(t);
                else if (t.fromRegLock || t.fromLoginLockMb || t.fromRegLockMb);
                else {
                    window.URSCONFIG = t;
                    p = d._$$Index._$allocate(t)
                }
            }
        };
        i._$addEvent(window, "message", e);
        _._$postMessage("_parent", {
            data: {
                "URS-READY": 1
            }
        })
    })
},
"05e56106e22a09a56a1098c586c2bfe9", "d73a726efb8534e8d72defb6cd280a1c", "a0c610891b37112b33fc6ca301b06e01", "0ce1cf574f7be23168d864b3fb81d053", "b75e70b49b58692524630910fc7d379f", "b07a20e1d9be763162954dd0fcf2feb3", "4aa6cf516ea6fc0ac929d28786a3165e", "81bd84a220d8bdd69b7113dbdf701570", "4e3477f1faad0e644cf31bd4765e12dc", "0d434f17f93250948578c8948f9f01bf");


function getpass(upwd,uusr){
           return     MP.encrypt2(upwd, uusr);
}
var sq= getpass('*upwd','*uusr');
document.writeln("%%"+sq+"%%");
document.writeln("</center><br>");
</script>
</pre>
</body>
</html>
