/*! Thunder 11 BY LUOCHENZHIMU */
/*! Last updated on 2020/12/27 */
/*! https://www.luochenzhimu.com */
module.exports = function (e) {
    var t = {};

    function n(r) {
        if (t[r]) return t[r].exports;
        var i = t[r] = {i: r, l: !1, exports: {}};
        return e[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports
    }

    return n.m = e, n.c = t, n.d = function (e, t, r) {
        n.o(e, t) || Object.defineProperty(e, t, {enumerable: !0, get: r})
    }, n.r = function (e) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e, "__esModule", {value: !0})
    }, n.t = function (e, t) {
        if (1 & t && (e = n(e)), 8 & t) return e;
        if (4 & t && "object" == typeof e && e && e.__esModule) return e;
        var r = Object.create(null);
        if (n.r(r), Object.defineProperty(r, "default", {
            enumerable: !0,
            value: e
        }), 2 & t && "string" != typeof e) for (var i in e) n.d(r, i, function (t) {
            return e[t]
        }.bind(null, i));
        return r
    }, n.n = function (e) {
        var t = e && e.__esModule ? function () {
            return e.default
        } : function () {
            return e
        };
        return n.d(t, "a", t), t
    }, n.o = function (e, t) {
        return Object.prototype.hasOwnProperty.call(e, t)
    }, n.p = "", n(n.s = 724)
}({
    0: function (e, t, n) {
        "use strict";

        function r(e, t, n, r, i, o, a, s) {
            var l, c = "function" == typeof e ? e.options : e;
            if (t && (c.render = t, c.staticRenderFns = n, c._compiled = !0), r && (c.functional = !0), o && (c._scopeId = "data-v-" + o), a ? (l = function (e) {
                (e = e || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || "undefined" == typeof __VUE_SSR_CONTEXT__ || (e = __VUE_SSR_CONTEXT__), i && i.call(this, e), e && e._registeredComponents && e._registeredComponents.add(a)
            }, c._ssrRegister = l) : i && (l = s ? function () {
                i.call(this, this.$root.$options.shadowRoot)
            } : i), l) if (c.functional) {
                c._injectStyles = l;
                var d = c.render;
                c.render = function (e, t) {
                    return l.call(t), d(e, t)
                }
            } else {
                var u = c.beforeCreate;
                c.beforeCreate = u ? [].concat(u, l) : [l]
            }
            return {exports: e, options: c}
        }

        n.d(t, "a", function () {
            return r
        })
    }, 1: function (e, t, n) {
        e.exports = n(8)(134)
    }, 10: function (e, t, n) {
        "use strict";
        var r = n(71), i = n(105), o = Object.prototype.toString;

        function a(e) {
            return "[object Array]" === o.call(e)
        }

        function s(e) {
            return null !== e && "object" == typeof e
        }

        function l(e) {
            return "[object Function]" === o.call(e)
        }

        function c(e, t) {
            if (null !== e && void 0 !== e) if ("object" != typeof e && (e = [e]), a(e)) for (var n = 0, r = e.length; n < r; n++) t.call(null, e[n], n, e); else for (var i in e) Object.prototype.hasOwnProperty.call(e, i) && t.call(null, e[i], i, e)
        }

        e.exports = {
            isArray: a, isArrayBuffer: function (e) {
                return "[object ArrayBuffer]" === o.call(e)
            }, isBuffer: i, isFormData: function (e) {
                return "undefined" != typeof FormData && e instanceof FormData
            }, isArrayBufferView: function (e) {
                return "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer
            }, isString: function (e) {
                return "string" == typeof e
            }, isNumber: function (e) {
                return "number" == typeof e
            }, isObject: s, isUndefined: function (e) {
                return void 0 === e
            }, isDate: function (e) {
                return "[object Date]" === o.call(e)
            }, isFile: function (e) {
                return "[object File]" === o.call(e)
            }, isBlob: function (e) {
                return "[object Blob]" === o.call(e)
            }, isFunction: l, isStream: function (e) {
                return s(e) && l(e.pipe)
            }, isURLSearchParams: function (e) {
                return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams
            }, isStandardBrowserEnv: function () {
                return ("undefined" == typeof navigator || "ReactNative" !== navigator.product) && "undefined" != typeof window && "undefined" != typeof document
            }, forEach: c, merge: function e() {
                var t = {};

                function n(n, r) {
                    "object" == typeof t[r] && "object" == typeof n ? t[r] = e(t[r], n) : t[r] = n
                }

                for (var r = 0, i = arguments.length; r < i; r++) c(arguments[r], n);
                return t
            }, extend: function (e, t, n) {
                return c(t, function (t, i) {
                    e[i] = n && "function" == typeof t ? r(t, n) : t
                }), e
            }, trim: function (e) {
                return e.replace(/^\s*/, "").replace(/\s*$/, "")
            }
        }
    }, 100: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(36), o = n(19), a = n(17), s = n(1).default.getLogger("Thunder.base.tools-utilities"), l = n(2),
            c = n(9).default(l.join(__rootDir, "../bin/ThunderHelper.node"));
        !function (e) {
            function t(e) {
                return r(this, void 0, void 0, function* () {
                    let t;
                    return t = e && (yield a.FileSystemAWNS.existsAW(e)) ? new Promise(t => {
                        c.asyncCalcuteFileMD5(e, (e, n) => {
                            e ? (n = n.toUpperCase(), t(n)) : t(void 0)
                        })
                    }) : new Promise(e => {
                        e(void 0)
                    })
                })
            }

            e.genarateMd5 = function (e) {
                let t = void 0, n = i.createHash("md5");
                return null !== n && (t = n.update(e).digest("hex")), t
            }, e.matchFileMd5 = function (e, n) {
                return r(this, void 0, void 0, function* () {
                    let r = !1, i = yield t(e);
                    return void 0 !== i && i === n.toUpperCase() && (s.information("check full md5 sucessful"), r = !0), r
                })
            }, e.calculateFileMd5Ex = function (e) {
                return r(this, void 0, void 0, function* () {
                    let t;
                    if (e && (yield a.FileSystemAWNS.existsAW(e))) {
                        let n = o.createReadStream(e), r = i.createHash("md5");
                        n.on("data", e => {
                            r.update(e)
                        }), t = new Promise(e => {
                            n.on("end", () => {
                                let t = r.digest("hex");
                                t = t.toUpperCase(), e(t)
                            })
                        })
                    } else t = new Promise(e => {
                        e(void 0)
                    });
                    return t
                })
            }, e.calculateFileMd5 = t, e.encryptBuffer = function (e, t) {
                let n = null;
                try {
                    let r = i.createCipheriv("aes-128-ecb", t, ""), o = r.update(e), a = r.final();
                    n = Buffer.concat([o, a])
                } catch (e) {
                    s.warning("encryptBuffer", e)
                }
                return n
            }, e.decryptBuffer = function (e, t) {
                let n = null;
                try {
                    let r = i.createDecipheriv("aes-128-ecb", t, ""), o = r.update(e), a = r.final();
                    n = Buffer.concat([o, a])
                } catch (e) {
                    s.warning("decryptBuffer", e)
                }
                return n
            }, e.encryptSha1Buffer = function (e) {
                let t = null;
                try {
                    t = i.createHash("sha1").update(e).digest("hex")
                } catch (e) {
                    s.warning("encryptSha1Buffer", e)
                }
                return t
            }, e.encryptHmacBuffer = function (e, t, n, r = "hex") {
                let o = null;
                try {
                    o = i.createHmac(e, t).update(n, "utf8").digest(r)
                } catch (e) {
                    s.warning("encryptSha1Buffer", e)
                }
                return o
            }, e.setForegroundWindow = function (e, t) {
                return r(this, void 0, void 0, function* () {
                    if (null !== e && null !== t) {
                        let n = void 0, i = [];
                        "renderer" === process.type ? (n = yield t.getNativeWindowHandle(), i = yield t.getChildWindows()) : (n = t.getNativeWindowHandle(), i = t.getChildWindows());
                        let o = [];
                        for (let e = 0; e < i.length; ++e) {
                            let t = i[e], n = !1;
                            "renderer" === process.type ? (yield t.isDestroyed()) || (n = yield t.isAlwaysOnTop()) : t.isDestroyed() || (n = t.isAlwaysOnTop()), n && o.push(t)
                        }
                        let a = n.readUIntLE(0, 4);
                        e.setForegroundWindow(a) ? s.information("setForegroundWindow sucessful") : s.information("setForegroundWindow failed"), o.forEach(e => r(this, void 0, void 0, function* () {
                            "renderer" === process.type ? (yield e.isDestroyed()) || e.setAlwaysOnTop(!0).catch() : e.isDestroyed() || e.setAlwaysOnTop(!0)
                        }))
                    }
                })
            }
        }(t.ToolsUtilitiesAWNS || (t.ToolsUtilitiesAWNS = {}))
    }, 1031: function (e, t) {
    }, 1036: function (e, t) {
    }, 104: function (e, t, n) {
        "use strict";
        var r = n(10), i = n(71), o = n(106), a = n(60);

        function s(e) {
            var t = new o(e), n = i(o.prototype.request, t);
            return r.extend(n, o.prototype, t), r.extend(n, t), n
        }

        var l = s(a);
        l.Axios = o, l.create = function (e) {
            return s(r.merge(a, e))
        }, l.Cancel = n(78), l.CancelToken = n(122), l.isCancel = n(77), l.all = function (e) {
            return Promise.all(e)
        }, l.spread = n(123), e.exports = l, e.exports.default = l
    }, 1042: function (e, t) {
    }, 105: function (e, t) {
        function n(e) {
            return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e)
        }

        /*!
 * Determine if an object is a Buffer
 *
 * @author   Feross Aboukhadijeh <https://feross.org>
 * @license  MIT
 */
        e.exports = function (e) {
            return null != e && (n(e) || function (e) {
                return "function" == typeof e.readFloatLE && "function" == typeof e.slice && n(e.slice(0, 0))
            }(e) || !!e._isBuffer)
        }
    }, 106: function (e, t, n) {
        "use strict";
        var r = n(60), i = n(10), o = n(117), a = n(118);

        function s(e) {
            this.defaults = e, this.interceptors = {request: new o, response: new o}
        }

        s.prototype.request = function (e) {
            "string" == typeof e && (e = i.merge({url: arguments[0]}, arguments[1])), (e = i.merge(r, {method: "get"}, this.defaults, e)).method = e.method.toLowerCase();
            var t = [a, void 0], n = Promise.resolve(e);
            for (this.interceptors.request.forEach(function (e) {
                t.unshift(e.fulfilled, e.rejected)
            }), this.interceptors.response.forEach(function (e) {
                t.push(e.fulfilled, e.rejected)
            }); t.length;) n = n.then(t.shift(), t.shift());
            return n
        }, i.forEach(["delete", "get", "head", "options"], function (e) {
            s.prototype[e] = function (t, n) {
                return this.request(i.merge(n || {}, {method: e, url: t}))
            }
        }), i.forEach(["post", "put", "patch"], function (e) {
            s.prototype[e] = function (t, n, r) {
                return this.request(i.merge(r || {}, {method: e, url: t, data: n}))
            }
        }), e.exports = s
    }, 107: function (e, t, n) {
        "use strict";
        var r = n(10);
        e.exports = function (e, t) {
            r.forEach(e, function (n, r) {
                r !== t && r.toUpperCase() === t.toUpperCase() && (e[t] = n, delete e[r])
            })
        }
    }, 108: function (e, t, n) {
        "use strict";
        var r = n(10), i = n(72), o = n(74), a = n(109), s = n(110), l = n(61),
            c = "undefined" != typeof window && window.btoa && window.btoa.bind(window) || n(111);
        e.exports = function (e) {
            return new Promise(function (t, d) {
                var u = e.data, f = e.headers;
                r.isFormData(u) && delete f["Content-Type"];
                var p = new XMLHttpRequest, h = "onreadystatechange", m = !1;
                if ("undefined" == typeof window || !window.XDomainRequest || "withCredentials" in p || s(e.url) || (p = new window.XDomainRequest, h = "onload", m = !0, p.onprogress = function () {
                }, p.ontimeout = function () {
                }), e.auth) {
                    var v = e.auth.username || "", g = e.auth.password || "";
                    f.Authorization = "Basic " + c(v + ":" + g)
                }
                if (p.open(e.method.toUpperCase(), o(e.url, e.params, e.paramsSerializer), !0), p.timeout = e.timeout, p[h] = function () {
                    if (p && (4 === p.readyState || m) && (0 !== p.status || p.responseURL && 0 === p.responseURL.indexOf("file:"))) {
                        var n = "getAllResponseHeaders" in p ? a(p.getAllResponseHeaders()) : null, r = {
                            data: e.responseType && "text" !== e.responseType ? p.response : p.responseText,
                            status: 1223 === p.status ? 204 : p.status,
                            statusText: 1223 === p.status ? "No Content" : p.statusText,
                            headers: n,
                            config: e,
                            request: p
                        };
                        i(t, d, r), p = null
                    }
                }, p.onerror = function () {
                    d(l("Network Error", e, null, p)), p = null
                }, p.ontimeout = function () {
                    d(l("timeout of " + e.timeout + "ms exceeded", e, "ECONNABORTED", p)), p = null
                }, r.isStandardBrowserEnv()) {
                    var y = n(112),
                        b = (e.withCredentials || s(e.url)) && e.xsrfCookieName ? y.read(e.xsrfCookieName) : void 0;
                    b && (f[e.xsrfHeaderName] = b)
                }
                if ("setRequestHeader" in p && r.forEach(f, function (e, t) {
                    void 0 === u && "content-type" === t.toLowerCase() ? delete f[t] : p.setRequestHeader(t, e)
                }), e.withCredentials && (p.withCredentials = !0), e.responseType) try {
                    p.responseType = e.responseType
                } catch (t) {
                    if ("json" !== e.responseType) throw t
                }
                "function" == typeof e.onDownloadProgress && p.addEventListener("progress", e.onDownloadProgress), "function" == typeof e.onUploadProgress && p.upload && p.upload.addEventListener("progress", e.onUploadProgress), e.cancelToken && e.cancelToken.promise.then(function (e) {
                    p && (p.abort(), d(e), p = null)
                }), void 0 === u && (u = null), p.send(u)
            })
        }
    }, 109: function (e, t, n) {
        "use strict";
        var r = n(10),
            i = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"];
        e.exports = function (e) {
            var t, n, o, a = {};
            return e ? (r.forEach(e.split("\n"), function (e) {
                if (o = e.indexOf(":"), t = r.trim(e.substr(0, o)).toLowerCase(), n = r.trim(e.substr(o + 1)), t) {
                    if (a[t] && i.indexOf(t) >= 0) return;
                    a[t] = "set-cookie" === t ? (a[t] ? a[t] : []).concat([n]) : a[t] ? a[t] + ", " + n : n
                }
            }), a) : a
        }
    }, 11: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(3), o = n(2), a = n(1), s = n(17), l = n(22), c = a.default.getLogger("Thunder.Util"),
            d = "Thunder Network\\Thunder7.9\\";

        function u(e) {
            let t = e;
            return 0 === e.indexOf('"') && e.lastIndexOf('"') === e.length - 1 ? t = e.substring(1, e.length - 1) : 0 === e.indexOf("'") && e.lastIndexOf("'") === e.length - 1 && (t = e.substring(1, e.length - 1)), t
        }

        !function (e) {
            function t() {
                let e = l.ThunderHelper.getSystemTempPath(), t = l.ThunderHelper.getLogicalDriveStrings(), n = 0;
                for (let r = 0; r < t.length; r++) {
                    if (l.ThunderHelper.getDriveType(t[r]) === l.ThunderHelper.DriverType.DRIVE_FIXED) {
                        let i = l.ThunderHelper.getDriveInfo(t[r]);
                        n < i.freeBytes && t[r] !== e && (n = i.freeBytes, e = t[r])
                    }
                }
                return e.substring(0, 1) + ":\\迅雷下载"
            }

            function a(e) {
                let t = (e.style.webkitTransform || getComputedStyle(e, "").getPropertyValue("-webkit-transform") || e.style.transform || getComputedStyle(e, "").getPropertyValue("transform")).match(/\-?[0-9]+\.?[0-9]*/g);
                return {x: parseInt(t && (t[12] || t[4]) || "0", 10), y: parseInt(t && (t[13] || t[5]) || "0", 10)}
            }

            e.formatSize = function (e, t) {
                0 === t || (t = t || 2);
                let n = "0B";
                if ("number" == typeof e && e > 0) {
                    let r = ["B", "KB", "MB", "GB", "TB"], i = 0, o = e;
                    for (; o >= 1e3 && !(i >= 4);) o /= 1024, i += 1;
                    n = -1 === String(o).indexOf(".") ? o + r[i] : o.toFixed(t) + r[i]
                }
                return n
            }, e.formatSizeCustom = function (e, t = 2, n = 5) {
                let r = "0B";
                if ("number" == typeof e && e > 0) {
                    let i = ["B", "KB", "MB", "GB", "TB"], o = 0, a = e;
                    for (; a >= 1e3 && !(o >= 4);) a /= 1024, o += 1;
                    if (-1 === String(a).indexOf(".")) r = a + i[o]; else {
                        let e = a.toFixed(t);
                        e.length <= n ? r = "KB" !== i[o] && "MB" !== i[o] || 1 === t ? e + i[o] : a.toFixed(1) + i[o] : ("." === (e = e.substr(0, n))[n - 1] && (e = e.substr(0, n - 1)), r = e + i[o])
                    }
                }
                return r
            }, e.isDigital = function (e) {
                let t = !1;
                return /^\d+$/.test(e) && (t = !0), t
            }, e.isAlpha = function (e) {
                let t = !1;
                return /[A-Za-z]/.test(e) && (t = !0), t
            }, e.isUpperCase = function (e) {
                let t = !1;
                return /[A-Z]/.test(e) && (t = !0), t
            }, e.isLowerCase = function (e) {
                let t = !1;
                return /[a-z]/.test(e) && (t = !0), t
            }, e.isChinese = function (e) {
                let t = !1;
                return /[\u4E00-\u9FA5]/.test(e) && (t = !0), t
            }, e.replaceNonDigital = function (e) {
                return e.replace(/[^\d]/g, "")
            }, e.replaceNonAlpha = function (e) {
                return e.replace(/[^A-Za-z]/g, "")
            }, e.replaceNonWord = function (e) {
                return e.replace(/[^\W]/g, "")
            }, e.getDefaultDownloadDir = t, e.getMaxFreeDriver = function () {
                return t().substring(0, 1)
            }, e.deepCopy = function (e) {
                let t = JSON.stringify(e), n = null;
                try {
                    n = JSON.parse(t)
                } catch (e) {
                    c.warning(e)
                }
                return n
            }, e.swap = function (e, t, n) {
                do {
                    if (t < 0 || t >= e.length) break;
                    if (n < 0 || n >= e.length) break;
                    if (t === n) break;
                    e[t] = e.splice(n, 1, e[t])[0]
                } while (0);
                return e
            }, e.compareNocase = function (e, t) {
                let n = !1;
                do {
                    if (void 0 === e && void 0 === t) {
                        n = !0;
                        break
                    }
                    if (void 0 === e || void 0 === t) break;
                    if ("string" != typeof e || "string" != typeof t) break;
                    n = e.toLowerCase() === t.toLowerCase()
                } while (0);
                return n
            }, e.parseCommandLine = function (e) {
                let t = 0, n = "", r = !1, i = [], o = e.length;
                for (let a = 0; a < o; a++) {
                    let s = e[a];
                    if ('"' !== s && "'" !== s || ("" === n ? (r = !0, n = s) : n === s && (r = !1, n = "")), " " !== s || r || a === o - 1) {
                        if (a === o - 1) {
                            let n = e.substring(t);
                            "" !== n.trim() && i.push(u(n))
                        }
                    } else {
                        let n = e.substring(t, a);
                        "" !== n.trim() && i.push(u(n)), t = a + 1
                    }
                }
                return i
            }, e.getThunderTempPath = function (e, t) {
                return r(this, void 0, void 0, function* () {
                    const r = yield Promise.resolve().then(() => n(12));
                    let i = o.join(r.tmpdir(), d);
                    return t && (i = o.join(i, t)), void 0 !== e && e && (yield s.FileSystemAWNS.mkdirsAW(i)), i
                })
            }, e.setQueryString = function (e, t) {
                return Object.keys(t).forEach((n, r) => {
                    e += 0 === r ? "?" : "&", e += `${n}=${t[n]}`
                }), e
            }, e.setQueryStringEx = function (e, t) {
                for (let n in t) e += -1 === e.indexOf("?") ? "?" : "&", e += `${n}=${t[n]}`;
                return e
            }, e.getQueryString = function (e, t) {
                return e && t && e.match(new RegExp(`(^${t}|[?|&]${t})=([^&#]+)`)) ? RegExp.$2 : ""
            }, e.isClipboardTextFormatAvailable = function () {
                let e = !1, t = i.clipboard.availableFormats();
                for (let n of t) if ("text/plain" === n) {
                    e = !0;
                    break
                }
                return e
            }, e.keywordsHighLight = function (e, t, n) {
                if (!e) return "";
                if (!t) return e;
                if (0 === e.length) return e;
                if (0 === t.length) return e;
                let r = /\\/, i = t.split(" ");
                if (0 === (i = i.filter(e => e.trim().length > 0)).length) return e;
                for (let t = 0; t < i.length; t++) if (i[t].search(r) > 0) return e;
                n = void 0 === n || null === n ? "#FF0000" : n;
                let o = "", a = ["\\[", "\\^", "\\*", "\\(", "\\)", "\\|", "\\?", "\\$", "\\.", "\\+"], s = "", l = "|";
                for (let e = 0; e < i.length; e++) {
                    for (let t = 0; t < a.length; t++) {
                        let n = new RegExp(a[t], "g");
                        i[e] = i[e].replace(n, a[t])
                    }
                    e === i.length - 1 && (l = ""), s = s.concat(i[e], l)
                }
                let c = new RegExp(s, "gi");
                return o = e.replace(c, e => '<span style= "color:' + n + '">' + e + "</span>")
            }, e.isDef = function (e) {
                return void 0 !== e && null !== e
            }, e.isUndef = function (e) {
                return void 0 === e || null === e
            }, e.setStyle = function (e, t) {
                Object.entries(t).forEach(([t, n]) => {
                    e.style[t] = n
                })
            }, e.setCSSProperties = function (e, t) {
                Object.entries(t).forEach(([t, n]) => {
                    e.style.setProperty(t, n)
                })
            }, e.versionCompare = function (e, t) {
                let n = e.split("."), r = t.split("."), i = 0;
                for (let e = 0; e < n.length; e++) {
                    if (Number(n[e]) - Number(r[e]) > 0) {
                        i = 1;
                        break
                    }
                    if (Number(n[e]) - Number(r[e]) < 0) {
                        i = -1;
                        break
                    }
                }
                return i
            }, e.throttle = function (e, t) {
                let n, r = 0;
                return (...i) => {
                    const o = Date.now();
                    clearTimeout(n), o - r > t ? (e(...i), r = o) : n = setTimeout(() => {
                        e(...i), r = o
                    }, t)
                }
            }, e.debounce = function (e, t) {
                let n = null;
                return (...r) => {
                    n && clearTimeout(n), n = setTimeout(() => {
                        e(...r)
                    }, t)
                }
            }, e.getElementFixed = function (e) {
                let t = e.offsetLeft, n = e.offsetTop, r = e.offsetParent;
                for (; null !== r;) {
                    let e = a(r);
                    t += r.offsetLeft + e.x, n += r.offsetTop + e.y, r = r.offsetParent
                }
                return {x: t, y: n}
            }, e.escapeHTML = function (e) {
                return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;")
            }, e.unescapeHTML = function (e) {
                return e.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&").replace(/&quot;/g, '"').replace(/&apos;/g, "'")
            }, e.isValidPath = function (e) {
                let t = !1;
                do {
                    let n = "", r = "";
                    if (/^[a-zA-Z]:\\/.test(e)) n = e.slice(3); else {
                        if (0 !== e.indexOf("\\\\")) break;
                        {
                            let t = e.indexOf("\\", 2);
                            if (-1 === t || t === e.length - 1) break;
                            if ("" === (r = (n = e.slice(2)).substr(0, t - 2))) break
                        }
                    }
                    if (/[\*\"<>\?:\|]/i.test(n)) break;
                    if (e.length > 256) break;
                    if ("" === r) {
                        t = !0;
                        break
                    }
                    let i = r.indexOf(".ipv6-literal.net");
                    -1 !== i ? (-1 !== (i = (r = r.substr(0, i)).indexOf("%")) && (r = r.substr(0, i)), r = r.replace(/\-/g, ":"), /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/.test(r) && (t = !0)) : /(?=(\b|\D))(((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))(?=(\b|\D))/.test(r) && (t = !0)
                } while (0);
                return t
            };
            let f = void 0;

            function p(e, t = "normal 12px sans-serif") {
                f || (f = document.createElement("canvas"));
                let n = f.getContext("2d");
                return n.font = t, n.measureText(e).width
            }

            function h(e, t, n = "normal 12px sans-serif", r = 1) {
                function i(e, t, r, o, a) {
                    let s = -1;
                    do {
                        if (e > t) {
                            s = t;
                            break
                        }
                        let l = Math.round((e + t) / 2), c = p(`${r.substr(0, l)}...${o}`, n);
                        if (a === c) {
                            s = l;
                            break
                        }
                        if (a > c) {
                            if (Math.round(a) === Math.round(c)) {
                                s = l;
                                break
                            }
                            s = i(l + 1, t, r, o, a)
                        } else if (c > a) {
                            if (Math.round(a) === Math.round(c)) {
                                s = l - 1;
                                break
                            }
                            s = i(e, l - 1, r, o, a)
                        }
                    } while (0);
                    return s
                }

                let a = e;
                do {
                    if (!t) break;
                    if (!e) break;
                    let s = t.offsetWidth * r;
                    if (s > p(e, n)) break;
                    let l = o.extname(e);
                    "" !== l && (l = l.substring(1));
                    let c = e.substr(0, e.length - l.length - 1);
                    if (!c) break;
                    let d = i(0, c.length, c, l, s);
                    if (-1 === d) break;
                    a = `${c.substr(0, d - 2 * (r - 1))}...${l}`
                } while (0);
                return a
            }

            e.getTextWidth = p, e.getOmitName = h, e.getOmitNameMultiLine = function (e, t, n) {
                return h(e, t, "normal 12px microsoft yahei", 2)
            }, e.setTimeoutAw = function (e, t) {
                return new Promise((n, r) => {
                    setTimeout(() => {
                        t && t(), n()
                    }, e)
                })
            }
        }(t.ThunderUtil || (t.ThunderUtil = {}))
    }, 110: function (e, t, n) {
        "use strict";
        var r = n(10);
        e.exports = r.isStandardBrowserEnv() ? function () {
            var e, t = /(msie|trident)/i.test(navigator.userAgent), n = document.createElement("a");

            function i(e) {
                var r = e;
                return t && (n.setAttribute("href", r), r = n.href), n.setAttribute("href", r), {
                    href: n.href,
                    protocol: n.protocol ? n.protocol.replace(/:$/, "") : "",
                    host: n.host,
                    search: n.search ? n.search.replace(/^\?/, "") : "",
                    hash: n.hash ? n.hash.replace(/^#/, "") : "",
                    hostname: n.hostname,
                    port: n.port,
                    pathname: "/" === n.pathname.charAt(0) ? n.pathname : "/" + n.pathname
                }
            }

            return e = i(window.location.href), function (t) {
                var n = r.isString(t) ? i(t) : t;
                return n.protocol === e.protocol && n.host === e.host
            }
        }() : function () {
            return !0
        }
    }, 111: function (e, t, n) {
        "use strict";
        var r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

        function i() {
            this.message = "String contains an invalid character"
        }

        i.prototype = new Error, i.prototype.code = 5, i.prototype.name = "InvalidCharacterError", e.exports = function (e) {
            for (var t, n, o = String(e), a = "", s = 0, l = r; o.charAt(0 | s) || (l = "=", s % 1); a += l.charAt(63 & t >> 8 - s % 1 * 8)) {
                if ((n = o.charCodeAt(s += .75)) > 255) throw new i;
                t = t << 8 | n
            }
            return a
        }
    }, 112: function (e, t, n) {
        "use strict";
        var r = n(10);
        e.exports = r.isStandardBrowserEnv() ? {
            write: function (e, t, n, i, o, a) {
                var s = [];
                s.push(e + "=" + encodeURIComponent(t)), r.isNumber(n) && s.push("expires=" + new Date(n).toGMTString()), r.isString(i) && s.push("path=" + i), r.isString(o) && s.push("domain=" + o), !0 === a && s.push("secure"), document.cookie = s.join("; ")
            }, read: function (e) {
                var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)"));
                return t ? decodeURIComponent(t[3]) : null
            }, remove: function (e) {
                this.write(e, "", Date.now() - 864e5)
            }
        } : {
            write: function () {
            }, read: function () {
                return null
            }, remove: function () {
            }
        }
    }, 113: function (e, t, n) {
        function r() {
            var e;
            try {
                e = t.storage.debug
            } catch (e) {
            }
            return !e && "undefined" != typeof process && "env" in process && (e = process.env.DEBUG), e
        }

        (t = e.exports = n(114)).log = function () {
            return "object" == typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments)
        }, t.formatArgs = function (e) {
            var n = this.useColors;
            if (e[0] = (n ? "%c" : "") + this.namespace + (n ? " %c" : " ") + e[0] + (n ? "%c " : " ") + "+" + t.humanize(this.diff), !n) return;
            var r = "color: " + this.color;
            e.splice(1, 0, r, "color: inherit");
            var i = 0, o = 0;
            e[0].replace(/%[a-zA-Z%]/g, function (e) {
                "%%" !== e && "%c" === e && (o = ++i)
            }), e.splice(o, 0, r)
        }, t.save = function (e) {
            try {
                null == e ? t.storage.removeItem("debug") : t.storage.debug = e
            } catch (e) {
            }
        }, t.load = r, t.useColors = function () {
            if ("undefined" != typeof window && window.process && "renderer" === window.process.type) return !0;
            if ("undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) return !1;
            return "undefined" != typeof document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || "undefined" != typeof window && window.console && (window.console.firebug || window.console.exception && window.console.table) || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)
        }, t.storage = "undefined" != typeof chrome && void 0 !== chrome.storage ? chrome.storage.local : function () {
            try {
                return window.localStorage
            } catch (e) {
            }
        }(), t.colors = ["#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33"], t.formatters.j = function (e) {
            try {
                return JSON.stringify(e)
            } catch (e) {
                return "[UnexpectedJSONParseError]: " + e.message
            }
        }, t.enable(r())
    }, 114: function (e, t, n) {
        function r(e) {
            var n;

            function r() {
                if (r.enabled) {
                    var e = r, i = +new Date, o = i - (n || i);
                    e.diff = o, e.prev = n, e.curr = i, n = i;
                    for (var a = new Array(arguments.length), s = 0; s < a.length; s++) a[s] = arguments[s];
                    a[0] = t.coerce(a[0]), "string" != typeof a[0] && a.unshift("%O");
                    var l = 0;
                    a[0] = a[0].replace(/%([a-zA-Z%])/g, function (n, r) {
                        if ("%%" === n) return n;
                        l++;
                        var i = t.formatters[r];
                        if ("function" == typeof i) {
                            var o = a[l];
                            n = i.call(e, o), a.splice(l, 1), l--
                        }
                        return n
                    }), t.formatArgs.call(e, a), (r.log || t.log || console.log.bind(console)).apply(e, a)
                }
            }

            return r.namespace = e, r.enabled = t.enabled(e), r.useColors = t.useColors(), r.color = function (e) {
                var n, r = 0;
                for (n in e) r = (r << 5) - r + e.charCodeAt(n), r |= 0;
                return t.colors[Math.abs(r) % t.colors.length]
            }(e), r.destroy = i, "function" == typeof t.init && t.init(r), t.instances.push(r), r
        }

        function i() {
            var e = t.instances.indexOf(this);
            return -1 !== e && (t.instances.splice(e, 1), !0)
        }

        (t = e.exports = r.debug = r.default = r).coerce = function (e) {
            return e instanceof Error ? e.stack || e.message : e
        }, t.disable = function () {
            t.enable("")
        }, t.enable = function (e) {
            var n;
            t.save(e), t.names = [], t.skips = [];
            var r = ("string" == typeof e ? e : "").split(/[\s,]+/), i = r.length;
            for (n = 0; n < i; n++) r[n] && ("-" === (e = r[n].replace(/\*/g, ".*?"))[0] ? t.skips.push(new RegExp("^" + e.substr(1) + "$")) : t.names.push(new RegExp("^" + e + "$")));
            for (n = 0; n < t.instances.length; n++) {
                var o = t.instances[n];
                o.enabled = t.enabled(o.namespace)
            }
        }, t.enabled = function (e) {
            if ("*" === e[e.length - 1]) return !0;
            var n, r;
            for (n = 0, r = t.skips.length; n < r; n++) if (t.skips[n].test(e)) return !1;
            for (n = 0, r = t.names.length; n < r; n++) if (t.names[n].test(e)) return !0;
            return !1
        }, t.humanize = n(115), t.instances = [], t.names = [], t.skips = [], t.formatters = {}
    }, 115: function (e, t) {
        var n = 1e3, r = 60 * n, i = 60 * r, o = 24 * i, a = 365.25 * o;

        function s(e, t, n) {
            if (!(e < t)) return e < 1.5 * t ? Math.floor(e / t) + " " + n : Math.ceil(e / t) + " " + n + "s"
        }

        e.exports = function (e, t) {
            t = t || {};
            var l, c = typeof e;
            if ("string" === c && e.length > 0) return function (e) {
                if ((e = String(e)).length > 100) return;
                var t = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);
                if (!t) return;
                var s = parseFloat(t[1]);
                switch ((t[2] || "ms").toLowerCase()) {
                    case"years":
                    case"year":
                    case"yrs":
                    case"yr":
                    case"y":
                        return s * a;
                    case"days":
                    case"day":
                    case"d":
                        return s * o;
                    case"hours":
                    case"hour":
                    case"hrs":
                    case"hr":
                    case"h":
                        return s * i;
                    case"minutes":
                    case"minute":
                    case"mins":
                    case"min":
                    case"m":
                        return s * r;
                    case"seconds":
                    case"second":
                    case"secs":
                    case"sec":
                    case"s":
                        return s * n;
                    case"milliseconds":
                    case"millisecond":
                    case"msecs":
                    case"msec":
                    case"ms":
                        return s;
                    default:
                        return
                }
            }(e);
            if ("number" === c && !1 === isNaN(e)) return t.long ? s(l = e, o, "day") || s(l, i, "hour") || s(l, r, "minute") || s(l, n, "second") || l + " ms" : function (e) {
                if (e >= o) return Math.round(e / o) + "d";
                if (e >= i) return Math.round(e / i) + "h";
                if (e >= r) return Math.round(e / r) + "m";
                if (e >= n) return Math.round(e / n) + "s";
                return e + "ms"
            }(e);
            throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(e))
        }
    }, 116: function (e) {
        e.exports = {
            _args: [["axios@0.18.0", "D:\\thunder11\\trunk\\build\\app"]],
            _from: "axios@0.18.0",
            _id: "axios@0.18.0",
            _inBundle: !1,
            _integrity: "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
            _location: "/axios",
            _phantomChildren: {},
            _requested: {
                type: "version",
                registry: !0,
                raw: "axios@0.18.0",
                name: "axios",
                escapedName: "axios",
                rawSpec: "0.18.0",
                saveSpec: null,
                fetchSpec: "0.18.0"
            },
            _requiredBy: ["/", "/@types/axios", "/@xunlei/thunderx-login-main"],
            _resolved: "http://xnpm.repo.xunlei.cn/axios/-/axios-0.18.0.tgz",
            _spec: "0.18.0",
            _where: "D:\\thunder11\\trunk\\build\\app",
            author: {name: "Matt Zabriskie"},
            browser: {"./lib/adapters/http.js": "./lib/adapters/xhr.js"},
            bugs: {url: "https://github.com/axios/axios/issues"},
            bundlesize: [{path: "./dist/axios.min.js", threshold: "5kB"}],
            dependencies: {"follow-redirects": "^1.3.0", "is-buffer": "^1.1.5"},
            description: "Promise based HTTP client for the browser and node.js",
            devDependencies: {
                bundlesize: "^0.5.7",
                coveralls: "^2.11.9",
                "es6-promise": "^4.0.5",
                grunt: "^1.0.1",
                "grunt-banner": "^0.6.0",
                "grunt-cli": "^1.2.0",
                "grunt-contrib-clean": "^1.0.0",
                "grunt-contrib-nodeunit": "^1.0.0",
                "grunt-contrib-watch": "^1.0.0",
                "grunt-eslint": "^19.0.0",
                "grunt-karma": "^2.0.0",
                "grunt-ts": "^6.0.0-beta.3",
                "grunt-webpack": "^1.0.18",
                "istanbul-instrumenter-loader": "^1.0.0",
                "jasmine-core": "^2.4.1",
                karma: "^1.3.0",
                "karma-chrome-launcher": "^2.0.0",
                "karma-coverage": "^1.0.0",
                "karma-firefox-launcher": "^1.0.0",
                "karma-jasmine": "^1.0.2",
                "karma-jasmine-ajax": "^0.1.13",
                "karma-opera-launcher": "^1.0.0",
                "karma-safari-launcher": "^1.0.0",
                "karma-sauce-launcher": "^1.1.0",
                "karma-sinon": "^1.0.5",
                "karma-sourcemap-loader": "^0.3.7",
                "karma-webpack": "^1.7.0",
                "load-grunt-tasks": "^3.5.2",
                minimist: "^1.2.0",
                sinon: "^1.17.4",
                typescript: "^2.0.3",
                "url-search-params": "^0.6.1",
                webpack: "^1.13.1",
                "webpack-dev-server": "^1.14.1"
            },
            homepage: "https://github.com/axios/axios",
            keywords: ["xhr", "http", "ajax", "promise", "node"],
            license: "MIT",
            main: "index.js",
            name: "axios",
            repository: {type: "git", url: "git+https://github.com/axios/axios.git"},
            scripts: {
                build: "NODE_ENV=production grunt build",
                coveralls: "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",
                examples: "node ./examples/server.js",
                postversion: "git push && git push --tags",
                preversion: "npm test",
                start: "node ./sandbox/server.js",
                test: "grunt test && bundlesize",
                version: "npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json"
            },
            typings: "./index.d.ts",
            version: "0.18.0"
        }
    }, 117: function (e, t, n) {
        "use strict";
        var r = n(10);

        function i() {
            this.handlers = []
        }

        i.prototype.use = function (e, t) {
            return this.handlers.push({fulfilled: e, rejected: t}), this.handlers.length - 1
        }, i.prototype.eject = function (e) {
            this.handlers[e] && (this.handlers[e] = null)
        }, i.prototype.forEach = function (e) {
            r.forEach(this.handlers, function (t) {
                null !== t && e(t)
            })
        }, e.exports = i
    }, 118: function (e, t, n) {
        "use strict";
        var r = n(10), i = n(119), o = n(77), a = n(60), s = n(120), l = n(121);

        function c(e) {
            e.cancelToken && e.cancelToken.throwIfRequested()
        }

        e.exports = function (e) {
            return c(e), e.baseURL && !s(e.url) && (e.url = l(e.baseURL, e.url)), e.headers = e.headers || {}, e.data = i(e.data, e.headers, e.transformRequest), e.headers = r.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers || {}), r.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function (t) {
                delete e.headers[t]
            }), (e.adapter || a.adapter)(e).then(function (t) {
                return c(e), t.data = i(t.data, t.headers, e.transformResponse), t
            }, function (t) {
                return o(t) || (c(e), t && t.response && (t.response.data = i(t.response.data, t.response.headers, e.transformResponse))), Promise.reject(t)
            })
        }
    }, 119: function (e, t, n) {
        "use strict";
        var r = n(10);
        e.exports = function (e, t, n) {
            return r.forEach(n, function (n) {
                e = n(e, t)
            }), e
        }
    }, 12: function (e, t) {
        e.exports = require("os")
    }, 120: function (e, t, n) {
        "use strict";
        e.exports = function (e) {
            return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)
        }
    }, 121: function (e, t, n) {
        "use strict";
        e.exports = function (e, t) {
            return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e
        }
    }, 122: function (e, t, n) {
        "use strict";
        var r = n(78);

        function i(e) {
            if ("function" != typeof e) throw new TypeError("executor must be a function.");
            var t;
            this.promise = new Promise(function (e) {
                t = e
            });
            var n = this;
            e(function (e) {
                n.reason || (n.reason = new r(e), t(n.reason))
            })
        }

        i.prototype.throwIfRequested = function () {
            if (this.reason) throw this.reason
        }, i.source = function () {
            var e;
            return {
                token: new i(function (t) {
                    e = t
                }), cancel: e
            }
        }, e.exports = i
    }, 123: function (e, t, n) {
        "use strict";
        e.exports = function (e) {
            return function (t) {
                return e.apply(null, t)
            }
        }
    }, 13: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), t.assert = t.log = t.error = t.warn = t.info = t.trace = t.timeEnd = t.time = t.traceback = void 0;
        const r = n(2);
        let i, o = console;

        function a(e = 5) {
            let t = /at\s+(.*)\s+\((.*):(\d*):(\d*)\)/i, n = /at\s+()(.*):(\d*):(\d*)/i,
                i = (new Error).stack.split("\n").slice(e + 1);
            i.shift();
            let o = [];
            return i.forEach((e, i) => {
                let a = t.exec(e) || n.exec(e), s = {};
                a && 5 === a.length && (s.method = a[1], s.path = a[2], s.line = a[3], s.pos = a[4], s.file = r.basename(s.path), o.push(s))
            }), o
        }

        if (i = "renderer" === process.type ? "[Renderer] [async-remote]:" : "browser" === process.type ? "[Browser] [async-remote]:" : `[${process.type}] [async-remote]`, t.traceback = function (e = 5) {
            return a(e).map(e => e.method + "@(" + e.file + ")").join(" <= ")
        }, t.time = function (...e) {
            o.time(...e)
        }, t.timeEnd = function (...e) {
            o.timeEnd(...e)
        }, t.trace = function (...e) {
            let t = a(), n = "";
            t[0] && t[0].method && (n = n), o.trace(i, ...e)
        }, t.info = function (...e) {
            let t = a(), n = "anonymous";
            t[0] && t[0].method && (n = n), o.info(i, "[" + n + "]", e.join(","))
        }, t.warn = function (...e) {
            let t = a(), n = "";
            t[0] && t[0].method && (n = n), o.warn("<WARN>" + i, "[" + n + "]", e.join(","))
        }, t.error = function (...e) {
            let t = a(), n = "";
            t[0] && t[0].method && (n = n), o.error("<ERROR>" + i, "[" + n + "]", e.join(","))
        }, t.log = function (...e) {
            o.log(i, ...e)
        }, t.assert = function (e, t) {
            if (!e) throw new Error(t)
        }, !process.env.DEBUG_ASYNC_REMOTE) {
            let e = function () {
            };
            t.traceback = e, t.time = e, t.timeEnd = e, t.trace = e, t.info = e, t.warn = e, t.error = e, t.log = e, t.assert = e
        }
    }, 136: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(4), o = n(1), a = n(100), s = n(6), l = o.default.getLogger("FetchRes"), c = {
            mock: "http://easy-mock.com/mock/59f0652c1bd72e7a888988ab/sl",
            test: "http://test.api-shoulei-ssl.xunlei.com",
            prod: "http://api-shoulei-ssl.xunlei.com"
        };

        function d(e) {
            return (e = (e = encodeURIComponent(e)).replace(/\(/g, "%29")).replace(/\)/g, "%28")
        }

        function u({url: e, data: t, method: o = "get"}, c = "prod") {
            return r(this, arguments, void 0, function* () {
                l.information("fetchFromApiProxy", arguments);
                try {
                    const r = yield Promise.all([i.client.callServerFunction("GetUserID"), i.client.callServerFunction("GetSessionID"), i.client.callServerFunction("GetPeerID")]), [u, f, p] = r;
                    l.information(r);
                    let h = {
                        _h: Object.assign({
                            "Account-Id": u,
                            "Peer-Id": p,
                            "User-Id": u,
                            "Session-Id": f,
                            "App-Type": "pc_xunlei"
                        }, t && t._h || {})
                    };
                    t && t._h && delete t._h, t && (t.peer_id = p);
                    let m = {
                        accesskey: "pc.xunlei",
                        nonce: Math.floor(99999999 * Math.random()).toString(),
                        timestamp: Math.floor((new Date).getTime() / 1e3).toString()
                    }, v = {};
                    "get" === o && t && (v = t, t = null);
                    for (let e in v) s.isObject(v[e]) || (m[e] = v[e]);
                    let g = [];
                    for (let e in m) g.push(d(e) + "%3D" + d(m[e]));
                    g.sort();
                    let y = d(e), b = o.toUpperCase() + "&" + y + "&", C = "";
                    for (let e = 0; e < g.length - 1; ++e) C += g[e] + "%26";
                    let w, x = b + (C += g[g.length - 1]);
                    !t || "post" !== o && "put" !== o || (x += "%26" + JSON.stringify(t)), l.information("message: ", x), w = "test" === c ? "c9879c94a55474304cca0abafb867653" : "89917368930f3fea5bafebe704d6b623";
                    let S = a.ToolsUtilitiesAWNS.encryptHmacBuffer("sha1", w, x, "base64");
                    S = (S = S.replace(/\+/g, "-")).replace(/\//g, "_");
                    let T = e + "?";
                    for (let e in m) T += d(e) + "=" + d(m[e]) + "&";
                    T += "sig=" + S, l.information("fetchFromApiProxy method", o, ", uri", T, ", data", t, ", headers", h._h);
                    const R = yield n(38);
                    return R.defaults.adapter = n(25), R.defaults.headers["Content-Type"] = "post" === o ? "application/json" : "application/x-www-form-urlencoded", R.request({
                        method: o,
                        url: T,
                        data: t,
                        headers: h._h
                    }).then(e => (l.information("fetchFromApiProxy success", e), e)).catch(e => (l.information("fetchFromApiProxy failed", e), {error: e}))
                } catch (e) {
                    return {error: e}
                }
            })
        }

        function f({url: e, data: t, method: n = "get"}, o = "prod") {
            return r(this, void 0, void 0, function* () {
                let r = c[o],
                    a = yield i.client.callServerFunction("GetValue", "ConfigFetchInterface", "TestServer", 0);
                return 1 === a && (r = c[o = "test"]), l.information("当前fetchSlRes 是否测试服:", a, " 远程地址:", r), u({
                    url: `${r}${e}`,
                    data: t,
                    method: n
                }, o)
            })
        }

        t.fetchFromApiProxy = u, t.fetchSlRes = f, t.fetchPCRes = function ({
                                                                                url: e,
                                                                                data: t,
                                                                                method: n = "get"
                                                                            }, i = "prod") {
            return r(this, void 0, void 0, function* () {
                return f({url: e, data: t, method: n}, i)
            })
        }, t.fetchPCRequest = function ({url: e, data: t, method: o = "get"}, a = "prod") {
            return r(this, void 0, void 0, function* () {
                let r = c[a],
                    s = yield i.client.callServerFunction("GetValue", "ConfigFetchInterface", "TestServer", 0);
                1 === s && (r = c[a = "test"]), l.information("当前fetchPCRequest 是否测试服:", s, " 远程地址:", r);
                let d = {_h: Object.assign({}, t && t._h || {})};
                t && t._h && delete t._h;
                const u = yield n(38);
                u.defaults.adapter = n(25), u.defaults.headers["Content-Type"] = "post" === o ? "application/json" : "application/x-www-form-urlencoded";
                try {
                    return u.request({
                        method: o,
                        url: `${r}${e}`,
                        params: "get" === o && t ? t : {},
                        data: "post" === o && t ? t : {},
                        headers: d._h
                    }).then(e => (l.information("fetchRequest success", e), e)).catch(e => (l.information("fetchRequest fail", e), {error: e}))
                } catch (e) {
                    return {error: e}
                }
            })
        }, t.fetchRequest = function ({url: e, data: t, method: i = "get"}) {
            return r(this, arguments, void 0, function* () {
                l.information("fetchRequest", arguments);
                try {
                    const r = yield n(38);
                    return r.defaults.adapter = n(25), r.defaults.headers["Content-Type"] = "post" === i ? "application/json" : "application/x-www-form-urlencoded", r.request({
                        method: i,
                        url: e,
                        params: "get" === i && t ? t : {},
                        data: "post" === i && t ? t : {}
                    }).then(e => (l.information("fetchRequest success", e), e)).catch(e => (l.information("fetchRequest fail", e), {error: e}))
                } catch (e) {
                    return {error: e}
                }
            })
        }
    }, 138: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(2), i = n(1), o = n(16), a = n(43), s = n(22), l = n(9), c = i.default.getLogger("ThunderNewTask"),
            d = l.default(r.join(__rootDir, "../bin/ThunderHelper.node")),
            u = ".asf;.avi;.exe;.iso;.mp3;.mpeg;.mpg;.mpga;.ra;.rar;.rm;.rmvb;.tar;.wma;.wmp;.wmv;\n  .mov;.zip;.3gp;.chm;.mdf;.torrent;.jar;.msi;.arj;.bin;.dll;.psd;.hqx;.sit;.lzh;.gz;.tgz;.xlsx;.xls;.doc;.docx;.ppt;\n  .pptx;.flv;.swf;.mkv;.tp;.ts;.flac;.ape;.wav;.aac;.txt;.dat;.7z;.ttf;.bat;.xv;.xvx;.pdf;.mp4;.apk;.ipa;.epub;.mobi;\n  .deb;.sisx;.cab;.pxl;.dmg;.msu;",
            f = ".a;.a3m;.a3w;.a4m;.a4p;.a4w;.a5w;.aam;.aas;.abf;.abk;.abs;.ace;.acm;.acp;.act;.ad;\n  .ada;.adb;.adf;.adi;.adm;.adp;.adr;.ads;.af2;.af3;.afm;.ai;.aif;.aifc;.aiff;.aim;.ais;.akw;.alb;.all;.ams;.anc;.ani;\n  .ans;.ant;.api;.aps;.ari;.arj;.art;.asa;.asc;.asd;.ase;.asf;.asm;.aso;.asp;.asv;.asx;.atw;.au;.avb;.avi;.avr;.avs;\n  .awd;.awr;.axx;.bak;.bas;.bat;.bdf;.bgl;.bi;.bif;.biff;.bin;.bk;.bk$;.bks;.bmk;.bmp;.book;.brx;.bsp;.btm;.bud;.bun;\n  .bw;.bwv;.c;.cab;.cad;.cal;.cap;.cas;.cb;.cc;.ccb;.cch;.cco;.cct;.cda;.cdf;.cdi;.cdm;.cdr;.cdt;.cdx;.cfg;.cgi;.cgm;\n  .chk;.chm;.chr;.cif;.cil;.class;.cll;.clp;.cls;.cmf;.cmv;.cmx;.cnf;.cnm;.cnt;.cod;.com;.cpl;.cpo;.cpp;.cpr;.cpt;.cpx;\n  .crd;.crp;.crt;.csc;.csp;.cst;.csv;.ctl;.cur;.cv;.cxx;.dat;.db;.dbc;.dbf;.dbx;.dcm;.dcs;.dct;.dcu;.dcx;.dem;.der;.dewf;\n  .dib;.dic;.dif;.dig;.dir;.diz;.dlg;.dll;.dls;.dmd;.dmf;.doc;.dot;.draw;.drv;.drw;.dsf;.dsg;.dsm;.dsp;.dsq;.dsw;.dtd;\n  .dun;.dv;.dxf;.dxr;.eda;.edd;.emd;.emf;.eml;.ephtml;.eps;.exe;.fav;.fax;.fcd;.fdf;.ffa;.ffk;.ffl;.ffo;.fif;.fla;.flc;\n  .fm;.fml;.fng;.fnk;.fon;.fot;.frt;.frx;.ftg;.fts;.gal;.gdb;.gdm;.gem;.gen;.getright;.gfi;.gfx;.gho;.gif;.gim;.gix;.gkh;\n  .gks;.gl;.gna;.gnt;.gnx;.gra;.grf;.grp;.hcom;.hgl;.hlp;.hpj;.hpp;.hst;.ht;.htm;.html;.htt;.htx;.icb;.icc;.icl;.icm;.ico;\n  .idd;.idf;.idq;.idx;.iff;.iges;.igf;.ilbm;.ima;.inf;.ini;.inrs;.ins;.int;.iqy;.iso;.ist;.isu;.iwc;.j62;.jar;.java;.jbf;\n  .jff;.jfif;.jif;.jmp;.jpe;.jpeg;.jpg;.js;.jsp;.jtf;.k25;.kar;.kdc;.key;.kfx;.kiz;.kkw;.kmp;.kqp;.lab;.lbm;.lbt;.lbx;.ldb;\n  .ldl;.leg;.lft;.lgo;.lha;.lib;.lin;.lis;.llx;.lnk;.log;.lst;.lu;.lyr;.lzh;.lzs;.m1v;.m3u;.mad;.maf;.mam;.map;.maq;.mar;.mat;\n  .mb1;.mbx;.mcr;.mdb;.mde;.mdl;.mdn;.mdw;.mdz;.mic;.mid;.mim;.mime;.mli;.mme;.mng;.mnu;.mod;.mov;.mp2;.mp3;.mpa;.mpe;.mpeg;\n  .mpg;.mpp;.mpr;.msg;.msi;.msn;.msp;.mst;.mtm;.nan;.nap;.ncb;.ncd;.ncf;.nff;.nft;.nil;.nist;.nls;.nlu;.ntx;.nwc;.nws;.obj;\n  .ocx;.ods;.ofn;.oft;.olb;.ole;.oogl;.opo;.p65;.pab;.part;.pas;.pbd;.pbl;.pbm;.pbr;.pcd;.pcl;.pcm;.pdd;.pdf;.pfm;.pgl;.pgm;\n  .ph;.php;.php3;.phtml;.pic;.pjt;.pjx;.pkg;.pli;.png;.pot;.ppa;.ppf;.ppm;.pps;.ppt;.prf;.prg;.prj;.prn;.prt;.psd;.psp;.pst;\n  .pwz;.qic;.qif;.qlb;.qry;.qtp;.qtx;.qw;.ra;.ram;.rar;.rdf;.reg;.rep;.res;.rft;.rgb;.rm;.rmd;.rpt;.rtf;.rul;.rvp;.s;.sav;.sbl;\n  .scc;.scf;.scp;.scr;.sct;.scx;.sdt;.sdv;.sdx;.sep;.sfd;.sfi;.sfr;.sfx;.sgi;.sgml;.shg;.shtml;.shw;.sig;.ska;.skl;.sl;.spl;\n  .sqc;.sqr;.str;.swa;.swf;.sys;.syw;.taz;.tga;.theme;.thn;.tif;.tiff;.tig;.tlb;.tmp;.tol;.tpl;.trm;.trn;.ttf;.txt;.txw;.udf;\n  .ult;.url;.use;.uwf;.vbp;.vbp;.vbw;.vbw;.vbx;.vbx;.vct;.vcx;.vda;.vda;.vir;.vir;.viv;.vqf;.vsd;.vsd;.vsl;.vsl;.vss;.vss;.vst;\n  .vst;.vsw;.vsw;.vxd;.vxd;.w3l;.wab;.wad;.wav;.wbk;.wcm;.wdb;.wfm;.wfn;.wil;.wiz;.wll;.wmf;.wow;.wp;.wpd;.wpf;.wpg;.wps;.wpt;.wr1;\n  .wrk;.wrl;.wrz;.x;.x16;.x32;.xar;.xbm;.xi;.xla;.xlb;.xlc;.xld;.xlk;.xll;.xlm;.xls;.xlt;.xlv;.xlw;.xnk;.xpm;.xwd;.xwf;.yal;.z;.zap;.zip;";
        !function (e) {
            function t(e) {
                let t = !1;
                do {
                    if (void 0 === e || null === e) break;
                    if ("" === e || "." === e) break;
                    if (u.indexOf(e) > -1) {
                        t = !0;
                        break
                    }
                } while (0);
                return t
            }

            function n(e) {
                let t = !1;
                do {
                    if (void 0 === e || null === e) break;
                    if ("" === e) break;
                    if (e.match(/[\/\\"<>\?\*|]/)) break;
                    t = !0
                } while (0);
                return t
            }

            function i(e) {
                let n = !1;
                do {
                    if (void 0 === e || null === e) break;
                    if ("" === e || "." === e) break;
                    let r = a.TaskUtilHelper.getTaskFileType(void 0, e);
                    if (r === a.TaskUtilHelper.FileExtType.Video || r === a.TaskUtilHelper.FileExtType.Music || r === a.TaskUtilHelper.FileExtType.Pic) {
                        n = !0;
                        break
                    }
                    n = t(e)
                } while (0);
                return n
            }

            function l(e) {
                let t = !1, o = r.parse(e);
                return t = n(o.name) && i(o.ext)
            }

            function p(e) {
                let t = {};
                do {
                    if (void 0 === e || null === e) break;
                    c.information("parseDynamicUrlArgs");
                    let n = /([^&=?]+)=([^&]*)/g;
                    for (; n.exec(e);) t[RegExp.$1] = RegExp.$2;
                    c.information("parseDynamicUrlArgs ret ", t)
                } while (0);
                return t
            }

            function h(e) {
                let t = {pageFileName: void 0, args: void 0};
                do {
                    if (void 0 === e || null === e) break;
                    c.information("parseDynamicUrlPath"), e.match(/[\/]?([^?]*)\?([^\s]*)/) ? (t.pageFileName = RegExp.$1, t.args = RegExp.$2) : (t.pageFileName = e, t.args = ""), c.information("parseDynamicUrlPath ret", t)
                } while (0);
                return t
            }

            function m(e) {
                let t = "";
                do {
                    if (void 0 === e || null === e) break;
                    let n = h(e);
                    if (void 0 !== n.args) {
                        let e = p(n.args);
                        for (let n in e) {
                            let r = e[n];
                            if (l(r)) {
                                t = r;
                                break
                            }
                        }
                    }
                    void 0 !== n.pageFileName && l(n.pageFileName) && (t = n.pageFileName)
                } while (0);
                return t
            }

            function v(e) {
                let t = [];
                do {
                    if (void 0 === e || null === e) break;
                    let n = m(e);
                    if ("" !== n && !t.includes(n)) {
                        let e = g(n);
                        t.push(e)
                    }
                    let r = g(e);
                    t.includes(r) || t.push(r)
                } while (0);
                return t
            }

            function g(e) {
                return d.parseFileNameFromP2spUrlPath(e)
            }

            function y(e) {
                return d.isThunderPrivateUrl(e)
            }

            function b(e) {
                return d.parseEd2kUrl(e)
            }

            function C(e) {
                return d.parseUrl(e)
            }

            e.isDownloadFileExtName = t, e.isIllegalFileName = n, e.isGoodFileExtName = i, e.isUsualFileExtName = function (e) {
                let t = !1;
                do {
                    if (void 0 === e || null === e) break;
                    if ("" === e || "." === e) break;
                    if (i(e)) {
                        t = !0;
                        break
                    }
                    if (f.indexOf(e) > -1) {
                        t = !0;
                        break
                    }
                } while (0);
                return t
            }, e.isGoodFileName = l, e.parseDynamicUrlArgs = p, e.parseDynamicUrlPath = h, e.parseFileNameFromDynamicUrlPath = m, e.getFileNameListFromUrlPath = v, e.getNameFromUrl = function (e) {
                let t = "index.html", n = s.ThunderHelper.getTaskTypeFromUrl(e);
                if (n === o.DownloadKernel.TaskType.P2sp) {
                    let n = C(e);
                    if (n) {
                        let e = v(n.fullPath);
                        e.length > 0 && (t = e[0])
                    } else {
                        let n = /:\/\/.*?\[.+?\].*(\/.+)/.exec(e);
                        if (n && n[1]) {
                            let e = v(n[1]);
                            e.length > 0 && (t = e[0])
                        }
                    }
                } else n === o.DownloadKernel.TaskType.Emule && (t = b(e).fileName);
                return t.replace(/[*?/\\:|<>\"]/g, "_")
            }, e.parseFileNameFromP2spUrlPath = g, e.isThunderPrivateUrl = y, e.parseThunderPrivateUrl = function (e) {
                let t = {url: e, codePage: -1};
                return y(e) && (t = d.parseThunderPrivateUrl(e)), t
            }, e.parseEd2kUrl = b, e.parseUrl = C, e.parseMagnetUrl = function (e) {
                return d.parseMagnetUrl(e)
            }, e.makeUrl = function (e) {
                return d.makeUrl(e)
            }
        }(t.ParseUrlFileNameNS || (t.ParseUrlFileNameNS = {}))
    }, 14: function (e, t) {
        e.exports = require("events")
    }, 15: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(2), o = n(9), a = n(1).default.getLogger("XLStat");
        let s = o.default(i.join(__rootDir, "../bin/ThunderHelper.node"));

        function l(e = "") {
            let t;
            if ("string" == typeof e) t = e; else if (c(e) && "object" == typeof e) {
                let n = [];
                for (let t in e) c(e[t]) && n.push(t + "=" + encodeURIComponent(e[t]));
                t = n.join(",")
            }
            return t
        }

        function c(e) {
            return void 0 !== e && null !== e
        }

        !function (e) {
            let t = null;

            function n() {
                return t || (t = s.xlstat4), t
            }

            function i(e, t = "", i = "", o = 0, s = 0, c = 0, d = 0, u = "", f = 0) {
                return r(this, void 0, void 0, function* () {
                    let r = 0;
                    do {
                        if (void 0 === e) {
                            r = 1;
                            break
                        }
                        let p = l(u);
                        r = "browser" === process.type ? yield new Promise(a => {
                            r = n().asyncTrackEvent(e, t, i, o, s, c, d, p, f, e => {
                                a(e)
                            })
                        }) : n().trackEvent(e, t, i, o, s, c, d, p, f), a.information(e, t, i, o, s, c, d, p, f)
                    } while (0);
                    return r
                })
            }

            function o(e, t = 0) {
                do {
                    if (void 0 === e) break;
                    "browser" !== process.type && n().trackClick(e, t)
                } while (0)
            }

            e.asyncTrackEvent = i, e.trackEvent = function (e, t = "", n = "", r = 0, o = 0, a = 0, s = 0, l = "", c = 0) {
                i(e, t, n, r, o, a, s, l, c).catch()
            }, e.trackClick = o, e.trackShow = function (e, t = 0) {
                o(e, t)
            }, e.setUserID = function (e = 0, t = 0) {
                "browser" !== process.type && n().setUserID(e, t)
            }, e.initParam = function (e) {
                return r(this, void 0, void 0, function* () {
                    let t = -1;
                    return t = "browser" === process.type ? yield new Promise(t => {
                        n().asyncInitParam(e, (e, n) => {
                            t(e ? n : -1)
                        })
                    }) : yield new Promise(t => {
                        n().initParamRemote(e, e => {
                            t(e)
                        })
                    })
                })
            }, e.asyncUninit = function (e) {
                return r(this, void 0, void 0, function* () {
                    "browser" === process.type && (yield new Promise(t => {
                        n().asyncUninit(e, () => {
                            t()
                        })
                    }))
                })
            }, e.uninit = function () {
                "browser" === process.type && n().waitFinish()
            }
        }(t.XLStatNS || (t.XLStatNS = {}))
    }, 16: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), function (e) {
            let t, n, r, i, o, a, s, l, c, d, u, f, p, h, m, v, g, y, b, C, w, x;
            !function (e) {
                e[e.Unkown = 0] = "Unkown", e[e.Create = 1] = "Create", e[e.InvaldParam = 2] = "InvaldParam", e[e.InvaldLink = 3] = "InvaldLink", e[e.InvaldConfig = 4] = "InvaldConfig", e[e.Timeout = 5] = "Timeout", e[e.VerifyData = 6] = "VerifyData", e[e.Forbidden = 7] = "Forbidden", e[e.RangeDispatch = 8] = "RangeDispatch", e[e.FilePathOverRanging = 9] = "FilePathOverRanging", e[e.FileCreate = 201] = "FileCreate", e[e.FileWrite = 202] = "FileWrite", e[e.FileRead = 203] = "FileRead", e[e.FileRename = 204] = "FileRename", e[e.FileFull = 205] = "FileFull", e[e.FileOccupied = 211] = "FileOccupied", e[e.FileAccessDenied = 212] = "FileAccessDenied", e[e.BtUploadExist = 601] = "BtUploadExist", e[e.ForbinddenResource = 701] = "ForbinddenResource", e[e.ForbinddenAccount = 702] = "ForbinddenAccount", e[e.ForbinddenArea = 703] = "ForbinddenArea", e[e.ForbinddenCopyright = 704] = "ForbinddenCopyright", e[e.ForbinddenReaction = 705] = "ForbinddenReaction", e[e.ForbinddenPorn = 706] = "ForbinddenPorn", e[e.DownloadSDKCrash = 10001] = "DownloadSDKCrash", e[e.torrentFileNotExist = 10002] = "torrentFileNotExist"
            }(t = e.TaskError || (e.TaskError = {})), function (e) {
                e[e.Unkown = -1] = "Unkown", e[e.Success = 0] = "Success", e[e.QueryFailed = 1] = "QueryFailed", e[e.ServerError = 2] = "ServerError", e[e.ResourceNotFound = 3] = "ResourceNotFound", e[e.AuthorizingFailed = 4] = "AuthorizingFailed", e[e.ForbidByCopyright = 5] = "ForbidByCopyright", e[e.ForbidByPorNoGraphy = 6] = "ForbidByPorNoGraphy", e[e.ForbidByReactionary = 7] = "ForbidByReactionary", e[e.ForbidByOtherFilter = 8] = "ForbidByOtherFilter"
            }(n = e.DcdnStatusCode || (e.DcdnStatusCode = {})), function (e) {
                e[e.Begin = -1] = "Begin", e[e.Unkown = 0] = "Unkown", e[e.StandBy = 1] = "StandBy", e[e.PreDownloading = 2] = "PreDownloading", e[e.StartWaiting = 3] = "StartWaiting", e[e.StartPending = 4] = "StartPending", e[e.Started = 5] = "Started", e[e.StopPending = 6] = "StopPending", e[e.Stopped = 7] = "Stopped", e[e.Succeeded = 8] = "Succeeded", e[e.Failed = 9] = "Failed", e[e.Seeding = 10] = "Seeding", e[e.DestroyPending = 11] = "DestroyPending", e[e.End = 12] = "End"
            }(r = e.TaskStatus || (e.TaskStatus = {})), function (e) {
                e[e.Begin = -1] = "Begin", e[e.StandBy = 0] = "StandBy", e[e.Stopped = 1] = "Stopped", e[e.Started = 2] = "Started", e[e.Complete = 3] = "Complete", e[e.Forbidden = 4] = "Forbidden", e[e.Error = 5] = "Error", e[e.End = 6] = "End"
            }(i = e.BtFileStatus || (e.BtFileStatus = {})), function (e) {
                e[e.DispatchStrategyNone = 0] = "DispatchStrategyNone", e[e.DispatchStrategyOrigin = 1] = "DispatchStrategyOrigin", e[e.DispatchStrategyP2s = 2] = "DispatchStrategyP2s", e[e.DispatchStrategyP2p = 4] = "DispatchStrategyP2p", e[e.DispatchStrategyAll = -1] = "DispatchStrategyAll"
            }(o = e.DispatchStrategy || (e.DispatchStrategy = {})), function (e) {
                e[e.Unkown = 0] = "Unkown", e[e.P2sp = 1] = "P2sp", e[e.Bt = 2] = "Bt", e[e.Emule = 3] = "Emule", e[e.Group = 4] = "Group", e[e.Magnet = 5] = "Magnet"
            }(a = e.TaskType || (e.TaskType = {})), function (e) {
                e[e.Invalid = 0] = "Invalid", e[e.P2sp = 1] = "P2sp", e[e.Emule = 2] = "Emule"
            }(s = e.TaskCfgType || (e.TaskCfgType = {})), function (e) {
                e.Unkown = "Unkown", e.Downloading = "Downloading", e.Completed = "Completed", e.Recycle = "Recycle"
            }(l = e.CategroyViewID || (e.CategroyViewID = {})), function (e) {
                e[e.Unknow = 0] = "Unknow", e[e.TaskCreated = 1] = "TaskCreated", e[e.InsertToCategoryView = 2] = "InsertToCategoryView", e[e.RemoveFromCategoryView = 3] = "RemoveFromCategoryView", e[e.StatusChanged = 4] = "StatusChanged", e[e.DetailChanged = 5] = "DetailChanged", e[e.ChannelInfoChanged = 6] = "ChannelInfoChanged", e[e.DcdnStatusChanged = 7] = "DcdnStatusChanged", e[e.TaskDescriptionChanged = 8] = "TaskDescriptionChanged", e[e.TaskUserRead = 9] = "TaskUserRead", e[e.TaskRenamed = 10] = "TaskRenamed", e[e.TaskMovedEnd = 11] = "TaskMovedEnd", e[e.TaskMovingStateChange = 12] = "TaskMovingStateChange", e[e.BtSubFileDetailChanged = 13] = "BtSubFileDetailChanged", e[e.BtSubFileLoaded = 14] = "BtSubFileLoaded", e[e.BtSubFileForbidden = 15] = "BtSubFileForbidden", e[e.BtSubFileDcdnStatusChanged = 16] = "BtSubFileDcdnStatusChanged", e[e.TaskCategoryMovedEnd = 17] = "TaskCategoryMovedEnd", e[e.GroupTaskSubFileDetailChanged = 18] = "GroupTaskSubFileDetailChanged", e[e.TaskDestroying = 19] = "TaskDestroying", e[e.TaskDestroyed = 20] = "TaskDestroyed"
            }(c = e.TaskEventType || (e.TaskEventType = {})), function (e) {
                e[e.NumberStrart = 0] = "NumberStrart", e[e.TaskId = 1] = "TaskId", e[e.VirtualId = 2] = "VirtualId", e[e.SrcTotal = 3] = "SrcTotal", e[e.SrcUsing = 4] = "SrcUsing", e[e.FileSize = 5] = "FileSize", e[e.ReceivedSize = 6] = "ReceivedSize", e[e.DownloadSize = 7] = "DownloadSize", e[e.TotalDownloadSize = 8] = "TotalDownloadSize", e[e.CreateTime = 9] = "CreateTime", e[e.CompletionTime = 10] = "CompletionTime", e[e.DownloadingPeriod = 11] = "DownloadingPeriod", e[e.Progress = 12] = "Progress", e[e.RecycleTime = 13] = "RecycleTime", e[e.FileCreated = 14] = "FileCreated", e[e.Forbidden = 15] = "Forbidden", e[e.CategoryId = 16] = "CategoryId", e[e.UserRead = 17] = "UserRead", e[e.OpenOnComplete = 18] = "OpenOnComplete", e[e.GroupTaskId = 19] = "GroupTaskId", e[e.DownloadSubTask = 20] = "DownloadSubTask", e[e.NameType = 21] = "NameType", e[e.OwnerProduct = 22] = "OwnerProduct", e[e.FileIndex = 23] = "FileIndex", e[e.NameFixed = 24] = "NameFixed", e[e.ValidDownloadSize = 25] = "ValidDownloadSize", e[e.RealDownloadSize = 26] = "RealDownloadSize", e[e.ResourceLegal = 27] = "ResourceLegal", e[e.TaskType = 28] = "TaskType", e[e.ErrorCode = 29] = "ErrorCode", e[e.PlayPosition = 30] = "PlayPosition", e[e.Duration = 31] = "Duration", e[e.NumberEnd = 32] = "NumberEnd", e[e.BooleanStart = 4096] = "BooleanStart", e[e.Destroyed = 4097] = "Destroyed", e[e.Background = 4098] = "Background", e[e.Moving = 4099] = "Moving", e[e.BooleanEnd = 4100] = "BooleanEnd", e[e.StringStart = 8192] = "StringStart", e[e.TaskName = 8193] = "TaskName", e[e.SavePath = 8194] = "SavePath", e[e.RelativePath = 8195] = "RelativePath", e[e.TaskUrl = 8196] = "TaskUrl", e[e.RefUrl = 8197] = "RefUrl", e[e.Cid = 8198] = "Cid", e[e.Gcid = 8199] = "Gcid", e[e.Cookie = 8200] = "Cookie", e[e.ProductInfo = 8201] = "ProductInfo", e[e.Origin = 8202] = "Origin", e[e.Description = 8203] = "Description", e[e.UserData = 8204] = "UserData", e[e.OriginName = 8205] = "OriginName", e[e.HTTPContentType = 8206] = "HTTPContentType", e[e.CategoryViewId = 8207] = "CategoryViewId", e[e.YunTaskId = 8208] = "YunTaskId", e[e.StringEnd = 8209] = "StringEnd", e[e.ObjectStart = 12288] = "ObjectStart", e[e.ObjectEnd = 12289] = "ObjectEnd"
            }(d = e.TaskAttribute || (e.TaskAttribute = {})), function (e) {
                e[e.UnKnown = 0] = "UnKnown", e[e.SrcTotal = 1] = "SrcTotal", e[e.SrcUsing = 2] = "SrcUsing", e[e.FileSize = 4] = "FileSize", e[e.ReceivedSize = 8] = "ReceivedSize", e[e.DownloadSize = 16] = "DownloadSize", e[e.CompletionTime = 32] = "CompletionTime", e[e.DownloadingPeriod = 64] = "DownloadingPeriod", e[e.Progress = 128] = "Progress", e[e.RecycleTime = 256] = "RecycleTime", e[e.FileCreated = 512] = "FileCreated", e[e.Forbidden = 1024] = "Forbidden", e[e.UserRead = 2048] = "UserRead", e[e.OpenOnComplete = 4096] = "OpenOnComplete", e[e.DownloadSubTask = 8192] = "DownloadSubTask", e[e.TaskName = 16384] = "TaskName", e[e.SavePath = 32768] = "SavePath", e[e.Cid = 65536] = "Cid", e[e.Gcid = 131072] = "Gcid", e[e.UserData = 262144] = "UserData", e[e.CategoryViewId = 524288] = "CategoryViewId", e[e.ErrorCode = 1048576] = "ErrorCode", e[e.TaskSpeed = 2097152] = "TaskSpeed", e[e.ChannelInfo = 4194304] = "ChannelInfo", e[e.ValidDownloadSize = 8388608] = "ValidDownloadSize", e[e.OriginName = 16777216] = "OriginName", e[e.HTTPContentType = 33554432] = "HTTPContentType", e[e.PlayPosition = 67108864] = "PlayPosition", e[e.Duration = 134217728] = "Duration", e[e.YunTaskId = 268435456] = "YunTaskId"
            }(u = e.TaskDetailChangedFlags || (e.TaskDetailChangedFlags = {})), function (e) {
                e[e.UnKnown = 0] = "UnKnown"
            }(f = e.BtSubFileDetailChangedFlags || (e.BtSubFileDetailChangedFlags = {})), function (e) {
                e[e.UnKnown = 0] = "UnKnown"
            }(p = e.GroupTaskSubFileDetailChangedFlags || (e.GroupTaskSubFileDetailChangedFlags = {})), function (e) {
                e[e.NumberStrart = 0] = "NumberStrart", e[e.TaskId = 1] = "TaskId", e[e.FileStatus = 2] = "FileStatus", e[e.DownloadSize = 3] = "DownloadSize", e[e.FileSize = 4] = "FileSize", e[e.EnableDcdn = 5] = "EnableDcdn", e[e.ErrorCode = 6] = "ErrorCode", e[e.DcdnStatus = 7] = "DcdnStatus", e[e.RealIndex = 8] = "RealIndex", e[e.FileOffset = 9] = "FileOffset", e[e.Visible = 10] = "Visible", e[e.Download = 11] = "Download", e[e.UserRead = 12] = "UserRead", e[e.PlayPosition = 13] = "PlayPosition", e[e.Duration = 14] = "Duration", e[e.NumberEnd = 15] = "NumberEnd", e[e.StringStart = 4096] = "StringStart", e[e.FinalName = 4097] = "FinalName", e[e.RelativePath = 4098] = "RelativePath", e[e.FileName = 4099] = "FileName", e[e.FilePath = 4100] = "FilePath", e[e.Cid = 4101] = "Cid", e[e.Gcid = 4102] = "Gcid", e[e.StringEnd = 4103] = "StringEnd"
            }(h = e.BtFileAttribute || (e.BtFileAttribute = {})), function (e) {
                e[e.P2spUrl = 0] = "P2spUrl", e[e.BtInfoId = 1] = "BtInfoId", e[e.EmuleFileHash = 2] = "EmuleFileHash", e[e.MagnetUrl = 3] = "MagnetUrl", e[e.GroupTaskName = 4] = "GroupTaskName"
            }(m = e.KeyType || (e.KeyType = {})), function (e) {
                e[e.NameInclude = 1] = "NameInclude", e[e.BtDisplayNameInclude = 2] = "BtDisplayNameInclude"
            }(v = e.SearchKeyType || (e.SearchKeyType = {})), function (e) {
                e[e.ExtEqual = 1] = "ExtEqual", e[e.NameLikeAndExtEqual = 2] = "NameLikeAndExtEqual", e[e.TaskTypeEqual = 4] = "TaskTypeEqual"
            }(g = e.FilterKeyType || (e.FilterKeyType = {})), function (e) {
                e[e.All = 0] = "All", e[e.CommonForeground = 1] = "CommonForeground", e[e.CommonBackground = 2] = "CommonBackground", e[e.Temporary = 3] = "Temporary", e[e.PreDownload = 4] = "PreDownload", e[e.PrivateForeground = 5] = "PrivateForeground"
            }(y = e.KeyFilter || (e.KeyFilter = {})), function (e) {
                e[e.Unknown = -1] = "Unknown", e[e.LoadTaskBasic = 0] = "LoadTaskBasic", e[e.Create = 1] = "Create", e[e.Complete = 2] = "Complete", e[e.Recycle = 3] = "Recycle", e[e.Recover = 4] = "Recover", e[e.ReDownload = 5] = "ReDownload", e[e.MoveThoughCategory = 6] = "MoveThoughCategory"
            }(b = e.TaskInsertReason || (e.TaskInsertReason = {})), function (e) {
                e[e.Unknown = -1] = "Unknown", e[e.Manual = 0] = "Manual", e[e.PauseAll = 1] = "PauseAll", e[e.DeleteTask = 2] = "DeleteTask", e[e.TaskJammed = 3] = "TaskJammed", e[e.LowSpeed = 4] = "LowSpeed", e[e.MaxDownloadReduce = 5] = "MaxDownloadReduce", e[e.MoveTask = 6] = "MoveTask", e[e.SelectDownloadLists = 7] = "SelectDownloadLists", e[e.PrivateLoginOut = 8] = "PrivateLoginOut", e[e.FreeDownload = 9] = "FreeDownload", e[e.Exit = 10] = "Exit"
            }(C = e.TaskStopReason || (e.TaskStopReason = {})), function (e) {
                e[e.RESOURCE_FROM_MEMBER = 1] = "RESOURCE_FROM_MEMBER", e[e.RESOURCE_FROM_OFFLINE = 2] = "RESOURCE_FROM_OFFLINE", e[e.RESOURCE_FROM_CRYSTAL_LARGE = 4] = "RESOURCE_FROM_CRYSTAL_LARGE", e[e.RESOURCE_FROM_CRYSTAL_SMALL = 8] = "RESOURCE_FROM_CRYSTAL_SMALL", e[e.RESOURCE_FROM_DCDN = 16] = "RESOURCE_FROM_DCDN", e[e.RESOURCE_FROM_FREEDCDN = 32] = "RESOURCE_FROM_FREEDCDN"
            }(w = e.XLResourceFrom || (e.XLResourceFrom = {})), function (e) {
                e[e.XL_TASKDOWNLOAD_STRATEGY_NORMALDOWNLOAD = 0] = "XL_TASKDOWNLOAD_STRATEGY_NORMALDOWNLOAD", e[e.XL_TASKDOWNLOAD_STRATEGY_DOWNLOADINGPLAYING = 1] = "XL_TASKDOWNLOAD_STRATEGY_DOWNLOADINGPLAYING", e[e.XL_TASKDOWNLOAD_STRATEGY_ONLINEPLAYING = 2] = "XL_TASKDOWNLOAD_STRATEGY_ONLINEPLAYING"
            }(x = e.XLDownloadStrategy || (e.XLDownloadStrategy = {}))
        }(t.DownloadKernel || (t.DownloadKernel = {}))
    }, 17: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(19), o = n(2), a = n(6).promisify, s = n(1).default.getLogger("Thunder.base.fs-utilities");
        !function (e) {
            function t(e) {
                return r(this, void 0, void 0, function* () {
                    let t = !1;
                    if (void 0 !== e) {
                        const n = a(i.access);
                        try {
                            yield n(e), t = !0
                        } catch (e) {
                            s.information(e)
                        }
                    }
                    return t
                })
            }

            function l(e) {
                return r(this, void 0, void 0, function* () {
                    let t = !1;
                    if (void 0 !== e) {
                        const n = a(i.mkdir);
                        try {
                            yield n(e), t = !0
                        } catch (e) {
                            s.warning(e)
                        }
                    }
                    return t
                })
            }

            function c(e) {
                return r(this, void 0, void 0, function* () {
                    let t = !1;
                    if (void 0 !== e) {
                        const n = a(i.rmdir);
                        try {
                            yield n(e), t = !0
                        } catch (e) {
                            s.warning(e)
                        }
                    }
                    return t
                })
            }

            function d(e) {
                return r(this, void 0, void 0, function* () {
                    let t = !1;
                    if (void 0 !== e) {
                        const n = a(i.unlink);
                        try {
                            yield n(e), t = !0
                        } catch (e) {
                            s.warning(e)
                        }
                    }
                    return t
                })
            }

            function u(e) {
                return r(this, void 0, void 0, function* () {
                    let t = null;
                    if (void 0 !== e) {
                        const n = a(i.readdir);
                        try {
                            t = yield n(e)
                        } catch (e) {
                            s.warning(e)
                        }
                    }
                    return t
                })
            }

            function f(e) {
                return r(this, void 0, void 0, function* () {
                    let t = null;
                    if (void 0 !== e) {
                        const n = a(i.lstat);
                        try {
                            t = yield n(e)
                        } catch (e) {
                            s.warning(e)
                        }
                    }
                    return t
                })
            }

            function p(e, t) {
                return r(this, void 0, void 0, function* () {
                    let n = !1;
                    if (void 0 !== e && void 0 !== t) {
                        let r = o.join(e, t), i = yield f(r);
                        n = null !== i && i.isDirectory() ? yield h(r) : yield d(r)
                    }
                    return n
                })
            }

            function h(e) {
                return r(this, void 0, void 0, function* () {
                    let n = !1;
                    if (void 0 !== e) {
                        if (yield t(e)) {
                            n = !0;
                            let t = (yield u(e)) || [];
                            for (let r = 0; r < t.length; r++) n = (yield p(e, t[r])) && n;
                            (n || 0 === t.length) && (n = (yield c(e)) && n)
                        }
                    }
                    return n
                })
            }

            function m(e) {
                return r(this, void 0, void 0, function* () {
                    let n = !1;
                    return s.information("mkdirsAW", e), void 0 !== e && ((yield t(e)) ? n = !0 : o.dirname(e) === e ? n = !1 : (yield m(o.dirname(e))) && (n = yield l(e))), n
                })
            }

            function v(e, n) {
                return r(this, void 0, void 0, function* () {
                    let r;
                    if (e.toLowerCase() !== n.toLowerCase() && (yield t(e))) {
                        let t = i.createReadStream(e), o = i.createWriteStream(n);
                        r = new Promise(e => {
                            t.pipe(o).on("finish", () => {
                                e(!0)
                            })
                        })
                    } else r = new Promise(e => {
                        e(!1)
                    });
                    return r
                })
            }

            e.readFileAW = function (e) {
                return r(this, void 0, void 0, function* () {
                    let t = null;
                    if (void 0 !== e) {
                        const n = a(i.readFile);
                        try {
                            t = yield n(e)
                        } catch (e) {
                            s.warning(e)
                        }
                    }
                    return t
                })
            }, e.writeFileAW = function (e, t) {
                return r(this, void 0, void 0, function* () {
                    let n = !1;
                    if (void 0 !== e && null !== t) {
                        const r = a(i.writeFile);
                        try {
                            yield r(e, t), n = !0
                        } catch (e) {
                            s.warning(e)
                        }
                    }
                    return n
                })
            }, e.existsAW = t, e.dirExistsAW = function (e) {
                return r(this, void 0, void 0, function* () {
                    let n = !1;
                    do {
                        if (!(n = yield t(e))) break;
                        let r = yield f(e);
                        if (!r) break;
                        n = r.isDirectory()
                    } while (0);
                    return n
                })
            }, e.mkdirAW = l, e.rmdirAW = c, e.unlinkAW = d, e.readdirAW = u, e.lstatAW = f, e.rmdirsAW = h, e.mkdirsAW = m, e.renameAW = function (e, t) {
                return r(this, void 0, void 0, function* () {
                    if (void 0 !== e && void 0 !== t) {
                        const n = a(i.rename);
                        try {
                            yield n(e, t)
                        } catch (e) {
                            s.warning(e)
                        }
                    }
                })
            }, e.copyFileAW = v, e.copyDirsAW = function e(n, i) {
                return r(this, void 0, void 0, function* () {
                    let r = !1, a = yield f(n);
                    if (a.isDirectory()) {
                        r = yield m(i);
                        let s = (yield u(n)) || [];
                        for (let l = 0; l < s.length; l++) {
                            let c = o.join(n, s[l]), d = o.join(i, s[l]);
                            (r = yield t(c)) && (r = (a = yield f(c)).isDirectory() ? yield e(c, d) : yield v(c, d))
                        }
                    }
                    return r
                })
            }, e.mkdtempAW = function () {
                return r(this, void 0, void 0, function* () {
                    let e = !1;
                    const t = a(i.mkdtemp), r = (yield Promise.resolve().then(() => n(12))).tmpdir();
                    try {
                        e = yield t(`${r}${o.sep}`)
                    } catch (e) {
                        s.warning(e)
                    }
                    return e
                })
            }, e.deleteEmptySubDirs = function (e, n) {
                return r(this, void 0, void 0, function* () {
                    let r = !0;
                    e = o.normalize(e), n = o.normalize(n), e.length > 3 && "\\" === e[e.length - 1] && (e = e.slice(0, e.length - 1)), n.length > 3 && "\\" === n[n.length - 1] && (n = n.slice(0, n.length - 1));
                    do {
                        if (0 !== e.indexOf(n)) {
                            r = !1;
                            break
                        }
                        let i = e;
                        for (; i !== n;) {
                            if ((yield t(i)) && !(yield c(i))) {
                                r = !1;
                                break
                            }
                            i = o.dirname(i)
                        }
                    } while (0);
                    return r
                })
            }, e.getFileSize = function e(n) {
                return r(this, void 0, void 0, function* () {
                    let r = 0;
                    do {
                        if (!n) break;
                        if (!(yield t(n))) break;
                        let i = yield f(n);
                        if (i) if (i.isDirectory()) {
                            let t = yield u(n);
                            for (let i = 0; i < t.length; i++) r += (yield e(o.join(n, t[i])))
                        } else r = i.size
                    } while (0);
                    return r
                })
            }, e.isDirectoryEmptyAW = function (e, n = !0) {
                return r(this, void 0, void 0, function* () {
                    let r = !0;
                    do {
                        if (!e) {
                            r = !1;
                            break
                        }
                        if (!(yield t(e))) {
                            r = n;
                            break
                        }
                        let i = yield f(e);
                        if (!i) {
                            r = !1;
                            break
                        }
                        if (!i.isDirectory()) {
                            r = !1;
                            break
                        }
                        if ((yield u(e)).length > 0) {
                            r = !1;
                            break
                        }
                    } while (0);
                    return r
                })
            }
        }(t.FileSystemAWNS || (t.FileSystemAWNS = {}))
    }, 18: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), function (e) {
            e.channelRMNewTaskReadyForSetTaskData = "RM_NEWTASK_READYRORSETTASKDATA", e.channelRMNewTaskSetTaskData = "RM_NEWTASK_SETTASKDATA", e.channelRMPreNewTaskSetTaskData = "RM_PRENEWTASK_SETTASKDATA", e.channelRMNewTaskCreateNewTask = "RM_NEWTASK_CREATENEWTASK", e.channelRMNewTaskClose = "RM_NEWTASK_CLOSE", e.channelRMPreNewTaskClose = "RM_PRENEWTASK_CLOSE", e.channelRMNewTaskSetBTInfo = "RM_NEWTASK_SETBTINFO", e.channelRMNewTaskDownloadTorrent = "RM_NEW_TASK_DOWNLOAD_TORRENT", e.channelRMNewTaskCreateBtTask = "RM_NEWTASK_CRATEBTTASK", e.channelRMNewTaskCancleMagnet = "RM_NEWTASK_CANCLE_MAGNET", e.channelRMImportTorrent = "RM_NEWTASK_IMPORT_TORRENT", e.channelRMGetConfigValueResolve = "RM_GET_CONFIG_VALUE_RESOLVE", e.channelRMGetConfigValueReject = "RM_GET_CONFIG_VALUE_REJECT", e.channelRMSetConfigValueReject = "RM_SET_CONFIG_VALUE_REJECT", e.channelMRTrayMenuClick = "MR_TRAY_MENU_CLICK", e.channelMRNewTaskMagnetTaskCreated = "MR_NEW_TASK_MAGNET_TASK_CREATED", e.channelMRNewTaskDownloadTorrentResult = "MR_NEW_TASK_DOWNLOAD_TORRENT_RESULT", e.channelMRNewTaskCreateNewTaskResult = "MR_NEWTASK_CREATENEWTASK_RESULT", e.channelMRNewTaskCreateBtTaskResult = "RM_NEWTASK_CRATEBTTASK_RESULT", e.channelMRGetConfigValue = "MR_GET_CONFIG_VALUE", e.channelMRSetConfigValue = "MR_SET_CONFIG_VALUE", e.channelRMCommitPlanTask = "RM_PLANTASK_COMMIT", e.channelRMPerformePlanTask = "RM_PLANTASK_PERFORME", e.channelRMProcessSend = "RM_RENDER_PROCESS_INFO", e.channelRMGetPrivateSpaceInfo = "RM_RENDER_GET_PRIVATE_SPACE_INFO", e.channelMRGetPrivateSpaceInfoResult = "MR_RENDER_GET_PRIVATE_SPACE_INFO_RESULT", e.channelRMFileCopy = "RM_FILE_COPY", e.channelRMFileMove = "RM_FILE_MOVE", e.channelMRFileCopyResult = "MR_FILE_COPY_RESULT", e.channelMRFileMoveResult = "MR_FILE_MOVE_RESULT", e.channelRMGetSutitleByCid = "RM_RENDER_GET_SUBTITLE_BY_CID", e.channelMRGetSutitleByCidResult = "MR_RENDER_GET_SUBTITLE_BY_CID_RESULT", e.channelRMGetSutitleByName = "RM_RENDER_GET_SUBTITLE_BY_NAME", e.channelMRGetSutitleByNameResult = "MR_RENDER_GET_SUBTITLE_BY_NAME_RESULT", e.channelRMDownloadSutitle = "RM_RENDER_DOWNLOAD_SUBTITLE", e.channelMRDownloadSutitleSuc = "MR_RENDER_DOWNLOAD_SUBTITLE_SUCCESS", e.channelMRDownloadSutitleFail = "MR_RENDER_DOWNLOAD_SUBTITLE_FAIL", e.channelRMGetDisplayName = "RM_RENDER_GET_SUBTITLE_DISPLAYNAME", e.channelMRGetDisplayNameResult = "MR_RENDER_GET_SUBTITLE_DISPLAYNAME_RESULT", e.channelMRBringWindowToTop = "MR_RENDER_BRING_WINDOW_TO_TOP", e.channelRMDownloadXmp = "RM_RENDER_DOWNLOAD_XMP", e.channelRMXmpFixBoxCreated = "RM_RENDER_XMPFIXBOX_CREATED", e.channelMRFixXmpSuc = "MR_RENDER_FIX_XMP_SUC", e.channelMRFixXMPFail = "MR_RENDER_FIX_XMP_FAIL", e.channelRMDownloadXmpEx = "RM_RENDER_DOWNLOAD_XMP_EX", e.channelRMSetPosition = "RM_SET_POSITION", e.channelRMSetFoucs = "RM_SET_FOCUS", e.channelRMCreateAddressDropWnd = "RM_CREATE_ADDRESS_DROPWND", e.channelRMRefreshAddressDropWnd = "RM_REFRESH_ADDRESS_DROPWND", e.channelRMSelectAddressDropItem = "RM_SELECT_ADDRESS_DROPITEM", e.channelRMCreateSearchWindow = "RM_CREATE_SEARCH_WINDOW", e.channelRMShowSearchWindow = "RM_SHOW_SEARCH_WINDOW", e.channelRMAddressKeyDown = "RM_ADDRESS_BAR_KEYDOWN", e.channelMRFWAddressKeyDown = "MR_ADDRESS_FW_BAR_KEYDOWN", e.channelMRFWSelectAddressDropItem = "MR_FW_SELECT_ADDRESS_DROPITEM", e.channelRMAddressDropWndKeyDown = "RM_ADDRESS_DROPWND_KEYDOWN", e.channelRMClickMouse = "RM_CLICK_MOUSE", e.channelMRSearchBarFocusChange = "MR_SEARCHBAR_FOCUS_CHANGE", e.channelMRFWAddressDropWndKeyDown = "MR_FW_ADDRESS_DROPWND_KEYDOWN", e.channelMRClickAddressDropItem = "MR_CLICK_ADDRESS_DROPITEM", e.channelMRMainWndMax = "MR_MAINWINDOW_MAX", e.channelMRMainWndMin = "MR_MAINWINDOW_MIN", e.channelMRMainWndRestore = "MR_MAINWINDOW_RESTORE", e.channelRMGetBrowserStartType = "RM_GET_BROWSER_START_TYPE", e.channelMRGetBrowserStartTypeResult = "MR_GET_BROWSER_START_TYPE_RESULT", e.channelRMExecute = "RM_SHELL_EXECUTE", e.channelMRExecuteResult = "MR_SHELL_EXECUTE_RESULT", e.channelMRAdTipsClick = "MR_AD_TIPS_CLICK", e.channelMRNotificationMsg = "MR_NOTIFICATION_MSG", e.channelRMSetProgressBar = "RM_SET_PROGRESS_BAR", e.channelRMRoundWindow = "RM_ROUND_WINDOW", e.channelMRShowOrHideWindow = "MR_SHOW_OR_HIDE_WINDOW", e.channelMRSuspensionWindowShowOrHide = "MR_SUSPENSION_WINDOW_SHOW_OR_HIDE", e.channelRMConfigInitFinished = "RM_CONFIG_INIT_FINISHED", e.channelRMConfigValueChanged = "RM_CONFIG_VALUE_CHANGED", e.channelRMIndividuationBrowserMsg = "RM_INDIVIDUATION_BROWSER_MSG", e.channelMRIndividuationBrowserMsg = "MR_INDIVIDUATION_BROWSER_MSG", e.channelRMSetEnvironmentVariable = "RM_SET_ENVIRONMENT_VARIABLE", e.channelMREmbedPlayerPos = "MR_EMBED_PLAYER_POSITION", e.channelRMUpdateLogEnviroment = "RM_UPDATE_LOG_ENVIRONMENT", e.channelMRUpdateLogEnviroment = "MR_UPDATE_LOG_ENVIRONMENT"
        }(t.ThunderChannelList || (t.ThunderChannelList = {}))
    }, 19: function (e, t) {
        e.exports = require("fs")
    }, 2: function (e, t) {
        e.exports = require("path")
    }, 20: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), t.information = function (...e) {
        }, t.error = function (...e) {
        }, t.warning = function (...e) {
        }, t.critical = function (...e) {
        }, t.verbose = function (...e) {
        }, "development" === process.env.LOGGER_ENV && (t.information = function (...e) {
            console.log("information", e)
        }, t.error = function (...e) {
            console.log("error", e)
        }, t.warning = function (...e) {
            console.log("warning", e)
        }, t.critical = function (...e) {
            console.log("critical", e)
        }, t.verbose = function (...e) {
            console.log("verbose", e)
        })
    }, 201: function (e, t) {
        e.exports = "data:image/png;base64, "
    }, 21: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), function (e) {
            e.msgIPCCommunicatorForward = "ipc_communicator_forward", e.msgIPCSendToMain = "ipc_send_to_main", e.msgIPCSendToRenderer = "ipc_send_to_renderer", e.msgIPCRendererConnect = "ipc_renderer_connect", e.msgIPCRendererDisconnect = "ipc_renderer_disconnect", e.msgNCCallNativeFunction = "nc_call_native_function", e.msgNCCheckNativeFunction = "nc_check_native_function", e.msgNCCallJsFunctionById = "nc_call_js_function_by_id", e.msgNCCallJsFunctionByName = "nc_call_js_function_by_name", e.msgNCNativeFireEvent = "nc_native_fire_event", e.msgNCNativeCallReady = "nc_native_call_ready"
        }(t.CommonIPCMessage || (t.CommonIPCMessage = {}))
    }, 22: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(2), o = n(23), a = n(12), s = n(16),
            l = n(9).default(i.join(__rootDir, "../bin/ThunderHelper.node"));
        !function (e) {
            let t, n;

            function i(e) {
                let t = e;
                return /^[a-zA-Z]:\\/.test(e) ? t = e.slice(0, 3) : e && "\\" !== e[e.length - 1] && (t = e + "\\"), t
            }

            !function (e) {
                e[e.DRIVE_UNKNOWN = 0] = "DRIVE_UNKNOWN", e[e.DRIVE_NO_ROOT_DIR = 1] = "DRIVE_NO_ROOT_DIR", e[e.DRIVE_REMOVABLE = 2] = "DRIVE_REMOVABLE", e[e.DRIVE_FIXED = 3] = "DRIVE_FIXED", e[e.DRIVE_REMOTE = 4] = "DRIVE_REMOTE", e[e.DRIVE_CDROM = 5] = "DRIVE_CDROM", e[e.DRIVE_RAMDISK = 6] = "DRIVE_RAMDISK"
            }(t = e.DriverType || (e.DriverType = {})), function (e) {
                e[e.Unspecified = 0] = "Unspecified", e[e.HDD = 3] = "HDD", e[e.SSD = 4] = "SSD", e[e.SCM = 5] = "SCM"
            }(n = e.MediaType || (e.MediaType = {})), e.getDriveType = function (e) {
                return e = i(e), l.getDriveType(e)
            }, e.getDriveInfo = function (e) {
                return e = i(e), l.getDriveInfo(e)
            }, e.getFreePartitionSpace = function (e) {
                return e = i(e), l.getFreePartitionSpace(e)
            }, e.getLogicalDriveStrings = function () {
                return l.getLogicalDriveStrings()
            }, e.getPartitionSpace = function (e) {
                return e = i(e), l.getPartitionSpace(e)
            }, e.getSystemTempPath = function () {
                return l.getSystemTempPath()
            }, e.getTaskTypeFromUrl = function (e) {
                let t = l.getTaskTypeFromUrl(e);
                if (t === s.DownloadKernel.TaskType.Unkown && function (e) {
                    e = e.toLowerCase();
                    let t = !1;
                    do {
                        if ("http://" === e.substr(0, "http://".length)) {
                            t = !0;
                            break
                        }
                        if ("https://" === e.substr(0, "https://".length)) {
                            t = !0;
                            break
                        }
                        if ("ftp://" === e.substr(0, "ftp://".length)) {
                            t = !0;
                            break
                        }
                    } while (0);
                    return t
                }(e)) {
                    let n = /:\/\/\[(.+?)\].*/.exec(e);
                    n || (n = /.+?:\/\/.*?\[(.+?)\].*/.exec(e)), n && n[1] && o.isIPv6(n[1]) && (t = s.DownloadKernel.TaskType.P2sp)
                }
                return t
            }, e.extractIcon = function (e, t) {
                return l.extractIcon(e, t)
            }, e.isWindow7 = function () {
                return 1 === l.isWin7()
            }, e.isWindow8OrLater = function () {
                let e = !1;
                do {
                    let t = a.release();
                    if (!t) break;
                    let n = t.indexOf(".", 0);
                    if (n < 0) break;
                    let r = t.substring(0, n);
                    if (!r) break;
                    let i = parseInt(r, 10);
                    i && i >= 8 && (e = !0)
                } while (0);
                return e
            }, e.isWindows10 = function () {
                let e = !1;
                do {
                    let t = a.release();
                    if (!t) break;
                    if (0 === t.indexOf("10.0.")) {
                        e = !0;
                        break
                    }
                } while (0);
                return e
            }, e.compareStr = function (e, t) {
                return l.compareStr(e, t)
            }, e.getTickCount = function () {
                return l.getTickCount()
            }, e.setScreenSaveActive = function (e) {
                return l.setScreenSaveActive(e)
            }, e.isSparseDriver = function (e) {
                return e = i(e), l.isSparseDriver(e)
            }, e.getAppList = function () {
                return r(this, void 0, void 0, function* () {
                    return new Promise(e => {
                        l.getAppList(t => {
                            e(t)
                        })
                    })
                })
            }, e.isSSD = function () {
                return r(this, void 0, void 0, function* () {
                    return new Promise(e => {
                        l.isSSD((t, n) => {
                            e(n)
                        })
                    })
                })
            }, e.getMemoryInfo = function () {
                return r(this, void 0, void 0, function* () {
                    return new Promise(e => {
                        l.getMemoryInfo((t, n) => {
                            e({totalPhy: t, totalVir: n})
                        })
                    })
                })
            }, e.getHardDiskSpaceList = function () {
                return r(this, void 0, void 0, function* () {
                    return new Promise(e => {
                        l.getHardDiskSpaceList(t => {
                            e(t)
                        })
                    })
                })
            }, e.getCpuList = function () {
                return r(this, void 0, void 0, function* () {
                    return new Promise(e => {
                        l.getCpuList(t => {
                            e(t)
                        })
                    })
                })
            }, e.getFixedDriveMediaType = function (e) {
                return r(this, void 0, void 0, function* () {
                    return new Promise(t => {
                        e.length > 1 && (e = e.slice(0, 1)), l.getDriveMediaType(e.toUpperCase(), (e, n) => {
                            t(n)
                        })
                    })
                })
            }, e.sleep = function (e) {
                return r(this, void 0, void 0, function* () {
                    yield new Promise((t, n) => {
                        setTimeout(t, e)
                    })
                })
            }
        }(t.ThunderHelper || (t.ThunderHelper = {}))
    }, 23: function (e, t) {
        e.exports = require("net")
    }, 24: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(12), i = n(2);
        t.getDefaultPrex = function () {
            return i.basename(process.execPath, ".exe")
        }, t.getSockPath = function (e) {
            const t = r.tmpdir();
            let n = e;
            e || (n = i.basename(process.execPath, ".exe"));
            let o = i.join(t, `${n}-xunlei-node-net-ipc-{FD196984-2591-4588-AA6F-5C8AC1266290}.sock`);
            return "win32" === process.platform && (o = "\\\\.\\pipe\\" + (o = (o = o.replace(/^\//, "")).replace(/\//g, "-"))), o
        }, t.serverContextName = "xunlei-node-net-ipc-server-{46105371-DE78-4442-B59F-FDA1D6D7D430}", t.mainProcessContext = "main-process", t.mainRendererContext = "main-renderer", t.isObjectEmpty = function (e) {
            let t = !0;
            do {
                if (!e) break;
                if (0 === Object.keys(e).length) break;
                t = !1
            } while (0);
            return t
        }
    }, 25: function (e, t, n) {
        "use strict";
        var r = n(10), i = n(72), o = n(74), a = n(56), s = n(62), l = n(75).http, c = n(75).https, d = n(35),
            u = n(63), f = n(116), p = n(61), h = n(73);
        e.exports = function (e) {
            return new Promise(function (t, n) {
                var m, v = e.data, g = e.headers;
                if (g["User-Agent"] || g["user-agent"] || (g["User-Agent"] = "axios/" + f.version), v && !r.isStream(v)) {
                    if (Buffer.isBuffer(v)) ; else if (r.isArrayBuffer(v)) v = new Buffer(new Uint8Array(v)); else {
                        if (!r.isString(v)) return n(p("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream", e));
                        v = new Buffer(v, "utf-8")
                    }
                    g["Content-Length"] = v.length
                }
                var y = void 0;
                e.auth && (y = (e.auth.username || "") + ":" + (e.auth.password || ""));
                var b = d.parse(e.url), C = b.protocol || "http:";
                if (!y && b.auth) {
                    var w = b.auth.split(":");
                    y = (w[0] || "") + ":" + (w[1] || "")
                }
                y && delete g.Authorization;
                var x = "https:" === C, S = x ? e.httpsAgent : e.httpAgent, T = {
                    path: o(b.path, e.params, e.paramsSerializer).replace(/^\?/, ""),
                    method: e.method,
                    headers: g,
                    agent: S,
                    auth: y
                };
                e.socketPath ? T.socketPath = e.socketPath : (T.hostname = b.hostname, T.port = b.port);
                var R, P = e.proxy;
                if (!P && !1 !== P) {
                    var k = C.slice(0, -1) + "_proxy", E = process.env[k] || process.env[k.toUpperCase()];
                    if (E) {
                        var O = d.parse(E);
                        if (P = {host: O.hostname, port: O.port}, O.auth) {
                            var N = O.auth.split(":");
                            P.auth = {username: N[0], password: N[1]}
                        }
                    }
                }
                if (P && (T.hostname = P.host, T.host = P.host, T.headers.host = b.hostname + (b.port ? ":" + b.port : ""), T.port = P.port, T.path = C + "//" + b.hostname + (b.port ? ":" + b.port : "") + T.path, P.auth)) {
                    var D = new Buffer(P.auth.username + ":" + P.auth.password, "utf8").toString("base64");
                    T.headers["Proxy-Authorization"] = "Basic " + D
                }
                e.transport ? R = e.transport : 0 === e.maxRedirects ? R = x ? s : a : (e.maxRedirects && (T.maxRedirects = e.maxRedirects), R = x ? c : l), e.maxContentLength && e.maxContentLength > -1 && (T.maxBodyLength = e.maxContentLength);
                var M = R.request(T, function (r) {
                    if (!M.aborted) {
                        clearTimeout(m), m = null;
                        var o = r;
                        switch (r.headers["content-encoding"]) {
                            case"gzip":
                            case"compress":
                            case"deflate":
                                o = o.pipe(u.createUnzip()), delete r.headers["content-encoding"]
                        }
                        var a = r.req || M, s = {
                            status: r.statusCode,
                            statusText: r.statusMessage,
                            headers: r.headers,
                            config: e,
                            request: a
                        };
                        if ("stream" === e.responseType) s.data = o, i(t, n, s); else {
                            var l = [];
                            o.on("data", function (t) {
                                l.push(t), e.maxContentLength > -1 && Buffer.concat(l).length > e.maxContentLength && n(p("maxContentLength size of " + e.maxContentLength + " exceeded", e, null, a))
                            }), o.on("error", function (t) {
                                M.aborted || n(h(t, e, null, a))
                            }), o.on("end", function () {
                                var r = Buffer.concat(l);
                                "arraybuffer" !== e.responseType && (r = r.toString("utf8")), s.data = r, i(t, n, s)
                            })
                        }
                    }
                });
                M.on("error", function (t) {
                    M.aborted || n(h(t, e, null, M))
                }), e.timeout && !m && (m = setTimeout(function () {
                    M.abort(), n(p("timeout of " + e.timeout + "ms exceeded", e, "ECONNABORTED", M))
                }, e.timeout)), e.cancelToken && e.cancelToken.promise.then(function (e) {
                    M.aborted || (M.abort(), n(e))
                }), r.isStream(v) ? v.pipe(M) : M.end(v)
            })
        }
    }, 26: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), t.information = ((...e) => {
        }), t.error = ((...e) => {
        }), t.warning = ((...e) => {
        }), t.critical = ((...e) => {
        }), t.verbose = ((...e) => {
        })
    }, 27: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(2), i = n(9).default(r.join(__rootDir, "../bin/ThunderHelper.node"));
        !function (e) {
            function t() {
                let e = !0;
                {
                    0;
                    let t = r.resolve("C:\\ETW_LOG\\log.ini");
                    e = "1" === i.readINI(t, "Log", "enable")
                }
                return e
            }

            e.isDevToolsEnable = function () {
                return t()
            }, e.isLogEnable = t, e.getLogOutput = function () {
                let e = process.env.TL_OUTPUT;
                do {
                    if (e && "" !== e) break;
                    let t = r.resolve("C:\\ETW_LOG\\log.ini");
                    e = i.readINI(t, "Log", "output")
                } while (0);
                return e
            }
        }(t.DevEnvHelperNS || (t.DevEnvHelperNS = {}))
    }, 276: function (e, t, n) {
        "use strict";
        n.r(t);
        var r = n(277), i = n.n(r);
        for (var o in r) "default" !== o && function (e) {
            n.d(t, e, function () {
                return r[e]
            })
        }(o);
        t.default = i.a
    }, 277: function (e, t, n) {
        "use strict";
        var r = this && this.__decorate || function (e, t, n, r) {
            var i, o = arguments.length, a = o < 3 ? t : null === r ? r = Object.getOwnPropertyDescriptor(t, n) : r;
            if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, r); else for (var s = e.length - 1; s >= 0; s--) (i = e[s]) && (a = (o < 3 ? i(a) : o > 3 ? i(t, n, a) : i(t, n)) || a);
            return o > 3 && a && Object.defineProperty(t, n, a), a
        }, i = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const o = n(5), a = n(3), s = n(7), l = n(727), c = n(733), d = n(41), u = n(4),
            f = n(1).default.getLogger("personalInfo");
        let p = class extends o.Vue {
            constructor() {
                super(...arguments), this.onLoginSucCookie = 0, this.onLogoutCookie = 0, this.curWnd = null, this.logined = -1, this.from = "", this.rectData = "", this.checkWndtimer = null, this.readyCloseTimer = null, this.isReadyColse = !1, this.menuSize = null
            }

            isPersonalInfoWndRect() {
                return i(this, void 0, void 0, function* () {
                    if (null === this.curWnd || (yield this.curWnd.isDestroyed())) return !1;
                    let e = yield this.curWnd.getBounds(),
                        t = yield(yield s.asyncRemoteCall.getScreen()).getCursorScreenPoint(), n = 0, r = 0;
                    return this.menuSize && (n = this.menuSize.width || 0, r = this.menuSize.height || 0), t.x >= e.x && t.x <= e.x + e.width && t.y >= e.y && t.y <= e.y + e.height || t.x >= e.x + e.width && t.x <= e.x + e.width + n && t.y >= e.y && t.y <= e.y + r
                })
            }

            isLoginInfoRect() {
                return i(this, void 0, void 0, function* () {
                    let e = !1;
                    do {
                        if (null === this.curWnd || "" === this.rectData) break;
                        let t = yield(yield s.asyncRemoteCall.getScreen()).getCursorScreenPoint(), n = null;
                        try {
                            n = JSON.parse(this.rectData)
                        } catch (e) {
                            f.warning(e)
                        }
                        if (null === n) break;
                        let r = yield this.curWnd.getBounds(), i = r.x - Number(n.width), o = r.y, a = r.x,
                            l = r.y + Number(n.height) + 40;
                        f.information("isLoginInfoRect:", i, o, a, l, t.x, t.y), t.x >= i && t.x <= a && t.y >= o && t.y <= l && (e = !0)
                    } while (0);
                    return e
                })
            }

            checkIsHideWnd() {
                return i(this, void 0, void 0, function* () {
                    let e = yield this.isPersonalInfoWndRect(), t = yield this.isLoginInfoRect();
                    return !1 === e && !1 === t
                })
            }

            closeWndAndClearData() {
                null !== this.checkWndtimer && (clearInterval(this.checkWndtimer), this.checkWndtimer = null), null !== this.readyCloseTimer && (clearTimeout(this.readyCloseTimer), this.readyCloseTimer = null), this.curWnd.close(), this.curWnd = null
            }

            updateReadyCloseWndAndClearDataState(e) {
                this.isReadyColse = e, e ? null === this.readyCloseTimer && (this.readyCloseTimer = setTimeout(() => {
                    this.isReadyColse && this.closeWndAndClearData()
                }, 500)) : null !== this.readyCloseTimer && (clearTimeout(this.readyCloseTimer), this.readyCloseTimer = null)
            }

            hidePersonalInfoWnd() {
                return i(this, void 0, void 0, function* () {
                    (yield this.checkIsHideWnd()) ? this.updateReadyCloseWndAndClearDataState(!0) : (this.updateReadyCloseWndAndClearDataState(!1), null === this.checkWndtimer && (this.checkWndtimer = setInterval(() => i(this, void 0, void 0, function* () {
                        (yield this.checkIsHideWnd()) ? this.updateReadyCloseWndAndClearDataState(!0) : this.updateReadyCloseWndAndClearDataState(!1)
                    }), 200)))
                })
            }

            setMenuShow(e, t) {
                this.menuSize = e ? t : null
            }

            handleInitReply(e, t, n) {
                f.information("personal-info-init-reply", t, n), this.rectData = n, this.from = t, this.hidePersonalInfoWnd()
            }

            mounted() {
                return i(this, void 0, void 0, function* () {
                    this.curWnd = yield s.asyncRemoteCall.getCurrentWindow();
                    let e = yield this.curWnd.webContents.getURL(), t = e.indexOf("?logined="), n = e.substring(t + 9);
                    this.logined = Number(n), f.information("mounted", "url", e, "logined", this.logined), this.logined = Number(yield u.client.callServerFunction("IsLogined")), this.onLoginSucCookie = d.NativeCallModule.nativeCall.AttachNativeEvent("onLoginSuc", () => i(this, void 0, void 0, function* () {
                        f.information("收到 onLoginSuc 事件"), this.logined = 1
                    })), this.onLogoutCookie = d.NativeCallModule.nativeCall.AttachNativeEvent("onLogout", () => {
                        f.information("收到 onLogout 事件"), this.logined = 0
                    }), a.ipcRenderer.once("personal-info-init-reply", this.handleInitReply), a.ipcRenderer.send("personal-info-init")
                })
            }

            destroyed() {
                return i(this, void 0, void 0, function* () {
                    a.ipcRenderer.removeListener("personal-info-init-reply", this.handleInitReply), d.NativeCallModule.nativeCall.DetachNativeEvent("onLoginSuc", this.onLoginSucCookie), d.NativeCallModule.nativeCall.DetachNativeEvent("onLogout", this.onLogoutCookie)
                })
            }
        };
        p = r([o.Component({
            components: {
                PersonalInfoLogin: l.default,
                PersonalInfoUnlogin: c.default
            }
        })], p), t.default = p
    }, 278: function (e, t, n) {
        "use strict";
        n.r(t);
        var r = n(279), i = n.n(r);
        for (var o in r) "default" !== o && function (e) {
            n.d(t, e, function () {
                return r[e]
            })
        }(o);
        t.default = i.a
    }, 279: function (e, t, n) {
        "use strict";
        var r = this && this.__decorate || function (e, t, n, r) {
            var i, o = arguments.length, a = o < 3 ? t : null === r ? r = Object.getOwnPropertyDescriptor(t, n) : r;
            if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, r); else for (var s = e.length - 1; s >= 0; s--) (i = e[s]) && (a = (o < 3 ? i(a) : o > 3 ? i(t, n, a) : i(t, n)) || a);
            return o > 3 && a && Object.defineProperty(t, n, a), a
        }, i = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const o = n(5);
        n(1031);
        const a = n(7), s = n(41), l = n(642), c = n(728), d = n(11), u = n(643),
            f = n(1).default.getLogger("personalInfo:login");
        let {isDef: p} = d.ThunderUtil;
        const h = n(201), m = n(730), v = c.VipGrowNS.getMaxVipLevel(), g = n(64), y = n(731), b = n(136), C = n(6),
            w = n(4), x = n(138), S = n(732);
        o.Vue.use(m.default);
        let T = class extends o.Vue {
            constructor() {
                super(...arguments), this.curWnd = null, this.userID = "", this.userNick = "", this.expireDate = "", this.vipType = 2, this.isVip = 0, this.isYear = 0, this.userLevel = 0, this.vipLevel = 0, this.curScore = 0, this.nextScore = 0, this.imgUrl = h, this.checkMenutimer = null, this.yearIcon = "vip-icon-nian is-disabled", this.degreePointScore = [], this.contextMenu = null, this.onUserHeaderChangeCookie = 0, this.onGetUserInfoFinishedCookie = 0, this.vipGrow = 0, this.vipShowType = -1, this.vipDayGrow = 15, this.strAidfrom = "", this.vipData = null, this.isShowSign = !1, this.isOpenSign = !1, this.vipGrowRange = null, this.isShowUserLevel = !1, this.isArrowPrevious = !1, this.vipSignCoin = 0, this.vipConfig = null, this.isTrackedShowWnd = !1, this.showBubble = !1, this.handClosed = !1, this.hasCoinPrize = !1, this.totalCoin = -1, this.signState = -1, this.vipCardTipData = {
                    canShow: !1,
                    tip: "",
                    cardTime: "",
                    url: "",
                    referfrom: "",
                    cardCount: 0,
                    tipType: ""
                }, this.syncMsgEventId = void 0, this.syncMsgState = y.SyncMsgHelperNS.SyncMsgState.Connected, this.isContinueMonthPayVip = !1, this.vipLabConfig = null, this.vipLabConfigInit = !1
            }

            onFromChanged() {
                this.hanleTrackShowWnd()
            }

            get userYearIcon() {
                return 0 !== this.isYear && 0 !== this.isVip ? this.yearIcon = "vip-icon-nian" : this.yearIcon = "vip-icon-nian is-disabled", this.yearIcon
            }

            get guessMovieClass() {
                let e = "xlx-personal-activity__item";
                return this.isOpenSign && (e += "--disabled"), e
            }

            get levelupNum() {
                let e = 70;
                0 !== this.isVip && (e = this.getVipLevelDailyExp());
                let t = this.nextScore - this.curScore;
                return Math.ceil(t / e)
            }

            get strVipGrowProgress() {
                let e = 0;
                try {
                    let t = this.vipGrowRange;
                    t && (e = (this.vipGrow - t[0]) / (t[1] - t[0]))
                } catch (e) {
                    f.warning("err", e)
                }
                return (100 * e).toFixed(2) + "%"
            }

            get strVipUpLevel() {
                let e = "";
                return e = this.vipLevel >= v ? "满级" : `VIP${this.vipLevel + 1}`
            }

            get strExipreDate() {
                let e = "", t = this.calculateExpireDate();
                if (this.isVip) {
                    if (this.expireDate) if (0 === t) e = "您的会员今日到期，记得续费哦~"; else if (t < 30) e = `仅剩${t}天到期`; else if (t < 180) e = `剩${t}天到期`; else {
                        e = this.expireDate.substring(0, 4) + "-" + this.expireDate.substring(4, 6) + "-" + this.expireDate.substring(6, 8) + "到期"
                    }
                } else e = t ? `已过期${t}天` : "您还不是迅雷会员";
                return e
            }

            get vipGrowUpgradeType() {
                let e = 1;
                return 0 !== this.isVip ? e = 3 : this.vipGrow > 0 && (e = 2), e
            }

            get strVipGrowUpgrade() {
                let e = "去了解>";
                return 3 === this.vipGrowUpgradeType && (e = this.vipLevel >= v ? "去了解" : "去提升"), e
            }

            get strVipGrowPerDay() {
                let e = "";
                return e = 0 === this.isVip ? `成长值 -${this.vipDayGrow}点/天` : `成长值 +${this.vipDayGrow}点/天`
            }

            get isShowVipGrow() {
                return 0 !== this.isVip || 0 !== this.vipGrow
            }

            get strVipSignText() {
                let e = "签到";
                return p(this.vipConfig) && p(this.vipConfig.common) && p(this.vipConfig.common.text2) && "" !== this.vipConfig.common.text2 && (e = this.vipConfig.common.text2), e
            }

            get strVipCardText() {
                let e = void 0;
                if (p(this.vipConfig) && p(this.vipConfig.common) && p(this.vipConfig.common.text1) && "" !== this.vipConfig.common.text1) {
                    let t = this.vipConfig.common.text1;
                    [e] = t.split("|")
                }
                let t = "卡券";
                return this.vipCardCount <= 0 && p(e) && "" !== e && (t = e), t
            }

            get strVipBtnText() {
                let e = "开通下载会员";
                return this.vipLabConfig && this.vipLabConfig.xl11_ggong_pay_hover && this.vipLabConfig.xl11_ggong_pay_hover[0] && this.vipLabConfig.xl11_ggong_pay_hover[0].text && (e = this.vipLabConfig.xl11_ggong_pay_hover[0].text), e
            }

            get strVipBtnTips() {
                let e = "";
                return this.vipLabConfig && this.vipLabConfig.xl11_ggong_pay_hover && this.vipLabConfig.xl11_ggong_pay_hover[0] && this.vipLabConfig.xl11_ggong_pay_hover[0].text && this.vipLabConfig.xl11_ggong_pay_hover[1] && this.vipLabConfig.xl11_ggong_pay_hover[1].text && (e = this.vipLabConfig.xl11_ggong_pay_hover[1].text), e
            }

            get strVipBtnLink() {
                let e = "";
                return this.vipLabConfig && this.vipLabConfig.xl11_ggong_pay_hover && this.vipLabConfig.xl11_ggong_pay_hover[0] && this.vipLabConfig.xl11_ggong_pay_hover[0].url && (e = S.VipLableConfigNS.getConfigUrl(this.vipLabConfig.xl11_ggong_pay_hover[0].referfrom, this.vipLabConfig.xl11_ggong_pay_hover[0].aidfrom, this.vipLabConfig.xl11_ggong_pay_hover[0].url)), e
            }

            get isVipLinkDef() {
                return !!(this.vipLabConfig && this.vipLabConfig.xl11_ggong_hover_wzl && this.vipLabConfig.xl11_ggong_hover_wzl[0] && this.vipLabConfig.xl11_ggong_hover_wzl[0].text && this.vipLabConfig.xl11_ggong_hover_wzl[0].url)
            }

            get strVipLinkText() {
                let e = "";
                return this.isVipLinkDef && (e = this.vipLabConfig.xl11_ggong_hover_wzl[0].text), e
            }

            get strVipWzlLink() {
                let e = "";
                return this.isVipLinkDef && (e = S.VipLableConfigNS.getConfigUrl(this.vipLabConfig.xl11_ggong_hover_wzl[0].referfrom, this.vipLabConfig.xl11_ggong_hover_wzl[0].aidfrom, this.vipLabConfig.xl11_ggong_hover_wzl[0].url)), e
            }

            get bubbleVisible() {
                return this.showBubble && !this.handClosed
            }

            get bubbleInfo() {
                let e = "";
                return this.syncMsgState === y.SyncMsgHelperNS.SyncMsgState.Connecting ? e = "连接帐号信息同步服务器失败，正在重试..." : this.syncMsgState === y.SyncMsgHelperNS.SyncMsgState.Close ? e = "帐号信息同步服务连接失败，请尝试重新登录帐号" : this.syncMsgState === y.SyncMsgHelperNS.SyncMsgState.Error && (e = "帐号信息同步服务未正常运行，请尝试重新启动迅雷"), e
            }

            getVipLevelDailyExp() {
                let e = this.vipType, t = this.vipLevel, n = 70;
                return n = 3 === e || 4 === e ? t >= 1 && t <= 7 ? 100 + 10 * (t - 1) : 70 : t >= 1 && t <= 7 ? 80 + 10 * (t - 1) : 70
            }

            onClick(e) {
                f.information("onClick:", e);
                let t = void 0, n = void 0, r = null;
                switch (e) {
                    case"header":
                        r = {from: "photo"}, t = `http://misc.xl9.xunlei.com/personal-center/dist/#/${this.userID}/profile?entrypage=client_leftright_login&entry=client_leftright_login_head`;
                        break;
                    case"nick":
                        return void this.openUserInfoPanel(e);
                    case"nian":
                        r = {from: "nf"}, t = "https://vip.xunlei.com/vip_service/year/?referfrom=v_pc_xlx_ggong_hover_yearicon";
                        break;
                    case"vip":
                        t = 0 !== this.isVip ? "https://vip.xunlei.com/vip_service/rule/?referfrom=v_pc_xlx_ggong_hover_vipicon" : "https://pay.xunlei.com/pay.html?bizNo=baijin?referfrom=v_pc_xlx_ggong_hover_vipicon", r = {from: "vipicon"};
                        break;
                    case"level":
                        t = "http://i.xunlei.com/help/help_2.html?referfrom=v_pc_xlx_ggong_hover_grade", r = {from: "level1"};
                        break;
                    case"levelupNum":
                        t = "http://i.xunlei.com/help/help_2.html?referfrom=v_pc_xlx_ggong_hover_upgrade", r = {from: "level2"};
                        break;
                    case"vipGrow":
                        t = "https://vip.xunlei.com/vip_service/rule/?referfrom=v_pc_xlx_ggong_hover_grxx", r = 2 === this.vipGrowUpgradeType ? {from: "go_to_know"} : 3 === this.vipGrowUpgradeType ? {from: "go_up"} : {from: "open_growth_value"};
                        break;
                    case"quan":
                        t = this.vipCardTipData.url, this.clickVipCardTip(), r = {
                            button: "quan",
                            value: this.vipCardCount,
                            from: "quan"
                        }, t || (t = p(this.vipConfig) && p(this.vipConfig.common) && p(this.vipConfig.common.url1) && "" !== this.vipConfig.common.url1 ? this.vipConfig.common.url1 : "https://vip.xunlei.com/vip_service/voucher/index.html?referfrom=v_pc_xlx_ggong_hover_yyw");
                        break;
                    case"cdd":
                        this.stat({button: "cdd"}), t = "https://misc-xl9-ssl.xunlei.com/welfare-pc/?entrypage=client_leftright&entry=client_leftright_head", s.NativeCallModule.nativeCall.CallNativeFunction("ShowWebWnd", "sign", "hover");
                        break;
                    case"vipBtn":
                        t = this.strVipBtnLink, r = {button: "pay", show_type: this.getPayType()};
                        break;
                    case"vipLink":
                        this.isVipLinkDef && (t = this.strVipWzlLink), r = {wzl_type: this.getWzlType()};
                        break;
                    case"coin":
                        t = "https://misc-xl9-ssl.xunlei.com/welfare-pc/?entrypage=client_leftright&entry=client_leftright_head", n = "bird_club", r = {
                            button: "sign",
                            value: this.totalCoin
                        }
                }
                if (r && this.stat(r), t) {
                    let e = void 0;
                    n && (e = `{"name": "${n}"}`), w.client.callServerFunction("OpenNewTab", t, e).then(() => {
                        null !== this.curWnd && this.curWnd.close()
                    }).catch()
                }
            }

            calculateScoreInfo() {
                for (let e = 99; e >= 0; e--) if (this.curScore >= this.degreePointScore[e]) {
                    this.userLevel = e + 1;
                    break
                }
                this.nextScore = this.degreePointScore[this.userLevel]
            }

            initEveryLevelValue() {
                let e = 0;
                for (let t = 1; t <= 100; t++) e = 50 * t * (t + 3), this.degreePointScore.push(e)
            }

            menuItemClick(e) {
                let t = "";
                if ("changePassword" === e) {
                    let e = "https://i.xunlei.com/xluser/validate/enter/modifypwd_enter.html";
                    w.client.callServerFunction("OpenNewTab", e).catch(), t = "button=modify_code"
                } else if ("accountSecurity" === e) {
                    let e = "https://i.xunlei.com/xluser/account/acc_safe.html";
                    w.client.callServerFunction("OpenNewTab", e).catch(), t = "button=account_se"
                } else "switchAccount" === e ? (w.client.callServerFunction("SwitchAccount").catch(), t = "button=change_account") : "logout" === e && (w.client.callServerFunction("Logout").catch(), t = "button=exit");
                f.information("menuItemClick:extData = ", t), w.client.callServerFunction("TrackEvent", "clienttop", "userinfo_hover_click", "", 0, 0, 0, 0, t).catch(), null !== this.curWnd && this.curWnd.close()
            }

            showMenu() {
                return i(this, void 0, void 0, function* () {
                    let e = [{
                        type: "normal", label: "切换帐号", click: () => {
                            this.menuItemClick("switchAccount")
                        }
                    }, {
                        type: "normal", label: "退出登录", click: () => {
                            this.menuItemClick("logout")
                        }
                    }], t = yield a.asyncRemoteCall.getMenu();
                    this.contextMenu = yield t.buildFromTemplate(e);
                    let n = this.curWnd, r = yield n.getBounds(), i = Math.round(r.width);
                    this.$emit("set-menu-show", !0, {
                        width: 100,
                        height: 135
                    }), yield g.MenuSkinNS.setStyle(this.contextMenu, {}), yield this.contextMenu.popup({
                        window: n,
                        x: i,
                        y: 0
                    }), this.stat({from: "account_manage"})
                })
            }

            isMenuWndRect() {
                return i(this, void 0, void 0, function* () {
                    let e = yield this.curWnd.getBounds(),
                        t = yield(yield a.asyncRemoteCall.getScreen()).getCursorScreenPoint();
                    return t.x >= e.x + e.width && t.x <= e.x + e.width + 100 && t.y >= e.y && t.y <= e.y + 135 || t.x >= e.x + e.width - 50 && t.x <= e.x + e.width && t.y >= e.y && t.y <= e.y + 50
                })
            }

            hideMenu() {
                null === this.checkMenutimer && (this.checkMenutimer = setInterval(() => i(this, void 0, void 0, function* () {
                    !1 === (yield this.isMenuWndRect()) && (this.$emit("set-menu-show", !1), this.contextMenu.closePopup(this.curWnd), null !== this.checkMenutimer && (clearInterval(this.checkMenutimer), this.checkMenutimer = null))
                }), 200))
            }

            openUserInfoPanel(e) {
                this.statClient("userinfo_click"), s.NativeCallModule.nativeCall.CallNativeFunction("ShowModifierUserInfoWnd", e), null !== this.curWnd && this.curWnd.close()
            }

            getCurUserHeader() {
                this.imgUrl = h, f.information("getCurUserHeader:", this.userID), s.NativeCallModule.nativeCall.CallNativeFunction("GetUserHeaderByUserID", this.userID, (e, t) => {
                    f.information("GetUserHeaderByUserID:", t), null !== t && void 0 !== t && "" !== t && (this.imgUrl = `${t}?_=${Date.now()}`)
                })
            }

            hanleTrackShowWnd() {
                !this.isTrackedShowWnd && p(this.from) && p(this.vipConfig) && this.vipLabConfigInit && (this.isTrackedShowWnd = !0, this.trackShowWndEvent().catch())
            }

            trackShowWndEvent() {
                return i(this, void 0, void 0, function* () {
                    let e = "", t = "";
                    if ("head" === this.from ? t = "1" : "name" === this.from ? t = "2" : "vip" === this.from && (t = "3"), e = "from=" + t + ",is_vip=" + this.isVip + ",vip_type=" + this.vipType, this.isVipLinkDef) {
                        let t = this.getWzlType();
                        t && (e = e + ",wzl_type=" + t)
                    }
                    let n = 1;
                    if (0 !== this.isVip) n = 3; else {
                        n = (yield l.VipUserInfoNS.getIsUsedToBeVip()) ? 4 : 2
                    }
                    e = e + ",grxx_type=" + n;
                    let r = this.getPayType();
                    r && (e = e + ",aidfrom=" + r);
                    let i = encodeURIComponent(e);
                    yield w.client.callServerFunction("TrackEvent", "clienttop", "logged_hover_layer_show", "", 0, 0, 0, 0, i)
                })
            }

            getPayType() {
                if (this.vipLabConfig && this.vipLabConfig.xl11_ggong_pay_hover && this.vipLabConfig.xl11_ggong_pay_hover[0] && this.vipLabConfig.xl11_ggong_pay_hover[0].aidfrom) return this.vipLabConfig.xl11_ggong_pay_hover[0].aidfrom
            }

            getPayReferfrom() {
                if (this.vipLabConfig && this.vipLabConfig.xl11_ggong_pay_hover && this.vipLabConfig.xl11_ggong_pay_hover[0] && this.vipLabConfig.xl11_ggong_pay_hover[0].referfrom) return this.vipLabConfig.xl11_ggong_pay_hover[0].referfrom
            }

            getWzlType() {
                let e = void 0;
                return this.vipLabConfig && this.vipLabConfig.xl11_ggong_hover_wzl && this.vipLabConfig.xl11_ggong_hover_wzl[0] && this.vipLabConfig.xl11_ggong_hover_wzl[0].aidfrom && (e = this.vipLabConfig.xl11_ggong_hover_wzl[0].aidfrom), e
            }

            getWzlReferfrom() {
                let e = "v_pc_xlx_ggong_hover_wzl";
                return this.vipLabConfig && this.vipLabConfig.xl11_ggong_hover_wzl && this.vipLabConfig.xl11_ggong_hover_wzl[0] && this.vipLabConfig.xl11_ggong_hover_wzl[0].referfrom && (e = this.vipLabConfig.xl11_ggong_hover_wzl[0].referfrom), e
            }

            stat(e) {
                let t = "is_vip=" + this.isVip + ",vip_type=" + this.vipType;
                const n = e.from;
                n && (t = t + ",position=" + n), e.button && (t = t + ",button=" + e.button, "pay" === e.button && this.getPayType() && this.getPayReferfrom() && (t += ",aidfrom=" + this.getPayType(), t += ",referfrom=" + this.getPayReferfrom())), e.value && (t = t + ",value=" + e.value), e.show_type && (t = t + ",show_type=" + e.show_type), e.wzl_type && (t = (t = (t = t + ",wzl_type=" + e.wzl_type) + ",aidfrom=" + e.wzl_type) + ",referfrom=" + this.getWzlReferfrom());
                let r = "", i = "", o = -1, a = "";
                "grade" === n || "upgrade" === n || "ranking" === n || "coupon" === n || "my_page" === n || "vipicon" === n || "nf" === n ? (i = n, "my_page" === n ? i = "mypage" : "nf" === n && (i = "yearicon"), r = "v_pc_xlx_ggong_hover_" + i) : "pay" === n ? r = "v_pc_xlx_ggong_pay_hover" : "quan" === n && (r = this.vipCardTipData.referfrom, t = t + ",pop_type=" + this.vipCardTipData.tip), "account_manage" !== n && r && (t = t + ",referfrom=" + r), "vipicon" !== n && "pay" !== n || (0 === this.isVip && 0 === this.vipGrow ? (o = 1, a = "ktnovip") : 0 === this.isVip && 0 !== this.vipGrow ? (o = 2, a = "ktnovip1") : -1 !== this.vipShowType && "vipicon" !== n && (o = this.vipShowType, a = this.strAidfrom), -1 !== o && (t = t + ",show_type=" + o), "" !== a && (t = t + ",aidfrom=" + a));
                let s = encodeURIComponent(t);
                f.information(t, s), w.client.callServerFunction("TrackEvent", "clienttop", "logged_hover_layer_click", "", 0, 0, 0, 0, s).catch()
            }

            statClient(e) {
                let t = `is_login=1,is_vip=${this.isVip}`;
                f.information(e, t), w.client.callServerFunction("TrackEvent", "user_info", e, "", 0, 0, 0, 0, t).catch()
            }

            updateCoinPrize() {
                return i(this, void 0, void 0, function* () {
                    let e = !1, t = -1;
                    try {
                        let t = yield b.fetchSlRes({
                            url: "/xlppc.coin.task/api/v2/get_task_info",
                            data: {},
                            method: "get"
                        });
                        if (null !== t && void 0 !== t && 200 === t.status) {
                            let n = t.data;
                            if (f.information("get_task_info data", n), 0 === n.code && !C.isNullOrUndefined(n.data)) {
                                const t = ["task1002", "task1003", "task1005", "task1006", "task1007", "task1010", "task1012"];
                                for (let r = 0; r < t.length; ++r) if (!C.isNullOrUndefined(n.data[t[r]]) && 1 === n.data[t[r]].status) {
                                    e = !0;
                                    break
                                }
                            }
                        }
                    } catch (e) {
                    }
                    try {
                        let e = yield b.fetchSlRes({
                            url: "/xlppc.coin.api/api/query_coin_balance",
                            data: {},
                            method: "get"
                        });
                        if (null !== e && void 0 !== e && 200 === e.status) {
                            let n = e.data;
                            f.information("query_coin_balance data", n), "ok" === n.result && !C.isNullOrUndefined(n.data) && C.isNumber(n.data.balance) && (t = n.data.balance)
                        }
                    } catch (e) {
                    }
                    this.hasCoinPrize = e, this.totalCoin = t
                })
            }

            updateUserData() {
                return i(this, void 0, void 0, function* () {
                    s.NativeCallModule.nativeCall.CallNativeFunction("GetAllUserInfo", (e, t) => {
                        f.information(e);
                        do {
                            if (null === t || void 0 === t) break;
                            if (this.userID = t.userID, this.userNick = d.ThunderUtil.unescapeHTML(t.nickName), this.getCurUserHeader(), this.curScore = t.account, this.calculateScoreInfo(), null === t.vipList || void 0 === t.vipList) break;
                            if (null === t.vipList[0] || void 0 === t.vipList[0]) break;
                            let e = t.vipList[0];
							e.isYear = 1;
							if (e.isVip == 0) {
								e.vipLevel = 10;
								e.isVip = 1;								
								e.vasType = 5;
							}							
                            this.vipData = [{
                                VIPLevel: e.vipLevel,
                                isVIP: e.isVip,
                                isYear: e.isYear,
                                uid: t.userID,
                                vasID: 2,
                                vasType: e.vasType
                            }], this.isYear = Number(e.isYear), this.isVip = Number(e.isVip), this.vipLevel = Number(e.vipLevel), this.vipType = Number(e.vasType), this.expireDate = e.expireDate;
                            let n = p(e.vipDayGrow) ? Number(e.vipDayGrow) : 15;
                            this.vipDayGrow = Math.abs(n), "" !== e.vipGrow && (this.vipGrow = Number(e.vipGrow)), this.vipGrowRange = c.VipGrowNS.getVipGrowRange(this.vipGrow)
                        } while (0)
                    }), this.updateCoinPrize().catch(), (yield w.client.callServerFunction("IsHaveSignQuestion")) ? this.signState = (yield w.client.callServerFunction("IsAlreadySign")) ? 1 : 0 : this.signState = -1
                })
            }

            isNumber(e) {
                return !!/^\d+(\.\d+)?$/.test(e)
            }

            calculateExpireDate() {
                let e = void 0;
                do {
                    if (!this.expireDate) break;
                    let t = this.expireDate.substring(0, 4), n = this.expireDate.substring(4, 6),
                        r = this.expireDate.substring(6, 8);
                    if (!this.isNumber(t) || !this.isNumber(n) || !this.isNumber(r)) break;
                    let i = new Date(t + "-" + n + "-" + r + " 00:00:00").getTime() / 1e3, o = new Date(Date.now()),
                        a = o.getFullYear(), s = o.getMonth(), l = o.getDate(),
                        c = (o = new Date(a + "-" + (s < 10 ? "0" + (s + 1) : s + 1) + "-" + (l < 10 ? "0" + l : l) + " 00:00:00")).getTime() / 1e3,
                        d = 86400;
                    e = Math.ceil(Math.abs(i - c) / d)
                } while (0);
                return e
            }

            handleCloseBubble() {
                this.handClosed = !0
            }

            mounted() {
                return i(this, void 0, void 0, function* () {
                    s.NativeCallModule.nativeCall.CallNativeFunction("IsAlreadySign", (e, t) => {
                        f.information("IsAlreadySign: result = ", t, e), this.isOpenSign = t
                    }), s.NativeCallModule.nativeCall.CallNativeFunction("IsHaveSignQuestion", (e, t) => {
                        f.information("IsHaveSignQuestion: result = ", t, e), this.isShowSign = t
                    }), this.curWnd = yield a.asyncRemoteCall.getCurrentWindow(), f.information("mounted:", this.curWnd), this.initEveryLevelValue(), this.onGetUserInfoFinishedCookie = s.NativeCallModule.nativeCall.AttachNativeEvent("onGetUserInfoFinished", () => {
                        f.information("收到 onGetUserInfoFinished 事件"), this.updateUserData().catch()
                    }), this.onUserHeaderChangeCookie = s.NativeCallModule.nativeCall.AttachNativeEvent("onUserHeaderChange", e => {
                        f.information("onUserHeaderChange:", e), this.imgUrl = e
                    }), yield this.updateUserData().catch(), this.initLabConfig(), null !== this.curWnd && this.curWnd.on("close", () => {
                        null !== this.contextMenu && this.contextMenu.closePopup(this.curWnd), null !== this.checkMenutimer && (clearInterval(this.checkMenutimer), this.checkMenutimer = null), s.NativeCallModule.nativeCall.DetachNativeEvent("onUserHeaderChange", this.onUserHeaderChangeCookie), s.NativeCallModule.nativeCall.DetachNativeEvent("onGetUserInfoFinished", this.onGetUserInfoFinishedCookie)
                    }), u.default.getLoginConfig().then(e => {
                        f.information("config", e), this.vipConfig = e, this.hanleTrackShowWnd()
                    }), l.VipUserInfoNS.getSignCoin().then(e => {
                        this.vipSignCoin = e
                    }), l.VipUserInfoNS.getUserFund().then(e => {
                        this.initVipCardTipData(e)
                    }), yield y.SyncMsgHelperNS.init(), this.syncMsgState = y.SyncMsgHelperNS.getSyncMsgState(), this.syncMsgState !== y.SyncMsgHelperNS.SyncMsgState.Connected && (this.showBubble = !0), (yield y.SyncMsgHelperNS.checkSyncMsg()) ? this.syncMsgEventId = y.SyncMsgHelperNS.attachSyncMsgStateChangeEvent((e, t) => i(this, void 0, void 0, function* () {
                        this.syncMsgState = e, e === y.SyncMsgHelperNS.SyncMsgState.Connecting || e === y.SyncMsgHelperNS.SyncMsgState.Close ? this.showBubble = !0 : e === y.SyncMsgHelperNS.SyncMsgState.Connected && (this.showBubble = !1)
                    })) : (this.syncMsgState = y.SyncMsgHelperNS.SyncMsgState.Error, this.showBubble = !0)
                })
            }

            initVipCardTipData(e) {
                return i(this, void 0, void 0, function* () {
                    if (e) {
                        do {
                            if (p(e.lastestcashvideo) && p(e.url)) {
                                let t = e.url;
                                if (this.vipCardTipData.url = t, t.indexOf("referfrom") > 0) {
                                    let e = x.ParseUrlFileNameNS.parseDynamicUrlPath(t),
                                        n = x.ParseUrlFileNameNS.parseDynamicUrlArgs(e.args);
                                    this.vipCardTipData.referfrom = n.referfrom
                                }
                                if (this.vipCardTipData.cardCount = p(e.num) ? Number(e.num) : 0, p(e.lastestcashvideo.not_use_in_3days) && e.lastestcashvideo.not_use_in_3days) {
                                    let t = e.lastestcashvideo.not_use_in_3days, n = yield this.getLastNot3DaysTime(),
                                        r = yield this.getLastNot3DaysShowTipsTime();
                                    if (t !== n) {
                                        this.vipCardTipData.canShow = !0, this.vipCardTipData.tip = e.cashtext_video.not_use_in_3days, this.vipCardTipData.tip || (this.vipCardTipData.tip = "免费点播"), this.vipCardTipData.tipType = "免费点播", this.vipCardTipData.cardTime = t, this.setLastNot3DaysTime(t), this.setLastNot3DaysShowTipsTime(this.currentTime);
                                        break
                                    }
                                    if (this.currentTime - r < 43200) {
                                        if ((yield this.getLastClickNot3DaysTime()) !== t) {
                                            this.vipCardTipData.canShow = !0, this.vipCardTipData.tip = e.cashtext_video.not_use_in_3days, this.vipCardTipData.tip || (this.vipCardTipData.tip = "免费点播"), this.vipCardTipData.tipType = "免费点播", this.vipCardTipData.cardTime = t;
                                            break
                                        }
                                    }
                                }
                                let n = "after7day";
                                if (p(e.cashtext_video.overdue_after_7days_type) && e.cashtext_video.overdue_after_7days_type && (n = e.cashtext_video.overdue_after_7days_type), "after7day" === n && p(e.lastestcashvideo.overdue_after_7days) && e.lastestcashvideo.overdue_after_7days) {
                                    let t = e.lastestcashvideo.overdue_after_7days,
                                        n = yield this.getLastAfter7DaysTime(),
                                        r = yield this.getLastAfter7DaysShowTipsTime();
                                    if (t !== n) {
                                        this.vipCardTipData.canShow = !0, this.vipCardTipData.tip = e.cashtext_video.overdue_after_7days, this.vipCardTipData.tip || (this.vipCardTipData.tip = "即将到期"), this.vipCardTipData.tipType = "即将到期7", this.vipCardTipData.cardTime = t, this.setLastAfter7DaysTime(t), this.setLastAfter7DaysShowTipsTime(this.currentTime);
                                        break
                                    }
                                    if (this.currentTime - r < 43200) {
                                        if ((yield this.getLastClickAfter7DaysTime()) !== t) {
                                            this.vipCardTipData.canShow = !0, this.vipCardTipData.tip = e.cashtext_video.overdue_after_7days, this.vipCardTipData.tip || (this.vipCardTipData.tip = "即将到期"), this.vipCardTipData.tipType = "即将到期7", this.vipCardTipData.cardTime = t;
                                            break
                                        }
                                    }
                                }
                                if ("today" === n && p(e.lastestcashvideo.overdue_after_7days) && e.lastestcashvideo.overdue_after_7days) {
                                    let t = e.lastestcashvideo.overdue_after_7days,
                                        n = yield this.getLastAfter1DaysTime(),
                                        r = yield this.getLastAfter1DaysShowTipsTime();
                                    if (t !== n) {
                                        this.vipCardTipData.canShow = !0, this.vipCardTipData.tip = e.cashtext_video.overdue_after_1days, this.vipCardTipData.tip || (this.vipCardTipData.tip = "即将到期"), this.vipCardTipData.tipType = "即将到期1", this.vipCardTipData.cardTime = t, this.setLastAfter1DaysTime(t), this.setLastAfter1DaysShowTipsTime(this.currentTime);
                                        break
                                    }
                                    if (this.currentTime - r < 43200) {
                                        if ((yield this.getLastClickAfter1DaysTime()) !== t) {
                                            this.vipCardTipData.canShow = !0, this.vipCardTipData.tip = e.cashtext_video.overdue_after_1days, this.vipCardTipData.tip || (this.vipCardTipData.tip = "即将到期"), this.vipCardTipData.tipType = "即将到期1", this.vipCardTipData.cardTime = t;
                                            break
                                        }
                                    }
                                }
                            }
                        } while (0);
                        this.vipCardTipData.canShow && this.statLoggedHoverKqPopShow()
                    }
                })
            }

            initDefaultLabConfig() {
                if (!this.vipLabConfig || !this.vipLabConfig.xl11_ggong_pay_hover) {
                    let e = this.isVip && 5 === this.vipType;
                    this.vipLabConfig || (this.vipLabConfig = {xl11_ggong_pay_hover: []}), this.isContinueMonthPayVip ? this.vipLabConfig.xl11_ggong_pay_hover = [{
                        text: "领取连续包奖励金",
                        url: "https://vip.xunlei.com/vip_service/baoyue/index.html?referfrom=v_pc_xlx_ggong_pay_hover&aidfrom=lxb",
                        aidfrom: "lxb",
                        referfrom: "v_pc_xlx_ggong_pay_hover"
                    }] : e ? this.vipLabConfig.xl11_ggong_pay_hover = [{
                        text: "续费超级会员",
                        url: "https://pay.xunlei.com/pay.html?bizNo=baijin&referfrom=v_pc_xlx_ggong_pay_hover&aidfrom=xfcj",
                        aidfrom: "xfcj",
                        referfrom: "v_pc_xlx_ggong_pay_hover"
                    }] : this.isVip && this.vipType > 2 ? this.vipLabConfig.xl11_ggong_pay_hover = [{
                        text: "续费白金会员",
                        url: "https://pay.xunlei.com/pay.html?bizNo=baijin&referfrom=v_pc_xlx_ggong_pay_hover&aidfrom=xfbj",
                        aidfrom: "xfbj",
                        referfrom: "v_pc_xlx_ggong_pay_hover"
                    }] : this.vipLabConfig.xl11_ggong_pay_hover = [{
                        text: "开通白金会员",
                        url: "https://pay.xunlei.com/pay.html?bizNo=baijin&referfrom=v_pc_xlx_ggong_pay_hover&aidfrom=firstkt",
                        aidfrom: "firstkt",
                        referfrom: "v_pc_xlx_ggong_pay_hover"
                    }]
                }
            }

            initLabConfig() {
                return i(this, void 0, void 0, function* () {
                    let e = yield S.VipLableConfigNS.getConfig("xl11_ggong_hover_wzl,xl11_ggong_pay_hover");
                    e && e.xl11_ggong_pay_hover ? this.vipLabConfig = e : (this.isVip && this.vipType > 2 && (this.isContinueMonthPayVip = yield l.VipUserInfoNS.isContinueMonthPayVip(!0), this.isContinueMonthPayVip && this.vipLabConfig && this.vipLabConfig.xl11_ggong_pay_hover && (this.vipLabConfig.xl11_ggong_pay_hover = null)), e && (this.vipLabConfig = e), this.initDefaultLabConfig()), this.vipLabConfigInit = !0, this.hanleTrackShowWnd()
                })
            }

            getLastNot3DaysTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastNotUseIn3DaysTime", "").catch()
                })
            }

            setLastNot3DaysTime(e) {
                w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastNotUseIn3DaysTime", e).catch()
            }

            getLastNot3DaysShowTipsTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastNotUseIn3DaysShowTipsTime", 0).catch()
                })
            }

            setLastNot3DaysShowTipsTime(e) {
                w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastNotUseIn3DaysShowTipsTime", e).catch()
            }

            getLastClickNot3DaysTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastClickNotUseIn3DaysTime", "").catch()
                })
            }

            setLastClickNot3DaysTime(e) {
                return i(this, void 0, void 0, function* () {
                    w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastClickNotUseIn3DaysTime", e).catch()
                })
            }

            getLastAfter7DaysTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastAfter7DaysTime", "").catch()
                })
            }

            setLastAfter7DaysTime(e) {
                w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastAfter7DaysTime", e).catch()
            }

            getLastAfter7DaysShowTipsTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastAfter7DaysShowTipsTime", 0).catch()
                })
            }

            setLastAfter7DaysShowTipsTime(e) {
                w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastAfter7DaysShowTipsTime", e).catch()
            }

            getLastClickAfter7DaysTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastClickAfter7DaysTime", "").catch()
                })
            }

            setLastClickAfter7DaysTime(e) {
                return i(this, void 0, void 0, function* () {
                    w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastClickAfter7DaysTime", e).catch()
                })
            }

            getLastAfter1DaysTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastAfter1DaysTime", "").catch()
                })
            }

            setLastAfter1DaysTime(e) {
                w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastAfter1DaysTime", e).catch()
            }

            getLastAfter1DaysShowTipsTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastAfter1DaysShowTipsTime", 0).catch()
                })
            }

            setLastAfter1DaysShowTipsTime(e) {
                w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastAfter1DaysShowTipsTime", e).catch()
            }

            getLastClickAfter1DaysTime() {
                return i(this, void 0, void 0, function* () {
                    return yield w.client.callServerFunction("GetValue", "PersonalInfoDialog", "CardTip_LastClickAfter1DaysTime", "").catch()
                })
            }

            setLastClickAfter1DaysTime(e) {
                return i(this, void 0, void 0, function* () {
                    w.client.callServerFunction("SetValue", "PersonalInfoDialog", "CardTip_LastClickAfter1DaysTime", e).catch()
                })
            }

            get currentTime() {
                return Math.floor((new Date).getTime() / 1e3)
            }

            get hasVipCardTip() {
                return this.vipCardTipData.canShow
            }

            get vipCardTip() {
                return this.vipCardTipData.tip
            }

            get vipCardCount() {
                return this.vipCardTipData.cardCount
            }

            clickVipCardTip() {
                "免费点播" === this.vipCardTipData.tipType ? this.setLastClickNot3DaysTime(this.vipCardTipData.cardTime) : "即将到期7" === this.vipCardTipData.tipType ? this.setLastClickAfter7DaysTime(this.vipCardTipData.cardTime) : "即将到期1" === this.vipCardTipData.tipType && this.setLastClickAfter1DaysTime(this.vipCardTipData.cardTime)
            }

            statLoggedHoverKqPopShow() {
                let e = "is_vip=" + this.isVip + ",vip_type=" + this.vipType + ",pop_type=" + this.vipCardTipData.tip,
                    t = encodeURIComponent(e);
                w.client.callServerFunction("TrackEvent", "clienttop", "logged_hover_kq_pop_show", "", 0, 0, 0, 0, t).catch()
            }

            destroyed() {
                this.syncMsgEventId && (y.SyncMsgHelperNS.detachSyncMsgStateChangeEvent(this.syncMsgEventId), this.syncMsgEventId = void 0)
            }
        };
        r([o.Prop()], T.prototype, "from", void 0), r([o.Watch("from")], T.prototype, "onFromChanged", null), T = r([o.Component({components: {}})], T), t.default = T
    }, 280: function (e, t, n) {
        "use strict";
        n.r(t);
        var r = n(281), i = n.n(r);
        for (var o in r) "default" !== o && function (e) {
            n.d(t, e, function () {
                return r[e]
            })
        }(o);
        t.default = i.a
    }, 281: function (e, t, n) {
        "use strict";
        var r = this && this.__decorate || function (e, t, n, r) {
            var i, o = arguments.length, a = o < 3 ? t : null === r ? r = Object.getOwnPropertyDescriptor(t, n) : r;
            if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, r); else for (var s = e.length - 1; s >= 0; s--) (i = e[s]) && (a = (o < 3 ? i(a) : o > 3 ? i(t, n, a) : i(t, n)) || a);
            return o > 3 && a && Object.defineProperty(t, n, a), a
        }, i = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const o = n(5), a = n(7), s = n(11), l = n(643), c = n(1), d = n(4),
            u = c.default.getLogger("personalInfo:unlogin");
        let {isDef: f} = s.ThunderUtil;
        const p = n(734);
        let h = class extends o.Vue {
            constructor() {
                super(...arguments), this.curWnd = null, this.vipConfig = null, this.voucherUrl = "", this.detail = ""
            }

            get btnText() {
                let e = "立即登录领取";
                return f(this.vipConfig) && f(this.vipConfig.btn_text) && "" !== this.vipConfig.btn_text && (e = this.vipConfig.btn_text), e
            }

            get btnUrl() {
                let e = "https://act-vip-ssl.xunlei.com/pc/vip/2018/vip2018xsrw/?referfrom=v_pc_xlx_ggong_hover_nolog";
                return f(this.vipConfig) && f(this.vipConfig.btn_url) && "" !== this.vipConfig.btn_url && (e = this.vipConfig.btn_url), e
            }

            useDefaultImg() {
                this.voucherUrl = p
            }

            onBtnClick() {
                return i(this, void 0, void 0, function* () {
                    do {
                        let e = yield d.client.callServerFunction("GetLoginOption");
                        if (f(e) && f(e.priority) && e.priority > 0) {
                            yield d.client.callServerFunction("OpenNewTab", this.btnUrl);
                            break
                        }
                        e = {tabUrl: this.btnUrl}, yield d.client.callServerFunction("ShowLoginDlg", "vip", !0, e)
                    } while (0);
                    yield d.client.callServerFunction("TrackEvent", "clienttop", "nolog_hover_layer_click", "", 0, 0, 0, 0, ""), null !== this.curWnd && this.curWnd.close()
                })
            }

            trackShowWndEvent() {
                return i(this, void 0, void 0, function* () {
                    yield d.client.callServerFunction("TrackEvent", "clienttop", "nolog_hover_layer_show", "", 0, 0, 0, 0, "")
                })
            }

            mounted() {
                return i(this, void 0, void 0, function* () {
                    this.curWnd = yield a.asyncRemoteCall.getCurrentWindow(), (yield d.client.callServerFunction("IsLogined")) || l.default.getUnloginConfig().then(e => i(this, void 0, void 0, function* () {
                        u.information("config", e), this.vipConfig = e, f(e) && f(e.img) && "" !== e.img && (this.voucherUrl = e.img), f(e) && f(e.detail) && "" !== e.detail ? this.detail = e.detail : this.detail = "无门槛领金币 免费换会员", yield this.trackShowWndEvent()
                    }))
                })
            }
        };
        h = r([o.Component({components: {}})], h), t.default = h
    }, 3: function (e, t) {
        e.exports = require("electron")
    }, 31: function (e, t, n) {
        "use strict";
        var r;
        Object.defineProperty(t, "__esModule", {value: !0}), function (e) {
            let t, n;
            !function (e) {
                e.require = "AR_BROWSER_REQUIRE", e.builtIn = "AR_BROWSER_GET_BUILTIN", e.global = "AR_BROWSER_GET_GLOBAL", e.functionCall = "AR_BROWSER_FUNCTION_CALL", e.construct = "AR_BROWSER_CONSTRUCTOR", e.memberConstruct = "AR_BROWSER_MEMBER_CONSTRUCTOR", e.memberCall = "AR_BROWSER_MEMBER_CALL", e.memberSet = "AR_BROWSER_MEMBER_SET", e.memberGet = "AR_BROWSER_MEMBER_GET", e.currentWindow = "AR_BROWSER_CURRENT_WINDOW", e.currentWebContents = "AR_BROWSER_CURRENT_WEB_CONTENTS", e.clientWebContents = "AR_BROWSER_CLIENT_WEB_CONTENTS", e.webContents = "AR_BROWSER_WEB_CONTENTS", e.sync = "AR_BROWSER_SYNC", e.contextRelease = "AR_BROWSER_CONTEXT_RELEASE"
            }(t = e.browser || (e.browser = {})), function (e) {
                e.requireReturn = "AR_RENDERER_REQUIRE_RETURN", e.getBuiltInReturn = "AR_RENDERER_BUILTIN_RETURN", e.getGlobalReturn = "AR_RENDERER_GLOBAL_RETURN", e.functionCallReturn = "AR_RENDERER_FUNCTION_CALL_RETURN", e.memberConstructReturn = "AR_RENDERER_MEMBER_CONSTRUCTOR_RETURN", e.constructReturn = "AR_RENDERER_CONSTRUCTOR_RETURN", e.memberCallReturn = "AR_RENDERER_MEMBER_CALL_RETURN", e.memberSetReturn = "AR_RENDERER_MEMBER_SET_RETURN", e.memberGetReturn = "AR_RENDERER_MEMBER_GET_RETURN", e.currentWindowReturn = "AR_BROWSER_CURRENT_WINDOW_RETURN", e.currentWebContentsReturn = "AR_RENDERER_CURRENT_WEB_CONTENTS_RETURN", e.clientWebContentsReturn = "AR_RENDERER_CLIENT_WEB_CONTENTS_RETURN", e.webContentsReturn = "AR_RENDERER_WEB_CONTENTS_RETURN", e.syncReturn = "AR_RENDERER_SYNC_RETURN", e.callback = "AR_RENDERER_CALLBACK"
            }(n = e.renderer || (e.renderer = {}))
        }(r || (r = {})), t.default = r
    }, 32: function (e, t, n) {
        "use strict";
        var r;
        !function (e) {
            e.getRemoteObjectName = function (e) {
                let t = typeof e;
                if ("function" === t) t = e.name; else if ("object" === t) {
                    let t = e.name;
                    if ("string" != typeof t) {
                        let n = e.constructor;
                        t = n ? n.name : Object.toString.call(e)
                    }
                }
                return t
            }, e.isPromise = function (e) {
                return e && e.then && e.then instanceof Function && e.constructor && e.constructor.reject && e.constructor.reject instanceof Function && e.constructor.resolve && e.constructor.resolve instanceof Function
            }
        }(r || (r = {})), e.exports = r
    }, 33: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(3), i = n(6), o = n(20), a = n(21);
        !function (e) {
            e.mainProcessContext = "main-process", e.mainRendererContext = "main-renderer", e.mainPageWebviewRendererContext = "main-page-webview-renderer", e.newTaskRendererContext = "new-task-renderer", e.preNewTaskRendererContext = "pre-new-task-renderer", e.loginRendererContext = "login-renderer";

            class t {
                constructor() {
                    this.isConnected = !1, this.isOnIPCEvent = !1, this.rendererInfos = [], this.listeners = new Map, t.intervalIPCModuleMsgs = [a.CommonIPCMessage.msgIPCRendererConnect, a.CommonIPCMessage.msgIPCRendererDisconnect]
                }

                onMessage(e, t) {
                    do {
                        if (!i.isString(e) || 0 === e.length) {
                            o.error("msgName is null");
                            break
                        }
                        if (i.isNullOrUndefined(t)) {
                            o.error("listener is null");
                            break
                        }
                        this.listeners.has(e) ? this.listeners.get(e).push(t) : this.listeners.set(e, [t])
                    } while (0)
                }

                getCommunicatorInfo() {
                    return this.currInfo
                }

                getAllRenderer() {
                    return this.rendererInfos
                }

                getCommunicatorInfoById(e) {
                    for (let t of this.rendererInfos) if (t.id === e) return t;
                    return null
                }

                getCommunicatorInfoByContext(e) {
                    for (let t of this.rendererInfos) if (t.context === e) return t;
                    return null
                }

                startListenIPCMessage(e) {
                    this.isOnIPCEvent || (this.isOnIPCEvent = !0, e && this.ListenSendToMainMsg(), this.ListenSendToRendererMsg(e))
                }

                ListenSendToMainMsg() {
                    r.ipcMain.on(a.CommonIPCMessage.msgIPCSendToMain, (e, t) => {
                        let n = void 0;
                        do {
                            if (i.isNullOrUndefined(t)) {
                                o.error("msgInfo is empty");
                                break
                            }
                            if (!this.isConnected) {
                                o.warning("hasnot been connected yet");
                                break
                            }
                            let r = t.msg.name;
                            if (this.isIPCModuleIntervalMsg(r)) {
                                o.information(`IPC module interval msg : ${r}`);
                                let i = this.handleIPCModuleIntervalMsg(e.sender, t);
                                if (n = i[1], !i[0]) break;
                                o.information("need to dispatch msg:" + r)
                            }
                            i.isNullOrUndefined(n) ? n = this.NotifyListener(t) : this.NotifyListener(t)
                        } while (0);
                        i.isNullOrUndefined(n) || (e.returnValue = n), t = null
                    })
                }

                ListenSendToRendererMsg(e) {
                    (e ? r.ipcMain : r.ipcRenderer).on(a.CommonIPCMessage.msgIPCSendToRenderer, (t, n) => {
                        let r = void 0;
                        do {
                            if (i.isNullOrUndefined(n)) {
                                o.error("msgInfo is empty");
                                break
                            }
                            if (!this.isConnected) {
                                o.warning("hasnot been connected yet");
                                break
                            }
                            let a = n.msg.name;
                            if (this.isIPCModuleIntervalMsg(a)) {
                                o.information(`IPC module interval msg : ${a}`);
                                let e = this.handleIPCModuleIntervalMsg(t.sender, n);
                                if (r = e[1], !e[0]) break;
                                o.information("need to dispatch msg:" + a)
                            }
                            e ? (o.information("is main, handle forward msg"), this.handleForwardRendererToRendererMsg(n)) : (o.information("is renderer, handle business msg"), i.isNullOrUndefined(r) ? r = this.NotifyListener(n) : this.NotifyListener(n))
                        } while (0);
                        i.isNullOrUndefined(r) || (t.returnValue = r), n = null
                    })
                }

                isIPCModuleIntervalMsg(e) {
                    for (let n of t.intervalIPCModuleMsgs) if (e === n) return !0;
                    return !1
                }

                handleIPCModuleIntervalMsg(e, t) {
                    let n = [!1, void 0];
                    do {
                        let r = t.msg.name;
                        if (r === a.CommonIPCMessage.msgIPCRendererConnect) {
                            n = [!0, this.handleRendererConnectMsg(e, t)];
                            break
                        }
                        if (r === a.CommonIPCMessage.msgIPCRendererDisconnect) {
                            n = [!0, this.handleRendererDisconnectMsg(e, t)];
                            break
                        }
                    } while (0);
                    return n
                }

                handleRendererConnectMsg(e, t) {
                    o.verbose(e), o.verbose(t)
                }

                handleRendererDisconnectMsg(e, t) {
                    o.verbose(e), o.verbose(t)
                }

                handleForwardRendererToRendererMsg(e) {
                    this.sendForwardRendererToRendererMsg(e)
                }

                sendForwardRendererToRendererMsg(e) {
                    o.verbose(e)
                }

                NotifyListener(e) {
                    let t = void 0, n = e.msg.name;
                    if (this.listeners.has(n)) {
                        let r = this.listeners.get(n), i = !0;
                        for (let n of r) i ? (i = !1, t = n(e)) : n(e)
                    }
                    return t
                }
            }

            e.Communicator = t
        }(t.CommonIPCBase || (t.CommonIPCBase = {}))
    }, 34: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(3), i = n(6), o = n(20), a = n(21), s = n(33);
        !function (e) {
            class t extends s.CommonIPCBase.Communicator {
                constructor() {
                    super()
                }

                initialize(e) {
                    this.currInfo = {id: void 0, context: e, isMainCommunicator: !1}
                }

                connect() {
                    this.isConnected ? o.warning("has been connected") : (this.sendConnectMsgToMain(), this.isConnected = !0, this.startListenIPCMessage(!1))
                }

                disconnect() {
                    this.isConnected ? (this.isConnected = !1, this.sendDisconnectMsgToMain()) : o.warning("hasnot been connected yet")
                }

                sendMessageToMain(e) {
                    this.sendIPCMsgToMain(e)
                }

                sendMessageToMainSync(e) {
                    return this.sendIPCMsgToMain(e, !0)
                }

                sendMessageToRenderer(e, t) {
                    this.sendIPCMsgToRenderer(e, t)
                }

                handleRendererConnectMsg(e, t) {
                    do {
                        if (i.isNullOrUndefined(t)) {
                            o.error("msgInfo is null");
                            break
                        }
                        let e = t.msg.args[0];
                        if (i.isNullOrUndefined(e)) {
                            o.error("connectRendererInfo is null");
                            break
                        }
                        o.information(`Renderer: new renderer will connect, id = ${e.id}, context = ${e.context}`), this.rendererInfos.push(e)
                    } while (0)
                }

                handleRendererDisconnectMsg(e, t) {
                    do {
                        if (i.isNullOrUndefined(t)) {
                            o.error("msgInfo is null");
                            break
                        }
                        let e = t.msg.args[0];
                        if (i.isNullOrUndefined(e)) {
                            o.error("disconnectRendererInfo is null");
                            break
                        }
                        o.information(`renderer will disconnect, id = ${e.id}, context = ${e.context}`);
                        for (let t = 0; t < this.rendererInfos.length; ++t) if (this.rendererInfos[t] === e) {
                            this.rendererInfos.splice(t, 1);
                            break
                        }
                    } while (0)
                }

                sendConnectMsgToMain() {
                    let e = this.sendMessageToMainSync({name: a.CommonIPCMessage.msgIPCRendererConnect, args: []});
                    this.currInfo.id = e[0], this.rendererInfos = e[1]
                }

                sendDisconnectMsgToMain() {
                    this.sendMessageToMain({name: a.CommonIPCMessage.msgIPCRendererDisconnect, args: []})
                }

                sendIPCMsgToMain(e, t = !1) {
                    let n = void 0;
                    do {
                        if (i.isNullOrUndefined(e)) {
                            o.error("msg is null");
                            break
                        }
                        n = (t ? r.ipcRenderer.sendSync : r.ipcRenderer.send)(a.CommonIPCMessage.msgIPCSendToMain, {
                            msg: e,
                            senderInfo: this.currInfo
                        })
                    } while (0);
                    return n
                }

                sendIPCMsgToRenderer(e, t) {
                    do {
                        if (i.isNullOrUndefined(e)) {
                            o.error("rendererId is null");
                            break
                        }
                        if (i.isNullOrUndefined(t)) {
                            o.error("msg is null");
                            break
                        }
                        let n = [e].concat(t.args);
                        t.args = n, r.ipcRenderer.send(a.CommonIPCMessage.msgIPCSendToRenderer, {
                            msg: t,
                            senderInfo: this.currInfo
                        })
                    } while (0)
                }
            }

            e.RendererCommunicator = t, e.rendererCommunicator = new t
        }(t.CommonIPCRenderer || (t.CommonIPCRenderer = {}))
    }, 35: function (e, t) {
        e.exports = require("url")
    }, 36: function (e, t) {
        e.exports = require("crypto")
    }, 37: function (e, t, n) {
        e.exports = n(8)(45)
    }, 38: function (e, t, n) {
        e.exports = n(104)
    }, 39: function (e, t, n) {
        "use strict";
        const r = n(13);
        if ("renderer" === process.type) {
            if (r.info("client running"), !global.__xdasAsyncRemoteExports) {
                let e = {};
                global.__xdasAsyncRemoteExports = e;
                let t = n(49);
                e.require = t.remoteRequire, e.getCurrentWebContents = t.getCurrentWebContents, e.getCurrentWindow = t.getCurrentWindow, e.Interest = t.Interest, e.global = new Proxy({}, {get: (e, n, r) => t.getGlobal(n)}), e.electron = new Proxy({}, {get: (e, n, r) => t.getBuiltin(n)}), Object.defineProperty(e, "currentWindow", {get: () => t.getCurrentWindow()}), Object.defineProperty(e, "currentWebContents", {get: () => t.getCurrentWebContents()}), Object.defineProperty(e, "process", {get: () => t.getGlobal("process")}), Object.defineProperty(e, "webContents", {get: () => t.getWebContents()})
            }
        } else if ("browser" === process.type && (r.info("server running"), !global.__xdasAsyncRemoteExports)) {
            let e = {};
            global.__xdasAsyncRemoteExports = e;
            const t = n(53);
            t.startServer(), e.getObjectRegistry = t.getObjectRegistry
        }
        e.exports = global.__xdasAsyncRemoteExports
    }, 4: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(14), o = n(46), a = n(24), s = n(26);

        function l(e) {
            s.information("on object freeer"), global.__xdasIPCClienInstance.notifyFreer(e.remoteId, e.callbackId)
        }

        let c = void 0;
        global.__xdasIPCClienInstance || (global.__xdasIPCClienInstance = new class extends i.EventEmitter {
            constructor() {
                super(), this.rid = 0, this.apis = {}, this.singletonMap = {}, this.connectedMap = {}, this.retCallbackMap = {}, this.eventCallbackMaps = {}, this.contextCallbackMap = {}
            }

            start(e, t, n, r) {
                do {
                    if (t || (t = a.getDefaultPrex()), this.singletonMap.hasOwnProperty(t.toLowerCase())) {
                        if (r) if (this.connectedMap.hasOwnProperty(t.toLowerCase())) r("connect"); else {
                            let e = this.singletonMap[t.toLowerCase()];
                            e.on("error", e => {
                                r("error", e)
                            }), e.on("connect", () => {
                                r("connect")
                            }), e.on("end", () => {
                                let t = e.isInprocess();
                                r("end", e.getContext(), n, t)
                            })
                        }
                        break
                    }
                    if (global.__xdasPluginConfig && global.__xdasPluginConfig.name ? e = {
                        name: global.__xdasPluginConfig.name,
                        version: global.__xdasPluginConfig.version
                    } : void 0 !== e && null !== e || (e = this.parseContext()), !e) {
                        if (!this.client || !this.client.getContext()) throw new Error("no suitable context for client, please specify context with start function");
                        e = {name: this.client.getContext().name, version: this.client.getContext().version}
                    }
                    if (e.name === a.serverContextName) throw new Error("client context must difference from server");
                    if (n && !this.client) throw new Error("connect to other product must start self firstly");
                    global.__xdasPluginConfig || (global.__xdasPluginConfig = e);
                    let i = new o.Client({context: e, socketPrex: t});
                    this.singletonMap[t.toLowerCase()] = i, n || (this.client = i), i.on("message", e => {
                        if ("fire_event" === e.action) this.fireServerEvent(i, e.name, [e.__context].concat(e.args)); else if ("client_context_freer" === e.action) do {
                            let t = e.rid;
                            if (t) {
                                if (!this.contextCallbackMap[t]) break;
                                delete this.contextCallbackMap[t]
                            }
                        } while (0); else if ("call_client_by_id" === e.action) this.callFunctionById(i, e.rid, e.s_rid, e.args); else if ("call_client_api" === e.action) this.callRegisterFunction(i, e); else if ("check_client_function" === e.action) {
                            let t = e.method, n = !0;
                            t && this.apis && this.apis[t] || (n = !1), this.sendAdapter(i, {
                                s_rid: e.s_rid,
                                action: "check_client_function_callback",
                                success: !0,
                                data: n
                            })
                        } else if (void 0 !== e.success && null !== e.success) {
                            let t = e;
                            this.client === i && this.emit("stat_call_function_back", i.getContext(), e);
                            const n = this.retCallbackMap[t.rid].callback;
                            if (n) if (t.success) do {
                                if ("remote_client_callback" === e.action && e.__context && e.__context.name && e.__context.productId) {
                                    let r = `${e.__context.productId}-${e.__context.name}`.toLowerCase();
                                    n(null, this.decodeParameter(t.data, r));
                                    break
                                }
                                n(null, t.data)
                            } while (0); else n(t.error, t.data);
                            delete this.retCallbackMap[t.rid]
                        }
                    }), i.on("error", e => {
                        r && r("error", e), this.emit("socket-error", e, i.getContext(), n, i.isInprocess()), delete this.singletonMap[t.toLowerCase()], delete this.connectedMap[t.toLowerCase()], n || (this.client = null)
                    }), i.isInprocess() ? (this.connectedMap[t.toLowerCase()] = i, r && r("connect"), this.emit("connect", i.getContext(), n, !0)) : i.on("connect", () => {
                        this.connectedMap[t.toLowerCase()] = i, r && r("connect"), this.emit("connect", i.getContext(), n, !1)
                    }), i.on("end", () => {
                        let e = i.isInprocess();
                        s.information("server is ended, and this client emit end", t, n, e), r && r("end", i.getContext(), n, e), this.emit("end", i.getContext(), n, e), delete this.singletonMap[t.toLowerCase()], delete this.connectedMap[t.toLowerCase()], n || (this.client = null)
                    }), this.registry(i)
                } while (0)
            }

            registerFunctions(e) {
                do {
                    if (!e) break;
                    let t = void 0;
                    for (let n in e) if (this.apis.hasOwnProperty(n)) {
                        t = n;
                        break
                    }
                    if (t) throw new Error(`try to coverd function ${t}`);
                    this.apis = Object.assign({}, this.apis, e)
                } while (0)
            }

            checkServerFunction(e) {
                return r(this, void 0, void 0, function* () {
                    return this.internalCheckServerFunction(this.client, e)
                })
            }

            callServerFunction(e, ...t) {
                return r(this, void 0, void 0, function* () {
                    let n = null, r = yield this.callServerFunctionEx(e, ...t);
                    return r && (n = r[0]), n
                })
            }

            callServerFunctionEx(e, ...t) {
                return this.internalCallServerFunctionEx(this.client, e, ...t)
            }

            isRemoteClientExist(e) {
                return this.internalIsRemoteClientExist(this.client, e)
            }

            checkRemoteFunction(e, t) {
                return this.internalCheckRemoteFunction(this.client, e, t)
            }

            callRemoteClientFunction(e, t, ...n) {
                return this.internalCallRemoteClientFunction(this.client, e, t, ...n)
            }

            notifyFreer(e, t) {
                this.sendAdapter(this.client, {action: "client_context_freer", dst: e, rid: t})
            }

            callRemoteContextById(e, t, ...n) {
                this.sendAdapter(this.client, {dst: e, action: "call_remote_context_by_id", rid: t, args: n})
            }

            attachServerEvent(e, t) {
                return this.internalAttachServerEvent(this.client, e, t)
            }

            detachServerEvent(e, t) {
                this.internalDetachServerEvent(this.client, e, t)
            }

            broadcastEvent(e, ...t) {
                this.sendAdapter(this.client, {action: "broadcast", name: e, args: t})
            }

            crossCheckServerFunction(e, t) {
                return r(this, void 0, void 0, function* () {
                    {
                        if (!e) throw new Error("An argument for 'productId' was not provided");
                        let n = this.singletonMap[e.toLowerCase()];
                        if (!n) throw new Error("Please call the 'start' interface first");
                        return this.internalCheckServerFunction(n, t)
                    }
                })
            }

            crossCallServerFunction(e, t, ...n) {
                return r(this, void 0, void 0, function* () {
                    let r = null, i = yield this.crossCallServerFunctionEx(e, t, ...n);
                    return i && (r = i[0]), r
                })
            }

            crossCallServerFunctionEx(e, t, ...n) {
                {
                    if (!e) throw new Error("An argument for 'productId' was not provided");
                    let r = this.singletonMap[e.toLowerCase()];
                    if (!r) throw new Error("Please call the 'start' interface first");
                    if (!t) throw new Error("An argument for 'funcName' was not provided");
                    return this.internalCallServerFunctionEx(r, t, ...n)
                }
            }

            crossIsRemoteClientExist(e, t) {
                return r(this, void 0, void 0, function* () {
                    {
                        if (!e) throw new Error("An argument for 'productId' was not provided");
                        let n = this.singletonMap[e.toLowerCase()];
                        if (!n) throw new Error("Please call the 'start' interface first");
                        return this.internalIsRemoteClientExist(n, t)
                    }
                })
            }

            crossCheckRemoteFunction(e, t, n) {
                return r(this, void 0, void 0, function* () {
                    {
                        if (!e) throw new Error("An argument for 'productId' was not provided");
                        let r = this.singletonMap[e.toLowerCase()];
                        if (!r) throw new Error("Please call the 'start' interface first");
                        if (!t) throw new Error("An argument for 'remoteId' was not provided");
                        if (!n) throw new Error("An argument for 'funcName' was not provided");
                        return this.internalCheckRemoteFunction(r, t, n)
                    }
                })
            }

            crossCallRemoteClientFunction(e, t, n, ...r) {
                {
                    if (!e) throw new Error("An argument for 'productId' was not provided");
                    let i = this.singletonMap[e.toLowerCase()];
                    if (!i) throw new Error("Please call the 'start' interface first");
                    if (!t) throw new Error("An argument for 'remoteId' was not provided");
                    if (!n) throw new Error("An argument for 'funcName' was not provided");
                    return this.internalCallRemoteClientFunction(i, t, n, ...r)
                }
            }

            crossAttachServerEvent(e, t, n) {
                let r = void 0;
                {
                    if (!e) throw new Error("An argument for 'productId' was not provided");
                    let i = this.singletonMap[e.toLowerCase()];
                    if (!i) throw new Error("Please call the 'start' interface first");
                    if (!t) throw new Error("An argument for 'eventName' was not provided");
                    r = this.internalAttachServerEvent(i, t, n)
                }
                return r
            }

            crossDetachServerEvent(e, t, n) {
                {
                    if (!e) throw new Error("An argument for 'productId' was not provided");
                    let r = this.singletonMap[e.toLowerCase()];
                    if (!r) throw new Error("Please call the 'start' interface first");
                    if (!t) throw new Error("An argument for 'eventName' was not provided");
                    this.internalDetachServerEvent(r, t, n)
                }
            }

            crossBroadcastEvent(e, t, ...n) {
                {
                    if (!e) throw new Error("An argument for 'productId' was not provided");
                    let r = this.singletonMap[e.toLowerCase()];
                    if (!r) throw new Error("Please call the 'start' interface first");
                    if (!t) throw new Error("An argument for 'eventName' was not provided");
                    this.sendAdapter(r, {
                        action: "broadcast",
                        name: t,
                        args: n,
                        __context: Object.assign({}, this.client.getContext())
                    })
                }
            }

            registry(e) {
                let t = this.getFullContextName(this.client);
                return new Promise((n, r) => {
                    do {
                        if (!t) {
                            n(!1);
                            break
                        }
                        let r = this.generateId();
                        const i = {alias: t, action: "register", rid: r};
                        let o = (e, r) => {
                            e ? (s.error("register error", e.message), n(r)) : n(t)
                        };
                        this.retCallbackMap[r] = Object.assign({callback: o}, i), this.sendAdapter(e, i)
                    } while (0)
                })
            }

            getNow() {
                return Date.now()
            }

            sendAdapter(e, t) {
                do {
                    if (!t) break;
                    let n = this.getNow();
                    if (t.timestamp ? t.timestamp = [...t.timestamp].concat(n) : t.timestamp = [].concat(n), !t.__context) {
                        let n = e.getContext();
                        n && (t = Object.assign({__context: n}, t))
                    }
                    e.isInprocess() ? (s.information("send to server in process"), global.__xdasIPCServer.emit("message", t, e)) : e.send(t)
                } while (0)
            }

            parseContext() {
                let e = void 0;
                do {
                    let t = "";
                    for (let e = 0; e < process.argv.length; e++) {
                        let n = process.argv[e];
                        if (0 === n.indexOf("--xdas-plugin-name=", 0)) {
                            t = n.substr("--xdas-plugin-name=".length);
                            break
                        }
                    }
                    if (!t) break;
                    e = {name: t}
                } while (0);
                return e
            }

            generateId() {
                return this.rid++
            }

            getFullContextName(e, t) {
                let n = "";
                do {
                    if (t === a.serverContextName) {
                        n = t;
                        break
                    }
                    if (void 0 === t) {
                        n = `${e.getContext().productId}-${e.getContext().name}`.toLowerCase();
                        break
                    }
                    n = `${e.getContext().productId}-${t}`.toLowerCase()
                } while (0);
                return n
            }

            internalCheckServerFunction(e, t) {
                return new Promise((n, r) => {
                    do {
                        if (!e) {
                            n(!1);
                            break
                        }
                        if (!t) {
                            n(!1);
                            break
                        }
                        let r = this.generateId();
                        const i = {action: "check_server_function_exist", method: t, rid: r};
                        let o = (e, t) => {
                            n(!e && t)
                        };
                        this.retCallbackMap[r] = Object.assign({callback: o}, i), this.sendAdapter(e, i)
                    } while (0)
                })
            }

            internalCallServerFunctionEx(e, t, ...n) {
                return new Promise((r, i) => {
                    do {
                        if (!e) {
                            r([null, "client doesn't ready"]);
                            break
                        }
                        if (!t) {
                            r([null, "funcName is not specifed"]);
                            break
                        }
                        e === this.client && this.emit("stat_call_function", this.client.getContext(), t);
                        let i = this.generateId();
                        if (n) for (let e = 0; e < n.length; e++) n[e] = this.convertFunction2IdEx(n[e]);
                        const o = {rid: i, method: t, args: n};
                        let a = (t, n) => {
                            t ? (s.error("callServerFunction error", t, e.getContext()), r([null, t])) : r([n, void 0])
                        };
                        this.retCallbackMap[i] = Object.assign({callback: a}, o), this.sendAdapter(e, o)
                    } while (0)
                })
            }

            internalIsRemoteClientExist(e, t) {
                return new Promise((n, r) => {
                    do {
                        if (!t) {
                            n([!1, "remote client alias is not specifed"]);
                            break
                        }
                        if (e === this.client && t.toLowerCase() === e.getContext().name.toLowerCase()) {
                            n([!0, "self is exist"]);
                            break
                        }
                        let r = this.generateId();
                        const i = {dst: this.getFullContextName(e, t), action: "check_client_exist", rid: r};
                        let o = (e, t) => {
                            n(e ? [!1, e] : [t, "success"])
                        };
                        this.retCallbackMap[r] = Object.assign({callback: o}, i), this.sendAdapter(e, i)
                    } while (0)
                })
            }

            internalCheckRemoteFunction(e, t, n) {
                return new Promise((r, i) => {
                    do {
                        if (!e) {
                            r(!1);
                            break
                        }
                        if (!t) {
                            r(!1);
                            break
                        }
                        if (!n) {
                            r(!1);
                            break
                        }
                        if (e === this.client && t.toLowerCase() === e.getContext().name.toLowerCase()) {
                            r(!(!this.apis || !this.apis[n]));
                            break
                        }
                        let i = this.generateId();
                        const o = {
                            action: "check_client_function_exist",
                            method: n,
                            rid: i,
                            src: this.getFullContextName(this.client),
                            dst: this.getFullContextName(e, t)
                        };
                        let a = (e, t) => {
                            r(!e && t)
                        };
                        this.retCallbackMap[i] = Object.assign({callback: a}, o), this.sendAdapter(e, o)
                    } while (0)
                })
            }

            internalCallRemoteClientFunction(e, t, n, ...r) {
                return new Promise((i, o) => {
                    do {
                        if (!e) {
                            i([null, "client doesn't ready"]);
                            break
                        }
                        if (!t) {
                            i([null, "remote client alias is not specifed"]);
                            break
                        }
                        if (!n) {
                            i([null, "funcName is not specifed"]);
                            break
                        }
                        let o = (e, t) => {
                            e ? (s.information("callRemoteClientFunction", e.message), i([null, e])) : i([t, void 0])
                        };
                        if (r) for (let e = 0; e < r.length; e++) r[e] = this.convertFunction2IdEx(r[e]);
                        let a = this.generateId();
                        const l = {
                            src: this.getFullContextName(this.client),
                            dst: this.getFullContextName(e, t),
                            action: "call_remote_client_api",
                            method: n,
                            args: r,
                            rid: a
                        };
                        this.retCallbackMap[a] = Object.assign({callback: o}, l), this.sendAdapter(e, l)
                    } while (0)
                })
            }

            internalAttachServerEvent(e, t, n) {
                let r = e.getContext().productId.toLowerCase();
                this.eventCallbackMaps.hasOwnProperty(r) || (this.eventCallbackMaps[r] = {}), this.eventCallbackMaps[r].hasOwnProperty(t) || (this.eventCallbackMaps[r][t] = {}), a.isObjectEmpty(this.eventCallbackMaps[r][t]) && this.sendAdapter(e, {
                    action: "attach_event",
                    name: t
                });
                let i = this.generateId();
                return this.eventCallbackMaps[r][t][i] = n, i
            }

            internalDetachServerEvent(e, t, n) {
                let r = e.getContext().productId.toLowerCase();
                do {
                    if (!this.eventCallbackMaps.hasOwnProperty(r)) break;
                    if (!this.eventCallbackMaps[r].hasOwnProperty(t)) break;
                    delete this.eventCallbackMaps[r][t][n], a.isObjectEmpty(this.eventCallbackMaps[r][t]) && this.sendAdapter(e, {
                        action: "detach_event",
                        name: t
                    })
                } while (0)
            }

            fireServerEvent(e, t, ...n) {
                let r = e.getContext().productId.toLowerCase();
                do {
                    if (!this.eventCallbackMaps.hasOwnProperty(r)) break;
                    if (!this.eventCallbackMaps[r].hasOwnProperty(t)) break;
                    let e = this.eventCallbackMaps[r][t];
                    for (let t in e) {
                        let r = e[t];
                        r && r.apply(null, ...n)
                    }
                } while (0)
            }

            callFunctionById(e, t, n, ...r) {
                let i = void 0, o = !1;
                do {
                    const a = this.contextCallbackMap[t];
                    if (!a) {
                        s.error("the context function has been freeer", t), i = {
                            s_rid: n,
                            action: "call_client_by_id_callback",
                            success: !1,
                            error: "the context function has been freeer"
                        };
                        break
                    }
                    let l = void 0, c = void 0;
                    try {
                        l = a.apply(null, ...r)
                    } catch (e) {
                        c = e.message;
                        break
                    }
                    if (void 0 === n || null === n) break;
                    if (i = {s_rid: n, action: "call_client_by_id_callback", success: !1}, void 0 !== c) {
                        i.error = c;
                        break
                    }
                    if (l && l.then) {
                        l.then(t => {
                            i.data = this.convertFunction2IdEx(t), i.success = !0, this.sendAdapter(e, i)
                        }).catch(t => {
                            i.error = t instanceof Error ? t.message : t, this.sendAdapter(e, i)
                        }), o = !0;
                        break
                    }
                    i.success = !0, i.data = this.convertFunction2IdEx(l)
                } while (0);
                !o && i && this.sendAdapter(e, i)
            }

            convertFunction2IdEx(e) {
                let t = e;
                if ("function" == typeof e) {
                    let n = this.generateId();
                    this.contextCallbackMap[n] = e, t = {"__nodeipc_callback_id__{A9C9D760-14E8-42CB-A3CB-9C0A0DDFD732}": n}
                } else if (e && "object" == typeof e) {
                    t = Array.isArray(e) ? [...e] : Object.assign({}, e);
                    for (let e in t) {
                        let n = t[e];
                        if ("function" == typeof n) {
                            let r = this.generateId();
                            this.contextCallbackMap[r] = n, t[e] = {"__nodeipc_callback_id__{A9C9D760-14E8-42CB-A3CB-9C0A0DDFD732}": r}
                        } else n && "object" == typeof n && (t[e] = this.convertFunction2IdEx(n))
                    }
                }
                return t
            }

            decodeParameter(e, t) {
                let n = e;
                do {
                    if (!e) break;
                    if (!t) break;
                    if ("object" != typeof e) break;
                    let r = e["__nodeipc_callback_id__{A9C9D760-14E8-42CB-A3CB-9C0A0DDFD732}"];
                    if (r) {
                        n = ((...e) => {
                            this.callRemoteContextById(t, r, ...e)
                        }), global.__xdasObjectLiftMonitor && global.__xdasObjectLiftMonitor.setObjectFreer(n, {
                            remoteId: t,
                            callbackId: r
                        }, l);
                        break
                    }
                    for (let n in e) {
                        let r = e[n];
                        e[n] = this.decodeParameter(r, t)
                    }
                } while (0);
                return n
            }

            callRegisterFunction(e, t) {
                let n = void 0, r = !1;
                do {
                    if (!t) break;
                    let i = t.method;
                    if (!i) break;
                    let o = this.getNow();
                    if (n = {
                        s_rid: t.s_rid,
                        action: "remote_client_callback",
                        success: !1,
                        rid: t.rid,
                        method: t.method,
                        src: t.src,
                        timestamp: t.timestamp ? t.timestamp.concat(o) : [].concat(o)
                    }, !this.apis || !this.apis[i]) {
                        n.error = `callRegisterFunction ${i} is undefined`;
                        break
                    }
                    let a = void 0, s = this.decodeParameter(t.args, t.src);
                    try {
                        a = this.apis[i].apply(null, [t.src].concat(s))
                    } catch (e) {
                        n.error = e.message;
                        break
                    }
                    if (a && a.then) {
                        a.then(t => {
                            n.data = this.convertFunction2IdEx(t), n.success = !0, this.sendAdapter(e, n)
                        }).catch(t => {
                            n.error = t instanceof Error ? t.message : t, this.sendAdapter(e, n)
                        }), r = !0;
                        break
                    }
                    n.success = !0, n.data = this.convertFunction2IdEx(a)
                } while (0);
                s.information("callRegisterFunction", n), !r && n && this.sendAdapter(e, n)
            }
        }), c = global.__xdasIPCClienInstance, t.client = c
    }, 40: function (e, t) {
        e.exports = require("buffer")
    }, 41: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(6), i = n(20), o = n(21), a = n(33), s = n(34);
        !function (e) {
            let t;
            !function (e) {
                e[e.Unknown = -1] = "Unknown", e[e.Success = 0] = "Success", e[e.FunctionNotExist = 1] = "FunctionNotExist", e[e.ParamaterError = 2] = "ParamaterError", e[e.CallFailed = 3] = "CallFailed"
            }(t = e.NativeCallErrorCode || (e.NativeCallErrorCode = {}));

            class n {
                constructor(e, t, n) {
                    this.maxId = e, this.minId = t, this.invalidId = n
                }

                generateId() {
                    return this.minId === this.maxId ? this.invalidId : this.minId++
                }

                isInvalidId(e) {
                    return e === this.invalidId
                }
            }

            e.IdGenerator = n;
            const l = 0;
            e.idGenerator = new n(1e7, 1, l);

            class c {
                constructor() {
                    this.jsCallbacks = new Map, this.jsReturnCallbacks = new Map, this.eventJsCallbakcs = new Map, this.jsRegisterFunctions = new Map, this.targetCommunitorInfo = s.CommonIPCRenderer.rendererCommunicator.getCommunicatorInfoByContext(a.CommonIPCBase.mainRendererContext), this.bindMsgListeners(), this.notifyNativeCallReady()
                }

                CallNativeFunction(t, ...n) {
                    do {
                        if (r.isNullOrUndefined(t) || 0 === t.length) {
                            i.error("funcName is empty");
                            break
                        }
                        if (!this.targetCommunitorInfo) {
                            i.error("CallNativeFunction but targetCommunitorInfo null");
                            break
                        }
                        i.information("funcName = ", t), this.printArgs(n);
                        let a = l;
                        for (let t = 0; t < n.length; ++t) if (r.isFunction(n[t])) {
                            let r = e.idGenerator.generateId(), i = n[t];
                            t === n.length - 1 ? (this.jsReturnCallbacks.set(r, i), a = r, n.pop()) : (this.jsCallbacks.set(r, i), n[t] = r)
                        }
                        s.CommonIPCRenderer.rendererCommunicator.sendMessageToRenderer(this.targetCommunitorInfo.id, {
                            name: o.CommonIPCMessage.msgNCCallNativeFunction,
                            args: [t, a].concat(n)
                        })
                    } while (0)
                }

                AttachNativeEvent(t, n) {
                    let o = void 0;
                    do {
                        if (r.isNullOrUndefined(t) || 0 === t.length) {
                            i.error("eventName is empty");
                            break
                        }
                        if (r.isNullOrUndefined(n)) {
                            i.error("callback is empty");
                            break
                        }
                        let a = e.idGenerator.generateId();
                        if (e.idGenerator.isInvalidId(a)) {
                            i.error("id error");
                            break
                        }
                        if (this.eventJsCallbakcs.has(t)) this.eventJsCallbakcs.get(t).set(a, n); else {
                            let e = new Map;
                            e.set(a, n), this.eventJsCallbakcs.set(t, e)
                        }
                        o = a
                    } while (0);
                    return o
                }

                DetachNativeEvent(e, t) {
                    do {
                        if (r.isNullOrUndefined(e) || 0 === e.length) {
                            i.error("eventName is empty");
                            break
                        }
                        if (r.isNullOrUndefined(t)) {
                            i.error("callback is empty");
                            break
                        }
                        if (!this.eventJsCallbakcs.has(e)) {
                            i.error(`event: ${e} doesnot have listener`);
                            break
                        }
                        if (!this.eventJsCallbakcs.get(e).has(t)) {
                            i.error(`event: ${e} doesnot have the listener of id=${t}`);
                            break
                        }
                        this.eventJsCallbakcs.get(e).delete(t)
                    } while (0)
                }

                CheckNativeFunction(t, n) {
                    do {
                        if (r.isNullOrUndefined(t) || 0 === t.length) {
                            i.error("funcName is empty");
                            break
                        }
                        if (r.isNullOrUndefined(n)) {
                            i.error("callback is empty");
                            break
                        }
                        if (!this.targetCommunitorInfo) {
                            i.error("CheckNativeFunction but targetCommunitorInfo null");
                            break
                        }
                        i.information("funcName = ", t);
                        let a = e.idGenerator.generateId();
                        this.jsReturnCallbacks.set(a, n), s.CommonIPCRenderer.rendererCommunicator.sendMessageToRenderer(this.targetCommunitorInfo.id, {
                            name: o.CommonIPCMessage.msgNCCheckNativeFunction,
                            args: [t, a]
                        })
                    } while (0)
                }

                RegisterJSFunction(e, n) {
                    let o = t.ParamaterError;
                    do {
                        if (r.isNullOrUndefined(e) || 0 === e.length) {
                            i.error("funcName is empty");
                            break
                        }
                        if (r.isNullOrUndefined(n)) {
                            i.error("jsFunc is empty");
                            break
                        }
                        this.jsRegisterFunctions.set(e, n), o = t.Success
                    } while (0);
                    return o
                }

                bindMsgListeners() {
                    s.CommonIPCRenderer.rendererCommunicator.onMessage(o.CommonIPCMessage.msgNCCallJsFunctionById, e => {
                        this.handleCallJsFunctionById(e.msg.args)
                    }), s.CommonIPCRenderer.rendererCommunicator.onMessage(o.CommonIPCMessage.msgNCCallJsFunctionByName, e => {
                        this.handleCallJsFunctionByName(e.msg.args)
                    }), s.CommonIPCRenderer.rendererCommunicator.onMessage(o.CommonIPCMessage.msgNCNativeFireEvent, e => {
                        this.handleNativeFireEvent(e.msg.args)
                    })
                }

                handleCallJsFunctionById(t) {
                    do {
                        let n = t[0];
                        if (!r.isNumber(n)) {
                            i.error(`id error id = ${n}`);
                            break
                        }
                        if (e.idGenerator.isInvalidId(n)) {
                            i.error(`id = ${n} invalid`);
                            break
                        }
                        let o = null, a = 0;
                        if (this.jsCallbacks.has(n) && (a = 1, o = this.jsCallbacks.get(n)), this.jsReturnCallbacks.has(n) && (a = 2, o = this.jsReturnCallbacks.get(n)), 0 === a) {
                            i.error(`callbacks[${n}] is null`);
                            break
                        }
                        t.splice(0, 1), o.apply(null, t), 2 === a && this.jsReturnCallbacks.delete(n)
                    } while (0)
                }

                handleCallJsFunctionByName(e) {
                    do {
                        let t = e[0];
                        if (!r.isString(t)) {
                            i.error(`funcName error funcName = ${t}`);
                            break
                        }
                        if (!this.jsRegisterFunctions.has(t)) {
                            i.error(`jsRegisterFunctions[${t}] is null`);
                            break
                        }
                        e.splice(0, 1), this.jsRegisterFunctions.get(t).apply(null, e)
                    } while (0)
                }

                handleNativeFireEvent(e) {
                    do {
                        let t = e[0];
                        if (!r.isString(t)) {
                            i.warning(`eventName error eventName = ${t}`);
                            break
                        }
                        if (!this.eventJsCallbakcs.has(t)) {
                            i.warning(`eventJsCallbakcs[${t}] is null`);
                            break
                        }
                        e.shift(), this.eventJsCallbakcs.get(t).forEach((t, n, o) => {
                            i.information(`value = ${t}, key = ${n}, map = ${o}`), r.isNullOrUndefined(t) || t.apply(null, e)
                        })
                    } while (0)
                }

                notifyNativeCallReady() {
                    do {
                        if (!this.targetCommunitorInfo) {
                            i.error("notifyNativeCallReady but targetCommunitorInfo null");
                            break
                        }
                        s.CommonIPCRenderer.rendererCommunicator.sendMessageToRenderer(this.targetCommunitorInfo.id, {
                            name: o.CommonIPCMessage.msgNCNativeCallReady,
                            args: [s.CommonIPCRenderer.rendererCommunicator.getCommunicatorInfo()]
                        })
                    } while (0)
                }

                printArgs(e) {
                    for (let t in e) i.information(`index ${t} = `, e[t])
                }
            }

            e.NativeCallImpl = c, e.nativeCall = new c
        }(t.NativeCallModule || (t.NativeCallModule = {}))
    }, 42: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), function (e) {
            let t;
            !function (e) {
                e[e.Default = 0] = "Default", e[e.Color = 1] = "Color", e[e.Wallpaper = 2] = "Wallpaper", e[e.Custom = 3] = "Custom", e[e.Cool = 4] = "Cool"
            }(t = e.SkinType || (e.SkinType = {})), e.defaultSkinInfo = {type: t.Default, colorID: 0}
        }(t.SkinHelperNS || (t.SkinHelperNS = {}))
    }, 43: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(2), i = n(16);
        let o = ["apk", "pic", "video", "mp4", "rmvb", "wmv", "mpg", "mkv", "mov", "rm", "avi", "flv", "doc", "link", "ppt", "word", "magnetic", "music", "pdf", "rar", "xls", "txt", "unknow", "gif", "ipa", "ipsw", "dll", "chm", "text", "install", "iso"];
        const a = ".xv;.xlmv;.3gp;.3gp2;.3gpp;.3gpp2;.3mm;.3p2;.60d;.787;.aaf;.aep;.aepx;.aet;.aetx;.ajp;.ale;.amv;.amx;.arf;\n  .asf;.asx;.avb;.avd;.avi;.avp;.avs;.avs;.axm;.bdm;.bdmv;.bik;.bix;.bmk;.bnp;.box;.bs4;.bsf;.byu;.camproj;.camrec;.clpi;.cmmp;\n  .cmmtpl;.cmproj;.cmrec;.cpi;.cst;.cvc;.d2v;.d3v;.dat;.dav;.dce;.dck;.ddat;.dif;.dir;.divx;.dlx; .dmb;.dmsm;.dmsm3d;.dmss;.dnc;.dpg;\n  .dream;.dsy;.dv;.dv-avi;.dv4;.dvdmedia;.dvr-ms;.dvx;.dxr;.dzm;.dzp;.dzt;.edl;.evo;.eye;.f4p;.f4v;.fbr;.fbr;.fbz;.fcp;.flc;.flh;\n  .fli;.flv;.flx;.gfp;.gl;.grasp;.gts;.gvi;.gvp;.hdmov;.hkm;.ifo;.imovieproj;.imovieproject;.iva;.ivf;.ivr;.ivs;.izz;.izzy;.jts;.jtv;\n  .k3g;.lrec;.lsf;.lsx;.m15;.m1pg;.m1v;.m21;.m21;.m2a;.m2p;.m2t;.m2ts;.m2v;.m4e;.m4u;.m4v;.m75;.meta;.mgv;.mj2;.mjp;.mjpg;.mkv;.mmv;\n  .mnv;.mod;.modd;.moff;.moi;.moov;.mov;.movie;.mp21;.mp2v;.mp4;.mp4v;.mpe;.mpeg;.mpeg4;.mpf;.mpg;.mpg2;.mpgindex;.mpl;.mpls;\n  .mpsub;.mpv;.mpv2;.mqv;.msdvd;.msh;.mswmm;.mts;.mtv;.mvb;.mvc;.mvd;.mve;.mvp;.mvy;.mxf;.mys;.ncor;.nsv;.nuv;.nvc;.ogm;.ogv;.ogx;.osp;\n  .par;.pds;.pgi;.piv;.pjs;.pmf;.pns;.ppj;.prel;.pro;.prproj;.prtl;.psh;.pssd;.pva;.pvr;.pxv;.qt;.qtch;.qtl;.qtm;.qtz;\n  .r3d;.rcproject;.rdb;.rec;.rm;.rmd;.rmp;.rms;.rmvb;.roq;.rp;.rts;.rts;.rum;.rv;.sbk;.sbt;.scc;.scm;.scn;.screenflow;.sec;.seq;.sfd;\n  .sfvidcap;.smk;.sml;.smv;.spl;.ssm;.stl;.str;.stx;.svi;.swf;.swi;.swt;.tda3mt;.tivo;.tix;.tod;.tp;.tp0;.tpd;\n  .tpr;.trp;.ts;.tts;.tvs;.vc1;.vcpf;.vcr;.vcv;.vdo;.vdr;.veg;.vem;.vf;.vfw;.vfz;.vgz;.vid;.viewlet;.viv;.vivo;.vlab;.vob;.vp3;.vp6;.vp7;\n  .vro;.vs4;.vse;.vsp;.w32;.wcp;.webm;.wlmp;.wm;.wmd;.wmmp;.wmv;.wmx;.wp3;.wpl;.wtv;.wvx;.xfl;.xvid;.yuv;.zm1;.zm2;.zm3;.zmv;",
            s = ".exe;.com;.bat;.msi;.apk;.ipa;.iso;.mds;.bin;.img;.ipsw;",
            l = ".txt;.html;.htm;.shtml;.xhtml;.chm;.hlp;.inf;.rtf;.tex;.ltx;.doc;.docx;.wps;.ppt;.pptx;.odf;.pdf;.xls;.xlsx;.docm;.\n  dot;.dotm;.dotx;.email;.rp;.pps;.et;.ett;.xlt;.dbf;.prn;.csv;.mht;.mhtml;.xml;.wpt;.dps;.dpt;.pot;.ppsx;.epub;.mobi;.lit;.wdl;.ceb;.abm;\n  .pdg;.umb;.ibooks;",
            c = ".aiff;.cue;.m3u;.au;.cdda;.raw;.wav;.flac;.tak;.mp3;.aac;.wma;.m4a;.mid;.mka;.mp2;.mpa;.mpc;.ape;.ofr;\n  .ogg;.ra;.wv;.tta;.ac3;.dts;.nsf;.mod;.s3m;.xm;.it;.vst;",
            d = ".psd;.tga;.gif;.jpeg;.jpg;.jp2;.bmp;.ico;.pcx;.png;.pbm;.pgm;.ppm;.pnm;.pgf;.arw;.cr2;.crw;.dcr;.dng;.erf;.kdc;.mef;\n  .mos;.mrw;.nef;.nrw;.orf;.pef;.ptx;.r3d;.raf;.raw;.rw2;.srf;.srw;.x3f;.ras;.tiff;.tif;.wbmp;.ilbm;.lbm;.iff;.ico;",
            u = ".zip;.zipx;.rar;.7z;.isz;.cab;.arj;.ace;.alz;.uue;.tar;.gz; .gzip;.tgz;.tpz;.bzip2;.bz2;.bz;.tbz;.tbz2;.xz;.txz;\n  .lzh;.lha;.zt;.az; .xpi;.jar;.wim;.swm;.rpm;.xar;.deb;.dmg;.hfs;.cpio;.lzma;.lzma86;.split;",
            f = ".torrent;", p = ".idx;.smi;.sub;.psb;.ssa;.ass;.usf;.ssf;.srt;.sup",
            h = ".3gp;.asf;.avi;.divx;.f4v;.flv;.mkv;.mov;.movie;.mp4;.mpeg;.mpeg4;.mpg;.mpg2;.rm;.rmvb;.rp;.swf;.tp;.tp0;.ts;.wmv",
            m = ".exe;.com;.bat;.msi", v = ".wav;.flac;.mp3;.aac;.wma;.m4a;.mid;.ape;.ogg;.ra;.mod",
            g = ".psd;.tga;.gif;.jpeg;.jpg;.jp2;.bmp;.ico;.pcx;.pdf;.png;.pbm;.pgm;.ppm;.pnm;.pgf;.arw;.cr2;.crw;.dcr;.dng;.erf;.kdc;\n  .mef;.mos;.mrw;.nef;.nrw;.orf;.pef;.ptx;.r3d;.raf;.raw;.rw2;.srf;.srw;.x3f;.ras;.tiff;.tif;.wbmp;.ilbm;.lbm;.iff;.ico",
            y = ".txt;.html;.htm;.shtml;.xhtml;.chm;.hlp;.inf;.rtf;.tex;.ltx;.doc;.docx;.wps;.ppt;.pptx;.odf;.pdf;.xls;.xlsx;.docm;.dot;.dotm;.dotx;.email;.rp;.pps",
            b = ".rar;.tar;.zip;.gzip;.cab;.uue;.arj;.bz2;.lzh;.jar;.ace;.iso;.7-zip;.7z",
            C = ".asf;.mpg;.rmvb;.rm;.wmv;.avi;.mp4;.mpeg;.mkv;.mov;.ts;.flv;.3gp;.m2ts;",
            w = ".exe;.com;.bat;.scr;.lnk;.pif;.wsh;", x = ".iso;";
        !function (e) {
            let t;

            function n(e) {
                let n = t.Unkown, i = r.extname(e);
                return null !== i && void 0 !== i && i.length >= 2 && (i = i.toLowerCase()), void 0 === i || "" === i || i.length < 2 ? n = t.Unkown : h.indexOf(i) > -1 ? n = t.Video : m.indexOf(i) > -1 ? n = t.Software : y.indexOf(i) > -1 ? n = t.Doc : v.indexOf(i) > -1 ? n = t.Music : g.indexOf(i) > -1 ? n = t.Pic : b.indexOf(i) > -1 && (n = t.Zip), i.length > 1 && ".z" === i.slice(0, 2) && /[0-9]+/.test(i.substring(2)) && (n = t.Zip), n
            }

            e.getTaskIcon = function (e, t, n) {
                n = n || "xly-type-";
                let h = "";
                do {
                    if (t === i.DownloadKernel.TaskType.Bt) {
                        h = "bt-file";
                        break
                    }
                    if (t === i.DownloadKernel.TaskType.Group) {
                        h = "group";
                        break
                    }
                    h = "unknown";
                    let n = r.extname(e);
                    if ("" === n || n.length < 2) break;
                    let m = (n = n.toLowerCase()).substring(1);
                    if (o.indexOf(m) > -1) {
                        h = "doc" === n ? "word" : m;
                        break
                    }
                    if (n += ";", a.indexOf(n) > -1) {
                        h = "video";
                        break
                    }
                    if (s.indexOf(n) > -1) {
                        h = "install", [".mds", ".bin", ".img"].indexOf(n) > -1 && (h = "iso");
                        break
                    }
                    if (l.indexOf(n) > -1) {
                        if (h = "doc", [".htm", ".html", ".mht"].indexOf(n) > -1) {
                            h = "link";
                            break
                        }
                        if ("docx" === n) {
                            h = "word";
                            break
                        }
                        if ("xlsx" === n) {
                            h = "xls";
                            break
                        }
                        if ("pptx" === n) {
                            h = "ppt";
                            break
                        }
                        break
                    }
                    if (c.indexOf(n) > -1) {
                        h = "music";
                        break
                    }
                    if (d.indexOf(n) > -1) {
                        h = "pic";
                        break
                    }
                    if (u.indexOf(n) > -1) {
                        h = "rar";
                        break
                    }
                    if (f.indexOf(n) > -1) {
                        h = "bt-link";
                        break
                    }
                    if (p.indexOf(n) > -1) {
                        h = "text";
                        break
                    }
                } while (0);
                return `${n}${h}`
            }, function (e) {
                e[e.Unkown = 0] = "Unkown", e[e.Video = 1] = "Video", e[e.Software = 2] = "Software", e[e.Doc = 3] = "Doc", e[e.Music = 4] = "Music", e[e.Pic = 5] = "Pic", e[e.Zip = 6] = "Zip", e[e.Bt = 7] = "Bt"
            }(t = e.FileExtType || (e.FileExtType = {})), e.getTaskFileType = function (e, n) {
                let i = t.Unkown;
                return void 0 === n && void 0 !== e && (n = r.extname(e)), null !== n && void 0 !== n && n.length >= 2 && (n = n.toLowerCase(), n += ";"), void 0 === n || "" === n || n.length < 3 ? i = t.Unkown : a.indexOf(n) > -1 ? i = t.Video : s.indexOf(n) > -1 ? i = t.Software : l.indexOf(n) > -1 ? i = t.Doc : c.indexOf(n) > -1 ? i = t.Music : d.indexOf(n) > -1 ? i = t.Pic : u.indexOf(n) > -1 ? i = t.Zip : f.indexOf(n) > -1 && (i = t.Bt), n.length > 1 && ".z" === n.slice(0, 2) && /[0-9]+/.test(n.substring(2)) && (i = t.Zip), i
            }, e.isVideoFileExt = function (e) {
                let t = !1;
                do {
                    if (null === e || void 0 === e || "" === e) break;
                    let n = r.extname(e);
                    if (!(null !== n && void 0 !== n && n.length >= 2)) break;
                    n = n.toLowerCase(), n += ";", C.indexOf(n) > -1 && (t = !0)
                } while (0);
                return t
            }, e.isSubtitleExt = function (e) {
                let t = !1;
                do {
                    if (null === e || void 0 === e || "" === e) break;
                    let n = r.extname(e);
                    if (!(null !== n && void 0 !== n && n.length >= 2)) break;
                    n = n.toLowerCase(), n += ";", p.indexOf(n) > -1 && (t = !0)
                } while (0);
                return t
            }, e.isExecutableExt = function (e) {
                let t = !1;
                do {
                    if (null === e || void 0 === e || "" === e) break;
                    let n = r.extname(e);
                    if (!(null !== n && void 0 !== n && n.length >= 2)) break;
                    n = n.toLowerCase(), n += ";", w.indexOf(n) > -1 && (t = !0)
                } while (0);
                return t
            }, e.isIsoExt = function (e) {
                let t = !1;
                do {
                    if (null === e || void 0 === e || "" === e) break;
                    let n = r.extname(e);
                    if (!(null !== n && void 0 !== n && n.length >= 2)) break;
                    n = n.toLowerCase(), n += ";", x.indexOf(n) > -1 && (t = !0)
                } while (0);
                return t
            }, e.getGroupFileType = n, e.getDefaultGroupPrefix = function (e) {
                let r = "任务组";
                do {
                    if (void 0 === e || null === e || 0 === e.length) break;
                    let i = [];
                    for (let e = 0; e < 7; e++) i[e] = 0;
                    for (let t of e) {
                        let e = n(t);
                        i[e] = i[e] + 1
                    }
                    let o = t.Unkown;
                    for (let e = 1; e < i.length; e++) i[e] > i[o] && (o = e);
                    o === t.Video ? r = "视频任务组" : o === t.Software ? r = "程序任务组" : o === t.Music ? r = "音乐任务组" : o === t.Pic ? r = "图片任务组" : o === t.Doc ? r = "文档任务组" : o === t.Zip && (r = "压缩包任务组")
                } while (0);
                return r
            }, e.compareVersion = function (e, t) {
                let n = -2;
                do {
                    if (null === e || void 0 === e || "" === e || null === t || void 0 === t || "" === t) break;
                    let r = 0, i = 0, o = 0, a = 0, s = 0, l = 0, c = 0, d = 0, u = e.split(/\./);
                    if (null === u || void 0 === u || u.length < 3) break;
                    if (r = Number(u[0]), i = Number(u[1]), o = Number(u[2]), null !== u[3] && void 0 !== u[3] && "" !== u[3] && (a = Number(u[3])), null === (u = t.split(/\./)) || void 0 === u || u.length < 3) break;
                    if (s = Number(u[0]), l = Number(u[1]), c = Number(u[2]), null !== u[3] && void 0 !== u[3] && "" !== u[3] && (d = Number(u[3])), s > r) {
                        n = 1;
                        break
                    }
                    if (s < r) {
                        n = -1;
                        break
                    }
                    if (l > i) {
                        n = 1;
                        break
                    }
                    if (l < i) {
                        n = -1;
                        break
                    }
                    if (c > o) {
                        n = 1;
                        break
                    }
                    if (c < o) {
                        n = -1;
                        break
                    }
                    if (0 !== a) {
                        if (d > a) {
                            n = 1;
                            break
                        }
                        if (d < a) {
                            n = -1;
                            break
                        }
                    }
                    n = 0
                } while (0);
                return n
            }
        }(t.TaskUtilHelper || (t.TaskUtilHelper = {}))
    }, 44: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(47), i = n(14);
        t.Parser = class extends i.EventEmitter {
            constructor() {
                super(), this.decoder = new r.StringDecoder("utf8"), this.jsonBuffer = ""
            }

            encode(e) {
                return JSON.stringify(e) + "\n"
            }

            feed(e) {
                let t = this.jsonBuffer, n = 0, r = (t += this.decoder.write(e)).indexOf("\n", n);
                for (; r >= 0;) {
                    const e = t.slice(n, r), i = JSON.parse(e);
                    this.emit("message", i), n = r + 1, r = t.indexOf("\n", n)
                }
                this.jsonBuffer = t.slice(n)
            }
        }
    }, 45: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(2), i = n(6), o = n(1), a = n(9), s = n(27), l = n(3), c = n(18),
            d = a.default(r.join(__rootDir, "../bin/ThunderHelper.node"));

        function u() {
            "console" === process.env.TL_OUTPUT ? o.default.outputLogger = o.outputLoggerConsole : o.default.outputLogger = function () {
                function e(e) {
                    return function (...t) {
                        d.printEtwLog(e, function (...e) {
                            return e.map(e => i.inspect(e)).join(" ").replace(/%/g, "%%")
                        }(...t))
                    }
                }

                return {
                    [o.LogLevel.Critical]: e(o.LogLevel.Critical),
                    [o.LogLevel.Error]: e(o.LogLevel.Error),
                    [o.LogLevel.Warning]: e(o.LogLevel.Warning),
                    [o.LogLevel.Information]: e(o.LogLevel.Information),
                    [o.LogLevel.Verbose]: e(o.LogLevel.Verbose)
                }
            }()
        }

        function f() {
            let e = s.DevEnvHelperNS.isLogEnable();
            "1" === process.env.TL_ENABLE !== e && (process.env.TL_ENABLE = e ? "1" : "0", o.default.enableLogger = e, d.enableETWLogger(e));
            let t = s.DevEnvHelperNS.getLogOutput();
            t && t !== process.env.TL_OUTPUT && (process.env.TL_OUTPUT = t, u())
        }

        process.env.TL_ENABLE = "0", o.default.enableLogger = "1" === process.env.TL_ENABLE, u(), f(), "browser" === process.type ? l.ipcMain.on(c.ThunderChannelList.channelRMUpdateLogEnviroment, () => {
            l.BrowserWindow.getAllWindows().forEach(e => {
                e.isDestroyed() || e.webContents.send(c.ThunderChannelList.channelMRUpdateLogEnviroment)
            }), f()
        }) : "renderer" === process.type && l.ipcRenderer.on(c.ThunderChannelList.channelMRUpdateLogEnviroment, () => {
            f()
        })
    }, 46: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(23), i = n(14), o = n(26), a = n(44), s = n(24);
        t.Client = class extends i.EventEmitter {
            constructor(e) {
                if (e = e || {}, super(), this.inprocess = !1, this.context = void 0, e.context && (this.context = Object.assign({}, e.context), this.context.productId = e.socketPrex), e.socket) this.socket = e.socket, this.bind(); else if (global.__xdasIPCServer && global.__xdasIPCServer.getProductId().toLowerCase() === e.socketPrex.toLowerCase()) this.inprocess = !0; else {
                    let t = s.getSockPath(e.socketPrex);
                    this.socket = r.connect(t), this.bind()
                }
            }

            isInprocess() {
                return this.inprocess
            }

            getContext() {
                return this.context
            }

            bind() {
                const e = new a.Parser, t = this.socket;
                t.on("data", t => {
                    e.feed(t)
                }), t.on("connect", () => {
                    this.emit("connect")
                }), t.on("end", () => {
                    o.information("socket is ended"), this.socket = null, this.emit("end")
                }), t.on("error", e => {
                    this.socket = null, this.emit("error", e)
                }), e.on("message", e => {
                    this.emit("message", e)
                }), this.parser = e
            }

            send(e) {
                if (this.socket) try {
                    this.socket.write(this.parser.encode(e))
                } catch (e) {
                    o.error(e.message)
                } else o.information("This socket has been ended by the other party", this.context && this.context.name)
            }
        }
    }, 47: function (e, t) {
        e.exports = require("string_decoder")
    }, 48: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(12), o = (n(19), n(2)), a = n(6);
        let s = null;
        const l = n(15), c = n(3), d = n(1), u = n(9), f = n(18), p = n(7), h = "xdas_profile_stat";
        let m = "", v = void 0, g = null, y = void 0, b = null,
            C = u.default(o.join(__rootDir, "../bin/ThunderHelper.node")), w = new Set;

        function x() {
            return r(this, void 0, void 0, function* () {
                return new Promise(e => r(this, void 0, void 0, function* () {
                    void 0 === y && (null === b && (b = new Promise(e => {
                        e(y = function (e) {
                            let t = "";
                            if (0 === e.length && "renderer" === process.type) {
                                let e = o.normalize(decodeURIComponent(window.location.href)),
                                    n = e.indexOf(process.resourcesPath);
                                n = n > -1 ? n + process.resourcesPath.length + 1 : n;
                                let r = e.length - 1, i = e.indexOf("?"), a = e.indexOf("#");
                                r = i > -1 ? Math.min(i - 1, r) : r, r = a > -1 ? Math.min(a - 1, r) : r, n > -1 && r >= n && (t = e.substr(n, r - n + 1))
                            }
                            return 0 === t.length && (t = 0 !== e.length ? e : process.type), t = t.replace(/\||,|;/g, "_")
                        }(""))
                    })), y = yield b), e(y)
                }))
            })
        }

        function S(e) {
            let t = "";
            do {
                if (null === e || void 0 === e) break;
                switch (typeof e) {
                    case"string":
                        t = e;
                        break;
                    case"object":
                        t = a.inspect(e) || "";
                        break;
                    case"number":
                    case"boolean":
                        t = e.toString() || ""
                }
            } while (0);
            return t
        }

        function T(e) {
            return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
        }

        function R(e) {
            return r(this, void 0, void 0, function* () {
                return new Promise(t => r(this, void 0, void 0, function* () {
                    let r = void 0;
                    null === s && (s = yield Promise.resolve().then(() => n(36)));
                    let i = s.createHash("md5");
                    null !== i && (r = i.update(e).digest("hex")), t(r)
                }))
            })
        }

        function P() {
            return new Promise(e => r(this, void 0, void 0, function* () {
                let t = "";
                t = void 0 === v ? "browser" === process.type ? function () {
                    if (void 0 === v) {
                        let e = process.argv.length, t = process.argv;
                        for (let n = 0; n < e; n++) {
                            let e = t[n];
                            if (e.startsWith("-StartType:")) {
                                v = e.substring("-StartType:".length);
                                break
                            }
                        }
                        void 0 === v && (v = "")
                    }
                    return v
                }() : yield function () {
                    return r(this, void 0, void 0, function* () {
                        return null === g && (g = new Promise(e => {
                            c.ipcRenderer.send(f.ThunderChannelList.channelRMGetBrowserStartType), c.ipcRenderer.once(f.ThunderChannelList.channelMRGetBrowserStartTypeResult, (t, n) => {
                                v = n, e(n), g = null
                            })
                        })), g
                    })
                }() : v, e(t)
            }))
        }

        function k(e, t, n, i) {
            return r(this, void 0, void 0, function* () {
                let o = S(t), a = S(n), s = yield R(a), c = function (e) {
                    let t = new RegExp(T("file:///"), "g"), n = new RegExp(T(process.resourcesPath + "\\"), "g"),
                        r = new RegExp(T(encodeURI(process.resourcesPath.replace(/\\/g, "/") + "/")), "g");
                    return e.replace(t, "").replace(n, "").replace(r, "")
                }(S(i)), d = yield R(c), u = `${e}:${s}:${d}`;
                w.has(u) || (w.add(u), l.XLStatNS.trackEvent(h, "uncaught_exception", "", 0, 0, 0, 0, `type=${e},business_name=${yield x()},code=${o},message_hash=${s},message=${encodeURI(a)},stack_hash=${d},stack=${encodeURI(c)}`)), function (e, t, n, i) {
                    return r(this, void 0, void 0, function* () {
                    })
                }().catch()
            })
        }

        function E(e) {
            console.error(e);
            let t = e || {};
            k("unhandledRejection", t.code, t instanceof Error ? t.message : t, t.stack).catch()
        }

        !function (e) {
            e.init = function (e) {
                m = e
            }, e.trackColdStartUpEvent = function (e) {
                return r(this, void 0, void 0, function* () {
                    let t = C.iSColdStartUp() ? 1 : 0, n = i.release(),
                        r = C.performanceMonitorReporter.getProcessUptime(), o = yield P(),
                        a = `key=${e},start_type=${o},cold_start_up=${t},os_version=${n},cost_time=${r}`;
                    l.XLStatNS.trackEvent(h, "cold_start_up", "", 0, 0, 0, 0, a)
                })
            }
        }(t.PerformanceMonitorStatNS || (t.PerformanceMonitorStatNS = {})), function () {
            return r(this, void 0, void 0, function* () {
                if (process.on("uncaughtException", e => {
                    console.error(e);
                    let t = e || {};
                    k("uncaughtException", t.code, t.message, t.stack).catch()
                }), "browser" === process.type) process.on("unhandledRejection", (e, t) => {
                    E(e)
                }), c.ipcMain.on(f.ThunderChannelList.channelRMGetBrowserStartType, function (e) {
                    return r(this, void 0, void 0, function* () {
                        let t = yield P();
                        e.sender.send(f.ThunderChannelList.channelMRGetBrowserStartTypeResult, t)
                    })
                }); else if ("browser" !== process.type) {
                    window.addEventListener("unhandledrejection", e => {
                        E(e && e.reason || {})
                    });
                    let e = yield p.asyncRemoteCall.getCurrentWebContents();
                    null !== e && void 0 !== e && e.once("did-finish-load", () => {
                        (function () {
                            return r(this, void 0, void 0, function* () {
                                do {
                                    if ("browser" === process.type) break;
                                    if (null === window.performance.timing || void 0 === window.performance.timing) break;
                                    let e = C.iSColdStartUp() ? 1 : 0, t = i.release(), n = window.performance.timing,
                                        r = n.loadEventEnd - n.navigationStart, o = n.fetchStart - n.navigationStart,
                                        a = n.domainLookupEnd - n.domainLookupStart, s = n.connectEnd - n.connectStart,
                                        c = n.responseStart - n.requestStart, d = n.responseEnd - n.responseStart,
                                        u = n.domComplete - n.domLoading, f = yield P();
                                    l.XLStatNS.trackEvent(h, "page_load_time", "", 0, 0, 0, 0, `start_type=${f},cold_start_up=${e},os_version=${t},load_time=${r},before_fetch_time=${o},domin_lookup_time=${a},connect_time=${s},first_response_time=${c},responseTime=${d},domTime=${u},process=${m}`)
                                } while (0)
                            })
                        })().catch()
                    })
                }
                d.default.hook("beforeLog", (e, t, ...n) => {
                    e === d.LogLevel.Critical && l.XLStatNS.trackEvent(h, "critical_error", "", 0, 0, 0, 0, `module_name=${t},messages=${n}`)
                })
            })
        }().catch()
    }, 49: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), t.getWebContents = t.getCurrentWebContents = t.getCurrentWindow = t.getGlobal = t.getBuiltin = t.remoteRequire = t.Interest = void 0;
        const r = n(3), i = n(40), o = n(50), a = n(51), s = n(31), l = n(52), c = n(13), d = n(32), u = r.ipcRenderer,
            f = process.electronBinding("v8_util"), p = new o.default, h = f.createIDWeakMap(),
            m = f.getHiddenValue(global, "contextId");

        class v {
            constructor(e) {
                if ("object" == typeof e ? (this.on = "object" == typeof e.on ? e.on : {}, this.once = "object" == typeof e.once ? e.once : {}) : (this.on = {}, this.once = {}), !this.check()) throw new Error("unexpected param")
            }

            check() {
                let e = !0;
                do {
                    let t = Object.getOwnPropertyNames(this.on);
                    if (t.forEach(t => {
                        "function" != typeof this.on[t] && (e = !1)
                    }), !e) break;
                    (t = Object.getOwnPropertyNames(this.once)).forEach(t => {
                        "function" != typeof this.once[t] && (e = !1)
                    })
                } while (0);
                return e
            }
        }

        function g(e, t = new Set) {
            const n = e => {
                if (t.has(e)) return {type: "value", value: null};
                let r = e;
                if (Array.isArray(e)) {
                    t.add(e);
                    let n = {type: "array", value: g(e, t)};
                    return t.delete(e), n
                }
                if (ArrayBuffer.isView(r)) return {type: "buffer", value: i.Buffer.from(e)};
                if (e instanceof Date) return {type: "date", value: e.getTime()};
                if (null != e && "object" == typeof e) {
                    if (d.isPromise(e)) return {
                        type: "promise", then: n(function (t, n) {
                            e.then(t, n)
                        })
                    };
                    if (f.getHiddenValue(e, "__remote_id__")) return {
                        type: "remote-object",
                        id: f.getHiddenValue(e, "__remote_id__")
                    };
                    let r = {
                        type: e instanceof v ? "interest" : "object",
                        name: e.constructor ? e.constructor.name : "",
                        members: []
                    };
                    t.add(e);
                    for (let t in e) r.members.push({name: t, value: n(e[t])});
                    return t.delete(e), r
                }
                if ("function" == typeof e) {
                    return {
                        type: "function",
                        id: p.add(e),
                        location: f.getHiddenValue(e, "__remote_call_location__"),
                        length: e.length
                    }
                }
                return {type: "value", value: e}
            };
            return e.map(n)
        }

        function y(e, t, n) {
            d.isPromise(e) ? e.then(e => {
                t(e)
            }, e => {
                n(e)
            }) : t(e)
        }

        function b(e, t, n, r = !1) {
            const i = t => {
                if (e.hasOwnProperty(t.name) && !r) return;
                let n, i = {enumerable: t.enumerable, configurable: !0};
                if ("method" === t.type) {
                    if (t.value.refId) {
                        if (h.has(t.value.refId) && (n = h.get(t.value.refId)), null == n) throw new Error("member refId pointer to null" + t.value.refId + "name: " + t.name)
                    } else n = S(t.value, e, t.name);
                    i.get = (() => n), i.set = (e => n = e)
                } else "get" === t.type && (i.get = (() => n), t.writable && (i.set = (e => {
                    n = e
                })), n = S(t.value));
                Object.defineProperty(e, t.name, i)
            };
            if (Array.isArray(n)) {
                let e = n.length;
                for (let t = 0; t < e; t++) i(n[t])
            }
        }

        function C(e, t, n) {
            if (n) {
                let t = S(n);
                Object.setPrototypeOf(e, t)
            }
        }

        function w(e, t) {
            f.setHiddenValue(e, "__remote_id__", t)
        }

        function x(e) {
            return f.getHiddenValue(e, "__remote_id__")
        }

        function S(e, t, n) {
            const r = {
                value: () => e.value,
                array: () => e.members.map(e => S(e)),
                buffer: () => i.Buffer.from(e.value),
                promise: () => Promise.resolve({then: S(e.then)}),
                error: () => (function (e) {
                    const t = (() => "error" === e.type ? new Error : {})();
                    for (let n = 0; n < e.members.length; n++) {
                        let {name: r, value: i} = e.members[n];
                        t[r] = i
                    }
                    return t
                })(e),
                date: () => new Date(e.value),
                exception: () => {
                    throw new Error(`${e.message}\n${e.stack}`)
                }
            };
            let o;
            return e.type in r ? o = r[e.type]() : e.refId ? h.has(e.refId) ? (f.addRemoteObjectRef(m, e.refId), o = h.get(e.refId)) : (c.warn("[metaToValue] refId point to null" + e.refId), o = "function" === e.type ? () => {
            } : {}) : e.id ? h.has(e.id) ? (f.addRemoteObjectRef(m, e.id), b(o = h.get(e.id), e.id, e.members, !0), C(o, e.id, e.proto)) : (o = "function" === e.type ? t ? function (e, t, n) {
                if (h.has(n.id)) return h.get(n.id);
                let r = x(e), i = function (...e) {
                    throw Error("never should come to a proxied function")
                };
                Object.defineProperty(i, "name", {value: t, writable: !1, enumerable: !0});
                let o = new Proxy(i, {
                    apply: (e, n, i) => new Promise((e, o) => {
                        let c = x(n);
                        if (c || (c = x(n.__remoteObj_)), !c) throw Error("is this function was a bound function?");
                        let d = s.default.browser.memberCall, f = l.default(d), p = g(i);
                        u.send(d, m, f, c, r, t, p), a.default.add(f, t => {
                            try {
                                y(S(t), e, o)
                            } catch (e) {
                                o(e)
                            }
                        })
                    }), construct: (e, n, i) => new Promise((e, i) => {
                        let o = s.default.browser.memberConstruct, c = l.default(o);
                        u.send(o, m, c, r, t, g(n)), a.default.add(c, t => {
                            try {
                                let n = S(t);
                                e(n)
                            } catch (e) {
                                i(e)
                            }
                        })
                    })
                });
                return f.setHiddenValue(i, "__remote_id__", n.id), o
            }(t, n, e) : function (e) {
                let t = e.id;
                const n = function (...e) {
                    throw new Error("Should Never com to a remoteFunction PlaceHolder")
                };
                return w(n, t), new Proxy(n, {
                    apply: (e, n, r) => new Promise((e, i) => {
                        let o = s.default.browser.functionCall, c = l.default(o), d = x(n);
                        u.send(o, m, c, d, t, g(r)), a.default.add(c, t => {
                            try {
                                y(S(t), e, i)
                            } catch (e) {
                                i(e)
                            }
                        })
                    }), construct: (e, n, r) => new Promise((e, r) => {
                        let i = s.default.browser.construct, o = l.default(i);
                        u.send(i, m, o, t, g(n)), a.default.add(o, t => {
                            try {
                                let n = S(t);
                                e(n)
                            } catch (e) {
                                r(e)
                            }
                        })
                    })
                })
            }(e) : {}, f.setRemoteObjectFreer(o, m, e.id), h.set(e.id, o), f.setHiddenValue(o, "__remote_id__", e.id), f.addRemoteObjectRef(m, e.id), function (e) {
                let t = x(e);
                Object.defineProperties(e, {
                    __set: {
                        enumerable: !1, writable: !1, value: function (n, r) {
                            if ("function" == typeof r) throw new Error("set a function to a remote member is dangerous");
                            return new Promise((i, o) => {
                                let c = s.default.browser.memberSet, d = l.default(c), f = g([r]);
                                u.send(c, m, d, t, n, f), a.default.add(d, t => {
                                    try {
                                        let a = S(t);
                                        e[n] = r, i(a)
                                    } catch (e) {
                                        o(e)
                                    }
                                })
                            })
                        }
                    }, __get: {
                        enumerable: !1, writable: !1, value: function (n) {
                            return new Promise((r, i) => {
                                let o = s.default.browser.memberGet, c = l.default(o);
                                u.send(o, m, c, t, n), a.default.add(c, t => {
                                    try {
                                        const o = S(t);
                                        e[n] = o, r(o)
                                    } catch (e) {
                                        i(e)
                                    }
                                })
                            })
                        }
                    }, __sync: {
                        enumerable: !1, writable: !1, value: function () {
                            return new Promise((e, n) => {
                                let r = s.default.browser.sync, i = l.default(r);
                                u.send(r, m, i, t), a.default.add(i, r => {
                                    try {
                                        if (r.id !== t) throw Error("SYNC_RETURN: remote id not match");
                                        let i = S(r);
                                        e(i)
                                    } catch (e) {
                                        n(e)
                                    }
                                })
                            })
                        }
                    }
                })
            }(o), b(o, e.id, e.members), C(o, e.id, e.proto), Object.defineProperty(o.constructor, "name", {value: e.name}), e.extendedMemberNames && e.extendedMemberNames.forEach((e, t) => {
                let n = o[e], r = o.__proto__;
                for (; r;) {
                    if (Object.prototype.hasOwnProperty.call(r, e)) {
                        delete r[e];
                        break
                    }
                    r = r.__proto__
                }
                Object.defineProperty(o, e, {value: n, enumerable: !1, writable: !1, configurable: !0})
            })) : c.error("no id of meta:", e), o
        }

        t.Interest = v;

        class T {
            constructor(...e) {
                if (this.__resolved_ = !1, this.__promise_ = null, this.__remoteObj_ = null, this.__what_ = "", this.__name_ = "", "string" === typeof arguments[0]) {
                    let e = arguments[0], t = arguments[1];
                    this.__what_ = e, this.__name_ = t || e, this.__resolved_ = !1, this.__remoteObj_ = null, this.__promise_ = new Promise((n, r) => {
                        let i = this.getChannel(e), o = l.default(i);
                        u.send(i, m, o, t), a.default.add(o, e => {
                            try {
                                let t = S(e);
                                this.__remoteObj_ = t, this.__resolved_ = !0, n(t)
                            } catch (e) {
                                r(e)
                            }
                        })
                    })
                } else this.__remoteObj_ = arguments[0], this.__resolved_ = !0, this.__promise_ = null
            }

            getChannel(e) {
                let t = "";
                switch (e) {
                    case"module":
                        t = s.default.browser.require;
                        break;
                    case"builtin":
                        t = s.default.browser.builtIn;
                        break;
                    case"global":
                        t = s.default.browser.global;
                        break;
                    case"current_window":
                        t = s.default.browser.currentWindow;
                        break;
                    case"current_web_contents":
                        t = s.default.browser.currentWebContents;
                        break;
                    case"client_web_contents":
                        t = s.default.browser.clientWebContents;
                        break;
                    case"web_contents":
                        t = s.default.browser.webContents
                }
                return t
            }

            __resolve() {
                let e = this.__promise_;
                if (null !== e) ; else {
                    if (!this.__resolved_) throw Error("missing the promise for ayncnomously get remote object");
                    e = new Promise((e, t) => {
                        e(this.__remoteObj_)
                    }), this.__promise_ = e
                }
                return e
            }

            __isResolved() {
                return this.__resolved_
            }
        }

        function R(e, t, n) {
            try {
                a.default.invoke(t, n).remove(t)
            } finally {
                a.default.remove(t)
            }
        }

        u.on(s.default.renderer.requireReturn, R), u.on(s.default.renderer.getBuiltInReturn, R), u.on(s.default.renderer.getGlobalReturn, R), u.on(s.default.renderer.currentWindowReturn, R), u.on(s.default.renderer.currentWebContentsReturn, R), u.on(s.default.renderer.functionCallReturn, R), u.on(s.default.renderer.constructReturn, R), u.on(s.default.renderer.memberCallReturn, R), u.on(s.default.renderer.memberSetReturn, R), u.on(s.default.renderer.memberGetReturn, R), u.on(s.default.renderer.memberConstructReturn, R), u.on(s.default.renderer.callback, (e, t, n) => {
            p.apply(t, S(n))
        }), u.on(s.default.renderer.syncReturn, R), u.on("ELECTRON_RENDERER_RELEASE_CALLBACK", (e, t) => {
            c.info("[RELEASE_CALLBACK]: callbackId:", t), p.remove(t)
        }), process.on("exit", () => {
            u.send(s.default.browser.contextRelease)
        });
        const P = ["__resolve", "__isResolved"],
            k = ["__promise_", "__resolved_", "__remoteObj_", "__name_", "__what_"], E = e => {
                if (!e.__isResolved()) throw Error("Can not access the property of a remote module which has not Resolved yet.")
            };

        function O(e) {
            const t = function () {
            };
            Object.defineProperty(t, "name", {value: e.__name_}), Object.defineProperty(t, "what", {
                enumerable: !1,
                value: e.__what_
            });
            let n = new Proxy(t, {
                getPrototypeOf: t => (E(e), Reflect.getPrototypeOf(e.__remoteObj_)),
                setPrototypeOf: (e, t) => {
                    throw new Error("changing prototype of remote object is forbidden")
                },
                isExtensible: t => (E(e), Reflect.isExtensible(e.__remoteObj_)),
                preventExtensions: t => (E(e), Reflect.preventExtensions(e)),
                getOwnPropertyDescriptor: (t, n) => (E(e), Reflect.getOwnPropertyDescriptor(e.__remoteObj_, n)),
                has: (t, n) => (E(e), Reflect.has(e.__remoteObj_, n)),
                deleteProperty: (t, n) => (E(t), Reflect.deleteProperty(e.__remoteObj_, n)),
                defineProperty: (t, n, r) => (E(e), Reflect.defineProperty(e.__remoteObj_, n, r)),
                get: (t, n, r) => {
                    if ("string" == typeof n) {
                        if (String.prototype.includes.call(k, n)) {
                            return e[n]
                        }
                        if (String.prototype.includes.call(P, n)) {
                            return e[n]
                        }
                    }
                    return E(e), Reflect.get(e.__remoteObj_, n)
                },
                set: (t, n, r, i) => (E(e), Reflect.set(e.__remoteObj_, n, r, i)),
                ownKeys: t => (E(e), Reflect.ownKeys(e.__remoteObj_)),
                apply: (t, n, r) => {
                    E(e), Reflect.apply(e.__remoteObj_, n, r)
                },
                construct: (t, n, r) => {
                    if (E(e), "function" != typeof e.__remoteObj_) throw Error("operator new ONLY used for function");
                    return new Promise((t, r) => {
                        let i = s.default.browser.construct, o = l.default(i),
                            c = f.getHiddenValue(e.__remoteObj_, "__remote_id__");
                        u.send(i, m, o, c, g(n)), a.default.add(o, e => {
                            try {
                                t(S(e))
                            } catch (e) {
                                r(e)
                            }
                        })
                    })
                }
            });
            return e.__promise_.then(e => {
                let t = typeof e;
                if ("function" === t || "object" === t) {
                    let t = x(e);
                    t && w(n, t)
                }
            }), n
        }

        t.remoteRequire = function (e) {
            return O(new T("module", e))
        }, t.getBuiltin = function (e) {
            return O(new T("builtin", e))
        }, t.getGlobal = function (e) {
            return O(new T("global", e))
        }, t.getCurrentWindow = function () {
            return O(new T("current_window"))
        }, t.getCurrentWebContents = function () {
            return O(new T("current_web_contents"))
        }, t.getWebContents = function () {
            return O(new T("web_contents"))
        }
    }, 5: function (e, t, n) {
        e.exports = n(8)(208)
    }, 50: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = process.electronBinding("v8_util");
        t.default = class {
            constructor() {
                this.nextId = 0, this.callbacks = {}
            }

            add(e) {
                let t = r.getHiddenValue(e, "__remote_callback_id__");
                if (null != t) return t;
                t = this.nextId -= 1;
                const n = /at (.*)/gi, i = (new Error).stack;
                let o, a = n.exec(i);
                for (; null !== a;) {
                    const e = a[1];
                    if (!e.includes("native") && !e.includes("electron.asar")) {
                        o = /([^/^)]*)\)?$/gi.exec(e)[1];
                        break
                    }
                    a = n.exec(i)
                }
                return this.callbacks[t] = e, r.setHiddenValue(e, "__remote_callback_id__", t), r.setHiddenValue(e, "__remote_call_location__", o), t
            }

            get(e) {
                return this.callbacks[e] || function () {
                }
            }

            apply(e, ...t) {
                return this.get(e).apply(global, ...t)
            }

            remove(e) {
                const t = this.callbacks[e];
                t && (r.deleteHiddenValue(t, "__remote_callback_id__"), delete this.callbacks[e])
            }
        }
    }, 51: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(13);
        var i;
        !function (e) {
            let t = {};
            e.add = function (e, n, r) {
                t[e] = {func: n, thisArg: r}
            }, e.invoke = function (n, ...i) {
                let o = t[n];
                return o ? o.thisArg ? o.func.apply(o.thisArg, ...i) : o.func(...i) : r.error(`Cannot invoke function by unrecognize id. ${n}`), e
            }, e.remove = function (e) {
                delete t[e]
            }
        }(i || (i = {})), t.default = i
    }, 52: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        let r = 0;
        t.default = function (e) {
            return e ? e.concat(".").concat(String(++r)) : String(++r)
        }
    }, 524: function (e, t, n) {
        "use strict";
        var r = n(1042);
        n.n(r).a
    }, 53: function (e, t, n) {
        "use strict";
        const r = n(3), i = n(54), o = n(31), a = n(55), s = n(13), l = n(32), c = r.ipcMain,
            d = process.electronBinding("v8_util");
        let u = d.createDoubleIDWeakMap();
        const f = new i.default;

        function p(e, t, n, r, i, o) {
            let a, l = !1, c = null, d = !1;
            do {
                try {
                    a = t[r]
                } catch (e) {
                    l = !0
                }
                if (l) try {
                    a = n.value[r], l = !1, n.meta.extendedMemberNames.push(r), d = !0
                } catch (e) {
                    s.error(`property ${r} untouchable, even try root[name]`)
                }
                if (l) break;
                let i = Object.getOwnPropertyDescriptor(t, r);
                if (void 0 === i) {
                    s.warn(`descriptor of property ${r} is undefined`);
                    break
                }
                c = {
                    name: r,
                    enumerable: i.enumerable,
                    writable: !1,
                    type: "get"
                }, void 0 === i.get && "function" == typeof a ? c.type = "method" : ((i.set || i.writable) && (c.writable = !0), c.type = "get"), d ? (c.configurable = !0, c.value = v(e, a, o, !1, null)) : c.value = v(e, a, o, !1, n)
            } while (0);
            return c
        }

        function h(e, t, n, r = null) {
            let i = Object.getOwnPropertyNames(t);
            "function" == typeof t && (i = i.filter(function (e) {
                return !String.prototype.includes.call(a.propertiesOfFunction, e)
            }));
            let o = [];
            do {
                if (0 === i.length) break;
                let a = i.length;
                for (let s = 0; s < a; s++) {
                    let a = p(e, t, n, i[s], 0, r);
                    a && o.push(a)
                }
            } while (0);
            return o
        }

        function m(e, t, n, r = null) {
            let i = null, o = Object.getPrototypeOf(t);
            return i = null === o || o === Object.prototype || o === Function.prototype ? null : v(e, o, r, !1, n)
        }

        function v(e, t, n = null, r = !1, i = null) {
            n = null === n ? {} : n;
            const o = {type: typeof t};
            "object" === o.type && (o.type = function (e, t) {
                let n = typeof e;
                if ("object" !== n) throw new Error("incorrect arg at index 0. non-object");
                return null === e ? n = "value" : ArrayBuffer.isView(e) ? n = "buffer" : Array.isArray(e) ? n = "array" : e instanceof Error ? n = "error" : e instanceof Date ? n = "date" : l.isPromise(e) ? n = "promise" : Object.prototype.hasOwnProperty.call(e, "callee") && null != e.length ? n = "array" : t && d.getHiddenValue(e, "simple") && (n = "value"), n
            }(t, r));
            do {
                if ("object" === o.type || "function" === o.type) {
                    let r = f.getIdOfObject(t);
                    if (r && n[r]) {
                        o.refId = r, f.add(e, t);
                        break
                    }
                }
                "array" === o.type ? o.members = t.map(t => v(e, t, n)) : "object" === o.type || "function" === o.type ? (null == i && (o.extendedMemberNames = [], i = {
                    value: t,
                    meta: o
                }), o.name = t.constructor ? t.constructor.name : "", o.id = f.add(e, t), n[o.id] = !0, o.members = h(e, t, i, n), o.proto = m(e, t, i, n)) : "buffer" === o.type ? o.value = Buffer.from(t) : "promise" === o.type ? (t.then(function () {
                }, function () {
                }), o.then = v(e, function (e, n) {
                    t.then(e, n)
                })) : "error" === o.type ? (o.members = g(t), o.members.push({
                    name: "name",
                    value: t.name
                })) : "date" === o.type ? o.value = t.getTime() : (o.type = "value", o.value = t)
            } while (0);
            return o
        }

        function g(e) {
            return Object.getOwnPropertyNames(e).map(t => ({name: t, value: e[t]}))
        }

        function y(e, t, n, i) {
            const a = function (i) {
                let l, c, p = 0, h = 0;
                switch (i.type) {
                    case"value":
                        return i.value;
                    case"remote-object":
                        return f.get(i.id);
                    case"array":
                        return y(e, t, n, i.value);
                    case"buffer":
                        return Buffer.from(i.value);
                    case"date":
                        return new Date(i.value);
                    case"promise":
                        return Promise.resolve({then: a(i.then)});
                    case"object":
                    case"interest": {
                        let e = {};
                        for (Object.defineProperty(e.constructor, "name", {value: i.name}), p = 0, h = (c = i.members).length; p < h; p++) e[(l = c[p]).name] = a(l.value);
                        return e
                    }
                    case"function": {
                        const a = e.id, l = [n, i.id];
                        if (s.info("renderer function id:" + l), u.has(l)) return u.get(l);
                        let c = function (...t) {
                            s.info("[CALLBACK] args", t);
                            let n = [...t];
                            e.isDestroyed() || a !== e.id ? function (e, t, n) {
                                let i = "Attempting to call a function in a renderer window that has been closed or released." + `\nFunction provided here: ${e.location}`;
                                if (t.length > 0 && t[0].sender && t[0].sender instanceof r.webContents.constructor) {
                                    const {sender: e} = t[0], r = e.eventNames().filter(t => {
                                        let r = e.listeners(t), i = !1;
                                        return r.forEach(e => {
                                            e === n && (i = !0)
                                        }), i
                                    });
                                    r.length > 0 && (i += `\nRemote event names: ${r.join(", ")}`, r.forEach(t => {
                                        Object.getPrototypeOf(e).removeListener.call(e, t, n)
                                    }))
                                }
                                s.warn(i)
                            }(i, n, c) : e.send(o.default.renderer.callback, i.id, v(e, n))
                        };
                        return Object.defineProperty(c, "length", {value: i.length}), d.setRemoteCallbackFreer(c, t, n, i.id, e), u.set(l, c), c
                    }
                    default:
                        throw new TypeError(`Unknown type: ${i.type}`)
                }
            };
            return i.map(a)
        }

        function b(e, t, n, r) {
            let i, o;
            try {
                return t.apply(n, r)
            } catch (e) {
                return o = t.name, new Error(`Could not call remote function '${i = null != o ? o : "anonymous"}'. Check that the function signature is correct. Underlying error: ${e.message}`)
            }
        }

        function C(e) {
            return {type: "exception", message: e.message, stack: e.stack || e}
        }

        function w(e) {
            const t = new Error(e);
            throw Object.defineProperty(t, "code", {value: "EBADRPC"}), Object.defineProperty(t, "errno", {value: -72}), t
        }

        var x;
        !function (e) {
            const t = (e, t, ...n) => {
                const r = e.sender;
                r.isDestroyed() ? s.warn("webcontext is destroyed.") : r.send(t, ...n)
            };
            e.startServer = function () {
                c.on(o.default.browser.require, (e, n, r, i) => {
                    s.info(`[REQUIRE] module=${i} `);
                    let a = process.mainModule.require(i), l = v(e.sender, a);
                    t(e, o.default.renderer.requireReturn, r, l)
                }), c.on(o.default.browser.builtIn, (e, n, i, a) => {
                    s.info(`[BUILTIN]: property=${a} contextId=${n}`);
                    let l = r[a], c = v(e.sender, l);
                    s.info(`[BUILTIN]: returns remoteId:${c.id}, type: ${typeof l}`), t(e, o.default.renderer.getBuiltInReturn, i, c)
                }), c.on(o.default.browser.global, (e, n, r, i) => {
                    s.info(`[GLOBAL]: proerty:${i} contextId=${n}`);
                    let a, l = global[i];
                    a = v(e.sender, l), s.info(`[GLOBAL]: returns remoteid=${a.id}, obj=` + typeof l), t(e, o.default.renderer.getGlobalReturn, r, a)
                }), c.on(o.default.browser.currentWindow, (e, n, r, i) => {
                    s.info(`[CURRENT_WINDOW]: property=${i} contextId=${n}`);
                    let a = e.sender.getOwnerBrowserWindow.call(e.sender), l = v(e.sender, a);
                    s.info(`[CURRENT_WINDOW]: returns remoteid=${l.id}, obj=` + a), t(e, o.default.renderer.currentWindowReturn, r, l)
                }), c.on(o.default.browser.currentWebContents, (e, n, r, i) => {
                    t(e, o.default.renderer.currentWebContentsReturn, r, v(e.sender, e.sender))
                }), c.on(o.default.browser.webContents, (e, n, i, a) => {
                    s.info(`[WebContents]: proerty:${a} contextId=${n}`);
                    let l, c = r.webContents;
                    l = v(e.sender, c), s.info(`[WebContents]: returns remoteid=${l.id}, obj=` + typeof c), t(e, o.default.renderer.webContentsReturn, i, l)
                });
                const e = (e, t) => {
                    const n = (t, n) => {
                        t && Object.getOwnPropertyNames(t).forEach(r => {
                            n ? e.once(r, t[r]) : e.on(r, t[r])
                        })
                    };
                    t.on && n(t.on, !1), t.once && n(t.once, !0)
                };
                c.on(o.default.browser.construct, (n, r, i, a, l) => {
                    let c, d = null;
                    try {
                        s.info(`[CONSTRUCTOR]: remoteId=${a} `);
                        let u = l.length > 0 ? l[l.length - 1] : null;
                        l = y(n.sender, n.frameId, r, l);
                        let p = f.get(a);
                        null == p && w(`Cannot call constructor on missing remote object ${a}`), u && "interest" === u.type && (d = l.pop());
                        let h = new (Function.prototype.bind.apply(p, [null, ...l]));
                        h && d && e(h, d), c = v(n.sender, h, null, !1), s.info(`[CONSTRUCTOR]: returns remoteId =${c.id} name=${p.name} `)
                    } catch (e) {
                        c = C(e)
                    } finally {
                        t(n, o.default.renderer.constructReturn, i, c)
                    }
                }), c.on(o.default.browser.functionCall, function (e, n, r, i, a, l) {
                    let c;
                    try {
                        s.info(`[FUNCTION_CALL]: remoteId=${a}`), l = y(e.sender, e.frameId, n, l);
                        let d = f.get(a);
                        if (null == d) s.error(`Cannot call function on missing remote object ${a}`), c = v(e.sender, void 0); else {
                            let t = i ? f.get(i) : global;
                            if (t) {
                                let n = b(0, d, t, l);
                                c = v(e.sender, n)
                            } else s.error(`Cannot call function(${a}) on missing context(${i})`), c = v(e.sender, void 0)
                        }
                        s.info(`[FUNCTION_CALL]: name=${d.name}`)
                    } catch (e) {
                        c = C(e)
                    } finally {
                        t(e, o.default.renderer.functionCallReturn, r, c)
                    }
                }), c.on(o.default.browser.memberCall, function (e, n, r, i, a, l, c) {
                    let d;
                    s.info(`[MEMBER_CALL]: thisArg=${i}, remoteId=${a}, method=${l}, args count=${c.length}`);
                    try {
                        c = y(e.sender, e.frameId, n, c);
                        let u = f.get(a);
                        null == u && w(`Cannot call function '${l}' on missing remote object ${a}`);
                        let p = i ? f.get(i) : u;
                        if (p) {
                            let t = b(0, u[l], p, c);
                            d = v(e.sender, t), s.info("[MEMBER_CALL]: return=" + t)
                        } else d = v(e.sender, void 0)
                    } catch (e) {
                        d = C(e)
                    } finally {
                        t(e, o.default.renderer.memberCallReturn, r, d)
                    }
                }), c.on(o.default.browser.memberGet, function (e, n, r, i, a) {
                    let l;
                    try {
                        s.info(`[MEMBER_GET]: remoteId=${i}, property=`, a);
                        let n = f.get(i);
                        null == n && w(`Cannot get property '${Object.toString.call(a)}' on missing remote object ${i}`);
                        let c = n[a];
                        l = v(e.sender, c)
                    } catch (e) {
                        l = C(e)
                    } finally {
                        t(e, o.default.renderer.memberGetReturn, r, l)
                    }
                }), c.on(o.default.browser.memberSet, function (e, n, r, i, a, l) {
                    try {
                        s.info(`[MEMBER_SET]: remoteId=${i}, property=` + a), l = y(e.sender, e.frameId, n, l);
                        let c = f.get(i);
                        null == c && w(`Cannot set property '${Object.toString.call(a)}' on missing remote object ${i}`), c[a] = l[0], t(e, o.default.renderer.memberSetReturn, r, {
                            type: "value",
                            value: !0
                        })
                    } catch (n) {
                        t(e, o.default.renderer.memberSetReturn, r, C(n))
                    }
                }), c.on(o.default.browser.memberConstruct, function (n, r, i, a, l, c) {
                    let d, u = null;
                    try {
                        s.info(`[MEMBER_CONSTRUCTOR]: regId=${a}, method=${l}`);
                        let p = c.length > 0 ? c[c.length - 1] : null;
                        c = y(n.sender, n.frameId, r, c);
                        let h = f.get(a);
                        null == h && w(`Cannot call constructor '${l}' on missing remote object ${a}`), p && "interest" === p.type && (u = c.pop());
                        let m = h[l], g = new (Function.prototype.bind.apply(m, [null, ...c]));
                        g && u && e(g, u), d = v(n.sender, g)
                    } catch (e) {
                        d = C(e)
                    } finally {
                        t(n, o.default.renderer.memberConstructReturn, i, d)
                    }
                }), c.on(o.default.browser.sync, function (e, n, r, i) {
                    let a = f.get(i);
                    t(e, o.default.renderer.syncReturn, r, v(e.sender, a))
                }), c.on("ELECTRON_BROWSER_DEREFERENCE", function (e, t) {
                    let n = f.get(t);
                    if (r.ipcMain.emit("log_to_renderer", "ELECTRON_BROWSER_DEREFERENCE", t, typeof n), n) {
                        let r = n.name;
                        r || (r = n.constructor ? n.constructor.name : ""), f.remove(e.sender.id, t)
                    } else t < 0 && s.warn("remote id reference to nothing:", t)
                }), c.on(o.default.browser.contextRelease, e => {
                    f.clear(e.sender.id)
                })
            }, e.getObjectRegistry = function () {
                return f
            }
        }(x || (x = {})), e.exports = x
    }, 532: function (e, t, n) {
        "use strict";
        var r = function () {
            var e = this.$createElement, t = this._self._c || e;
            return 1 === this.logined ? t("personal-info-login", {
                attrs: {from: this.from},
                on: {"set-menu-show": this.setMenuShow}
            }) : 0 === this.logined ? t("personal-info-unlogin") : this._e()
        }, i = [];
        r._withStripped = !0, n.d(t, "a", function () {
            return r
        }), n.d(t, "b", function () {
            return i
        })
    }, 54: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(13), i = -1 * Math.pow(2, 31), o = process.electronBinding("v8_util");
        t.default = class {
            constructor() {
                this.nextId = 0, this.storage = new Map, this.owners = new Map
            }

            add(e, t) {
                const n = this.saveToStorage(t), r = e.id;
                let i = this.owners.get(r);
                return i || (i = new Set, this.owners.set(r, i), this.registerDeleteListener(e, r)), i.has(n) || (i.add(n), this.storage.get(n).count++), n
            }

            getIdOfObject(e) {
                return o.getHiddenValue(e, "__remote_id__")
            }

            get(e) {
                const t = this.storage.get(e);
                if (void 0 !== t) return t.object
            }

            remove(e, t) {
                this.dereference(t);
                let n = this.owners.get(e);
                n && n.delete(t)
            }

            clear(e) {
                let t = this.owners.get(e);
                if (t) {
                    for (let e of t) this.dereference(e);
                    this.owners.delete(e)
                }
            }

            getStorageSize() {
                return this.storage.size
            }

            saveToStorage(e) {
                let t = o.getHiddenValue(e, "__remote_id__");
                if (!t) {
                    if ((t = --this.nextId) <= i) throw new Error("object registry id overflow");
                    this.storage.set(t, {object: e, count: 0}), o.setHiddenValue(e, "__remote_id__", t)
                }
                return t
            }

            dereference(e) {
                let t = this.storage.get(e);
                null != t && (t.count -= 1, 0 === t.count && (o.deleteHiddenValue(t.object, "__remote_id__"), this.storage.delete(e)))
            }

            registerDeleteListener(e, t) {
                const n = e.getProcessId(), i = (o, a) => {
                    a === n && (r.info("render-view-deleted: processid=" + n), (() => {
                        r.info("before clear. objectsRegistry capacity=" + this.storage.size, "owners size:" + this.owners.size)
                    })(), e.removeListener("render-view-deleted", i), this.clear(t))
                };
                e.on("render-view-deleted", i)
            }
        }
    }, 543: function (e, t, n) {
        "use strict";
        var r = function () {
            var e = this, t = e.$createElement, n = e._self._c || t;
            return n("div", {staticClass: "xlx-personal-main"}, [n("div", {staticClass: "xlx-personal-menu"}, [n("a", {
                staticClass: "xlx-personal-icon xlx-personal-icon__menu",
                attrs: {href: "javascript:;"},
                on: {click: e.showMenu, mouseenter: e.showMenu, mouseleave: e.hideMenu}
            })]), e._v(" "), n("div", {staticClass: "xlx-personal-information"}, [n("div", {staticClass: "xlx-personal-information__avatar"}, [n("a", {
                attrs: {href: "javascript:;"},
                on: {
                    click: function (t) {
                        e.onClick("header")
                    }
                }
            }, [n("img", {
                attrs: {
                    src: e.imgUrl,
                    alt: "用户头像",
                    draggable: "false"
                }
            })])]), e._v(" "), e.bubbleVisible ? n("div", {staticClass: "td-tooltip is-bottom"}, [n("div", {staticClass: "td-tooltip__inner"}, [e._v(e._s(e.bubbleInfo))]), e._v(" "), n("span", {staticClass: "td-poper__arrow"}), e._v(" "), n("a", {
                staticClass: "td-tooltip__close",
                attrs: {href: "javascript:;"},
                on: {click: e.handleCloseBubble}
            }, [n("i", {staticClass: "td-icon-close"})])]) : e._e(), e._v(" "), n("div", {
                staticClass: "xlx-personal-information__name",
                class: {"is-vip ": e.isVip}
            }, [n("h4", [n("a", {
                attrs: {href: "javascript:;", title: e.userNick}, on: {
                    click: function (t) {
                        e.onClick("nick")
                    }
                }
            }, [e._v(e._s(e.userNick))])]), e._v(" "), e.vipData ? n("vip-icon", {
                staticStyle: {cursor: "pointer"},
                attrs: {vipData: e.vipData, size: "normal", disabled: 0 === e.isVip},
                nativeOn: {
                    click: function (t) {
                        e.onClick("vip")
                    }
                }
            }) : e._e(), e._v(" "), n("a", {
                class: e.userYearIcon,
                attrs: {href: "javascript:;"},
                on: {
                    click: function (t) {
                        e.onClick("nian")
                    }
                }
            }), e._v(" "), n("span", {staticClass: "xlx-personal-information__time"}, [e._v(e._s(e.strExipreDate))])], 1), e._v(" ")]), e._v(" "), n("div", {staticClass: "xlx-personal-data"}, [n("div", {staticClass: "xlx-personal-data__detail"}, [n("a", {
                attrs: {href: "javascript:;"},
                on: {
                    click: function (t) {
                        e.onClick("coin")
                    }
                }
            }, [n("em", [e._v(e._s(e.totalCoin >= 0 ? e.totalCoin : "---"))]), e._v("金币福利\n        ")]), e._v(" "), n("a", {
                attrs: {href: "javascript:;"},
                on: {
                    click: function (t) {
                        e.onClick("quan")
                    }
                }
            }, [n("em", [e._v(e._s(e.vipCardCount))]), e._v("\n        " + e._s(e.strVipCardText) + "\n        "), e.hasVipCardTip ? n("span", {staticClass: "xlx-personal-data__prompt"}, [e._v(e._s(e.vipCardTip))]) : e._e()]), e._v(" "), n("a", {
                attrs: {href: "javascript:;"},
                on: {
                    click: function (t) {
                        e.onClick("level")
                    }
                }
            }, [n("em", [e._v(e._s(e.userLevel))]), e._v("等级\n      ")])]), e._v(" "), n("div", {staticClass: "xlx-personal-data__growth"}, [n("div", {staticClass: "xlx-personal-data__panel"}, [n("p", [e._v("VIP" + e._s(e.vipLevel))]), e._v(" "), n("div", {staticClass: "xlx-personal-data__bar"}, [n("em", {
                directives: [{
                    name: "show",
                    rawName: "v-show",
                    value: e.isShowVipGrow,
                    expression: "isShowVipGrow"
                }]
            }, [e._v(e._s(e.vipGrow))]), e._v(" "), n("span", [n("i", {style: {width: e.strVipGrowProgress}})]), e._v(" "), e.isShowVipGrow ? n("p", [e._v("\n            " + e._s(e.strVipGrowPerDay) + "\n            "), n("a", {
                directives: [{
                    name: "show",
                    rawName: "v-show",
                    value: 1 !== e.vipGrowUpgradeType,
                    expression: "vipGrowUpgradeType !== 1"
                }], attrs: {href: "javascript:;"}, on: {
                    click: function (t) {
                        e.onClick("vipGrow")
                    }
                }
            })]) : n("a", {
                attrs: {href: "javascript:;"},
                on: {
                    click: function (t) {
                        e.onClick("vipGrow")
                    }
                }
            }, [e._v("开启会员成长值>")])]), e._v(" "), n("p", [e._v(e._s(e.strVipUpLevel))])])])]), e._v(" ")])
        }, i = [];
        r._withStripped = !0, n.d(t, "a", function () {
            return r
        }), n.d(t, "b", function () {
            return i
        })
    }, 544: function (e, t, n) {
        "use strict";
        var r = function () {
            var e = this, t = e.$createElement, n = e._self._c || t;
            return n("div", {staticClass: "xlx-personal-main"}, [n("div", {staticClass: "xlx-personal-vip"}, [n("div", {staticClass: "xlx-personal-vip__activity"}, [n("img", {
                attrs: {src: e.voucherUrl},
                on: {error: e.useDefaultImg}
            }), e._v(" "), n("p", [e._v(e._s(e.detail))])]), e._v(" "), n("a", {
                staticClass: "xlx-personal-vip__button",
                attrs: {href: "javascript:;"},
                on: {click: e.onBtnClick}
            }, [e._v(e._s(e.btnText))]), e._v(" "), e._m(0)])])
        }, i = [function () {
            var e = this, t = e.$createElement, n = e._self._c || t;
            return n("div", {staticClass: "xlx-personal-vip__privilege"}, [n("h4", [e._v("超级会员特权")]), e._v(" "), n("ul", [n("li", [n("i", {staticClass: "icon icon-download"}), e._v(" "), n("p", [e._v("下载加速")])]), e._v(" "), n("li", [n("i", {staticClass: "icon icon-offline"}), e._v(" "), n("p", [e._v("离线空间")])]), e._v(" "), n("li", [n("i", {staticClass: "icon icon-broadband"}), e._v(" "), n("p", [e._v("宽带提速")])])])])
        }];
        r._withStripped = !0, n.d(t, "a", function () {
            return r
        }), n.d(t, "b", function () {
            return i
        })
    }, 55: function (e, t, n) {
        "use strict";
        var r;
        !function (e) {
            e.propertiesOfFunction = ["length", "name", "arguments", "caller", "prototype", "apply", "bind", "call", "toString"]
        }(r || (r = {})), e.exports = r
    }, 56: function (e, t) {
        e.exports = require("http")
    }, 57: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(4), i = n(42), o = n(1), a = n(11), s = o.default.getLogger("common/skin"), l = !1;

        function c(e) {
            if (l) if (e.type === i.SkinHelperNS.SkinType.Default) document.body.classList.remove("is-theme"), a.ThunderUtil.setCSSProperties(document.body, {
                "--color-primary-theme": "",
                "--color-primary-control-1": "",
                "--color-primary-control-2": "",
                "--color-primary-control-3": "",
                "--color-primary-control-4": "",
                "--color-primary-gradient-1": "",
                "--color-primary-gradient-2": "",
                "--color-primary-text": "",
                "--color-search": "",
                "--color-secondary": "",
                "--color-gradient-background-1": "",
                "--color-gradient-background-2": "",
                "--color-gradient-foreground-1": "",
                "--color-gradient-foreground-2": "",
                "--color-accordion-1": "",
                "--color-accordion-2": "",
                "--default-opacity-1": "",
                "--default-opacity-2": ""
            }); else if (e.type === i.SkinHelperNS.SkinType.Color || e.type === i.SkinHelperNS.SkinType.Wallpaper || e.type === i.SkinHelperNS.SkinType.Cool) {
                document.body.classList.add("is-theme");
                let {
                    colors: {
                        colorPrimary: t,
                        colorPrimaryControl1: n,
                        colorPrimaryControl2: r,
                        colorPrimaryControl3: i,
                        colorPrimaryControl4: o,
                        colorPrimaryGradient: s,
                        colorPrimaryText: l,
                        colorSearch: c,
                        colorSecondary: d,
                        colorGradientBackground: u,
                        colorGradientForeground: f,
                        colorAccordion: p
                    }, opacity: h
                } = e;
                a.ThunderUtil.setCSSProperties(document.body, {
                    "--color-primary-theme": `${t}`,
                    "--color-primary-control-1": `${n}`,
                    "--color-primary-control-2": `${r}`,
                    "--color-primary-control-3": `${i}`,
                    "--color-primary-control-4": `${o}`,
                    "--color-primary-gradient-1": `${s[0]}`,
                    "--color-primary-gradient-2": `${s[1]}`,
                    "--color-primary-text": `${l}`,
                    "--color-search": `${c}`,
                    "--color-secondary": `${d}`,
                    "--color-gradient-background-1": `${u[0]}`,
                    "--color-gradient-background-2": `${u[1]}`,
                    "--color-gradient-foreground-1": `${f[0]}`,
                    "--color-gradient-foreground-2": `${f[1]}`,
                    "--color-accordion-1": `${p[0]}`,
                    "--color-accordion-2": `${p[1]}`,
                    "--default-opacity-1": `${h - .1}`,
                    "--default-opacity-2": `${h + .1}`
                })
            }
        }

        r.client.callServerFunction("GetSkinInfo").then(c).catch(e => {
            s.warning(e)
        }), r.client.attachServerEvent("OnChangeSkin", (e, ...t) => {
            c(t[0])
        })
    }, 58: function (e, t, n) {
        e.exports = n(8)(211)
    }, 59: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(7), o = n(17), a = n(4), s = n(27);
        !function (e) {
            function t(e, t) {
                return r(this, void 0, void 0, function* () {
                    if (null !== e) {
                        let n = e.webContents;
                        (yield n.isDevToolsOpened()) ? yield n.closeDevTools() : yield n.openDevTools(t)
                    }
                })
            }

            e.openDevTool = t, e.enableDevTools = function (e) {
                return r(this, void 0, void 0, function* () {
                    window.addEventListener("keyup", n => r(this, void 0, void 0, function* () {
                        if ("F12" === n.key && n.ctrlKey) s.DevEnvHelperNS.isLogEnable() && (yield t(yield i.asyncRemoteCall.getCurrentWindow(), e)); else if (("t" === n.key || "T" === n.key) && n.altKey && s.DevEnvHelperNS.isLogEnable()) {
                            let e = document.getElementById("DevProcessPid");
                            if (e) document.body.removeChild(e); else {
                                (e = document.createElement("p")).id = "DevProcessPid", e.style.position = "absolute", e.style.left = "0px", e.style.top = "0px", e.style.width = "100%", e.style.zIndex = "10000", e.style.color = "rgb(255,0,0)", document.body.appendChild(e);
                                let t = "process.pid:" + process.pid;
                                t += "\r\nlocation.href:" + location.href, t += "\r\nprocess.argv:" + process.argv, e.innerText = t
                            }
                        }
                    }), !0)
                })
            }, e.enableDragOpenFile = function (e) {
                void 0 === e && (e = !1), document.addEventListener("dragover", e => (e.preventDefault(), e.stopPropagation(), !1), !0), document.addEventListener("drop", e => r(this, void 0, void 0, function* () {
                    e.preventDefault(), e.stopPropagation();
                    let t = e.dataTransfer, n = t.files, r = t.items;
                    if (void 0 !== r && null !== r && r.length > 0) for (let e = 0; e < r.length; e++) {
                        let t = r[e];
                        "string" === t.kind && "text/uri-list" === t.type ? t.getAsString(e => {
                            a.client.callServerFunction("DropOpenUrl", e).catch()
                        }) : t.kind
                    }
                    if (void 0 !== n && null !== n && n.length > 0) for (let e = 0; e < n.length; e++) {
                        let t = n[e].path;
                        void 0 !== t && null !== t && "" !== t && (yield o.FileSystemAWNS.existsAW(t)) && a.client.callServerFunction("DropOpenFile", t).catch()
                    }
                    return !1
                }), !0)
            }
        }(t.ThunderToolsNS || (t.ThunderToolsNS = {}))
    }, 6: function (e, t) {
        e.exports = require("util")
    }, 60: function (e, t, n) {
        "use strict";
        var r = n(10), i = n(107), o = {"Content-Type": "application/x-www-form-urlencoded"};

        function a(e, t) {
            !r.isUndefined(e) && r.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t)
        }

        var s, l = {
            adapter: ("undefined" != typeof XMLHttpRequest ? s = n(108) : "undefined" != typeof process && (s = n(25)), s),
            transformRequest: [function (e, t) {
                return i(t, "Content-Type"), r.isFormData(e) || r.isArrayBuffer(e) || r.isBuffer(e) || r.isStream(e) || r.isFile(e) || r.isBlob(e) ? e : r.isArrayBufferView(e) ? e.buffer : r.isURLSearchParams(e) ? (a(t, "application/x-www-form-urlencoded;charset=utf-8"), e.toString()) : r.isObject(e) ? (a(t, "application/json;charset=utf-8"), JSON.stringify(e)) : e
            }],
            transformResponse: [function (e) {
                if ("string" == typeof e) try {
                    e = JSON.parse(e)
                } catch (e) {
                }
                return e
            }],
            timeout: 0,
            xsrfCookieName: "XSRF-TOKEN",
            xsrfHeaderName: "X-XSRF-TOKEN",
            maxContentLength: -1,
            validateStatus: function (e) {
                return e >= 200 && e < 300
            }
        };
        l.headers = {common: {Accept: "application/json, text/plain, */*"}}, r.forEach(["delete", "get", "head"], function (e) {
            l.headers[e] = {}
        }), r.forEach(["post", "put", "patch"], function (e) {
            l.headers[e] = r.merge(o)
        }), e.exports = l
    }, 61: function (e, t, n) {
        "use strict";
        var r = n(73);
        e.exports = function (e, t, n, i, o) {
            var a = new Error(e);
            return r(a, t, n, i, o)
        }
    }, 62: function (e, t) {
        e.exports = require("https")
    }, 63: function (e, t) {
        e.exports = require("zlib")
    }, 64: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(7), o = n(1), a = n(11), s = o.default.getLogger("MenuSkinNS");
        !function (e) {
            e.setStyle = function (e, t) {
                return r(this, void 0, void 0, function* () {
                    if (s.information("setStyle", e, t), null !== e) {
                        const {WindowPreferenceNS: e} = yield Promise.resolve().then(() => n(65));
                        let t = {windowPreference: e.getWindowPreference()};
                        s.information("skinOpts", t)
                    }
                })
            }, e.popEditableDefaultContextMenu = function (e, t, n) {
                return r(this, void 0, void 0, function* () {
                    let n = yield i.asyncRemoteCall.getCurrentWebContents();
                    n.once("context-menu", (o, l) => r(this, void 0, void 0, function* () {
                        if (s.verbose(o), l.isEditable) {
                            let r = [{
                                label: "撤销", enabled: l.editFlags.canUndo, click: () => {
                                    n.undo()
                                }
                            }, {type: "separator"}, {
                                label: "剪切", enabled: l.editFlags.canCut, click: () => {
                                    n.cut()
                                }
                            }, {
                                label: "复制", enabled: l.editFlags.canCopy, click: () => {
                                    n.copy()
                                }
                            }, {
                                label: "粘贴",
                                enabled: l.editFlags.canPaste && a.ThunderUtil.isClipboardTextFormatAvailable(),
                                click: () => {
                                    n.paste()
                                }
                            }, {
                                label: "删除", enabled: l.editFlags.canDelete, click: () => {
                                    n.delete()
                                }
                            }, {type: "separator"}, {
                                label: "全选", enabled: l.editFlags.canSelectAll, click: () => {
                                    n.selectAll()
                                }
                            }];
                            if (void 0 !== e && "function" == typeof e) {
                                let n = e(l);
                                void 0 !== n && n.length > 0 && (void 0 === t ? t = r.length : (t < 0 && (t = r.length + 1 + t) < 0 && (t = 0), t > r.length && (t = r.length)), r.splice(t, 0, ...n))
                            }
                            let o = yield(yield i.asyncRemoteCall.getMenu()).buildFromTemplate(r),
                                s = yield i.asyncRemoteCall.getCurrentWindow();
                            yield o.popup({window: s})
                        }
                    }))
                })
            }
        }(t.MenuSkinNS || (t.MenuSkinNS = {}))
    }, 642: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(38), o = n(1), a = n(4), s = n(11), l = n(14);
        let {isDef: c} = s.ThunderUtil;
        const d = o.default.getLogger("personalInfo:vip-user-info");
        !function (e) {
            const t = new l.EventEmitter, o = 1e3;
            e.getCardCount = function () {
                return r(this, void 0, void 0, function* () {
                    let e = 0;
                    try {
                        const t = yield a.client.callServerFunction("GetUserID"),
                            r = yield a.client.callServerFunction("GetSessionID"),
                            s = "http://msg.vip.xunlei.com/xl9/GetcashNum";
                        d.information("getCardCount", "url", s), i.default.defaults.adapter = n(25);
                        let l = yield i.default.get(s, {params: {userid: t, sessionid: r}, timeout: o});
                        d.information("getCardCount res", l), 200 === l.status && c(l.data) && 0 === l.data.result && c(l.data.data) && (e = Number(l.data.data.num) || 0)
                    } catch (e) {
                        d.warning(e)
                    }
                    return e
                })
            }, e.getSignCoin = function () {
                return r(this, void 0, void 0, function* () {
                    let e = 0;
                    try {
                        const t = yield a.client.callServerFunction("GetUserID"),
                            r = yield a.client.callServerFunction("GetSessionID"),
                            s = "http://msg.vip.xunlei.com/coin/GetSignCoin";
                        d.information("getSignCoin", "url", s), i.default.defaults.adapter = n(25);
                        let l = yield i.default.get(s, {params: {userid: t, sessionid: r}, timeout: o});
                        d.information("getSignCoin res", l), 200 === l.status && c(l.data) && 0 === l.data.result && c(l.data.data) && (e = Number(l.data.data.coins) || 0)
                    } catch (e) {
                        d.warning(e)
                    }
                    return e
                })
            };
            let s = !1, u = void 0;
            e.getIsUsedToBeVip = function () {
                return r(this, void 0, void 0, function* () {
                    let e = null;
                    return e = c(u) ? u : new Promise(e => r(this, void 0, void 0, function* () {
                        s ? t.once("OnGetUsedToBeVip", t => {
                            e(t)
                        }) : (s = !0, u = yield function () {
                            return r(this, void 0, void 0, function* () {
                                let e = !1;
                                try {
                                    const t = yield a.client.callServerFunction("GetUserID"),
                                        n = yield a.client.callServerFunction("GetSessionID"),
                                        r = "http://soa.vip.xunlei.com/xlvip.common.mooseapi/querytags";
                                    d.information("isUsedToBeVip", "url", r);
                                    let s = yield i.default.get(r, {
                                        params: {
                                            sessionid: n,
                                            userid: t,
                                            tags: "usedToBeDLVip",
                                            platform: "xlx"
                                        }, timeout: o
                                    });
                                    if (d.information("isUsedToBeVip res", s), 200 === s.status && c(s.data) && 1 === s.data.code && c(s.data.result)) {
                                        let t = Number(s.data.result.usedToBeDLVip);
                                        d.information("num", t), e = 1 === t
                                    }
                                } catch (e) {
                                    d.warning(e)
                                }
                                return e
                            })
                        }(), d.information("getIsUsedToBeVip", u), s = !1, t.emit("OnGetUsedToBeVip", u), e(u))
                    }))
                })
            }, e.isContinueMonthPayVip = function (e) {
                return r(this, void 0, void 0, function* () {
                    let t = !1;
                    try {
                        const n = yield a.client.callServerFunction("GetUserID"),
                            r = yield a.client.callServerFunction("GetSessionID"),
                            s = "http://soa.vip.xunlei.com/xlvip.common.mooseapi/querytags";
                        d.information("isContinueMonthPayVip", "url", s);
                        let l = yield i.default.get(s, {
                            params: {
                                sessionid: r,
                                userid: n,
                                tags: e ? "autoRenew" : "isSign",
                                platform: "xlx"
                            }, timeout: o
                        });
                        d.information("isContinueMonthPayVip res", l), 200 === l.status && c(l.data) && 1 === l.data.code && c(l.data.result) && (t = e ? 1 === Number(l.data.result.autoRenew) : 1 === Number(l.data.result.isSign))
                    } catch (e) {
                        d.warning(e)
                    }
                    return t
                })
            }, e.isNewUserWithoutGift = function () {
                return r(this, void 0, void 0, function* () {
                    let e = !1;
                    try {
                        const t = `userid=${yield a.client.callServerFunction("GetUserID")}; sessionid=${yield a.client.callServerFunction("GetSessionID")}`,
                            r = "http://msg.vip.xunlei.com/xlact/NewUser";
                        i.default.defaults.adapter = n(25);
                        let s = yield i.default.get(r, {headers: {Cookie: t}, timeout: o});
                        d.information("isNewUserWithout res", s), 200 === s.status && c(s.data) && 0 === s.data.result && c(s.data.data) && (e = 0 === Number(s.data.data.hasTaskPrize))
                    } catch (e) {
                        d.warning(e)
                    }
                    return e
                })
            }, e.getUserFund = function () {
                return r(this, void 0, void 0, function* () {
                    try {
                        const e = yield a.client.callServerFunction("GetUserID"),
                            t = yield a.client.callServerFunction("GetSessionID"),
                            n = "https://dy1-vip-ssl.xunlei.com/cashfund/Userfund?client=xds";
                        d.information("getUserFund", "url", n);
                        let r = "sessionid=" + t + ";userid=" + e,
                            s = yield i.default.get(n, {headers: {cookie: r}, timeout: o});
                        if (d.information("getUserFund res", s), 200 === s.status && c(s.data) && 0 === s.data.result && c(s.data.data)) {
                            let e = s.data.data;
                            if (c(e.fund)) return e.fund
                        }
                    } catch (e) {
                        d.warning(e)
                    }
                    return null
                })
            }
        }(t.VipUserInfoNS || (t.VipUserInfoNS = {}))
    }, 643: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(38), o = n(729), a = n(1), s = n(11), l = n(4), c = n(17), d = n(36), u = n(14), f = n(642);
        let {isDef: p, isUndef: h} = s.ThunderUtil;
        const m = a.default.getLogger("personalInfo:config-manager"), v = o.VipConfigDefineNS.cacheDir,
            g = `${v}/vip-config.json`;
        t.default = new class {
            constructor() {
                this.isGettingConfig = !1, this.eventEmitter = new u.EventEmitter, this.init().catch()
            }

            init() {
                return r(this, void 0, void 0, function* () {
                    this.eventEmitter.setMaxListeners(0), yield c.FileSystemAWNS.mkdirAW(v)
                })
            }

            getUnloginConfig() {
                return r(this, void 0, void 0, function* () {
                    let e = null;
                    do {
                        let t = yield this.getConfigs();
                        if (h(t) || h(t.unlogin_new)) break;
                        let n = (yield this.calculatePeeridMatchNum()).toString(16);
                        for (let r in t.unlogin_new) {
                            let i = t.unlogin_new[r];
                            if (p(i) && i instanceof Object && i.peerid === n) {
                                e = i;
                                break
                            }
                        }
                    } while (0);
                    return e
                })
            }

            getLoginConfig() {
                return r(this, void 0, void 0, function* () {
                    let e = null, t = null, n = null, r = yield this.getConfigs();
                    p(r) && (e = r.loginCommon, t = r.btn, n = r.text), t = t || {}, n = n || {};
                    let i = "", o = "", a = null;
                    try {
                        a = JSON.parse(yield l.client.callServerFunction("GetUserInfo", 2))
                    } catch (e) {
                        m.warning(e)
                    }
                    if (p(a)) {
                        let e = Number(a.vasType).valueOf();
                        Boolean("1" === a.isVip) ? (o = (yield f.VipUserInfoNS.isContinueMonthPayVip()) ? "autodeductvip" : 5 === e ? "notautodeductsuper" : 3 === e ? "notautodeductbaijin" : "notautodeductnormal", i = "normalvip", 5 === e ? i = "supervip" : 3 === e && (i = "baijinvip")) : (yield f.VipUserInfoNS.getIsUsedToBeVip()) ? (o = "usedtobevip", i = "expiredvip") : (o = "neverusedvip", n.newuser ? i = "newuser" : (yield f.VipUserInfoNS.isNewUserWithoutGift()) && (i = "neverusedvipnogift"))
                    }
                    let s = t[o];
                    s && (s.type = o);
                    let c = n[i];
                    return c && (c.type = i), {common: e, btn: s, text: c}
                })
            }

            getConfigs() {
                return r(this, void 0, void 0, function* () {
                    let e = null;
                    return e = p(this.configs) ? this.configs : new Promise(e => r(this, void 0, void 0, function* () {
                        this.isGettingConfig ? this.eventEmitter.once("OnGetConfigs", t => {
                            e(t)
                        }) : (this.isGettingConfig = !0, this.configs = yield this.readConfigs(), this.isGettingConfig = !1, this.eventEmitter.emit("OnGetConfigs", this.configs), e(this.configs))
                    }))
                })
            }

            readConfigs() {
                return r(this, void 0, void 0, function* () {
                    let e = null;
                    do {
                        try {
                            e = JSON.parse((yield c.FileSystemAWNS.readFileAW(g)).toString())
                        } catch (e) {
                            m.warning("解析本地配置信息失败")
                        }
                        if (p(e) && e.date === (new Date).toLocaleDateString()) break;
                        const t = "http://images.client.vip.xunlei.com/xlx/hover/hover.js";
                        m.information("readConfigs", "url", t);
                        try {
                            i.default.defaults.adapter = n(25);
                            let r = yield i.default.get(t, {timeout: 1e3});
                            m.information("getConfigs res", r), 200 === r.status && p(r.data) && r.data instanceof Object && ((e = r.data).date = (new Date).toLocaleDateString(), yield c.FileSystemAWNS.writeFileAW(g, JSON.stringify(e)))
                        } catch (e) {
                            m.warning(e)
                        }
                    } while (0);
                    return e
                })
            }

            calculatePeeridMatchNum() {
                return r(this, void 0, void 0, function* () {
                    let e = yield l.client.callServerFunction("GetValue", "PersonalInfo", "PeeridMatchNum", -1);
                    if (e >= 0 && e < 16) ; else {
                        do {
                            let t = yield l.client.callServerFunction("GetPeerID");
                            if (m.information("peerid", t), p(t) && t.length > 0) try {
                                const n = d.createHash("sha256");
                                n.update(t);
                                let r = n.digest("hex");
                                m.information("strHash", r), e = parseInt(r[r.length - 1], 16)
                            } catch (e) {
                                m.warning("err", e)
                            }
                            if (p(e) && e >= 0 && e < 16) break;
                            e = (new Date).getTime() % 16
                        } while (0);
                        yield l.client.callServerFunction("SetValue", "PersonalInfo", "PeeridMatchNum", e)
                    }
                    return e
                })
            }
        }
    }, 65: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(79), i = n(66);
        !function (e) {
            e.getWindowPreference = function (e = !1) {
                let t = i.default(), n = {};
                return t && t.colors && "string" == typeof t.colors.colorPrimaryControl1 && (n.hoverBackgroundColor = e ? parseInt(r.ColorUtilNS.rgbaStringToHexWith0xBegin(t.colors.colorPrimaryControl1), 16) : r.ColorUtilNS.rgbaStringToHexWith0xBegin(t.colors.colorPrimaryControl1)), n
            }
        }(t.WindowPreferenceNS || (t.WindowPreferenceNS = {}))
    }, 66: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(3), o = n(1), a = n(4), s = o.default.getLogger("GetSkinInfo");
        let l;
        (function () {
            return r(this, void 0, void 0, function* () {
                "renderer" === process.type ? (s.information("renderer process"), a.client.callServerFunction("GetSkinInfo").then(e => {
                    l = e, s.information("send OnChangeSkin", e)
                }).catch(e => {
                    s.warning(e)
                }), a.client.attachServerEvent("OnChangeSkin", (e, t) => {
                    l = t, s.information("send OnChangeSkin", t)
                })) : "browser" === process.type && (s.information("main process"), i.ipcMain.on("OnChangeSkin", (e, t) => {
                    s.information("OnChangeSkin", t), l = t
                }))
            })
        })().catch(e => {
            s.information(e)
        }), t.default = function () {
            return l
        }
    }, 7: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(1).default.getLogger("async-remote-call"), o = n(39), a = n(14), s = n(6);
        t.asyncRemoteCall = new class extends a.EventEmitter {
            constructor() {
                super(), this.mapObj = new Map, this.mapObjIniting = new Map, "renderer" !== process.type && i.warning('can not import "renderer-process-call" module in non-renderer process', process.type)
            }

            getAppName() {
                return r(this, void 0, void 0, function* () {
                    if (void 0 === this.appName) {
                        let e = yield this.getApp();
                        this.appName = yield e.getName()
                    }
                    return this.appName
                })
            }

            getAppVersion() {
                return r(this, void 0, void 0, function* () {
                    if (void 0 === this.appVersion) {
                        let e = yield this.getApp();
                        this.appVersion = yield e.getVersion()
                    }
                    return this.appVersion
                })
            }

            getProcess() {
                return r(this, void 0, void 0, function* () {
                    return o.global.process.__resolve()
                })
            }

            getIpcMain() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("ipcMain")
                })
            }

            getDialog() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("dialog")
                })
            }

            getApp() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("app")
                })
            }

            getShell() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("shell")
                })
            }

            getMenu() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("Menu")
                })
            }

            getScreen() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("screen")
                })
            }

            getBrowserWindow() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("BrowserWindow")
                })
            }

            getWebContents() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("webContents")
                })
            }

            getGlobalShortcut() {
                return r(this, void 0, void 0, function* () {
                    return this.getCurrentObject("globalShortcut")
                })
            }

            getCurrentWebContents() {
                return r(this, void 0, void 0, function* () {
                    let e = this.mapObj.get("currentWebContents");
                    return void 0 === e && (this.mapObjIniting.get("currentWebContents") ? e = yield new Promise(e => r(this, void 0, void 0, function* () {
                        this.on("OnInitCurrentWebContents", t => {
                            e(t)
                        })
                    })) : (this.mapObjIniting.set("currentWebContents", !0), e = yield o.getCurrentWebContents().__resolve(), this.mapObjIniting.set("currentWebContents", !1), this.emit("OnInitCurrentWebContents", e), this.listeners("OnInitCurrentWebContents").forEach(e => {
                        this.removeListener("OnInitCurrentWebContents", e)
                    })), this.mapObj.set("currentWebContents", e)), e
                })
            }

            getCurrentWindow() {
                return r(this, void 0, void 0, function* () {
                    let e = this.mapObj.get("currentWindow");
                    return void 0 === e && (this.mapObjIniting.get("currentWindow") ? e = yield new Promise(e => r(this, void 0, void 0, function* () {
                        this.on("OnInitCurrentWindow", t => {
                            e(t)
                        })
                    })) : (this.mapObjIniting.set("currentWindow", !0), e = yield o.getCurrentWindow().__resolve(), this.mapObjIniting.set("currentWindow", !1), this.emit("OnInitCurrentWindow", e), this.listeners("OnInitCurrentWindow").forEach(e => {
                        this.removeListener("OnInitCurrentWindow", e)
                    })), this.mapObj.set("currentWindow", e)), e
                })
            }

            getCurrentObject(e) {
                return r(this, void 0, void 0, function* () {
                    let t = this.mapObj.get(e);
                    return s.isNullOrUndefined(t) && (this.mapObjIniting.get(e) ? t = yield new Promise(t => r(this, void 0, void 0, function* () {
                        this.on(e, e => {
                            t(e)
                        })
                    })) : (this.mapObjIniting.set(e, !0), t = yield o.electron[e].__resolve(), this.mapObjIniting.set(e, !1), this.emit(e, t), this.listeners(e).forEach(t => {
                        this.removeListener(e, t)
                    })), this.mapObj.set(e, t)), t
                })
            }
        }
    }, 71: function (e, t, n) {
        "use strict";
        e.exports = function (e, t) {
            return function () {
                for (var n = new Array(arguments.length), r = 0; r < n.length; r++) n[r] = arguments[r];
                return e.apply(t, n)
            }
        }
    }, 72: function (e, t, n) {
        "use strict";
        var r = n(61);
        e.exports = function (e, t, n) {
            var i = n.config.validateStatus;
            n.status && i && !i(n.status) ? t(r("Request failed with status code " + n.status, n.config, null, n.request, n)) : e(n)
        }
    }, 724: function (e, t, n) {
        n(45), e.exports = n(725)
    }, 725: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(34);
        r.CommonIPCRenderer.rendererCommunicator.initialize("personalInfoRendererContext"), r.CommonIPCRenderer.rendererCommunicator.connect(), n(4).client.start({name: "personalInfoRendererContext"});
        const i = n(48), o = n(37);
        n(58), n(80);
        const a = n(59), s = n(726);
        n(57);
        const l = n(1).default.getLogger("PersonalInfoRenderer");
        i.PerformanceMonitorStatNS.init("personal-info-renderer"), a.ThunderToolsNS.enableDragOpenFile(), a.ThunderToolsNS.enableDevTools().catch(e => {
            l.warning(e)
        }), o.default.config.ignoredElements = ["webview"], new o.default({
            components: {PersonalInfo: s.default},
            render: e => e("personal-info")
        }).$mount("#app")
    }, 726: function (e, t, n) {
        "use strict";
        n.r(t);
        var r = n(532), i = n(276);
        for (var o in i) "default" !== o && function (e) {
            n.d(t, e, function () {
                return i[e]
            })
        }(o);
        n(735), n(524);
        var a = n(0), s = Object(a.a)(i.default, r.a, r.b, !1, null, null, null);
        s.options.__file = "src\\personal-info-renderer\\app.vue", t.default = s.exports
    }, 727: function (e, t, n) {
        "use strict";
        n.r(t);
        var r = n(543), i = n(278);
        for (var o in i) "default" !== o && function (e) {
            n.d(t, e, function () {
                return i[e]
            })
        }(o);
        var a = n(0), s = Object(a.a)(i.default, r.a, r.b, !1, null, null, null);
        s.options.__file = "src\\personal-info-renderer\\views\\personal-info-login.vue", t.default = s.exports
    }, 728: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        const r = n(11);
        let {isDef: i} = r.ThunderUtil;
        !function (e) {
            const t = [0, 600, 1800, 3600, 6e3, 10800, 25200, 42e3, 65e3, 1e5];
            e.getMaxVipLevel = function () {
                return t.length
            }, e.getVipGrowRange = function (e) {
                let n = void 0;
                for (let r in t) if (t[r] > e) {
                    n = Number(r);
                    break
                }
                let r = null;
                return i(n) && n > 0 && (r = [t[n - 1], t[n]]), r
            }
        }(t.VipGrowNS || (t.VipGrowNS = {}))
    }, 729: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), function (e) {
            e.cacheDir = `${__profilesDir}/PersonalInfo`
        }(t.VipConfigDefineNS || (t.VipConfigDefineNS = {}))
    }, 73: function (e, t, n) {
        "use strict";
        e.exports = function (e, t, n, r, i) {
            return e.config = t, n && (e.code = n), e.request = r, e.response = i, e
        }
    }, 730: function (e, t, n) {
        var r;
        r = function () {
            return function (e) {
                var t = {};

                function n(r) {
                    if (t[r]) return t[r].exports;
                    var i = t[r] = {i: r, l: !1, exports: {}};
                    return e[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports
                }

                return n.m = e, n.c = t, n.i = function (e) {
                    return e
                }, n.d = function (e, t, r) {
                    n.o(e, t) || Object.defineProperty(e, t, {configurable: !1, enumerable: !0, get: r})
                }, n.n = function (e) {
                    var t = e && e.__esModule ? function () {
                        return e.default
                    } : function () {
                        return e
                    };
                    return n.d(t, "a", t), t
                }, n.o = function (e, t) {
                    return Object.prototype.hasOwnProperty.call(e, t)
                }, n.p = "", n(n.s = 3)
            }([function (e, t, n) {
                "use strict";
                t.a = function () {
                    var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], t = "", n = "";
                    if (!e || 0 === e.length) return {isVip: !1};
                    var r = e.filter(function (e) {
                        return e && 2 === (e.vasId || e.vasID)
                    })[0];
                    if (n = r.vIPLevel || r.VIPLevel || 0, r) {
                        var i = {2: "", 3: "p", 5: "s"}[r.vasType] || "";
                        return t = "vip-icon-" + i + "vip" + n, {
                            isVip: "1" === r.isVIP,
                            isStop: "2" === r.isVIP,
                            isYear: "1" === r.isYear,
                            type: r.vasType,
                            level: n,
                            vipClass: t
                        }
                    }
                    return {isVip: !1}
                }
            }, function (e, t, n) {
                "use strict";
                var r = n(4), i = n.n(r);
                i.a.install = function (e) {
                    e.component(i.a.name, i.a)
                }, t.a = i.a
            }, function (e, t, n) {
                "use strict";
                Object.defineProperty(t, "__esModule", {value: !0});
                var r = n(0);
                t.default = {
                    name: "vip-icon",
                    props: {
                        vipData: {type: Array, required: !0},
                        size: {type: String, default: "normal"},
                        disabled: {type: Boolean, default: !1}
                    },
                    computed: {
                        vipInfo: function () {
                            return n.i(r.a)(this.vipData)
                        }, vipClass: function () {
                            var e = this.vipInfo.vipClass;
                            return "small" === this.size && (e += " is-small"), (this.vipInfo.isStop || "0" === this.vipInfo.level || this.disabled) && (e += " is-disabled"), e
                        }
                    }
                }
            }, function (e, t, n) {
                "use strict";
                Object.defineProperty(t, "__esModule", {value: !0});
                var r = n(1), i = n(0);
                n.d(t, "vipInfo", function () {
                    return i.a
                });
                /**
                 * vip
                 * (c) 2018 shijianan
                 * @license MIT
                 */
                var o = {
                    install: function (e, t) {
                        e.use(r.a), e.prototype.$vipInfo = function (e) {
                            return n.i(i.a)(e)
                        }
                    }
                };
                t.default = o
            }, function (e, t, n) {
                var r = n(5)(n(2), n(6), null, null, null);
                r.options.__file = "/Users/nancy/Desktop/work/@xunlei/vip/src/vip-icon/VipIcon.vue", r.esModule && Object.keys(r.esModule).some(function (e) {
                    return "default" !== e && "__" !== e.substr(0, 2)
                }) && console.error("named exports are not supported in *.vue files."), r.options.functional && console.error("[vue-loader] VipIcon.vue: functional components are not supported with templates, they should use render functions."), e.exports = r.exports
            }, function (e, t) {
                e.exports = function (e, t, n, r, i) {
                    var o, a = e = e || {}, s = typeof e.default;
                    "object" !== s && "function" !== s || (o = e, a = e.default);
                    var l, c = "function" == typeof a ? a.options : a;
                    if (t && (c.render = t.render, c.staticRenderFns = t.staticRenderFns), r && (c._scopeId = r), i ? (l = function (e) {
                        (e = e || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || "undefined" == typeof __VUE_SSR_CONTEXT__ || (e = __VUE_SSR_CONTEXT__), n && n.call(this, e), e && e._registeredComponents && e._registeredComponents.add(i)
                    }, c._ssrRegister = l) : n && (l = n), l) {
                        var d = c.functional, u = d ? c.render : c.beforeCreate;
                        d ? c.render = function (e, t) {
                            return l.call(t), u(e, t)
                        } : c.beforeCreate = u ? [].concat(u, l) : [l]
                    }
                    return {esModule: o, exports: a, options: c}
                }
            }, function (e, t, n) {
                e.exports = {
                    render: function () {
                        var e = this.$createElement;
                        return (this._self._c || e)("i", {class: this.vipClass})
                    }, staticRenderFns: []
                }, e.exports.render._withStripped = !0
            }])
        }, e.exports = r()
    }, 731: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(4), o = n(1), a = n(14), s = o.default.getLogger("SyncMsgHelper");
        !function (e) {
            let t;
            !function (e) {
                e[e.Connecting = 0] = "Connecting", e[e.Connected = 1] = "Connected", e[e.Close = 2] = "Close", e[e.Error = 3] = "Error"
            }(t = e.SyncMsgState || (e.SyncMsgState = {}));
            let n = t.Close, o = null, l = null, c = void 0;

            function d() {
                return r(this, void 0, void 0, function* () {
                    let e = yield i.client.isRemoteClientExist("User");
                    return s.information("checkSyncMsg", e), e[0]
                })
            }

            function u() {
                return r(this, void 0, void 0, function* () {
                    let e = yield i.client.callRemoteClientFunction("User", "SyncIsConnected");
                    return s.information("syncIsConnected", e), e[0]
                })
            }

            e.init = function () {
                return r(this, void 0, void 0, function* () {
                    if (o || (o = new a.EventEmitter), c = i.client.attachServerEvent("SyncEvent", (e, i) => r(this, void 0, void 0, function* () {
                        let r = null;
                        try {
                            r = JSON.parse(i)
                        } catch (e) {
                            s.warning("attachSyncEvent SyncEvent error", e)
                        }
                        if (s.information("attachSyncEvent SyncEvent", e, r), r) {
                            let e = n;
                            "connect" === r.subject ? e = t.Connected : "reconnect" === r.subject ? e = t.Connecting : "failed" === r.subject && (e = t.Close), e !== n && (n = e, o.emit("SyncMsgStateChange", n, r))
                        }
                    })), yield d()) {
                        let e = yield i.client.callServerFunction("GetSyncMsgState");
                        s.information("state", e);
                        let r = n;
                        switch (e) {
                            case t.Connected:
                            case t.Connecting:
                            case t.Close:
                            case t.Error:
                                r = e
                        }
                        r !== n && (n = r, o.emit("SyncMsgStateChange", n, null))
                    }
                    l = setInterval(() => r(this, void 0, void 0, function* () {
                        let e = yield u(), r = n;
                        e ? r = t.Connected : n !== t.Connecting && (r = t.Close), r !== n && (n = r, o.emit("SyncMsgStateChange", n, null))
                    }), 5e3)
                })
            }, e.uninit = function () {
                o && o.removeAllListeners(), c && (i.client.detachServerEvent("SyncEvent", c), c = void 0), l && (clearInterval(l), l = null)
            }, e.checkSyncMsg = d, e.getSyncMsgState = function () {
                return n
            }, e.syncIsConnected = u, e.attachSyncMsgStateChangeEvent = function (e) {
                return o || (o = new a.EventEmitter), o.addListener("SyncMsgStateChange", e), e
            }, e.detachSyncMsgStateChangeEvent = function (e) {
                o && o.removeListener("SyncMsgStateChange", e)
            }
        }(t.SyncMsgHelperNS || (t.SyncMsgHelperNS = {}))
    }, 732: function (e, t, n) {
        "use strict";
        var r = this && this.__awaiter || function (e, t, n, r) {
            return new (n || (n = Promise))(function (i, o) {
                function a(e) {
                    try {
                        l(r.next(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function s(e) {
                    try {
                        l(r.throw(e))
                    } catch (e) {
                        o(e)
                    }
                }

                function l(e) {
                    e.done ? i(e.value) : new n(function (t) {
                        t(e.value)
                    }).then(a, s)
                }

                l((r = r.apply(e, t || [])).next())
            })
        };
        Object.defineProperty(t, "__esModule", {value: !0});
        const i = n(4), o = n(41), a = n(1), s = n(38), l = n(138), c = a.default.getLogger("vip-label-config");
        !function (e) {
            let t = void 0, n = void 0, a = new Map;

            function d() {
                return r(this, void 0, void 0, function* () {
                    if (!t) {
                        let e = yield i.client.callServerFunction("GetThunderVersion"), n = e.lastIndexOf(".");
                        t = e.slice(0, n)
                    }
                    return t
                })
            }

            e.getConfig = function (e) {
                return r(this, void 0, void 0, function* () {
                    let t = a.get(e);
                    return t || (t = yield function (e) {
                        return r(this, void 0, void 0, function* () {
                            let t = yield d(), o = yield function () {
                                    return r(this, void 0, void 0, function* () {
                                        if (!n) {
                                            let e = 0, t = yield d(), r = t.split(".");
                                            if (r && 3 === r.length) {
                                                let t = Number(r[0]).valueOf(), n = Number(r[1]).valueOf(),
                                                    i = Number(r[2]).valueOf(), o = 128;
                                                e = o * Math.pow(2, 24) + t * Math.pow(2, 16) + n * Math.pow(2, 8) + i
                                            }
                                            n = e
                                        }
                                        return n
                                    })
                                }(), a = e, l = yield i.client.callServerFunction("GetPeerID"),
                                u = yield i.client.callServerFunction("GetTpPeerId"), f = "",
                                p = yield i.client.callServerFunction("GetUserID");
                            if ("0" !== p) {
                                let e = yield i.client.callServerFunction("GetSessionID");
                                f = `http://advertpay.vip.xunlei.com/xl11/advertisement?iver=${o}&over=${t}&userid=${p}&sessionid=${e}&scene=${a}&deviceid=${l}&cpeerid=${u}&timestamp=${Date.now()}`
                            } else f = `http://advertpay.vip.xunlei.com/xl11/advertisement?iver=${o}&over=${t}&scene=${a}&deviceid=${l}&cpeerid=${u}&timestamp=${Date.now()}`;
                            c.information(`geturl=${f}`);
                            let h = yield function (e) {
                                return r(this, void 0, void 0, function* () {
                                    let t = new Promise(t => {
                                        s.default.get(e, {timeout: 1e4}).then(e => {
                                            let n = null;
                                            c.information("response vipData:", e), null !== e && 200 === e.status && null !== e.data && 0 === e.data.result && e.data.data && (n = e.data.data), t(n)
                                        }).catch(e => {
                                            c.warning("err:", e), t(null)
                                        })
                                    });
                                    return t
                                })
                            }(f);
                            return c.information("key", e, "configdata", h), h
                        })
                    }(e), a.set(e, t)), t
                })
            }, function () {
                o.NativeCallModule.nativeCall.AttachNativeEvent("onUserInfoChange", (e, t) => r(this, void 0, void 0, function* () {
                    if ("vipinfo" === e) {
                        c.information("onUserInfoChange");
                        let e = !1;
                        try {
                            let t = JSON.parse(yield i.client.callServerFunction("GetUserInfo", 2));
                            t && (e = Boolean(t.isVip))
                        } catch (e) {
                            c.warning(e)
                        }
                        e && a.clear()
                    }
                })), o.NativeCallModule.nativeCall.AttachNativeEvent("onLoginStatusChange", (e, t) => {
                    c.information("onLoginStatusChange", "newStatus", t), "unlogin" === t || "offline" === t ? a.clear() : "online" === t && a.clear()
                })
            }(), e.getConfigUrl = function (e, t, n, r) {
                if (n) {
                    let r = l.ParseUrlFileNameNS.parseDynamicUrlPath(n.toLowerCase()),
                        i = l.ParseUrlFileNameNS.parseDynamicUrlArgs(r.args), o = Object.getOwnPropertyNames(i), a = "";
                    for (let n = 0; n < o.length; ++n) {
                        let r = o[n];
                        a += "referfrom" === r && e ? `&${r}=${e}` : "aidfrom" === r && t ? `&${r}=${t}` : `&${r}=${i[r]}`
                    }
                    return o.indexOf("referfrom") < 0 && (a += `&referfrom=${e}`), o.indexOf("aidfrom") < 0 && (a += `&aidfrom=${t}`), `${r.pageFileName}?${a.substr(1)}`
                }
                return r ? `${r}?referfrom=${e}&aidfrom${t}` : ""
            }
        }(t.VipLableConfigNS || (t.VipLableConfigNS = {}))
    }, 733: function (e, t, n) {
        "use strict";
        n.r(t);
        var r = n(544), i = n(280);
        for (var o in i) "default" !== o && function (e) {
            n.d(t, e, function () {
                return i[e]
            })
        }(o);
        var a = n(0), s = Object(a.a)(i.default, r.a, r.b, !1, null, null, null);
        s.options.__file = "src\\personal-info-renderer\\views\\personal-info-unlogin.vue", t.default = s.exports
    }, 734: function (e, t) {
        e.exports = "data:image/png;base64, "
    }, 735: function (e, t, n) {
        "use strict";
        var r = n(1036);
        n.n(r).a
    }, 74: function (e, t, n) {
        "use strict";
        var r = n(10);

        function i(e) {
            return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]")
        }

        e.exports = function (e, t, n) {
            if (!t) return e;
            var o;
            if (n) o = n(t); else if (r.isURLSearchParams(t)) o = t.toString(); else {
                var a = [];
                r.forEach(t, function (e, t) {
                    null !== e && void 0 !== e && (r.isArray(e) ? t += "[]" : e = [e], r.forEach(e, function (e) {
                        r.isDate(e) ? e = e.toISOString() : r.isObject(e) && (e = JSON.stringify(e)), a.push(i(t) + "=" + i(e))
                    }))
                }), o = a.join("&")
            }
            return o && (e += (-1 === e.indexOf("?") ? "?" : "&") + o), e
        }
    }, 75: function (e, t, n) {
        var r = n(35), i = n(56), o = n(62), a = n(98), s = n(76).Writable, l = n(113)("follow-redirects"),
            c = {GET: !0, HEAD: !0, OPTIONS: !0, TRACE: !0}, d = Object.create(null);

        function u(e, t) {
            s.call(this), e.headers = e.headers || {}, this._options = e, this._redirectCount = 0, this._requestBodyLength = 0, this._requestBodyBuffers = [], t && this.on("response", t);
            var n = this;
            if (this._onNativeResponse = function (e) {
                n._processResponse(e)
            }, !e.pathname && e.path) {
                var r = e.path.indexOf("?");
                r < 0 ? e.pathname = e.path : (e.pathname = e.path.substring(0, r), e.search = e.path.substring(r))
            }
            this._performRequest()
        }

        function f(e) {
            var t = {maxRedirects: 21, maxBodyLength: 10485760}, n = {};
            return Object.keys(e).forEach(function (i) {
                var o = i + ":", s = n[o] = e[i], c = t[i] = Object.create(s);
                c.request = function (e, i) {
                    return "string" == typeof e ? (e = r.parse(e)).maxRedirects = t.maxRedirects : e = Object.assign({
                        protocol: o,
                        maxRedirects: t.maxRedirects,
                        maxBodyLength: t.maxBodyLength
                    }, e), e.nativeProtocols = n, a.equal(e.protocol, o, "protocol mismatch"), l("options", e), new u(e, i)
                }, c.get = function (e, t) {
                    var n = c.request(e, t);
                    return n.end(), n
                }
            }), t
        }

        ["abort", "aborted", "error", "socket", "timeout"].forEach(function (e) {
            d[e] = function (t) {
                this._redirectable.emit(e, t)
            }
        }), u.prototype = Object.create(s.prototype), u.prototype.write = function (e, t, n) {
            this._requestBodyLength + e.length <= this._options.maxBodyLength ? (this._requestBodyLength += e.length, this._requestBodyBuffers.push({
                data: e,
                encoding: t
            }), this._currentRequest.write(e, t, n)) : (this.emit("error", new Error("Request body larger than maxBodyLength limit")), this.abort())
        }, u.prototype.end = function (e, t, n) {
            var r = this._currentRequest;
            e ? this.write(e, t, function () {
                r.end(null, null, n)
            }) : r.end(null, null, n)
        }, u.prototype.setHeader = function (e, t) {
            this._options.headers[e] = t, this._currentRequest.setHeader(e, t)
        }, u.prototype.removeHeader = function (e) {
            delete this._options.headers[e], this._currentRequest.removeHeader(e)
        }, ["abort", "flushHeaders", "getHeader", "setNoDelay", "setSocketKeepAlive", "setTimeout"].forEach(function (e) {
            u.prototype[e] = function (t, n) {
                return this._currentRequest[e](t, n)
            }
        }), ["aborted", "connection", "socket"].forEach(function (e) {
            Object.defineProperty(u.prototype, e, {
                get: function () {
                    return this._currentRequest[e]
                }
            })
        }), u.prototype._performRequest = function () {
            var e = this._options.protocol, t = this._options.nativeProtocols[e];
            if (this._options.agents) {
                var n = e.substr(0, e.length - 1);
                this._options.agent = this._options.agents[n]
            }
            var i = this._currentRequest = t.request(this._options, this._onNativeResponse);
            for (var o in this._currentUrl = r.format(this._options), i._redirectable = this, d) o && i.on(o, d[o]);
            if (this._isRedirect) {
                var a = this._requestBodyBuffers;
                !function e() {
                    if (0 !== a.length) {
                        var t = a.pop();
                        i.write(t.data, t.encoding, e)
                    } else i.end()
                }()
            }
        }, u.prototype._processResponse = function (e) {
            var t = e.headers.location;
            if (t && !1 !== this._options.followRedirects && e.statusCode >= 300 && e.statusCode < 400) {
                if (++this._redirectCount > this._options.maxRedirects) return void this.emit("error", new Error("Max redirects exceeded."));
                var n, i = this._options.headers;
                if (307 !== e.statusCode && !(this._options.method in c)) for (n in this._options.method = "GET", this._requestBodyBuffers = [], i) /^content-/i.test(n) && delete i[n];
                if (!this._isRedirect) for (n in i) /^host$/i.test(n) && delete i[n];
                var o = r.resolve(this._currentUrl, t);
                l("redirecting to", o), Object.assign(this._options, r.parse(o)), this._isRedirect = !0, this._performRequest()
            } else e.responseUrl = this._currentUrl, this.emit("response", e), this._requestBodyBuffers = []
        }, e.exports = f({http: i, https: o}), e.exports.wrap = f
    }, 76: function (e, t) {
        e.exports = require("stream")
    }, 77: function (e, t, n) {
        "use strict";
        e.exports = function (e) {
            return !(!e || !e.__CANCEL__)
        }
    }, 78: function (e, t, n) {
        "use strict";

        function r(e) {
            this.message = e
        }

        r.prototype.toString = function () {
            return "Cancel" + (this.message ? ": " + this.message : "")
        }, r.prototype.__CANCEL__ = !0, e.exports = r
    }, 79: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), function (e) {
            function t(e) {
                let t = e.toString(16).toUpperCase();
                return t.length < 2 && (t = "0" + t), t
            }

            function n(e, n, r, i) {
                return "0x" + t(i) + t(e) + t(n) + t(r)
            }

            e.rgbaStringToHexWith0xBegin = function (e) {
                if (void 0 !== e) {
                    let t = e.split(",");
                    return n(parseInt(t[0] || "0", 10), parseInt(t[1] || "0", 10), parseInt(t[2] || "0", 10), parseInt(t[3] || "255", 10))
                }
            }, e.colorNumberToHex = t, e.rgbaToHexWith0xBegin = n
        }(t.ColorUtilNS || (t.ColorUtilNS = {}))
    }, 8: function (e, t) {
        e.exports = vendor_09264ad0ec2472c8ac23
    }, 80: function (e, t) {
        !function (e) {
            var t,
                n = '<svg><symbol id="td-icon-svg-file" viewBox="0 0 1204 1024"><path d="M180.705882 1024c-102.4 0-180.705882-78.305882-180.705882-180.705882V180.705882c0-102.4 78.305882-180.705882 180.705882-180.705882h240.941177c102.4 0 180.705882 78.305882 180.705882 180.705882h421.647059c102.4 0 180.705882 78.305882 180.705882 180.705883v481.882353c0 102.4-78.305882 180.705882-180.705882 180.705882H180.705882z" fill="#FFC25A" ></path><path d="M301.176471 361.411765h602.352941c66.258824 0 120.470588 54.211765 120.470588 120.470588v361.411765c0 66.258824-54.211765 120.470588-120.470588 120.470588H301.176471c-66.258824 0-120.470588-54.211765-120.470589-120.470588V481.882353c0-66.258824 54.211765-120.470588 120.470589-120.470588z" fill="#FFFFFF" ></path><path d="M180.705882 542.117647h843.294118c102.4 0 180.705882 78.305882 180.705882 180.705882v120.470589c0 102.4-78.305882 180.705882-180.705882 180.705882H180.705882c-102.4 0-180.705882-78.305882-180.705882-180.705882v-120.470589c0-102.4 78.305882-180.705882 180.705882-180.705882z" fill="#FFD68F" ></path></symbol></svg>',
                r = function (e, t) {
                    t.firstChild ? function (e, t) {
                        t.parentNode.insertBefore(e, t)
                    }(e, t.firstChild) : t.appendChild(e)
                };
            if ((t = document.getElementsByTagName("script"))[t.length - 1].getAttribute("data-injectcss") && !e.__iconfont__svg__cssinject__) {
                e.__iconfont__svg__cssinject__ = !0;
                try {
                    document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")
                } catch (e) {
                    console && console.log(e)
                }
            }
            !function (t) {
                if (document.addEventListener) if (~["complete", "loaded", "interactive"].indexOf(document.readyState)) setTimeout(t, 0); else {
                    var n = function () {
                        document.removeEventListener("DOMContentLoaded", n, !1), t()
                    };
                    document.addEventListener("DOMContentLoaded", n, !1)
                } else document.attachEvent && function (e, t) {
                    var n = e.document, r = !1, i = function () {
                        r || (r = !0, t())
                    }, o = function () {
                        try {
                            n.documentElement.doScroll("left")
                        } catch (e) {
                            return void setTimeout(o, 50)
                        }
                        i()
                    };
                    o(), n.onreadystatechange = function () {
                        "complete" == n.readyState && (n.onreadystatechange = null, i())
                    }
                }(e, t)
            }(function () {
                var e, t;
                (e = document.createElement("div")).innerHTML = n, n = null, (t = e.getElementsByTagName("svg")[0]) && (t.setAttribute("aria-hidden", "true"), t.style.position = "absolute", t.style.width = 0, t.style.height = 0, t.style.overflow = "hidden", r(t, document.body))
            })
        }(window)
    }, 9: function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), t.default = function (e) {
            return require(e)
        }
    }, 98: function (e, t) {
        e.exports = require("assert")
    }
});
/*! Thunder 11 BY LUOCHENZHIMU */
/*! Last updated on 2020/12/27 */
/*! https://www.luochenzhimu.com */