PageSourceSearch

https://havanaclubfoundation.com/wp-content/plugins/sport-plugin//assets/site/assets/js/common.min.js?v=2.42

js havanaclubfoundation.com collected 2026-10-06 21:02:04 UTC 117,077 bytes, 2,287 lines download raw bytes

1function convertTeamIDToSlug(e) {
2    if ("undefined" == typeof teamHelper || null === teamHelper || !teamHelper["T_" + e]) return e;
3    return `${teamHelper["T_" + e][1 + lang].toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, "")}-${e}`
4}
5
6function utTeam(e, t) {
7    return _databaseDomain + "/" + toThaiUri("team") + "/{0}/{1}".format(t ? toThaiUri("teamsche") : toThaiUri("summary"), e)
8}
9
10function utLea(e) {
11    return _databaseDomain + "/" + toThaiUri("leagueinfo") + "/{0}".format(e)
12}
13
14function changeGif(e) {
15    return e
16}
17
18function _$(e) {
19    return document.getElementById(e)
20}
21
22function _$$(e) {
23    return document.getElementsByName(e)
24}
25
26function writeCookie(e, t, o) {
27    if ("undefined" == typeof _appModule || "Ind" != _appModule && "Bola" != _appModule) {
28        var n = o;
29        null == n && (n = new Date((new Date).getTime() + 1314e6)), n = ";path=/;expires=" + n.toGMTString(), document.cookie = e + "=" + escape(t) + n
30    } else writeShareCookie(e, t, o)
31}
32
33function clearCookie(e) {
34    writeCookie(e, "", new Date)
35}
36
37function getDoMain() {
38    var e = location.href.split("/")[2].split(".");
39    return "www" === e[0] ? e.slice(1).join(".") : e.map(((t, o) => o === e.length - 1 ? t.split(":")[0] : t)).join(".")
40}
41
42function writeShareCookie(e, t, o) {
43    var n = o;
44    null == n && (n = new Date((new Date).getTime() + 1314e6)), n = ";path=/;expires=" + n.toGMTString() + ";domain=" + getDoMain(), document.cookie = e + "=" + escape(t) + n
45}
46
47function WriteTmpCookie(e, t) {
48    document.cookie = e + "=" + escape(t) + ";path=/;expires=-1"
49}
50
51function WriteSession(e, t) {
52    window.sessionStorage.setItem(e, t)
53}
54
55function GetSession(e) {
56    return window.sessionStorage.getItem(e)
57}
58
59function MM_findObj(e, t) {
60    var o, n, a;
61    for (t || (t = document), (o = e.indexOf("?")) > 0 && parent.frames.length && (t = parent.frames[e.substring(o + 1)].document, e = e.substring(0, o)), (a = t[e]) || !t.all || (a = t.all[e]), n = 0; !a && n < t.forms.length; n++) a = t.forms[n][e];
62    for (n = 0; !a && t.layers && n < t.layers.length; n++) a = MM_findObj(e, t.layers[n].document);
63    return !a && t.getElementById && (a = t.getElementById(e)), a
64}
65
66function MM_showHideLayers() {
67    var e, t, o, n = MM_showHideLayers.arguments;
68    for (e = 0; e < n.length - 2; e += 3) null != (o = MM_findObj(n[e])) && (t = n[e + 2], o.style && (o = o.style, t = "show" == t ? "visible" : "hide" == t ? "hidden" : t), o.visibility = t)
69}
70
71function getIENumber() {
72    var e = 0;
73    try {
74        return document.all && void 0 !== document.documentMode && (e = document.documentMode), e
75    } catch (e) {
76        return 0
77    }
78}
79
80function getNodeContent(e) {
81    try {
82        if (!e) return null;
83        var t = e.textContent;
84        return t || e.text
85    } catch (e) {
86        console.log("getNodeContent", e)
87    }
88}
89
90function ShowCHWindow(e) {
91    imagewidth = 460, imageheight = 55, x = 280, x = (screen.width - imagewidth) / 2, y = 1, oPopupBody = oPopup.document.body, oPopupBody.innerHTML = e, oPopupBody.style.cursor = "pointer", oPopupBody.title = "Hit to close", oPopupBody.onclick = dismisspopup, oPopupBody.oncontextmenu = dismisspopup, pop_TC = 40, pop()
92}
93
94function pop() {
95    try {
96        oPopup.show(x, y, imagewidth, imageheight), startani_A = setTimeout("pop()", 300), pop_TC < 0 && dismisspopup(), pop_TC -= 1
97    } catch (e) {
98    }
99}
100
101function dismisspopup() {
102    clearTimeout(startani_A), oPopup.hide()
103}
104
105function ShowCHWindow123(e) {
106    document.getElementById("div_goal").innerHTML = e, document.getElementById("div_goal").style.display = "", document.getElementById("div_goal").style.left = document.body.parentElement.offsetWidth / 2 - 230 + "px", goal = 20, window.clearTimeout(goalTime), showTime()
107}
108
109function showTime(e) {
110    if (1 == e && (goal = -1), goal < 0) return document.getElementById("div_goal").innerHTML = "", document.getElementById("div_goal").style.display = "none", void window.clearTimeout(goalTime);
111    goal -= 1, goalTime = window.setTimeout("showTime()", 1e3)
112}
113
114function convertIntToTimeText(e, o, n, a, i, r, s) {
115    var l, c = new Date(e, o, n, a, i, r);
116    t = ToLocalTime(c), l = "<span name='timeData' data-t='" + c + "' data-tf='14'>" + timeToText(ToLocalTime(c), 14) + "</span>", 1 == s ? l = "<span name='timeData' data-t='" + c + "' data-tf='6'>" + timeToText(ToLocalTime(c), 6) + "</span>" : 2 == s ? l = "<span name='timeData' data-t='" + c + "' data-tf='16'>" + timeToText(ToLocalTime(c), 16) + "</span>" : 3 == s ? l = "<span name='timeData' data-t='" + c + "' data-tf='19'>" + timeToText(ToLocalTime(c), 21) + "</span>" : 4 == s && (l = "<span name='timeData' data-t='" + c + "' data-tf='19'>" + timeToText(ToLocalTime(c), 19) + "</span>"), document.write(l)
117}
118
119function skipHtmlTagBoth(e) {
120    return null != e && (e = e.replace(/<.*>.*<\/.*>/gi, "")), e
121}
122
123function skipHtmlTag(e) {
124    return null != e && (e = e.replace(/<[^>]+>/g, "")), e
125}
126
127function isTouch() {
128    return /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) || /Android/i.test(navigator.userAgent)
129}
130
131function OpenMobile() {
132    CheckEmpty(_touchWebDomain) || ("Nir" == _appModule || "Pt" == _appModule || "World" == _appModule || "Kor" == _appModule ? window.open(_touchWebDomain + "?from=pc") : window.open(_touchWebDomain))
133}
134
135function OpenFreeApp() {
136    CheckEmpty(_freeAppDomain) || window.open(_freeAppDomain)
137}
138
139function OpenFbSclass(e) {
140    if (null == e || "" == e || 0 == e) return !1;
141    window.open(_databaseDomain + "/" + toThaiUri("football") + "/" + toThaiUri("leagueinfo-pop-up") + "/" + e)
142}
143
144function goFbInfoRank(e, t = "") {
145    if (null == (e = toThaiSlug(e))) return !1;
146    window.open(_databaseDomain + "/" + toThaiUri("football") + "/" + toThaiUri("leastanding") + "/" + e)
147}
148
149function goBkInfoRank(e) {
150    if (null == e) return !1;
151    window.open(_basketballWebDomain + toThaiUri("leastanding") + "/" + e)
152}
153
154function zXmlHttp() {
155}
156
157function GetLocalTime(e) {
158    var t = e.split(","), o = new Date(t[0], t[1], t[2], t[3], t[4], t[5]);
159    return new Date(Date.UTC(o.getFullYear(), o.getMonth(), o.getDate(), o.getHours(), o.getMinutes(), o.getSeconds()))
160}
161
162function formatDate(n, t) {
163    var u = "", r = n.split(","), i = new Date(r[0], eval(r[1]), r[2], r[3], r[4], r[5]);
164    i = new Date(Date.UTC(i.getFullYear(), i.getMonth(), i.getDate(), i.getHours(), i.getMinutes(), i.getSeconds())), u = timeToText(i, 1 == t ? 13 : 2 == t ? 18 : 3 == t ? 2 : 4 == t ? 4 : 6 == t ? 6 : 7 == t ? 7 : 20 == t ? 20 : 1), document.write(u)
165}
166
167function formatTime2(e) {
168    var t = e.getHours(), o = e.getMinutes();
169    return t < 10 && (t = "0" + t), o < 10 && (o = "0" + o), t + ":" + o
170}
171
172function convertTime(n, t) {
173    var i = 1 == t ? 1 : 0, n;
174    return -1 != n.indexOf(":") && (n = n.replace(/-/g, ",").replace(/\ /g, ",").replace(/:/g, ","), i = 1), n = n.split(","), n[1] = eval(n[1]) - i, new Date(n[0], n[1], n[2], n[3], n[4])
175}
176
177function ParseTime(e, t) {
178    var o = new Date(e.substr(0, 4), parseInt(e.substr(4, 2).replace(/0(\d)/, "$1")) - 1, e.substr(6, 2), e.substr(8, 2), e.substr(10, 2)),
179        n = new Date(o.getTime() + 36e5 * _timeZone - 288e5);
180    return t && (n = new Date(o.getTime() + 36e5 * _timeZone)), n || e
181}
182
183function dateToTime(e) {
184    return /(\d{2})-(\d{1,2})-(\d{1,2})([\s\d\:]*)/.test(e) ? (e = ("20" + e).replaceAll("-", "/"), timeToText(new Date(e), 2)) : e
185}
186
187function timeToText(e, t) {
188    var o = ["dd-MM-yyyy hh:mm:ss", "dd-MM-yyyy hh:mm:ss", "dd-MM-yyyy", "dd-MM", "hh:mm", "t2 dd", "dd-MM hh:mm", "dd-MM-yy", "yyyy", "dd.MM.yyyy", "t2 dd hh:mm", "hh:mm,ww,dd-MM-yyyy", "dd-MM-yyyy(w)", "dd-MM-yyyy hh:mm w", "dd-MM hh:mm", "dd-MM hh:mm", "dd-MM-yy", "dd-MM-yyyy", "dd-MM-yyyy hh:mm", "d-M-yyyy hh:mm", "yyyy.MM.dd hh:mm", "M-d hh:mm", "dd t2 yyyy,hh:mm", "dd/MM/yyyy hh:mm"];
189    return dateFtt(o[t = t || 0] || o[0], e)
190}
191
192function setTimeByFormat() {
193    for (var e, t, o = document.querySelectorAll("[data-time]"), n = 0; n < o.length; n++) t = getTimeByUtcStr((e = o[n]).getAttribute("data-time")), e.innerHTML = timeToText(t, e.getAttribute("data-fmt"))
194}
195
196function setPublishTime() {
197    $("[data-pubtime]").each((function () {
198        var e = this.getAttribute("data-pubtime");
199        this.innerHTML = publishTimeDesc(e, this.getAttribute("data-fmt"))
200    }))
201}
202
203function publishTimeDesc(e, t) {
204    var o, n, a;
205    o = e instanceof Date ? e : getTimeByUtcStr(e), n = -(new Date).getTimezoneOffset() / 60, null != (a = getCookie("Time_Zone")) && "" != a && (n = a);
206    var i = new Date,
207        r = new Date(i.getUTCFullYear(), i.getUTCMonth(), i.getUTCDate(), i.getUTCHours(), i.getUTCMinutes(), i.getUTCSeconds()),
208        s = new Date(r.getTime() + 36e5 * n), l = _locModel.T.T_JustBefore || "Just now",
209        c = _locModel.T.T_FM_HoursBefore || "{0} Hours Ago", d = _locModel.T.T_FM_MinutesBefore || "{0} Minutes Ago",
210        u = (s - o) / 36e5;
211    return u < .1 ? l : u < 1 ? d.replace("{0}", (60 * parseFloat(u).toFixed(2)).toFixed(0)) : u < 24 ? c.replace("{0}", parseInt(u)) : timeToText(o, t)
212}
213
214function getTimeByUtcStr(e) {
215    var t, o = splitTime(e), n = -(new Date).getTimezoneOffset() / 60, a = getCookie("Time_Zone");
216    return null != a && "" != a && (n = a), t = new Date(o[0], o[1], o[2], o[3], o[4], o[5]), t = new Date(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours(), t.getMinutes(), t.getSeconds()), new Date(t.getTime() + 36e5 * n)
217}
218
219function splitTime(n) {
220    var t = 0, n;
221    return -1 != n.indexOf(":") && (n = n.replace(/(-|\s|:)/g, ","), t = 1), n = n.split(","), n[1] = eval(n[1]) - t, n
222}
223
224function dateFtt(e, t) {
225    var o, n;
226    for (n in 0 == _hasInitDateFormat && (_months2 = "undefined" != typeof _locModel && void 0 !== _locModel.T.T_S_Jan ? [_locModel.T.T_S_Jan, _locModel.T.T_S_Feb, _locModel.T.T_S_Mar, _locModel.T.T_S_Apr, _locModel.T.T_S_May, _locModel.T.T_S_Jun, _locModel.T.T_S_Jul, _locModel.T.T_S_Aug, _locModel.T.T_S_Sep, _locModel.T.T_S_Oct, _locModel.T.T_S_Nov, _locModel.T.T_S_Dec] : ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], _weeks = "undefined" != typeof _locModel && void 0 !== _locModel.T.T_Sunday ? [_locModel.T.T_Sunday, _locModel.T.T_Monday, _locModel.T.T_Tuesday, _locModel.T.T_Wednesday, _locModel.T.T_Thursday, _locModel.T.T_Friday, _locModel.T.T_Saturday] : ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], _weeks2 = "undefined" != typeof _locModel && void 0 !== _locModel.T.T_S_Sunday ? [_locModel.T.T_S_Sunday, _locModel.T.T_S_Monday, _locModel.T.T_S_Tuesday, _locModel.T.T_S_Wednesday, _locModel.T.T_S_Thursday, _locModel.T.T_S_Friday, _locModel.T.T_S_Saturday] : ["Sun.", "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat."], _hasInitDateFormat = 1), o = {
227        "M+": t.getMonth() + 1,
228        "d+": t.getDate(),
229        "h+": t.getHours(),
230        "m+": t.getMinutes(),
231        "s+": t.getSeconds(),
232        t1: _months[t.getMonth()],
233        t2: _months2[t.getMonth()],
234        "w+": _weeks[t.getDay()]
235    }, /(y+)/.test(e) && (e = e.replace(RegExp.$1, (t.getFullYear() + "").substr(4 - RegExp.$1.length))), o) new RegExp("(" + n + ")").test(e) && (e = e.replace(RegExp.$1, 1 == RegExp.$1.length || /[tw]/.test(n) ? o[n] : ("00" + o[n]).substr(("" + o[n]).length)));
236    return e
237}
238
239function ToLocalTime(e) {
240    return e = "string" != typeof e ? new Date(e) : new Date(e.replace(/-/g, "/")), new Date(e.getTime() + 36e5 * _timeZone)
241}
242
243function ServiceTimeToLocal(e) {
244    return localT = new Date(1e3 * e - 288e5 + 36e5 * _timeZone)
245}
246
247function checkExlink(e) {
248    var t;
249    return -1 != e.indexOf("$") ? 3 == (t = e.split("$")).length ? t[0] + t[2] : t[0] : e
250}
251
252function showExplain(e, t, o) {
253    var n, a, i;
254    return t = t.replace(/<[^>].*?>/g, ""), o = o.replace(/<[^>].*?>/g, ""), t = t.replace("(N)", ""), o = o.replace("(N)", ""), n = "", "" != e && e.indexOf("|") > -1 && ("" != (a = e.split("|"))[1].split(";")[0] && (n += _locModel.T.T_KickOff + "(", "1" == a[1].split(";")[0] ? n += t + ")" : "2" == a[1].split(";")[0] && (n += o + ")")), "" != a[1].split(";")[1] && -1 == window.location.href.toLowerCase().indexOf("asianbookie") && -1 == window.location.href.toLowerCase().indexOf("free") && ("3" == a[1].split(";")[1] || "4" == a[1].split(";")[1] || "5" == a[1].split(";")[1]) && ("" != n && (n += "<br />"), n += "<a href=http://tv.nowgoal.com/ target=_blank><font class=blue>[Live TV]</font></a>"), "" != a[2].split(";")[0] && ("" != n && (n += "<br />"), n += _locModel.T.T_Corner + "(" + a[2].split(";")[0] + ") | ", n += _locModel.T.T_Corner + "(" + a[2].split(";
254")[1] + ")"), "" != (i = a[3].split(";"))[0] && ("" != n && (n += "<br />"), n += i[0].split(",")[0] + _locModel.T.T_S_Minutes + "[" + i[0].split(",")[1] + "], ", "" != i[1] && (n += _locModel.T.T_TwoRounds + "[" + i[1] + "], "), "" != i[2] && (n += "1" == i[2].split(",")[0] ? "120" + _locModel.T.T_S_Minutes + "[" + i[2].split(",")[1] + "], " : _locModel.T.T_ST_Ot + "[" + i[2].split(",")[1] + "], "), "" != i[3] && (n += _locModel.T.T_Explain_Pen + "[" + i[3] + "], "), "" != i[4] && ("1" == i[4] ? n += t + " " + _locModel.T.T_Win : "2" == i[4] && (n += o + " " + _locModel.T.T_Win)))), n
255}
256
257function getTopHeight() {
258    return document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body ? document.body.scrollTop : window.pageYOffset
259}
260
261function getPageHeight() {
262    var e = window.innerHeight;
263    return "number" != typeof pageWindth && (e = "CSS1Compat" == document.compatMode ? document.documentElement.clientHeight : document.body.clientHeight), e
264}
265
266function getElementPos(e, t) {
267    var o, n, a, i, r, s, l, c = navigator.userAgent.toLowerCase(), d = -1 != c.indexOf("opera"),
268        u = (c.indexOf("msie"), document.getElementById(e));
269    if (u) {
270        if (u && (t && (u = t), null === u.parentNode || "none" == u.style.display)) return !1;
271        if (u && (o = null, n = [], u.getBoundingClientRect)) return a = u.getBoundingClientRect(), i = Math.max(document.documentElement.scrollTop, document.body.scrollTop), r = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft), {
272            x: a.left + r,
273            y: a.top + i
274        };
275        if (document.getBoxObjectFor) a = document.getBoxObjectFor(u), s = u.style.borderLeftWidth ? parseInt(u.style.borderLeftWidth) : 0, l = u.style.borderTopWidth ? parseInt(u.style.borderTopWidth) : 0, n = [a.x - s, a.y - l]; else {
276            if (n = [u.offsetLeft, u.offsetTop], (o = u.offsetParent) != u) for (; o;) n[0] += o.offsetLeft, n[1] += o.offsetTop, o = o.offsetParent;
277            (-1 != c.indexOf("opera") || -1 != c.indexOf("safari") && "absolute" == u.style.position) && (n[0] -= document.body.offsetLeft, n[1] -= document.body.offsetTop)
278        }
279        for (o = u.parentNode ? u.parentNode : null;
279 o && "BODY" != o.tagName && "HTML" != o.tagName;) n[0] -= o.scrollLeft, n[1] -= o.scrollTop, o = o.parentNode ? o.parentNode : null;
280        return {x: n[0], y: n[1]}
281    }
282}
283
284function returnTop() {
285    var e = getTopHeight(),
286        t = (document.documentElement.scrollHeight || document.body.scrollHeight) - e - (document.documentElement.clientHeight || document.body.clientHeight),
287        o = document.getElementById("backTop"), n = document.getElementById("toBottom");
288    o && (o.style.display = e > 150 ? "" : "none", 0 == t && n ? n.style.display = "none" : n && (n.style.display = ""), setTimeout("returnTop();", 100))
289}
290
291function GetHandicapType() {
292    var e = 1, t = getCookie("Handicap_Type");
293    return t && (e = parseInt(t)), e
294}
295
296function initHandicap() {
297    (_handicapType = GetHandicapType()) <= _handicapTypeArray.length && (_handicapGive = _handicapTypeArray[_handicapType - 1].split("/")[0], _handicapAccept = _handicapTypeArray[_handicapType - 1].split("/")[1])
298}
299
300function Goal2GoalCn(e) {
301    if (!e && "0" != e || isNaN(e)) return "";
302    if (e > 14) return _handicapGive + Math.abs(e);
303    if (e < -14) return _handicapAccept + Math.abs(e);
304    var t = Math.abs(parseInt(4 * e));
305    return e >= 0 ? GoalCn[t].replace("{0}", _handicapGive) : GoalCn[t].replace("{0}", _handicapAccept)
306}
307
308function Goal2GoalCn2(e) {
309    return Goal2GoalCn(e)
310}
311
312function Goal2CnOU(e) {
313    return !e && "0" != e || isNaN(e) ? "" : e > 14 || e < -14 ? _ouTrimEndZero ? parseFloat(e).toString() : e : GoalCnOU[Math.abs(parseInt(4 * e))]
314}
315
316function Goal2Num(e) {
317    var t, o;
318    return void 0 === e ? "" : isNaN(e) && -1 != e.indexOf("/") ? (t = !1, e.indexOf("-") > -1 && (t = !0), o = (e = e.replace("+", "").replace("-", "")).split("/"), e = (parseFloat(o[0]) + parseFloat(o[1])) / 2, t ? 0 - e : e) : parseFloat(e)
319}
320
321function insertAfter(e, t) {
322    var o = t.parentNode;
323    o.lastChild == t ? o.appendChild(e) : o.insertBefore(e, t.nextSibling)
324}
325
326function IsMobile() {
327    return -1 != navigator.userAgent.toLowerCase().indexOf("android") || -1 != navigator.userAgent.toLowerCase().indexOf("iphone") || -1 != navigator.userAgent.toLowerCase().indexOf("mobile")
328}
329
330function showCountDefer() {
331    var e, t;
332    if (!_cnzzLoaded) {
333        for ((e = document.getElementById("allCnzz")).removeChild(e.firstChild), t = 0; t < _cnzzUrls.length; t++) addScript(e, _cnzzUrls[t]);
334        _cnzzLoaded = !0
335    }
336}
337
338function addScript(e, t) {
339    var o = document.createElement("script");
340    o.src = t, e.appendChild(o, "script")
341}
342
343function GetBasketState(e, t) {
344    var o;
345    switch (e) {
346        case-5:
347            o = _locModel.T.T_ST_Postp;
348            break;
349        case-4:
350            o = _locModel.T.T_ST_Cancel;
351            break;
352        case-3:
353            o = "<font class=blue>" + _locModel.T.T_ST_Interrupt + "</font>";
354            break;
355        case-2:
356            o = "<font class=blue>" + _locModel.T.T_ST_Pend + "</font>";
357            break;
358        case-1:
359            o = "<strong class=red>" + _locModel.T.T_ST_Finish + "</strong>";
360            break;
361        case 0:
362            o = "&nbsp;";
363            break;
364        case 1:
365            o = _locModel.T.T_ST_Qtr1;
366            break;
367        case 2:
368            o = _locModel.T.T_ST_Qtr2;
369            break;
370        case 3:
371            o = 2 == t ? _locModel.T.T_ST_Qtr1 : _locModel.T.T_ST_Qtr3;
372            break;
373        case 4:
374            o = _locModel.T.T_ST_Qtr4;
375            break;
376        case 5:
377        case 6:
378        case 7:
379            o = _locModel.T.T_ST_Ot;
380            break;
381        case 50:
382            o = _locModel.T.T_ST_Halftime
383    }
384    return o
385}
386
387function OpenBkSclass(e) {
388    if (null == e || "" == e || 0 == e) return !1;
389    window.open(`${_databaseDomain}/${toThaiUri("basketball")}/${toThaiUri("leagueinfo")}/${e}`)
390}
391
392function getQueryVariable(e) {
393    for (var t, o = window.location.search.substring(1).split("&"), n = 0; n < o.length; n++) if ((t = o[n].split("="))[0] == e) return t[1];
394    return !1
395}
396
397function HashMap() {
398    var e = 0, t = {};
399    this.isEmpty = function () {
400        return 0 == e
401    }, this.containsKey = function (e) {
402        return e in t
403    }, this.containsValue = function (e) {
404        for (var o in t) if (t[o] == e) return !0;
405        return !1
406    }, this.put = function (o, n) {
407        this.containsKey(o) || e++, t[o] = n
408    }, this.get = function (e) {
409        return this.containsKey(e) ? t[e] : null
410    }, this.remove = function (o) {
411        this.containsKey(o) && delete t[o] && e--
412    }, this.values = function () {
413        var e = [];
414        for (var o in t) e.push(t[o]);
415        return e
416    }, this.keySet = function () {
417        var e = [];
418        for (var o in t) e.push(o);
419        return e
420    }, this.size = function () {
421        return e
422    }, this.clear = function () {
423        e = 0, t = {}
424    }
425}
426
427function MonitorError() {
428    var e, t;
429    "debug" == getQueryVariable("mode") && (e = getQueryVariable("report"), window.onerror = function (t) {
430        1 == e && alert("运行异常" + t)
431    }, window.addEventListener("error", (function (t) {
432        var o = t.target.src || t.target.href;
433        o && 1 == e && alert("资源加载异常:" + o)
434    }), !0), t = 0, 0, window.addEventListener("ajaxReadyStateChange", (function (o) {
435        var n = o.detail, a = n.status, i = n.readyState;
436        1 === i && (t = (new Date).getTime()), 4 === i && (new Date).getTime() - t, 4 === i && (200 === a || 1 == e && alert("异常接口:" + n.responseURL))
437    }
437)))
438}
439
440function addLoadEvent(e) {
441    var t = window.onload;
442    window.onload = "function" != typeof onload ? e : function () {
443        t(), e()
444    }
445}
446
447function NoDataHtml(e) {
448    return 2 == e ? "<div class='DataTips'>" + _locModel.T.T_Tip_NoMatch + "</div>" : "<div class='DataTips'>" + _locModel.T.T_Tip_NoData + "</div>"
449}
450
451function LoadDark() {
452    var e = null == getCookie("dark_mode") ? dark_mode : getCookie("dark_mode");
453    null != GetSession("dark_mode") && "" != GetSession("dark_mode") && (e = GetSession("dark_mode")), document.getElementsByTagName("body").length > 0 ? null != e && 1 == e ? (document.getElementsByTagName("body")[0].classList.add("dark"), null != document.getElementById("flash") && window.frames.flash.contentWindow.document.body.classList.add("dark")) : (document.getElementsByTagName("body")[0].classList.remove("dark"), null != document.getElementById("flash") && window.frames.flash.contentWindow.document.body.classList.remove("dark")) : addLoadEvent(LoadDark)
454}
455
456function SwithcDark(e = "") {
457    document.getElementById("DarkModeCheck" + e).checked ? (dark_mode = 1, writeShareCookie("dark_mode", 1)) : (dark_mode = 0, writeShareCookie("dark_mode", 0)), LoadDark()
458}
459
460function SyncDarkCheck() {
461    var e = getCookie("dark_mode");
462    null == e && (e = dark_mode), 1 == e && document.getElementById("DarkModeCheck") && (document.getElementById("DarkModeCheck").checked = !0), document.getElementById("DarkModeCheck") && (document.getElementById("DarkModeCheck").style.display = "")
463}
464
465function setGoalCnFormat(e) {
466    var t, o, n;
467    if (null != e && (null != (t = document.querySelectorAll("#" + e + " [data-o]")) && 0 != t.length)) for (o = 0; o < t.length; o++) (!(n = t[o]).innerHTML.trim() || n.getAttribute("data-o")) && (t2 = Goal2GoalCn(n.getAttribute("data-o")), n.innerHTML = t2)
468}
469
470function CheckEmpty(e) {
471    return void 0 === e || "undefined" == e || !e || !/[^\s]/.test(e)
472}
473
474function BomHelper() {
475    this.ie = "", this.firefox = "", this.chrome = "", this.opera = "", this.safari = "", this.operaMini = "", this.uc = "", this.ios = "", this.android = {}, this.pc = "", this.kv = function (e, t, o) {
476        return {key: e, value: t, opt: o || 1}
477    }
478}
479
480function GetAvatar(e) {
481}
482
483function LoginSuccess() {
484    RefreshIcon()
485}
486
487function RefreshIcon() {
488    window.ssoContent && document.getElementById("login_icon") && (document.getElementById("login_icon").innerHTML = ssoContent)
489}
490
491function escapeChar(e = "") {
492    return e.replace(/\'/g, "&acute;")
493}
494
495function createXml(e) {
496    if (document.all) {
497        var t = new ActiveXObject("Microsoft.XMLDOM");
498        return t.loadXML(e), t
499    }
500    return (new DOMParser).parseFromString(e, "text/xml")
501}
502
503function oddsCompare(e, t) {
504    e = e ? e.toString() : "", t = t ? t.toString() : "";
505    var o = parseFloat(e), n = parseFloat(t);
506    return e && -1 != e.indexOf("/") && (o = (-1 == e.indexOf("-") ? 1 : -1) * (parseFloat(e.replace("-", "").split("/")[0]) + parseFloat(e.replace("-").split("/")[1])) / 2), e && -1 != e.indexOf("/") && (n = (-1 == t.indexOf("-") ? 1 : -1) * (parseFloat(t.replace("-", "").split("/")[0]) + parseFloat(t.replace("-").split("/")[1])) / 2), n > o ? 1 : n == o ? 0 : -1
507}
508
509function showDate(e, t, o, n, a, i) {
510    var r = new Date(e, t, o, n, a, i), s = timeToText(ToLocalTime(r), 6);
511    document.write("<span name='timeData' data-t='" + r + "' data-tf='6'>" + s + "</span>")
512}
513
514function getDate(n) {
515    var t = n.split(","), i = new Date(t[0], eval(t[1]), t[2], t[3], t[4], t[5]);
516    return timeToText(ToLocalTime(i), 6)
517}
518
519function openLqEuroDetail(e, t, o) {
520    var n = "/nba/oddsdetail/" + e + "?cid=" + t + "&company=" + o;
521    window.open(n, "", "width=470,height=280,top=40,left=100,resizable=yes,scrollbars=yes")
522}
523
524function switchSlide(e) {
525    $(e).hasClass("on") ? $(e).removeClass("on") : $(e).addClass("on")
526}
527
528function loadCnzz(e, t) {
529    return !1
530}
531
532function loadIndexCnzz(e) {
533    return !1
534}
535
536function cancelBubble(e) {
537    var t = e || window.event;
538    t && (window.event ? t.cancelBubble = !0 : t.stopPropagation())
539}
540
541function handleBackFromBf2(e) {
542    var t = location.href;
543    -1 === t.indexOf("?returnurl=") && (location.href = e + "?returnurl=" + t)
544}
545
546function settingDiff() {
547}
548
549function departmentDiff() {
550    switch (_appModule) {
551        case"Ng":
552        case"Vn":
553        case"Kor":
554        case"Ida":
555            return !0;
556        case"Go":
557        case"Thai":
558        case"Ind":
559            return !1
560    }
561    return !0
562}
563
564function loadStatsCode() {
565}
566
567function buildTags(e, t) {
568    return e.replace(/\{\$(\w+)\}/g, (function (e, o) {
569        return o in t ? t[o] : ""
570    }))
571}
572
573function countFavMatch() {
574    try {
575        var e = $("#favCount")[0], t = $(".favCount-mobile")[0];
576        (e || t) && (CheckEmpty(Config.getFavMatchIds()) ? (e && ($("#favCount").html(""), $("#favCount").removeClass("fav_count")), t && ($(".favCount-mobile").html(""), $(".favCount-mobile").removeClass("fav_count"))) : $.ajax({
577            url: "/ajax/FavAjax?type=4",
578            method: "post",
579            success: function (o) {
580                var n = JSON.parse(o);
581                if (-1 != n.ErrCode && !CheckEmpty(n.Data)) {
582                    n.Data.id.split(",");
583                    n.Data.hid.split(","), n.Data.gid.split(",");
584                    let o = s = Config.getFavMatchIds();
585                    f = Config.getFavLeagueIds();
586                    Config.getFavTeamIds();
587                    const a = o.length;
588                    0 == a ? (e && ($("#favCount").html(""), $("#favCount").removeClass("fav_count")), t && ($(".favCount-mobile").html(""), $(".favCount-mobile").removeClass("fav_count"))) : a > 99 ? (e && ($("#favCount").html("99+"), $("#favCount").addClass("fav_count")), t && ($(".favCount-mobile").html("99+"), $(".favCount-mobile").addClass("fav_count"))) : (e && ($("#favCount").html(a), $("#favCount").addClass("fav_count")), t && ($(".favCount-mobile").html(a), $(".favCount-mobile").addClass("fav_count")))
589                }
590            }
591        }), clearTimeout(_counFavMatchTimmer), _counFavMatchTimmer = window.setTimeout("countFavMatch()", 3e4))
592    } catch (e) {
593    }
594}
595
596function mathOdds(e) {
597    return e
598}
599
600function countLqFavMatch() {
601    _$("favCount") && (CheckEmpty(LqConfig.getFavMatchIds() + LqConfig.getFavTeamIds()) ? ($("#favCount").html(""), $("#favCount").removeClass("fav_count")) : $.ajax({
602        url: "/ajax/FavAjax?type=14",
603        method: "post",
604        success: function (e) {
605            var t, o = JSON.parse(e);
606            if (-1 != o.ErrCode && !CheckEmpty(o.Data)) {
607                var n = o.Data.id.split(","), a = o.Data.hid.split(","), i = o.Data.gid.split(","), r = 0,
608                    s = LqConfig.getFavMatchIds(), l = LqConfig.getFavTeamIds();
609                if (null != n && n.length > 0) for (t = 0; t < n.length; t++) (s.contains(n[t]) || l.contains(a[t]) || l.contains(i[t])) && r++;
610                0 == r ? ($("#favCount").html(""), $("#favCount").removeClass("fav_count")) : r > 99 ? ($("#favCount").html("99+"), $("#favCount").addClass("fav_count")) : ($("#favCount").html(r), $("#favCount").addClass("fav_count"))
611            }
612        }
613    }), clearTimeout(_counFavMatchTimmer), _counFavMatchTimmer = window.setTimeout("countLqFavMatch()", 3e4))
614}
615
616function getUTCTime() {
617    const e = new Date;
618    return new Date(e.getTime() + 6e4 * e.getTimezoneOffset())
619}
620
621function handleCutZero(e) {
622    var t = e.toString();
623    let o = t, n = t.length - t.indexOf(".") - 1;
624    if (t.indexOf(".") > -1) for (let e = n; e > 0; e--) {
625        if (!(o.lastIndexOf("0") > -1 && 0 == o.substr(o.length - 1, 1))) return o;
626        {
627            let e = o.lastIndexOf("0");
628            if ("." == o.charAt(e - 1)) return o.substring(0, e - 1);
629            o = o.substring(0, e)
630        }
631    }
632    return t
633}
634
635function switchShowHide(e) {
636    if (_$(e)) {
637        var t = $("#" + e);
638        t.is(":hidden") ? t.show() : t.hide()
639    }
640}
641
642function appendUrlParameter(e, t, o) {
643    var n, a = document.createElement("a");
644    return a.href = e, a.search.length > 0 ? ((n = new URLSearchParams(a.search)).set(t, o), a.search = n.toString()) : a.search = "?" + t + "=" + o, a.href
645}
646
647function appOpenBrowserUrl(e) {
648    return appendUrlParameter(e, "openbrowser", "1")
649}
650
651function SetOddType(e) {
652    writeShareCookie("Odds_Type", e)
653}
654
655function GetOddType() {
656    var e = _defaultOddsType, t = getCookie("Odds_Type");
657    return null == !t || "" == t || null == t || isNaN(t) || (e = parseInt(t)), e
658}
659
660function SetTimeZone(e) {
661    writeShareCookie("Time_Zone", e), writeShareCookie("Default_TimeZone", e)
662}
663
664function GetTimeZone() {
665    var e = 0 - (new Date).getTimezoneOffset() / 60, t = getCookie("Time_Zone");
666    return null == t || "" == t || null == t || isNaN(t) || (e = parseFloat(t)), writeCookie("Default_TimeZone", e), e
667}
668
669function showHideLocale(e) {
670    var t = document.getElementById("ddLocale"), o = "none" == t.style.display;
671    t.style.display = o ? "" : "none"
672}
673
674function initSetting() {
675    var e, t, o, n = document.getElementById("selectedOddsType"), a = document.getElementById("oddsType_" + _oddsType);
676    n && a && (n.innerText = a.innerText), e = document.getElementById("selectedTimeZone"), t = getCookie("Time_Zone"), !e || null != t && "" != t ? (o = document.getElementById("timeZone_" + _timeZone), e && e && o && (e.innerText = o.innerText)) : e.innerText = document.getElementById("timeZone_7").innerText
677}
678
679function overDropDownBG(e) {
680    e.style.backgroundColor = "#226204"
681}
682
683function leaveDropDownBG(e) {
684    e.style.backgroundColor = ""
685}
686
687function changeTopTimeZone(e) {
688    var t, o;
689    (_timeZone !== e || document.getElementById("selectedTimeZone").innerText == document.getElementById("timeZone_auto").innerText) && ((t = "" === e) && (SetTimeZone(""), e = GetTimeZone()), o = t ? "timeZone_auto" : "timeZone_" + e, document.getElementById("selectedTimeZone").innerText = document.getElementById(o).innerText, _timeZone = parseFloat(e), t || SetTimeZone(e), changeTimeZone(), setTimeByFormat(), setPublishTime()), window.triggerHandleFetchGMT && window.triggerHandleFetchGMT(), window.handleGetData && window.handleGetData(), void 0 !== typeof window.callApiAgain && window.callApiAgain()
690}
691
692function changeTopOddsType(e) {
693    _oddsType != e && (document.getElementById("selectedOddsType").innerText = document.getElementById("oddsType_" + e).innerText, _oddsType = parseInt(e), SetOddType(e), changeOddsType(), window.triggerHandleFetchData())
694}
695
696function changeTimeZone() {
697    for (var e, t, o, n = document.getElementsByName("timeData"), a = 0; a < n.length; a++) (t = (e = n[a]).getAttribute("data-t")) && ((o = e.getAttribute("data-tf")) || (o = "0"), e.innerText = timeToText(ToLocalTime(t), parseInt(o)))
698}
699
700function changeOddsType() {
701    for (var e, t, o, n = document.getElementsByName("oddsData"), a = 0; a < n.length; a++) (t = (e = n[a]).getAttribute("data-o")) && (o = 1 == e.getAttribute("data-e"), e.
701innerText = oTool.changePL(_oddsType, t, o))
702}
703
704function showHideTimeZone(e, t = "chooseTimeZone1") {
705    var o = document.getElementById("ddlTimeZone"), n = "none" == o.style.display;
706    n ? (null != document.getElementById("chooseOddsType") && (document.getElementById("chooseOddsType").className = "Choose-tool"), null != document.getElementById("ddlOddsType") && (document.getElementById("ddlOddsType").style.display = "none"), e.className = "Choose-tool on " + t, o.style.display = "") : (e.className = "Choose-tool " + t, o.style.display = "none"), n && null !== document.getElementById("ddLocale") && (document.getElementById("ddLocale").style.display = "none")
707}
708
709function showHideOddsType(e) {
710    var t = document.getElementById("ddlOddsType"), o = "none" == t.style.display;
711    o ? (document.getElementById("chooseTimeZone").className = "Choose-tool", document.getElementById("ddlTimeZone").style.display = "none", e.className = "Choose-tool on", t.style.display = "") : (e.className = "Choose-tool", t.style.display = "none"), o && null !== document.getElementById("ddLocale") && (document.getElementById("ddLocale").style.display = "none")
712}
713
714function showHideLangueWebSite(e) {
715    var t = document.getElementById("ddlBolaWebSite");
716    "none" == t.style.display ? (document.getElementById("chooseTimeZone").className = "Choose-tool", document.getElementById("ddlTimeZone").style.display = "none", document.getElementById("chooseOddsType").className = "Choose-tool", document.getElementById("ddlOddsType").style.display = "none", document.getElementById("chooseBolaWebSite") && (document.getElementById("chooseBolaWebSite").className = "Choose-tool", document.getElementById("ddlBolaWebSite").style.display = "none"), e.className = "Choose-tool on", t.style.display = "") : (e.className = "Choose-tool", t.style.display = "none")
717}
718
719function GotoLangueWebSite(e, t, o) {
720    writeShareCookie("bolaValInt", e), window.location.href = t + o
721}
722
723function checkHide(e) {
724    var t, o = document.getElementById("selectedOddsType"), n = document.getElementById("selectedTimeZone"),
725        a = document.getElementById("selectedBolaWebSite"), i = document.getElementById("countryImg"),
726        r = document.getElementById("ddlOddsType"), s = document.getElementById("ddlTimeZone"),
727        l = document.getElementById("ddlBolaWebSite"), c = document.getElementById("chooseOddsType"),
728        d = document.getElementById("chooseTimeZone"), u = document.getElementById("chooseBolaWebSite"),
729        h = $("#switchLeagueBlock").find(".pop")[0], m = $("#switchLeagueBlock").find(".btn")[0],
730        f = $("#switchVersion").find(".pop")[0], p = $("#switchVersion").find(".btn")[0],
731        g = null != r ? "none" == r.style.display : "", _ = null != s ? "none" == s.style.display : "",
732        T = null != l ? "none" == l.style.display : "", y = null != h ? "none" == h.style.display : "";
733    g && _ && T && y || (t = e.srcElement) != o && t != n && t != a && t != i && t != c && t != d && t != c && t != u && t != h && t != m && t != f && t != p && t == t.tagName != "I" && (r && (r.style.display = "none"), s && (s.style.display = "none"), l && (l.style.display = "none"), h && (h.style.display = "none", writeCookie(_leagueBlock.tipCookie, 1, new Date((new Date).getTime() + 864e5))), f && (f.style.display = "none", writeShareCookie(_soccerInpageTipCookie, 1, new Date((new Date).getTime() + 31536e6))), c && (c.className = "Choose-tool"), d && (d.className = "Choose-tool"), u && (u.className = "Choose-tool"))
734}
735
736function getBkHdpDetailUrl(e, t, o, n) {
737    return _basketballWebDomain + "team/handicapdetail?sclassid=" + e + "&teamid=" + t + "&matchseason=" + o + "&halforall=" + n
738}
739
740function getBkOuDetailUrl(e, t, o, n) {
741    return _basketballWebDomain + "team/ouhandicapdetail?sclassid=" + e + "&teamid=" + t + "&matchseason=" + o + "&halforall=" + n
742}
743
744function getBkTeamUrl(e) {
745    return _basketballWebDomain + `${toThaiUri("team")}/${toThaiUri("summary")}/` + e
746}
747
748function openBkTeam(e) {
749    window.open(getBkTeamUrl(e))
750}
751
752function getFbTeamUrl(e) {
753    return console.log("🚀 ~ getFbTeamUrl ~ n:", e), _footballWebDomain + toThaiUri("team") + "/" + toThaiUri("summary") + "/" + e
754}
755
756function openFbTeam(e) {
757    console.log("🚀 ~ getFbTeamUrl ~ n:", e)
758}
759
760function getFbPanluUrl(e, t) {
761    var o = "/soccer/oddsstats/" + e;
762    return void 0 !== t && "" != t && (o += "?cid=" + t), o
763}
764
765function openFbPanlu(e, t) {
766    window.open(getFbPanluUrl(e, t), "", "scrollbars=yes,resizable=yes,width=662, height=650,left=50,top=100")
767}
768
769function getHistoryCornerUrl(e) {
770    return "/history/corner/" + e
771}
772
773function openHistoryCornerUrl(e) {
774    window.open(getHistoryCornerUrl(e))
775}
776
777function getBk2in1OddsUrl(e, t, o) {
778    var n = "/2in1odds/" + e + "?t=" + t;
779    return o && (n += "&cid=" + o), n
780}
781
782function getBkOddsDetail(e, t, o) {
783    var n = "/nba/oddsdetail/" + e + "?cid=" + t;
784    return o && (n += "&flag=" + o), n
785}
786
787function getFb1x2OddsHistory(e, t, o, n, a) {
788    return "/ty-le-1x2/" + e + "?cid=" + t + "&company=" + o.replaceAll(" ", "").toLowerCase() + "&r1=" + n.replaceAll(" ", "").toLowerCase() + "&r2=" + a.replaceAll(" ", "").toLowerCase()
789}
790
791function getEuroOddsUrl(e, t) {
792    return "/football/1x2/?id=" + e + "&company" + t.replace("Mansion88.com", "M88")
793}
794
795function openTreeMix() {
796}
797
798function getLeaUrl(e) {
799    return _footballWebDomain + toThaiUri("leagueinfo") + "/" + e
800}
801
802function openLeaUrl(e, t) {
803    window.open(getLeaUrl(e, t))
804}
805
806function getMatchTipsUrl(e) {
807    return _cmsWebDomain + toThaiUri("football") + "/" + toThaiUri("match") + "/" + match + e
808}
809
810function openMatchTipsUrl(e) {
811    window.open(getMatchTipsUrl(e))
812}
813
814function getBkLeaUrl(e) {
815    return _basketballWebDomain + toThaiUri("leagueinfo") + "/" + e
816}
817
818function openBkLeaUrl(e) {
819    window.open(getBkLeaUrl(e))
820}
821
822function convertToSlug(e) {
823    return e.toLowerCase().trim().replace(/[\s_]+/g, "-").replace(/[^\w\-]+/g, "").replace(/\-\-+/g, "-")
824}
825
826const tlt = "undefined" != typeof _locModel && void 0 !== _locModel.T.T_TIL_DataComparison ? _locModel.T.T_TIL_DataComparison : "So sánh số liệu";
827var _mainWebDomain = "/", _livescoreWebDomain = "/", _dataWebDomain = "/data/", _basketballWebDomain = "/basketball/",
828    _footballWebDomain = "/" + toThaiUri("football") + "/", _cmsWebDomain = "/tips/",
829    _infoWebDomain = "/" + toThaiUri("football") + "/", _touchWebDomain = "/mobi/", _freeWebDomain = "/free/",
830    _freeAppDomain = "/app/", _domain = "thscore", _tail = "vip", _defaultOddsType = "1", _defaultTimeZone = "8",
831    _leagueNameIdx = "8", _isNewOddsTxt = "1", _upDownColorType = "1", _oddsOrder = "1-2-3", _moduleKey = "Thai",
832    _websocket = !0, _wsUrl = "27i5rws9u0.execute-api.ap-southeast-1.amazonaws.com",
833    _cdnWebDomain = "//img_cms.thscore.fun/", _substationType = 0, _isForApp = !1, ICONFONT = {
834        DETAIL: "<i class='icon iconfont icon-icon-detail'></i>",
835        LINEUP: "<i class='icon iconfont icon-font-lineup'></i>",
836        ANALYSIS: "<i class='icon iconfont icon-analysis'></i>",
837        ODDS: `<i title='${tlt}' class='icon iconfont icon-odds '></i>`,
838        FLASH: "<i class='icon iconfont icon-matchdata'></i>",
839        FLASH_V2: "<img src='/images/football-vn/btn-live-v2.svg' alt='btn-live-v2.svg' />",
840        FLASHON: "<i class='icon iconfont icon-matchdata on'></i>",
841        BASKETBALL: "<i class='icon iconfont icon-font-basketballclass'></i>",
842        HIGHLIGHT: "<i class='icon iconfont icon-icon-live1'></i>",
843        FLASH_LQ: "<i class='icon iconfont icon-b-ant-on'></i>",
844        FLASHON_LQ: "<i class='icon iconfont icon-b-ant-on on'></i>",
845        FAV_MATCH: "<i id='favM_{$MatchID}' mid='{$MatchID}' class='icon iconfont icon-font-collect-off add-info favM'></i>",
846        FAV_LEAGUE: "<i id='favL_{$LeagueID}' lid='{$LeagueID}' class='icon iconfont icon-font-collect-off add-info-l l0 favL'></i>"
847    }, ODDSTYPE = {NONE: 0, AH: 1, OP: 2, OU: 3, CORNEROU: 4, BODAN: 5, EUROAH: 6, DOUBLECHANCE: 7}, LQHANDICAP, headtime,
848    timeZone, startani_C, startani_A, startani_B, pop_TC, oPopup, goal, goalTime, zXml, X2, _cnzzLoaded, _cnzzUrls,
849    dark_mode, bomHelper, ssoAvataUrl, _share, _counFavMatchTimmer, Storage, _oddsType, _timeZone, wsUtil;
850Object.freeze(ODDSTYPE), LQHANDICAP = {
851    FIRST: 1,
852    SECOND: 2,
853    HALF: 3,
854    THREE: 4,
855    FOUR: 5,
856    FULL: 6,
857    RUNNING: 7
858}, Object.freeze(LQHANDICAP), headtime = new Date, timeZone = (new Date).getTimezoneOffset() / -60;
859try {
860    oPopup = window.createPopup()
861} catch (e) {
862}
863goal = 0, zXml = {
864    useActiveX: "undefined" != typeof ActiveXObject,
865    useXmlHttp: "undefined" != typeof XMLHttpRequest
866}, zXml.ARR_XMLHTTP_VERS = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"], zXmlHttp.createRequest = function () {
867    if (zXml.useXmlHttp) return new XMLHttpRequest;
868    if (zXml.useActiveX) {
869        if (!zXml.XMLHTTP_VER) for (var e = 0; e < zXml.ARR_XMLHTTP_VERS.length; e++) try {
870            new ActiveXObject(zXml.ARR_XMLHTTP_VERS[e]), zXml.XMLHTTP_VER = zXml.ARR_XMLHTTP_VERS[e];
871            break
872        } catch (e) {
873        }
874        if (zXml.XMLHTTP_VER) return new ActiveXObject(zXml.XMLHTTP_VER)
875    }
876    alert("Sorry,XML object unsupported by your computer,please setup XML object or change explorer.")
877};
878var _months2 = "undefined" != typeof _locModel && void 0 !== _locModel.T.T_S_Jan ? [_locModel.T.T_S_Jan, _locModel.T.T_S_Feb, _locModel.T.T_S_Mar, _locModel.T.T_S_Apr, _locModel.T.T_S_May, _locModel.T.T_S_Jun, _locModel.T.T_S_Jul, _locModel.T.T_S_Aug, _locModel.T.T_S_Sep, _locModel.T.T_S_Oct, _locModel.T.T_S_Nov, _locModel.T.T_S_Dec] : ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
879    _months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
879November", "December"],
880    _weeks = "undefined" != typeof _locModel && void 0 !== _locModel.T.T_Sunday ? [_locModel.T.T_Sunday, _locModel.T.T_Monday, _locModel.T.T_Tuesday, _locModel.T.T_Wednesday, _locModel.T.T_Thursday, _locModel.T.T_Friday, _locModel.T.T_Saturday] : ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
881    _weeks2 = "undefined" != typeof _locModel && void 0 !== _locModel.T.T_S_Sunday ? [_locModel.T.T_S_Sunday, _locModel.T.T_S_Monday, _locModel.T.T_S_Tuesday, _locModel.T.T_S_Wednesday, _locModel.T.T_S_Thursday, _locModel.T.T_S_Friday, _locModel.T.T_S_Saturday] : ["Sun.", "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat."],
882    _hasInitDateFormat = 0;
883Array.prototype.contains = function (e) {
884    for (var t = this.length; t--;) if (this[t] == e) return !0;
885    return !1
886}, window.ActiveXObject || (HTMLElement.prototype.insertAdjacentElement = function (e, t) {
887    if (t) switch (e) {
888        case"beforeBegin":
889            this.parentNode.insertBefore(t, this);
890            break;
891        case"afterBegin":
892            this.insertBefore(t, this.firstChild);
893            break;
894        case"beforeEnd":
895            this.appendChild(t);
896            break;
897        case"afterEnd":
898            this.nextSibling ? this.parentNode.insertBefore(t, this.nextSibling) : this.parentNode.appendChild(t)
899    }
900}), X2 = {}, X2.Eval = function (e) {
901    window.attachEvent && !window.opera ? execScript(e) : window.eval(e)
902};
903var FloatHelper = {
904        DecimalLength: function (e) {
905            var t = e.toString().split(/[eE]/), o = (t[0].split(".")[1] || "").length - Number(t[1] || 0);
906            return o > 0 ? o : 0
907        }, Operator: function (e, t, o) {
908            var n = this.DecimalLength(e), a = this.DecimalLength(t), i = Math.max(n, a), r = Math.pow(10, i);
909            switch (o) {
910                case"*":
911                case 2:
912                    i = n + a, rv = e * Math.pow(10, n) * t * Math.pow(10, a) / Math.pow(10, i);
913                    break;
914                case"/":
915                case 3:
916                    i < 3 && (i = 3), rv = e * r / (t * r);
917                    break;
918                case"%":
919                case 4:
920                    rv = e * r % (t * r) / r;
921                    break;
922                case"-":
923                case 1:
924                    rv = (e * r - t * r) / r;
925                    break;
926                default:
927                    rv = (e * r + t * r) / r
928            }
929            return parseFloat(rv.toFixed(i))
930        }
931    }, oTool = {
932        USJson: {
933            .22: -450,
934            .28: -350,
935            .33: -300,
936            .36: -275,
937            .38: -267,
938            .44: -225,
939            .47: -212.5,
940            .53: -187.5,
941            .57: -175,
942            .62: -162.5,
943            .63: -160,
944            .66: -150,
945            .72: -137.5,
946            .83: -120,
947            .88: -114,
948            .91: -110,
949            .95: -105
950        },
951        fractionJson: {
952            .22: "2/9",
953            .28: "2/7",
954            .33: "1/3",
955            .36: "4/11",
956            .38: "3/8",
957            .44: "4/9",
958            .47: "40/85",
959            .53: "8/15",
960            .57: "4/7",
961            .62: "8/13",
962            .63: "5/8",
963            .66: "4/6",
964            .72: "8/11",
965            .83: "5/6",
966            .88: "7/8",
967            .91: "10/11",
968            .95: "20/21"
969        },
970        getPL: function (e, t, o, n, a) {
971            if (a && 3 != e && "3" != e && 6 != e && "6" != e) return [this.toFixZero(t), this.toFixZero(o), this.toFixZero(n)];
972            switch (a || (t = mathOdds(t), n = mathOdds(n)), e) {
973                case 1:
974                case"1":
975                    return [t, o, n];
976                case 2:
977                case"2":
978                    return a ? [t, o, n] : [this.toIN(t), o, this.toIN(n)];
979                case 3:
980                case"3":
981                    return a ? [this.toUSEu(t), this.toUSEu(o), this.toUSEu(n)] : [this.toUS(t), o, this.toUS(n)];
982                case 4:
983                case"4":
984                    return [this.toEU(t), o, this.toEU(n)];
985                case 5:
986                case"5":
987                    return a ? [t, o, n] : [this.toML(t), o, this.toML(n)];
988                case 6:
989                case"6":
990                    return a ? [this.toFractionEu(t), this.toFractionEu(o
990), this.toFractionEu(n)] : [this.toFraction(t), o, this.toFraction(n)]
991            }
992        },
993        changePL: function (e, t, o) {
994            if (!parseFloat(t)) return t;
995            if (o && 3 != e && "3" != e && 6 != e && "6" != e) return this.toFixZero(t);
996            switch (e) {
997                case 1:
998                case"1":
999                    return this.toFixZero(t);
1000                case 2:
1001                case"2":
1002                    return this.toIN(t);
1003                case 3:
1004                case"3":
1005                    return o ? this.toUSEu(t) : this.toUS(t);
1006                case 4:
1007                case"4":
1008                    return this.toEU(t);
1009                case 5:
1010                case"5":
1011                    return this.toML(t);
1012                case 6:
1013                case"6":
1014                    return o ? this.toFractionEu(t) : this.toFraction(t)
1015            }
1016        },
1017        toIN: function (e) {
1018            if (0 == t) return t;
1019            if (!e) return "";
1020            var t = parseFloat(e), o = this.countDecimal(t) > 2 ? 3 : 2;
1021            return 0 === t ? t : t < 1 ? (0 - 1 / t).toFixed(o) : this.toFixZero(e)
1022        },
1023        toML: function (e) {
1024            if (!e) return "";
1025            var t = parseFloat(e), o = this.countDecimal(t) > 2 ? 3 : 2;
1026            return t > 1 ? (0 - 1 / t).toFixed(o) : this.toFixZero(e)
1027        },
1028        toEU: function (e) {
1029            if (!e) return "";
1030            var t = parseFloat(e), o = this.countDecimal(t) > 2 ? 3 : 2;
1031            return (t + 1).toFixed(o)
1032        },
1033        toUS: function (e) {
1034            var t;
1035            if (!e) return "";
1036            var o = parseFloat(e), n = this.countDecimal(o) > 2 ? 3 : 2, a = oTool.USJson;
1037            return o in a ? a[o] : (0, (t = o <= 0 ? 0 : o < 1 ? Math.round(0 - 100 * (1 / o).toFixed(n)) : Math.round(100 * o)) > 0 ? "+" + t : t)
1038        },
1039        toUSEu: function (e) {
1040            var t, o, n, a;
1041            return e ? (t = parseFloat(e), o = this.countDecimal(t) > 2 ? 3 : 2, !t || isNaN(t) ? "" : (t = FloatHelper.Operator(t, 1, "-")) in (n = oTool.USJson) ? n[t] : 0 == t ? "0" : (0, (a = t < 1 ? Math.round(0 - 100 * (1 / t).toFixed(o)) : Math.round(100 * t)) > 0 ? "+" + a : a)) : ""
1042        },
1043        toFraction: function (e) {
1044            var t, o, n, a, i, r = parseFloat(e);
1045            if ("NaN" == r.toString()) return "";
1046            if ((t = r < 0) && (r = Math.abs(r)), o = {
1047                n: 0,
1048                m: 1
1049            }, n = 0, r > 1 && (r = FloatHelper.Operator(r, n = 0 | r, "-")), r in (a = oTool.fractionJson)) i = a[r].split("/"), o.n = parseInt(i[0]), o.m = parseInt(i[1]); else if (r > 0) {
1050                var s = function (e, t) {
1051                    return 0 == t ? e : s(t, e % t)
1052                }, l = Math.pow(10, FloatHelper.DecimalLength(r)), c = parseInt(r * l), d = s(l, c);
1053                o.n = c / d, o.m = l / d
1054            }
1055            return (t ? "-" : "") + (n * o.m + o.n) + "/" + o.m
1056        },
1057        toFractionEu: function (e) {
1058            var t, o, n, a, i, r = parseFloat(e);
1059            if ("NaN" == r.toString()) return "";
1060            if ((t = (r = FloatHelper.Operator(r, 1, "-")) < 0) && (r = Math.abs(r)), o = {
1061                n: 0,
1062                m: 1
1063            }, n = 0, r > 1 && (r = FloatHelper.Operator(r, n = 0 | r, "-")), r in (a = oTool.fractionJson)) i = a[r].split("/"), o.n = parseInt(i[0]), o.m = parseInt(i[1]); else if (r > 0) {
1064                var s = function (e, t) {
1065                    return 0 == t ? e : s(t, e % t)
1066                }, l = Math.pow(10, FloatHelper.DecimalLength(r)), c = parseInt(r * l), d = s(l, c);
1067                o.n = c / d, o.m = l / d
1068            }
1069            return (t ? "-" : "") + (n * o.m + o.n) + "/" + o.m
1070        },
1071        toFixZero: function (e, t) {
1072            t || (t = this.countDecimal(e) > 2 ? 3 : 2);
1073            var o = parseFloat(e);
1074            return "NaN" == o.toString() ? e : o.toFixed(t)
1075        },
1076        countDecimal: function (e) {
1077            var t = ("" + e).match(/\.(\d+)$/);
1078            return null === t ? 0 : t[1].length
1079        }
1080    }, _handicapTypeArray = ["/-", "+/-", "/*", "让/受让"], _handicapType = 1, _handicapAccept = "-", _handicapGive = "",
1081    _ouTrimEndZero = !0,
1082    GoalCn = ["0", "0/{0}0.5", "{0}0.5", "{0}0.5/1", "{0}1", "{0}1/1.5", "{0}1.5", "{0}1.5/2", "{0}2", "{0}2/2.5", "{0}2.5", "{0}2.5/3", "{0}3", "{0}3/3.5", "{0}3.5", "{0}3.5/4", "{0}4", "{0}4/4.5", "{0}4.5", "{0}4.5/5", "{0}5", "{0}5/5.5", "{0}5.5", "{0}5.5/6", "{0}6", "{0}6/6.5", "{0}6.5", "{0}6.5/7", "{0}7", "{0}7/7.5", "{0}7.5", "{0}7.5/8", "{0}8", "{0}8/8.5", "{0}8.5", "{0}8.5/9", "{0}9", "{0}9/9.5", "{0}9.5", "{0}9.5/10", "{0}10", "{0}10/10.5", "{0}10.5", "{0}10.5/11", "{0}11", "{0}11/11.5", "{0}11.5", "{0}11.5/12", "{0}12", "{0}12/12.5", "{0}12.5", "{0}12.5/13", "{0}13", "{0}13/13.5", "{0}13.5", "{0}13.5/14", "{0}14"],
1083    GoalCnOU = ["0", "0/0.5", "0.5", "0.5/1", "1", "1/1.5", "1.5", "1.5/2", "2", "2/2.5", "2.5", "2.5/3", "3", "3/3.5", "3.5", "3.5/4", "4", "4/4.5", "4.5", "4.5/5", "5", "5/5.5", "5.5", "5.5/6", "6", "6/6.5", "6.5", "6.5/7", "7", "7/7.5", "7.5", "7.5/8", "8", "8/8.5", "8.5", "8.5/9", "9", "9/9.5", "9.5", "9.5/10", "10", "10/10.5", "10.5", "10.5/11", "11", "11/11.5", "11.5", "11.5/12", "12", "12/12.5", "12.5", "12.5/13", "13", "13/13.5", "13.5", "13.5/14", "14"];
1084
1085function getTvLinkTxtUrl(e) {
1086    var t = "/gf/tvlive/tvlive_fn_fb.txt?";
1087    switch (e) {
1088        case"Vn":
1089            t = "/gf/tvlive/tvlive_vn_fb.txt?";
1090            break;
1091        case"Thai":
1092            t = "/gf/tvlive/tvlive_th_fb.txt?";
1093            break;
1094        case"Ng":
1095        case"Bola":
1096            t = "/gf/tvlive/tvlive_en_fb.txt?";
1097            break;
1098        case"Kor":
1099            t = "/gf/tvlive/tvlive_kr_fb.txt?"
1100    }
1101    return t
1102}
1103
1104initHandicap(), _cnzzLoaded = !1, _cnzzUrls = [], dark_mode = 0 != getQueryVariable("darkmode") ? getQueryVariable("darkmode") : 0, BomHelper.prototype.checkBrowerType = function () {
1105    for (var e, t, o = navigator.userAgent.toLowerCase(), n = [this.kv("ie", /msie ([\d.]+)/), this.kv("qq", /qq\/([\d.]+)/i), this.kv("firefox", /firefox\/([\d.]+)/i), this.kv("uc", /ucbrowser\/([\d.]+)/i), this.kv("operaMini", /opera[\s]mini.([\d.]+)/i), this.kv("opera", /opera[\s]mini.([\d.]+)/i), this.kv("chrome", /chrome\/([\d.]+)/i), this.kv("crios", /crios\/([\d.]+)/i), this.kv("safari", /version\/([\d.]+).*safari/i)], a = 0; a < n.length; a++) if (t = n[a], e = o.match(t.value)) {
1106        this[t.key] = e[1];
1107        break
1108    }
1109}, BomHelper.prototype.checkPlatform = function (e) {
1110    var t, o, n, a = navigator.userAgent.toLowerCase();
1111    if (/(iphone|ipad|ipod|ios)/i.test(a)) this.ios = (e = a.match(/(?:iphone|ipad|itouch).* os (\d+)_[\d]/)) ? e[1] : "1"; else if (/android/i.test(a)) {
1112        for (this.android.version = (e = a.match(/(?:android) ([\d\.]+);/)) ? e[1] : "1", o = [this.kv("huawei", /(huawei|honorbln)/i), this.kv("oppo", /oppo/i), this.kv("vivo", /vivo/i), this.kv("xiaomi", /(miui|xiaomi)/i), this.kv("meizu", /;[\s]+mz-/i), this.kv("original", /android/)], n = 0; n < o.length; n++) if (t = o[n], e = a.match(t.value)) {
1113            this.android[t.key] = 1;
1114            break
1115        }
1116    } else this.pc = "pc"
1117}, BomHelper.prototype.ajaxObj = function () {
1118    var e = null;
1119    if ("" != this.ie) {
1120        if ("undefined" != typeof ActiveXObject) return new XMLHttpRequest;
1121        try {
1122            e = new ActiveXObject("Msxml2.XMLHTTP")
1123        } catch (t) {
1124            try {
1125                e = new ActiveXObject("Microsoft.XMLHTTP")
1126            } catch (t) {
1127                try {
1128                    e = new XMLHttpRequest
1129                } catch (e) {
1130                    alert("创建ajax对象失败,本网站只支持ie6以上版本浏览器,请刷新页面重试")
1131                }
1132            }
1133        }
1134    } else try {
1135        e = new XMLHttpRequest
1136    } catch (e) {
1137        alert("创建ajax对象失败,请刷新页面重试")
1138    }
1139    return e
1140}, BomHelper.prototype.ajaxGet = function (e, t, o) {
1141    null == o && (o = !0);
1142    var n = this.ajaxObj();
1143    n.onreadystatechange = function () {
1144        4 == n.readyState && t(n.responseText)
1145    }, e = -1 == e.indexOf("?") ? e + "?flesh=" + Math.random() : e + "&flesh=" + Math.random(), n.open("GET", e, o), n.send(null)
1146}, BomHelper.prototype.ajaxPost = function (e, t, o) {
1147    var n = this.ajaxObj();
1148    n.onreadystatechange = function () {
1149        4 == n.readyState && o(n.responseText)
1150    }, t = "" == t ? t + "flesh=" + Math.random() : t + "&flesh=" + Math.random(), n.open("POST", e, !0), n.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), n.send(t)
1151}, BomHelper.prototype.ajaxXml = function (e, t, o) {
1152    var n = this.ajaxObj();
1153    n.onreadystatechange = function () {
1154        4 == n.readyState && o(n.responseXML, n.responseText)
1155    }, e = -1 == e.indexOf("?") ? e + "?flesh=" + Math.random() : e + "&flesh=" + Math.random(), n.open("GET", e, t), n.send(null)
1156}, BomHelper.prototype.useIE7 = function () {
1157    document.write('<meta content="IE=EmulateIE7" http-equiv="X-UA-Compatible">')
1158}, bomHelper = new BomHelper, bomHelper.checkBrowerType(), bomHelper.checkPlatform(), String.prototype.Trim = function () {
1159    return this.replace(/(^\s*)|(\s*$)/g, "")
1160}, ssoAvataUrl = "/sso/ssologinpcjs/", _share = {
1161    facebook: function (e, t) {
1162        var o = e || location.href, n = t || "";
1163        window.open("https://www.facebook.com/sharer.php?u=" + encodeURIComponent(o) + "&t=" + encodeURIComponent(n))
1164    }, twitter: function (e, t) {
1165        var o = e || location.href, n = t || "";
1166        window.open("https://twitter.com/share/?text=" + encodeURIComponent(n) + "&url=" + _share.encodeUrlWithUnicode(o))
1167    }, telegram: function (e, t) {
1168        var o = e || location.href, n = t || "";
1169        window.open("https://t.me/share/url?url=" + _share.encodeUrlWithUnicode(o) + "&text=" + encodeURIComponent(n))
1170    }, blogger: function (e, t) {
1171        var o = e || location.href;
1172        window.open("https://share.naver.com/web/shareView.nhn?url=" + encodeURIComponent(o) + "&title=" + encodeURIComponent(_share.trim(t, location.host)))
1173    }, encodeUrlWithUnicode: function (e) {
1174        for (var t = /([\u0100-\uFFFF]+)/g, o = e.split(t), n = "", a = 0; a < o.length; a++) n += t.test(o[a]) ? encodeURIComponent(encodeURIComponent(o[a])) : encodeURIComponent(o[a]);
1175        return n
1176    }, trim: function (e) {
1177        var t = arguments[arguments.length - 1];
1178        return e && e.replace(/^\s+|\s+$/gm, "") || t
1179    }
1180};
1181var soccerInPage = {
1182    prefix: `/${toThaiUri("football")}/`, isSummary: function (e, t, o, n) {
1183        return "function" == typeof checkInpageVersion && 1 == checkInpageVersion(e, t, o, n)
1184    }, gethost: function () {
1185        return _databaseDomain
1186    }, customDetail: function (e, t, o, n = "", a = "", i = "live") {
1187        window.open(`${a}/${toThaiUri("match")}/${toThaiUri(i)}-${toThaiSlug(t)}-${toThaiSlug(o)}-${e}`, n ? "_self" : "")
1188    }, detail: function (e, t, o, n, a) {
1189        if (window.match_detail_url) {
1190            let slugDt = `${toThaiSlug(t)}-${toThaiSlug(o)}-${e}`;
1191            return window.open(window.match_detail_url + "/" + slugDt);
1192        }
1193    }, detailUrl: function (e, t, o, n, a) {
1194        return `${this.gethost()}/${toThaiUri("match")}/${toThaiUri("live")}-${toThaiSlug(t)}-${toThaiSlug(o)}-${e}`
1195    }, gameratelUrl: function (e, t, o, n, a) {
1196        return `/${toThaiUri("gamerate")}/${e}?leagueindex=${a || 0}`
1197    }, analysis: function (e, t, o, n, a) {
1198        if (window.match_analysis_url) {
1199            let slugDt = `${toThaiUri("h2h")}-${toThaiSlug(t)}-${toThaiSlug(o)}-${e}`;
1200            return window.open(window.match_analysis_url + "/" + slugDt);
1201        }
1202    }, analysisUrl: function (e, t, o, n, a) {
1203        return `${this.gethost()}/${toThaiUri("match")}/${toThaiUri("h2h")}-${toThaiSlug(t)}${toThaiSlug(o)}-${e}`
1204    }, gamerate: function (e, t, o, n, a) {
1205        _iframe && window.open(`${this.gethost()}/${toThaiUri("gamerate")}/${e}?leagueindex=${a || 0}`, "_blank"), window.location.href = `${this.gethost()}/${toThaiUri("gamerate")}/${e}?leagueindex=${a || 0}`
1206    }, oddscomp: function (e, t, o, n, a, i, r) {
1207        if (window.match_detail_url) {
1208            let slugDt = `${toThaiSlug(o)}-${toThaiSlug(n)}-${e}`;
1209            return window.open(window.match_detail_url + "/" + slugDt);
1210        }
1211    }, euroodds: function (e, t, o, n, a) {
1212        this.isSummary(e, t, o, a) || window.open(this.gethost() + "/" + toThaiUri("1x2-odds") + "/" + e, a ? "_self" : "")
1213    }, ouodds: function (e, t, o, n, a) {
1214        this.isSummary(e, t, o, a) || window.open(this.gethost() + "/" + toThaiUri("over-under-odds") + "/" + e, a ? "_self" : "")
1215    }
1215, ahodds: function (e, t, o, n, a) {
1216        this.isSummary(e, t, o, a) || window.open(this.gethost() + "/" + toThaiUri("asian-handicap-odds") + "/" + e, a ? "_self" : "")
1217    }, threemix: function (e, t, o, n, a, i, r) {
1218        if (!this.isSummary(e, n, a, r)) {
1219            var s = this.gethost() + `/${toThaiUri("match")}/${toThaiUri("live")}-` + e;
1220            o && (s += "?half=1"), window.open(s, r ? "_self" : "")
1221        }
1222    }, textlive: function (e, t, o, n, a) {
1223        this.isSummary(e, t, o, a) || window.open(this.gethost() + "/" + toThaiUri("textlive") + "/" + e, a ? "_self" : "")
1224    }, playertech: function (e, t, o, n, a) {
1225        this.isSummary(e, t, o, a) || window.open(this.gethost() + "/" + toThaiUri("playertech") + "/" + e, a ? "_self" : "")
1226    }, tipsmatch: function (e, t, o, n, a) {
1227        this.isSummary(e, t, o, a) || window.open(_cmsWebDomain + toThaiUri("football") + "/" + toThaiUri("match") + "/" + e, a ? "_self" : "")
1228    }
1229}, basketInPage = {
1230    gethost: function () {
1231        return _mainWebDomain.substr(0, _mainWebDomain.length - 1)
1232    }, analysis: function (e) {
1233        window.open(_databaseDomain + `/${translateUri("basketball")}/${translateUri("match")}/${translateUri("analysis")}/` + e)
1234    }, oddscomp: function (e) {
1235        window.open(_databaseDomain + `/${translateUri("basketball")}/${translateUri("match")}/${translateUri("oddscompbasket")}/` + e)
1236    }, euroodds: function (e) {
1237        window.open(_databaseDomain + NaN + e)
1238    }, playertech: function (e) {
1239        window.open(_databaseDomain + `/${translateUri("basketball")}/${translateUri("match")}/${translateUri("statistics")}/` + e)
1240    }, textlive: function (e) {
1241        window.open(_databaseDomain + NaN + e + "?showtxt=1")
1242    }
1243}, soccerDbPage = {
1244    domain: void 0 === _footballWebDomain ? "" : _footballWebDomain += _footballWebDomain.endsWith("/") ? "" : "/",
1245    player: function (e) {
1246        window.open("/" + toThaiUri("team") + "/" + toThaiUri("player") + "/" + e)
1247    },
1248    team: function (e) {
1249        window.open(`${toThaiUri("team")}/${toThaiUri("summary")}/` + e)
1250    },
1251    league: function (e) {
1252        window.open(this.domain + toThaiUri("leagueinfo-pop-up") + "/" + e)
1253    }
1254}, basketballDbPage = {
1255    domain: void 0 === _basketballWebDomain ? "" : _basketballWebDomain += _basketballWebDomain.endsWith("/") ? "" : "/",
1256    player: function (e) {
1257        window.open(_databaseDomain + "/" + toThaiUri("basketball") + "/" + toThaiUri("team") + "/" + toThaiUri("player") + "/" + e)
1258    },
1259    team: function (e) {
1260        window.open(_databaseDomain + "/" + toThaiUri("basketball") + "/" + `${toThaiUri("team")}/${toThaiUri("summary")}/` + e)
1261    },
1262    league: function (e) {
1263        window.open(_databaseDomain + "/" + toThaiUri("basketball") + "/" + toThaiUri("leagueinfo") + "/" + e)
1264    }
1265};
1266_counFavMatchTimmer = null, Storage = {
1267    enableStorage: function (e) {
1268        try {
1269            e.setItem("_test", "1");
1270            var t = "1" == e.getItem("_test");
1271            return e.removeItem("_test"), t
1272        } catch (e) {
1273            return !1
1274        }
1275    }, enableLocal: function () {
1276        return "undefined" != typeof localStorage && this.enableStorage(localStorage)
1277    }, enableSession: function () {
1278        return "undefined" != typeof sessionStorage && this.enableStorage(sessionStorage)
1279    }, getLocal: function (e) {
1280        return this.enableLocal() ? localStorage.getItem(e) : unescape(findCookie(e))
1281    }, setLocal: function (e, t) {
1282        this.enableLocal() ? localStorage.setItem(e, t) : writeCookie(e, t)
1283    }, getSession: function (e) {
1284        return this.enableSession() ? sessionStorage.getItem(e) : this.getLocal(e)
1285    }, setSession: function (e, t) {
1286        this.enableSession() ? sessionStorage.setItem(e, t) : this.setLocal(e, t)
1287    }, setLocalWithExpire: function (e, t, o) {
1288        "undefined" == typeof second || CheckEmpty(second);
1289        var n = {value: t, expire: (new Date).getTime() + 6e4 * o};
1290        localStorage.setItem(e, JSON.stringify(n))
1291    }, getLocalWithExpire: function (e) {
1292        var t, o = localStorage.getItem(e);
1293        return o ? (t = JSON.parse(o)).expire && (new Date).getTime() > t.expire ? (localStorage.removeItem(e), null) : t.value : null
1294    }
1295}, MonitorError(), LoadDark(), document.addEventListener("DOMContentLoaded", LoadDark), _oddsType = GetOddType(), _timeZone = GetTimeZone(), $((function () {
1296    document.onclick = checkHide, initSetting()
1297})), function () {
1298    var e, t, o, n, a, i, r, s = getCookie("MyGames_LeagueID");
1299    s && -1 != s.indexOf("_") && (e = s.split("_"), t = [], e.forEach((e => {
1300        e && t.push(e)
1301    })), document.cookie = "MyGames_LeagueID=;path=/;expires=" + new Date((new Date).getTime() + -36e6).toGMTString(), o = getCookie("MyGames_LeagueID") ? "," + getCookie("MyGames_LeagueID") : "", writeShareCookie("MyGames_LeagueID", t.join(",") + o + new Date((new Date).getTime() + 6048e5))), (n = getCookie("MyGames_MatchID")) && -1 != n.indexOf("_") && (a = n.split("_"), i = [], a.forEach((e => {
1302        e && i.push(e)
1303    })), document.cookie = "MyGames_MatchID=;path=/;expires=" + new Date((new Date).getTime() + -36e6).toGMTString(), r = getCookie("MyGames_MatchID") ? "," + getCookie("MyGames_MatchID") : "", writeShareCookie("MyGames_MatchID", i.join(",") + r, new Date((new Date).getTime() + 6048e5))), (n = getCookie("MyNBA_MatchID")) && -1 != n.indexOf("_") && (a = n.split("_"), i = [], a.forEach((e => {
1304        e && i.push(e)
1305    })), document.cookie = "MyNBA_MatchID=;path=/;expires=" + new Date((new Date).getTime() + -36e6).toGMTString(), r = getCookie("MyGames_LQ_MatchID") ? "," + getCookie("MyGames_LQ_MatchID") : "", writeShareCookie("MyGames_LQ_MatchID", i.join(",") + r, new Date((new Date).getTime() + 6048e5)))
1306}(), function (e, t) {
1307    "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).pako = {})
1308}(this, (function (e) {
1309    "use strict";
1310
1311    function t() {
1312        this.strm = null, this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new Uint16Array(320), this.work = new Uint16Array(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0
1313    }
1314
1315    function o(e) {
1316        this.options = c({chunkSize: 65536, windowBits: 15, to: ""}, e || {});
1317        const t = this.options;
1318        t.raw && t.windowBits >= 0 && t.windowBits < 16 && (t.windowBits = -t.windowBits, 0 === t.windowBits && (t.windowBits = -15
vendor: 9,630 bytes, lines 1318-1492
1318)), !(t.windowBits >= 0 && t.windowBits < 16) || e && e.windowBits || (t.windowBits += 32), t.windowBits > 15 && t.windowBits < 48 && 0 == (15 & t.windowBits) && (t.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new oe, this.strm.avail_out = 0;
1319        let o = l.inflateInit2(this.strm, t.windowBits);
1320        if (o !== se) throw new Error(te[o]);
1321        if (this.header = new ne, l.inflateGetHeader(this.strm, this.header), t.dictionary && ("string" == typeof t.dictionary ? t.dictionary = Q(t.dictionary) : "[object ArrayBuffer]" === ae.call(t.dictionary) && (t.dictionary = new Uint8Array(t.dictionary)), t.raw && (o = l.inflateSetDictionary(this.strm, t.dictionary), o !== se))) throw new Error(te[o])
1322    }
1323
1324    function n(e, t) {
1325        const n = new o(t);
1326        if (n.push(e), n.err) throw n.msg || te[n.err];
1327        return n.result
1328    }
1329
1330    var a, i, r, s, l, c, d, u = (e, t, o, n) => {
1331        let a = 65535 & e | 0, i = e >>> 16 & 65535 | 0, r = 0;
1332        for (; 0 !== o;) {
1333            r = o > 2e3 ? 2e3 : o, o -= r;
1334            do {
1335                a = a + t[n++] | 0, i = i + a | 0
1336            } while (--r);
1337            a %= 65521, i %= 65521
1338        }
1339        return a | i << 16 | 0
1340    };
1341    const h = new Uint32Array((() => {
1342        var e, t;
1343        let o, n = [];
1344        for (e = 0; e < 256; e++) {
1345            for (o = e, t = 0; t < 8; t++) o = 1 & o ? 3988292384 ^ o >>> 1 : o >>> 1;
1346            n[e] = o
1347        }
1348        return n
1349    })());
1350    a = (e, t, o, n) => {
1351        const a = h, i = n + o;
1352        e ^= -1;
1353        for (let o = n; o < i; o++) e = e >>> 8 ^ a[255 & (e ^ t[o])];
1354        return -1 ^ e
1355    };
1356    const m = 16209;
1357    i = function (e, t) {
1358        let o, n, a, i, r, s, l, c, d, u, h, f, p, g, _, T, y, w, b, v, k, M, S, x;
1359        const C = e.state;
1360        o = e.next_in, S = e.input, n = o + (e.avail_in - 5), a = e.next_out, x = e.output, i = a - (t - e.avail_out), r = a + (e.avail_out - 257), s = C.dmax, l = C.wsize, c = C.whave, d = C.wnext, u = C.window, h = C.hold, f = C.bits, p = C.lencode, g = C.distcode, _ = (1 << C.lenbits) - 1, T = (1 << C.distbits) - 1;
1361        e:do {
1362            f < 15 && (h += S[o++] << f, f += 8, h += S[o++] << f, f += 8), y = p[h & _];
1363            t:for (; ;) {
1364                if (w = y >>> 24, h >>>= w, f -= w, w = y >>> 16 & 255, 0 === w) x[a++] = 65535 & y; else {
1365                    if (!(16 & w)) {
1366                        if (0 == (64 & w)) {
1367                            y = p[(65535 & y) + (h & (1 << w) - 1)];
1368                            continue t
1369                        }
1370                        if (32 & w) {
1371                            C.mode = 16191;
1372                            break e
1373                        }
1374                        e.msg = "invalid literal/length code", C.mode = m;
1375                        break e
1376                    }
1377                    b = 65535 & y, w &= 15, w && (f < w && (h += S[o++] << f, f += 8), b += h & (1 << w) - 1, h >>>= w, f -= w), f < 15 && (h += S[o++] << f, f += 8, h += S[o++] << f, f += 8), y = g[h & T];
1378                    o:for (; ;) {
1379                        if (w = y >>> 24, h >>>= w, f -= w, w = y >>> 16 & 255, !(16 & w)) {
1380                            if (0 == (64 & w)) {
1381                                y = g[(65535 & y) + (h & (1 << w) - 1)];
1382                                continue o
1383                            }
1384                            e.msg = "invalid distance code", C.mode = m;
1385                            break e
1386                        }
1387                        if (v = 65535 & y, w &= 15, f < w && (h += S[o++] << f, f += 8, f < w && (h += S[o++] << f, f += 8)), v += h & (1 << w) - 1, v > s) {
1388                            e.msg = "invalid distance too far back", C.mode = m;
1389                            break e
1390                        }
1391                        if (h >>>= w, f -= w, w = a - i, v > w) {
1392                            if (w = v - w, w > c && C.sane) {
1393                                e.msg = "invalid distance too far back", C.mode = m;
1394                                break e
1395                            }
1396                            if (k = 0, M = u, 0 === d) {
1397                                if (k += l - w, w < b) {
1398                                    b -= w;
1399                                    do {
1400                                        x[a++] = u[k++]
1401                                    } while (--w);
1402                                    k = a - v, M = x
1403                                }
1404                            } else if (d < w) {
1405                                if (k += l + d - w, w -= d, w < b) {
1406                                    b -= w;
1407                                    do {
1408                                        x[a++] = u[k++]
1409                                    } while (--w);
1410                                    if (k = 0, d < b) {
1411                                        w = d, b -= w;
1412                                        do {
1413                                            x[a++] = u[k++]
1414                                        } while (--w);
1415                                        k = a - v, M = x
1416                                    }
1417                                }
1418                            } else if (k += d - w, w < b) {
1419                                b -= w;
1420                                do {
1421                                    x[a++] = u[k++]
1422                                } while (--w);
1423                                k = a - v, M = x
1424                            }
1425                            for (; b > 2;) x[a++] = M[k++], x[a++] = M[k++], x[a++] = M[k++], b -= 3;
1426                            b && (x[a++] = M[k++], b > 1 && (x[a++] = M[k++]))
1427                        } else {
1428                            k = a - v;
1429                            do {
1430                                x[a++] = x[k++], x[a++] = x[k++], x[a++] = x[k++], b -= 3
1431                            } while (b > 2);
1432                            b && (x[a++] = x[k++], b > 1 && (x[a++] = x[k++]))
1433                        }
1434                        break
1435                    }
1436                }
1437                break
1438            }
1439        } while (o < n && a < r);
1440        b = f >> 3, o -= b, f -= b << 3, h &= (1 << f) - 1, e.next_in = o, e.next_out = a, e.avail_in = o < n ? n - o + 5 : 5 - (o - n), e.avail_out = a < r ? r - a + 257 : 257 - (a - r), C.hold = h, C.bits = f
1441    };
1442    const f = new Uint16Array([3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0]),
1443        p = new Uint8Array([16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78]),
1444        g = new Uint16Array([1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0]),
1445        _ = new Uint8Array([16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]);
1446    r = (e, t, o, n, a, i, r, s) => {
1447        const l = s.bits;
1448        let c, d, u, h, m, T, y = 0, w = 0, b = 0, v = 0, k = 0, M = 0, S = 0, x = 0, C = 0, D = 0, E = null;
1449        const I = new Uint16Array(16), L = new Uint16Array(16);
1450        let U, B, O, A = null;
1451        for (y = 0; y <= 15; y++) I[y] = 0;
1452        for (w = 0; w < n; w++) I[t[o + w]]++;
1453        for (k = l, v = 15; v >= 1 && 0 === I[v]; v--) ;
1454        if (k > v && (k = v), 0 === v) return a[i++] = 20971520, a[i++] = 20971520, s.bits = 1, 0;
1455        for (b = 1; b < v && 0 === I[b]; b++) ;
1456        for (k < b && (k = b), x = 1, y = 1; y <= 15; y++) if (x <<= 1, x -= I[y], x < 0) return -1;
1457        if (x > 0 && (0 === e || 1 !== v)) return -1;
1458        for (L[1] = 0, y = 1; y < 15; y++) L[y + 1] = L[y] + I[y];
1459        for (w = 0; w < n; w++) 0 !== t[o + w] && (r[L[t[o + w]]++] = w);
1460        if (0 === e ? (E = A = r, T = 20) : 1 === e ? (E = f, A = p, T = 257) : (E = g, A = _, T = 0), D = 0, w = 0, y = b, m = i, M = k, S = 0, u = -1, C = 1 << k, h = C - 1, 1 === e && C > 852 || 2 === e && C > 592) return 1;
1461        for (; ;) {
1462            U = y - S, r[w] + 1 < T ? (B = 0, O = r[w]) : r[w] >= T ? (B = A[r[w] - T], O = E[r[w] - T]) : (B = 96, O = 0), c = 1 << y - S, d = 1 << M, b = d;
1463            do {
1464                d -= c, a[m + (D >> S) + d] = U << 24 | B << 16 | O | 0
1465            } while (0 !== d);
1466            for (c = 1 << y - 1; D & c;) c >>= 1;
1467            if (0 !== c ? (D &= c - 1, D += c) : D = 0, w++, 0 == --I[y]) {
1468                if (y === v) break;
1469                y = t[o + r[w]]
1470            }
1471            if (y > k && (D & h) !== u) {
1472                for (0 === S && (S = k), m += b, M = y - S, x = 1 << M; M + S < v && (x -= I[M + S], !(x <= 0));) M++, x <<= 1;
1473                if (C += 1 << M, 1 === e && C > 852 || 2 === e && C > 592) return 1;
1474                u = D & h, a[u] = k << 24 | M << 16 | m - i | 0
1475            }
1476        }
1477        return 0 !== D && (a[m + D] = y - S << 24 | 4194304), s.bits = k, 0
1478    }, s = {
1479        Z_NO_FLUSH: 0,
1480        Z_PARTIAL_FLUSH: 1,
1481        Z_SYNC_FLUSH: 2,
1482        Z_FULL_FLUSH: 3,
1483        Z_FINISH: 4,
1484        Z_BLOCK: 5,
1485        Z_TREES: 6,
1486        Z_OK: 0,
1487        Z_STREAM_END: 1,
1488        Z_NEED_DICT: 2,
1489        Z_ERRNO: -1,
1490        Z_STREAM_ERROR: -2,
1491        Z_DATA_ERROR: -3,
1492        Z_MEM_ERROR: -4,
vendor: 5,240 bytes, lines 1493-1598
1493        Z_BUF_ERROR: -5,
1494        Z_NO_COMPRESSION: 0,
1495        Z_BEST_SPEED: 1,
1496        Z_BEST_COMPRESSION: 9,
1497        Z_DEFAULT_COMPRESSION: -1,
1498        Z_FILTERED: 1,
1499        Z_HUFFMAN_ONLY: 2,
1500        Z_RLE: 3,
1501        Z_FIXED: 4,
1502        Z_DEFAULT_STRATEGY: 0,
1503        Z_BINARY: 0,
1504        Z_TEXT: 1,
1505        Z_UNKNOWN: 2,
1506        Z_DEFLATED: 8
1507    };
1508    const {
1509            Z_FINISH: T,
1510            Z_BLOCK: y,
1511            Z_TREES: w,
1512            Z_OK: b,
1513            Z_STREAM_END: v,
1514            Z_NEED_DICT: k,
1515            Z_STREAM_ERROR: M,
1516            Z_DATA_ERROR: S,
1517            Z_MEM_ERROR: x,
1518            Z_BUF_ERROR: C,
1519            Z_DEFLATED: D
1520        } = s, E = 16180, I = 16190, L = 16191, U = 16192, B = 16194, O = 16199, A = 16200, F = 16206, $ = 16209,
1521        N = e => (e >>> 24 & 255) + (e >>> 8 & 65280) + ((65280 & e) << 8) + ((255 & e) << 24), H = e => {
1522            if (!e) return 1;
1523            const t = e.state;
1524            return !t || t.strm !== e || t.mode < E || t.mode > 16211 ? 1 : 0
1525        }, R = e => {
1526            if (H(e)) return M;
1527            const t = e.state;
1528            return e.total_in = e.total_out = t.total = 0, e.msg = "", t.wrap && (e.adler = 1 & t.wrap), t.mode = E, t.last = 0, t.havedict = 0, t.flags = -1, t.dmax = 32768, t.head = null, t.hold = 0, t.bits = 0, t.lencode = t.lendyn = new Int32Array(852), t.distcode = t.distdyn = new Int32Array(592), t.sane = 1, t.back = -1, b
1529        }, Z = e => {
1530            if (H(e)) return M;
1531            const t = e.state;
1532            return t.wsize = 0, t.whave = 0, t.wnext = 0, R(e)
1533        }, W = (e, t) => {
1534            let o;
1535            if (H(e)) return M;
1536            const n = e.state;
1537            return t < 0 ? (o = 0, t = -t) : (o = 5 + (t >> 4), t < 48 && (t &= 15)), t && (t < 8 || t > 15) ? M : (null !== n.window && n.wbits !== t && (n.window = null), n.wrap = o, n.wbits = t, Z(e))
1538        }, P = (e, o) => {
1539            if (!e) return M;
1540            const n = new t;
1541            e.state = n, n.strm = e, n.window = null, n.mode = E;
1542            const a = W(e, o);
1543            return a !== b && (e.state = null), a
1544        };
1545    let G, z, X = !0;
1546    const j = e => {
1547        if (X) {
1548            G = new Int32Array(512), z = new Int32Array(32);
1549            let t = 0;
1550            for (; t < 144;) e.lens[t++] = 8;
1551            for (; t < 256;) e.lens[t++] = 9;
1552            for (; t < 280;) e.lens[t++] = 7;
1553            for (; t < 288;) e.lens[t++] = 8;
1554            for (r(1, e.lens, 0, 288, G, 0, e.work, {bits: 9}), t = 0; t < 32;) e.lens[t++] = 5;
1555            r(2, e.lens, 0, 32, z, 0, e.work, {bits: 5}), X = !1
1556        }
1557        e.lencode = G, e.lenbits = 9, e.distcode = z, e.distbits = 5
1558    }, J = (e, t, o, n) => {
1559        let a;
1560        const i = e.state;
1561        return null === i.window && (i.wsize = 1 << i.wbits, i.wnext = 0, i.whave = 0, i.window = new Uint8Array(i.wsize)), n >= i.wsize ? (i.window.set(t.subarray(o - i.wsize, o), 0), i.wnext = 0, i.whave = i.wsize) : (a = i.wsize - i.wnext, a > n && (a = n), i.window.set(t.subarray(o - n, o - n + a), i.wnext), (n -= a) ? (i.window.set(t.subarray(o - n, o), 0), i.wnext = n, i.whave = i.wsize) : (i.wnext += a, i.wnext === i.wsize && (i.wnext = 0), i.whave < i.wsize && (i.whave += a))), 0
1562    };
1563    l = {
1564        inflateReset: Z,
1565        inflateReset2: W,
1566        inflateResetKeep: R,
1567        inflateInit: e => P(e, 15),
1568        inflateInit2: P,
1569        inflate: (e, t) => {
1570            let o, n, s, l, c, d, h, m, f, p, g, _, R, Z, W, P, G, z, X, V, q, K, Q = 0;
1571            const Y = new Uint8Array(4);
1572            let ee, te;
1573            const oe = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
1574            if (H(e) || !e.output || !e.input && 0 !== e.avail_in) return M;
1575            o = e.state, o.mode === L && (o.mode = U), c = e.next_out, s = e.output, h = e.avail_out, l = e.next_in, n = e.input, d = e.avail_in, m = o.hold, f = o.bits, p = d, g = h, K = b;
1576            e:for (; ;) switch (o.mode) {
1577                case E:
1578                    if (0 === o.wrap) {
1579                        o.mode = U;
1580                        break
1581                    }
1582                    for (; f < 16;) {
1583                        if (0 === d) break e;
1584                        d--, m += n[l++] << f, f += 8
1585                    }
1586                    if (2 & o.wrap && 35615 === m) {
1587                        0 === o.wbits && (o.wbits = 15), o.check = 0, Y[0] = 255 & m, Y[1] = m >>> 8 & 255, o.check = a(o.check, Y, 2, 0), m = 0, f = 0, o.mode = 16181;
1588                        break
1589                    }
1590                    if (o.head && (o.head.done = !1), !(1 & o.wrap) || (((255 & m) << 8) + (m >> 8)) % 31) {
1591                        e.msg = "incorrect header check", o.mode = $;
1592                        break
1593                    }
1594                    if ((15 & m) !== D) {
1595                        e.msg = "unknown compression method", o.mode = $;
1596                        break
1597                    }
1598                    if (m >>>= 4, f -= 4, q = 8 + (15 & m), 0 === o.wbits && (o.wbits = q), q > 15 || q > o.wbits) {
vendor: 10,287 bytes, lines 1599-1786
1599                        e.msg = "invalid window size", o.mode = $;
1600                        break
1601                    }
1602                    o.dmax = 1 << o.wbits, o.flags = 0, e.adler = o.check = 1, o.mode = 512 & m ? 16189 : L, m = 0, f = 0;
1603                    break;
1604                case 16181:
1605                    for (; f < 16;) {
1606                        if (0 === d) break e;
1607                        d--, m += n[l++] << f, f += 8
1608                    }
1609                    if (o.flags = m, (255 & o.flags) !== D) {
1610                        e.msg = "unknown compression method", o.mode = $;
1611                        break
1612                    }
1613                    if (57344 & o.flags) {
1614                        e.msg = "unknown header flags set", o.mode = $;
1615                        break
1616                    }
1617                    o.head && (o.head.text = m >> 8 & 1), 512 & o.flags && 4 & o.wrap && (Y[0] = 255 & m, Y[1] = m >>> 8 & 255, o.check = a(o.check, Y, 2, 0)), m = 0, f = 0, o.mode = 16182;
1618                case 16182:
1619                    for (; f < 32;) {
1620                        if (0 === d) break e;
1621                        d--, m += n[l++] << f, f += 8
1622                    }
1623                    o.head && (o.head.time = m), 512 & o.flags && 4 & o.wrap && (Y[0] = 255 & m, Y[1] = m >>> 8 & 255, Y[2] = m >>> 16 & 255, Y[3] = m >>> 24 & 255, o.check = a(o.check, Y, 4, 0)), m = 0, f = 0, o.mode = 16183;
1624                case 16183:
1625                    for (; f < 16;) {
1626                        if (0 === d) break e;
1627                        d--, m += n[l++] << f, f += 8
1628                    }
1629                    o.head && (o.head.xflags = 255 & m, o.head.os = m >> 8), 512 & o.flags && 4 & o.wrap && (Y[0] = 255 & m, Y[1] = m >>> 8 & 255, o.check = a(o.check, Y, 2, 0)), m = 0, f = 0, o.mode = 16184;
1630                case 16184:
1631                    if (1024 & o.flags) {
1632                        for (; f < 16;) {
1633                            if (0 === d) break e;
1634                            d--, m += n[l++] << f, f += 8
1635                        }
1636                        o.length = m, o.head && (o.head.extra_len = m), 512 & o.flags && 4 & o.wrap && (Y[0] = 255 & m, Y[1] = m >>> 8 & 255, o.check = a(o.check, Y, 2, 0)), m = 0, f = 0
1637                    } else o.head && (o.head.extra = null);
1638                    o.mode = 16185;
1639                case 16185:
1640                    if (1024 & o.flags && (_ = o.length, _ > d && (_ = d), _ && (o.head && (q = o.head.extra_len - o.length, o.head.extra || (o.head.extra = new Uint8Array(o.head.extra_len)), o.head.extra.set(n.subarray(l, l + _), q)), 512 & o.flags && 4 & o.wrap && (o.check = a(o.check, n, _, l)), d -= _, l += _, o.length -= _), o.length)) break e;
1641                    o.length = 0, o.mode = 16186;
1642                case 16186:
1643                    if (2048 & o.flags) {
1644                        if (0 === d) break e;
1645                        _ = 0;
1646                        do {
1647                            q = n[l + _++], o.head && q && o.length < 65536 && (o.head.name += String.fromCharCode(q))
1648                        } while (q && _ < d);
1649                        if (512 & o.flags && 4 & o.wrap && (o.check = a(o.check, n, _, l)), d -= _, l += _, q) break e
1650                    } else o.head && (o.head.name = null);
1651                    o.length = 0, o.mode = 16187;
1652                case 16187:
1653                    if (4096 & o.flags) {
1654                        if (0 === d) break e;
1655                        _ = 0;
1656                        do {
1657                            q = n[l + _++], o.head && q && o.length < 65536 && (o.head.comment += String.fromCharCode(q))
1658                        } while (q && _ < d);
1659                        if (512 & o.flags && 4 & o.wrap && (o.check = a(o.check, n, _, l)), d -= _, l += _, q) break e
1660                    } else o.head && (o.head.comment = null);
1661                    o.mode = 16188;
1662                case 16188:
1663                    if (512 & o.flags) {
1664                        for (; f < 16;) {
1665                            if (0 === d) break e;
1666                            d--, m += n[l++] << f, f += 8
1667                        }
1668                        if (4 & o.wrap && m !== (65535 & o.check)) {
1669                            e.msg = "header crc mismatch", o.mode = $;
1670                            break
1671                        }
1672                        m = 0, f = 0
1673                    }
1674                    o.head && (o.head.hcrc = o.flags >> 9 & 1, o.head.done = !0), e.adler = o.check = 0, o.mode = L;
1675                    break;
1676                case 16189:
1677                    for (; f < 32;) {
1678                        if (0 === d) break e;
1679                        d--, m += n[l++] << f, f += 8
1680                    }
1681                    e.adler = o.check = N(m), m = 0, f = 0, o.mode = I;
1682                case I:
1683                    if (0 === o.havedict) return e.next_out = c, e.avail_out = h, e.next_in = l, e.avail_in = d, o.hold = m, o.bits = f, k;
1684                    e.adler = o.check = 1, o.mode = L;
1685                case L:
1686                    if (t === y || t === w) break e;
1687                case U:
1688                    if (o.last) {
1689                        m >>>= 7 & f, f -= 7 & f, o.mode = F;
1690                        break
1691                    }
1692                    for (; f < 3;) {
1693                        if (0 === d) break e;
1694                        d--, m += n[l++] << f, f += 8
1695                    }
1696                    switch (o.last = 1 & m, m >>>= 1, f -= 1, 3 & m) {
1697                        case 0:
1698                            o.mode = 16193;
1699                            break;
1700                        case 1:
1701                            if (j(o), o.mode = O, t === w) {
1702                                m >>>= 2, f -= 2;
1703                                break e
1704                            }
1705                            break;
1706                        case 2:
1707                            o.mode = 16196;
1708                            break;
1709                        case 3:
1710                            e.msg = "invalid block type", o.mode = $
1711                    }
1712                    m >>>= 2, f -= 2;
1713                    break;
1714                case 16193:
1715                    for (m >>>= 7 & f, f -= 7 & f; f < 32;) {
1716                        if (0 === d) break e;
1717                        d--, m += n[l++] << f, f += 8
1718                    }
1719                    if ((65535 & m) != (m >>> 16 ^ 65535)) {
1720                        e.msg = "invalid stored block lengths", o.mode = $;
1721                        break
1722                    }
1723                    if (o.length = 65535 & m, m = 0, f = 0, o.mode = B, t === w) break e;
1724                case B:
1725                    o.mode = 16195;
1726                case 16195:
1727                    if (_ = o.length, _) {
1728                        if (_ > d && (_ = d), _ > h && (_ = h), 0 === _) break e;
1729                        s.set(n.subarray(l, l + _), c), d -= _, l += _, h -= _, c += _, o.length -= _;
1730                        break
1731                    }
1732                    o.mode = L;
1733                    break;
1734                case 16196:
1735                    for (; f < 14;) {
1736                        if (0 === d) break e;
1737                        d--, m += n[l++] << f, f += 8
1738                    }
1739                    if (o.nlen = 257 + (31 & m), m >>>= 5, f -= 5, o.ndist = 1 + (31 & m), m >>>= 5, f -= 5, o.ncode = 4 + (15 & m), m >>>= 4, f -= 4, o.nlen > 286 || o.ndist > 30) {
1740                        e.msg = "too many length or distance symbols", o.mode = $;
1741                        break
1742                    }
1743                    o.have = 0, o.mode = 16197;
1744                case 16197:
1745                    for (; o.have < o.ncode;) {
1746                        for (; f < 3;) {
1747                            if (0 === d) break e;
1748                            d--, m += n[l++] << f, f += 8
1749                        }
1750                        o.lens[oe[o.have++]] = 7 & m, m >>>= 3, f -= 3
1751                    }
1752                    for (; o.have < 19;) o.lens[oe[o.have++]] = 0;
1753                    if (o.lencode = o.lendyn, o.lenbits = 7, ee = {bits: o.lenbits}, K = r(0, o.lens, 0, 19, o.lencode, 0, o.work, ee), o.lenbits = ee.bits, K) {
1754                        e.msg = "invalid code lengths set", o.mode = $;
1755                        break
1756                    }
1757                    o.have = 0, o.mode = 16198;
1758                case 16198:
1759                    for (; o.have < o.nlen + o.ndist;) {
1760                        for (; Q = o.lencode[m & (1 << o.lenbits) - 1], W = Q >>> 24, P = Q >>> 16 & 255, G = 65535 & Q, !(W <= f);) {
1761                            if (0 === d) break e;
1762                            d--, m += n[l++] << f, f += 8
1763                        }
1764                        if (G < 16) m >>>= W, f -= W, o.lens[o.have++] = G; else {
1765                            if (16 === G) {
1766                                for (te = W + 2; f < te;) {
1767                                    if (0 === d) break e;
1768                                    d--, m += n[l++] << f, f += 8
1769                                }
1770                                if (m >>>= W, f -= W, 0 === o.have) {
1771                                    e.msg = "invalid bit length repeat", o.mode = $;
1772                                    break
1773                                }
1774                                q = o.lens[o.have - 1], _ = 3 + (3 & m), m >>>= 2, f -= 2
1775                            } else if (17 === G) {
1776                                for (te = W + 3; f < te;) {
1777                                    if (0 === d) break e;
1778                                    d--, m += n[l++] << f, f += 8
1779                                }
1780                                m >>>= W, f -= W, q = 0, _ = 3 + (7 & m), m >>>= 3, f -= 3
1781                            } else {
1782                                for (te = W + 7; f < te;) {
1783                                    if (0 === d) break e;
1784                                    d--, m += n[l++] << f, f += 8
1785                                }
1786                                m >>>= W, f -= W, q = 0, _ = 11 + (127 & m), m >>
vendor: 4,150 bytes, lines 1786-1861
1786>= 7, f -= 7
1787                            }
1788                            if (o.have + _ > o.nlen + o.ndist) {
1789                                e.msg = "invalid bit length repeat", o.mode = $;
1790                                break
1791                            }
1792                            for (; _--;) o.lens[o.have++] = q
1793                        }
1794                    }
1795                    if (o.mode === $) break;
1796                    if (0 === o.lens[256]) {
1797                        e.msg = "invalid code -- missing end-of-block", o.mode = $;
1798                        break
1799                    }
1800                    if (o.lenbits = 9, ee = {bits: o.lenbits}, K = r(1, o.lens, 0, o.nlen, o.lencode, 0, o.work, ee), o.lenbits = ee.bits, K) {
1801                        e.msg = "invalid literal/lengths set", o.mode = $;
1802                        break
1803                    }
1804                    if (o.distbits = 6, o.distcode = o.distdyn, ee = {bits: o.distbits}, K = r(2, o.lens, o.nlen, o.ndist, o.distcode, 0, o.work, ee), o.distbits = ee.bits, K) {
1805                        e.msg = "invalid distances set", o.mode = $;
1806                        break
1807                    }
1808                    if (o.mode = O, t === w) break e;
1809                case O:
1810                    o.mode = A;
1811                case A:
1812                    if (d >= 6 && h >= 258) {
1813                        e.next_out = c, e.avail_out = h, e.next_in = l, e.avail_in = d, o.hold = m, o.bits = f, i(e, g), c = e.next_out, s = e.output, h = e.avail_out, l = e.next_in, n = e.input, d = e.avail_in, m = o.hold, f = o.bits, o.mode === L && (o.back = -1);
1814                        break
1815                    }
1816                    for (o.back = 0; Q = o.lencode[m & (1 << o.lenbits) - 1], W = Q >>> 24, P = Q >>> 16 & 255, G = 65535 & Q, !(W <= f);) {
1817                        if (0 === d) break e;
1818                        d--, m += n[l++] << f, f += 8
1819                    }
1820                    if (P && 0 == (240 & P)) {
1821                        for (z = W, X = P, V = G; Q = o.lencode[V + ((m & (1 << z + X) - 1) >> z)], W = Q >>> 24, P = Q >>> 16 & 255, G = 65535 & Q, !(z + W <= f);) {
1822                            if (0 === d) break e;
1823                            d--, m += n[l++] << f, f += 8
1824                        }
1825                        m >>>= z, f -= z, o.back += z
1826                    }
1827                    if (m >>>= W, f -= W, o.back += W, o.length = G, 0 === P) {
1828                        o.mode = 16205;
1829                        break
1830                    }
1831                    if (32 & P) {
1832                        o.back = -1, o.mode = L;
1833                        break
1834                    }
1835                    if (64 & P) {
1836                        e.msg = "invalid literal/length code", o.mode = $;
1837                        break
1838                    }
1839                    o.extra = 15 & P, o.mode = 16201;
1840                case 16201:
1841                    if (o.extra) {
1842                        for (te = o.extra; f < te;) {
1843                            if (0 === d) break e;
1844                            d--, m += n[l++] << f, f += 8
1845                        }
1846                        o.length += m & (1 << o.extra) - 1, m >>>= o.extra, f -= o.extra, o.back += o.extra
1847                    }
1848                    o.was = o.length, o.mode = 16202;
1849                case 16202:
1850                    for (; Q = o.distcode[m & (1 << o.distbits) - 1], W = Q >>> 24, P = Q >>> 16 & 255, G = 65535 & Q, !(W <= f);) {
1851                        if (0 === d) break e;
1852                        d--, m += n[l++] << f, f += 8
1853                    }
1854                    if (0 == (240 & P)) {
1855                        for (z = W, X = P, V = G; Q = o.distcode[V + ((m & (1 << z + X) - 1) >> z)], W = Q >>> 24, P = Q >>> 16 & 255, G = 65535 & Q, !(z + W <= f);) {
1856                            if (0 === d) break e;
1857                            d--, m += n[l++] << f, f += 8
1858                        }
1859                        m >>>= z, f -= z, o.back += z
1860                    }
1861                    if (m >>>= W, f -= W, o.back += W, 64 & P) {
vendor: 6,878 bytes, lines 1862-1992
1862                        e.msg = "invalid distance code", o.mode = $;
1863                        break
1864                    }
1865                    o.offset = G, o.extra = 15 & P, o.mode = 16203;
1866                case 16203:
1867                    if (o.extra) {
1868                        for (te = o.extra; f < te;) {
1869                            if (0 === d) break e;
1870                            d--, m += n[l++] << f, f += 8
1871                        }
1872                        o.offset += m & (1 << o.extra) - 1, m >>>= o.extra, f -= o.extra, o.back += o.extra
1873                    }
1874                    if (o.offset > o.dmax) {
1875                        e.msg = "invalid distance too far back", o.mode = $;
1876                        break
1877                    }
1878                    o.mode = 16204;
1879                case 16204:
1880                    if (0 === h) break e;
1881                    if (_ = g - h, o.offset > _) {
1882                        if (_ = o.offset - _, _ > o.whave && o.sane) {
1883                            e.msg = "invalid distance too far back", o.mode = $;
1884                            break
1885                        }
1886                        _ > o.wnext ? (_ -= o.wnext, R = o.wsize - _) : R = o.wnext - _, _ > o.length && (_ = o.length), Z = o.window
1887                    } else Z = s, R = c - o.offset, _ = o.length;
1888                    _ > h && (_ = h), h -= _, o.length -= _;
1889                    do {
1890                        s[c++] = Z[R++]
1891                    } while (--_);
1892                    0 === o.length && (o.mode = A);
1893                    break;
1894                case 16205:
1895                    if (0 === h) break e;
1896                    s[c++] = o.length, h--, o.mode = A;
1897                    break;
1898                case F:
1899                    if (o.wrap) {
1900                        for (; f < 32;) {
1901                            if (0 === d) break e;
1902                            d--, m |= n[l++] << f, f += 8
1903                        }
1904                        if (g -= h, e.total_out += g, o.total += g, 4 & o.wrap && g && (e.adler = o.check = o.flags ? a(o.check, s, g, c - g) : u(o.check, s, g, c - g)), g = h, 4 & o.wrap && (o.flags ? m : N(m)) !== o.check) {
1905                            e.msg = "incorrect data check", o.mode = $;
1906                            break
1907                        }
1908                        m = 0, f = 0
1909                    }
1910                    o.mode = 16207;
1911                case 16207:
1912                    if (o.wrap && o.flags) {
1913                        for (; f < 32;) {
1914                            if (0 === d) break e;
1915                            d--, m += n[l++] << f, f += 8
1916                        }
1917                        if (4 & o.wrap && m !== (4294967295 & o.total)) {
1918                            e.msg = "incorrect length check", o.mode = $;
1919                            break
1920                        }
1921                        m = 0, f = 0
1922                    }
1923                    o.mode = 16208;
1924                case 16208:
1925                    K = v;
1926                    break e;
1927                case $:
1928                    K = S;
1929                    break e;
1930                case 16210:
1931                    return x;
1932                default:
1933                    return M
1934            }
1935            return e.next_out = c, e.avail_out = h, e.next_in = l, e.avail_in = d, o.hold = m, o.bits = f, (o.wsize || g !== e.avail_out && o.mode < $ && (o.mode < F || t !== T)) && J(e, e.output, e.next_out, g - e.avail_out), p -= e.avail_in, g -= e.avail_out, e.total_in += p, e.total_out += g, o.total += g, 4 & o.wrap && g && (e.adler = o.check = o.flags ? a(o.check, s, g, e.next_out - g) : u(o.check, s, g, e.next_out - g)), e.data_type = o.bits + (o.last ? 64 : 0) + (o.mode === L ? 128 : 0) + (o.mode === O || o.mode === B ? 256 : 0), (0 === p && 0 === g || t === T) && K === b && (K = C), K
1936        },
1937        inflateEnd: e => {
1938            if (H(e)) return M;
1939            let t = e.state;
1940            return t.window && (t.window = null), e.state = null, b
1941        },
1942        inflateGetHeader: (e, t) => {
1943            if (H(e)) return M;
1944            const o = e.state;
1945            return 0 == (2 & o.wrap) ? M : (o.head = t, t.done = !1, b)
1946        },
1947        inflateSetDictionary: (e, t) => {
1948            const o = t.length;
1949            let n, a, i;
1950            return H(e) ? M : (n = e.state, 0 !== n.wrap && n.mode !== I ? M : n.mode === I && (a = 1, a = u(a, t, o, 0), a !== n.check) ? S : (i = J(e, t, o, o), i ? (n.mode = 16210, x) : (n.havedict = 1, b)))
1951        },
1952        inflateInfo: "pako inflate (from Nodeca project)"
1953    };
1954    const V = (e, t) => Object.prototype.hasOwnProperty.call(e, t);
1955    c = function (e) {
1956        const t = Array.prototype.slice.call(arguments, 1);
1957        for (; t.length;) {
1958            const o = t.shift();
1959            if (o) {
1960                if ("object" != typeof o) throw new TypeError(o + "must be non-object");
1961                for (const t in o) V(o, t) && (e[t] = o[t])
1962            }
1963        }
1964        return e
1965    }, d = e => {
1966        let t = 0;
1967        for (let o = 0, n = e.length; o < n; o++) t += e[o].length;
1968        const o = new Uint8Array(t);
1969        for (let t = 0, n = 0, a = e.length; t < a; t++) {
1970            let a = e[t];
1971            o.set(a, n), n += a.length
1972        }
1973        return o
1974    };
1975    let q = !0;
1976    try {
1977        String.fromCharCode.apply(null, new Uint8Array(1))
1978    } catch (e) {
1979        q = !1
1980    }
1981    const K = new Uint8Array(256);
1982    for (let e = 0; e < 256; e++) K[e] = e >= 252 ? 6 : e >= 248 ? 5 : e >= 240 ? 4 : e >= 224 ? 3 : e >= 192 ? 2 : 1;
1983    K[254] = K[254] = 1;
1984    var Q = e => {
1985        if ("function" == typeof TextEncoder && TextEncoder.prototype.encode) return (new TextEncoder).encode(e);
1986        let t, o, n, a, i, r = e.length, s = 0;
1987        for (a = 0; a < r; a++) o = e.charCodeAt(a), 55296 == (64512 & o) && a + 1 < r && (n = e.charCodeAt(a + 1), 56320 == (64512 & n) && (o = 65536 + (o - 55296 << 10) + (n - 56320), a++)), s += o < 128 ? 1 : o < 2048 ? 2 : o < 65536 ? 3 : 4;
1988        for (t = new Uint8Array(s), i = 0, a = 0; i < s; a++) o = e.charCodeAt(a), 55296 == (64512 & o) && a + 1 < r && (n = e.charCodeAt(a + 1), 56320 == (64512 & n) && (o = 65536 + (o - 55296 << 10) + (n - 56320), a++)), o < 128 ? t[i++] = o : o < 2048 ? (t[i++] = 192 | o >>> 6, t[i++] = 128 | 63 & o) : o < 65536 ? (t[i++] = 224 | o >>> 12, t[i++] = 128 | o >>> 6 & 63, t[i++] = 128 | 63 & o) : (t[i++] = 240 | o >>> 18, t[i++] = 128 | o >>> 12 & 63, t[i++] = 128 | o >>> 6 & 63, t[i++] = 128 | 63 & o);
1989        return t
1990    }, Y = (e, t) => {
1991        const o = t || e.length;
1992        if ("function" == typeof TextDecoder && TextDecoder.prototype.decode) return (new TextDecoder).decode(e.subarray(0, t));
1993        let n, a;
1994        const i = new Array(2 * o);
1995        for (a = 0, n = 0; n < o;) {
1996            let t = e[n++];
1997            if (t < 128) {
1998                i[a++] = t;
1999                continue
2000            }
2001            let r = K[t];
2002            if (r > 4) i[a++] = 65533, n += r - 1; else {
2003                for (t &= 2 === r ? 31 : 3 === r ? 15 : 7; r > 1 && n < o;) t = t << 6 | 63 & e[n++], r--;
2004                r > 1 ? i[a++] = 65533 : t < 65536 ? i[a++] = t : (t -= 65536, i[a++] = 55296 | t >> 10 & 1023, i[a++] = 56320 | 1023 & t)
2005            }
2006        }
2007        return ((e, t) => {
2008            if (t < 65534 && e.subarray && q) return String.fromCharCode.apply(null, e.length === t ? e : e.subarray(0, t));
2009            let o = "";
2010            for (let n = 0; n < t; n++) o += String.fromCharCode(e[n]);
2011            return o
2012        })(i, a)
2013    }, ee = (e, t) => {
2014        (t = t || e.length) > e.length && (t = e.length);
2015        let o = t - 1;
2016        for (; o >= 0 && 128 == (192 & e[o]);) o--;
2017        return o < 0 || 0 === o ? t : o + K[e[o]] > t ? o : t
2018    }, te = {
2019        2: "need dictionary",
2020        1: "stream end",
2021        0: "",
2022        "-1": "file error",
2023        "-2": "stream error",
2024        "-3": "data error",
2025        "-4": "insufficient memory",
2026        "-5": "buffer error",
2027        "-6": "incompatible version"
2028    }, oe = function () {
2029        this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0
2030    }, ne = function () {
2031        this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1
2032    };
2033    const ae = Object.prototype.toString, {
2034        Z_NO_FLUSH: ie,
2035        Z_FINISH: re,
2036        Z_OK: se,
2037        Z_STREAM_END: le,
2038        Z_NEED_DICT: ce,
2039        Z_STREAM_ERROR: de,
2040        Z_DATA_ERROR: ue,
2041        Z_MEM_ERROR: he
2042    } = s;
2043    o.prototype.push = function (e, t) {
2044        const o = this.strm, n = this.options.chunkSize, a = this.options.dictionary;
2045        let i, r, s;
2046        if (this.ended) return !1;
2047        for (r = t === ~~t ? t : !0 === t ? re : ie, o.input = "[object ArrayBuffer]" === ae.call(e) ? new Uint8Array(e) : e, o.next_in = 0, o.avail_in = o.input.length; ;) {
2048            for (0 === o.avail_out && (o.output = new Uint8Array(n), o.next_out = 0, o.avail_out = n), i = l.inflate(o, r), i === ce && a && (i = l.inflateSetDictionary(o, a), i === se ? i = l.inflate(o, r) : i === ue && (i = ce)); o.avail_in > 0 && i === le && o.state.wrap > 0 && 0 !== e[o.next_in];) l.inflateReset(o), i = l.inflate(o, r);
2049            switch (i) {
2050                case de:
2051                case ue:
2052                case ce:
2053                case he:
2054                    return this.onEnd(i), this.ended = !0, !1
2055            }
2056            if (s = o.avail_out, o.next_out && (0 === o.avail_out || i === le)) if ("string" === this.options.to) {
2057                let e = ee(o.output, o.next_out), t = o.next_out - e, a = Y(o.output, e);
2058                o.next_out = t, o.avail_out = n - t, t && o.output.set(o.output.subarray(e, e + t), 0), this.onData(a)
2059            } else this.onData(o.output.length === o.next_out ? o.output : o.output.subarray(0, o.next_out));
2060            if (i !== se || 0 !== s) {
2061                if (i === le) return i = l.inflateEnd(this.strm), this.onEnd(i), this.ended = !0, !0;
2062                if (0 === o.avail_in) break
2063            }
2064        }
2065        return !0
2066    }, o.prototype.onData = function (e) {
2067        this.chunks.push(e)
2068    }, o.prototype.onEnd = function (e) {
2069        e === se && (this.result = "string" === this.options.to ? this.chunks.join("") : d(this.chunks)), this.chunks = [], this.err = e, this.msg = this.strm.msg
2070    };
2071    var me = o, fe = n, pe = function (e, t) {
2072        return (t = t || {}).raw = !0, n(e, t)
2073    }, ge = n, _e = s, Te = {Inflate: me, inflate: fe, inflateRaw: pe, ungzip: ge, constants: _e};
2074    e.Inflate = me, e.constants = _e, e.default = Te, e.inflate = fe, e.inflateRaw = pe, e.ungzip = ge, Object.defineProperty(e, "__esModule", {value: !0})
2075})), wsUtil = {
2076    wsUrl: `wss://${_wsUrl}/production?channels={0}`,
2077    token: "",
2078    socket: null,
2079    wsIntervalId: null,
2080    wstimeout: 5e3,
2081    wstimer: null,
2082    tokenCacheKey: "WebSocketToken",
2083    channels: null,
2084    wsHandler: function () {
2085    },
2086    startHandler: function () {
2087    },
2088    stopHandler: function () {
2089    },
2090    getToken: function () {
2091        return new Promise(((e, t) => {
2092        }))
2093    },
2094    connectWs: function (e, t, o, n) {
2095        console.log("connectWs"), e && (this.channels = e), t && (this.wsHandler = t), o && (this.startHandler = o), n && (this.stopHandler = n), this.createWs()
2096    },
2097    createWs: function () {return;
2098        var e, t = this;
2099        (null == this.socket || this.socket.readyState != WebSocket.OPEN || this.socket.readyState != WebSocket.CONNECTING) && (e = this.wsUrl.replace("{0}", encodeURIComponent(this.channels.join(","))).replace("{1}", this.token), this.socket = new WebSocket(e), this.wstimer = setTimeout((() => {
2100            t.socket.close(), console.log("ws timeout")
2101        }), this.wstimeout), this.socket.onmessage = function (e) {
2102            var o = e.data;
2103            if ("ok" != o) {
2104                new FileReader;
2105                let n = JSON.parse(o);
2106                null != (e = JSON.parse(pako.inflate(n, {to: "string"}))) && t.wsHandler(e)
2107            }
2108        }, this.socket.onopen = function () {
2109            t.wstimer && clearTimeout(t.wstimer), console.log("ws open"), t.updateState()
2110        }, this.socket.onclose = function () {
2111            t.wstimer && clearTimeout(t.wstimer), console.log("ws close"), t.token = "", t.updateState()
2112        }, this.socket.onerror = function () {
2113            t.wstimer && clearTimeout(t.wstimer), console.log("ws error")
2114        })
2115    },
2116    updateState: function () {
2117        function e() {
2118            t.startHandler(), t.wsIntervalId || (t.wsIntervalId = setInterval((() => {
2119                t.connectWs()
2120            }), 3e4))
2121        }
2122
2123        var t = this;
2124        if (this.socket) switch (this.socket.readyState) {
2125            case WebSocket.CLOSED:
2126            case WebSocket.CLOSING:
2127            case WebSocket.CONNECTING:
2128                e();
2129                break;
2130            case WebSocket.OPEN:
2131                t.stopHandler(), t.wsIntervalId && (clearInterval(t.wsIntervalId), t.wsIntervalId = null);
2132                break;
2133            default:
2134                e()
2135        } else e()
2136    },
2137    changeChannel: function (e) {
2138        if (this.channels = e, this.socket && this.socket.readyState === WebSocket.OPEN) {
2139            var t = {type: 0, channels: e};
2140            this.socket.send(JSON.stringify(t))
2141        }
2142    },
2143    closeWs: function () {
2144        this.socket.close()
2145    }
2146};
2147const getMobileDetect = e => {
2148    const t = () => Boolean(e.match(/Android/i)), o = () => Boolean(e.match(/iPhone|iPad|iPod/i)),
2149        n = () => Boolean(e.match(/SSR/i)),
2150        a = () => Boolean(t() || o() || Boolean(e.match(/Opera Mini/i)) || Boolean(e.match(/IEMobile/i)));
2151    return {isMobile: a, isDesktop: () => Boolean(!a() && !n()), isAndroid: t, isIos: o, isSSR: n}
2152}, useMobileDetect = () => {
2153    const e = "undefined" == typeof navigator ? "SSR" : navigator.userAgent;
2154    return getMobileDetect(e)
2155};
2156
2157function addMaskForTable(e) {
2158    $(e).each((function () {
2159        $(this).on("scroll", (function () {
2160            $(this).scrollLeft() > 18 ? $(this).addClass("d-after-none") : $(this).removeClass("d-after-none")
2161        }))
2162    }))
2163}
2164
2165function scrollToActiveMenu(e, t) {
2166    let o = $(e), n = $(t);
2167    if (n.length) {
2168        let e = o.width(), t = n.offset().left - e / 2 + n.outerWidth() / 2;
2169        o.animate({scrollLeft: t}, 500)
2170    }
2171}
2172
2173function changeMenuText(e) {
2174    let t = $(e);
2175    t.find('a[name="4"]').text(t.find('a[name="4"]').text().replace("châu Á", "Châu Á")), t.find('a[name="5"]').text(t.find('a[name="5"]').text().replace("châu Á", "Châu Á")), t.find('a[name="6"]').text(t.find('a[name="6"]').text().replace("T/X", "Tài Xỉu"))
2176}
2177
2178var getUrlParameter = function (e) {
2179    var t, o, n = window.location.search.substring(1).split("&");
2180    for (o = 0; o < n.length; o++) if ((t = n[o].split("="))[0] === e) return void 0 === t[1] || decodeURIComponent(t[1]);
2181    return !1
2182};
2183
2184function updateDropdownSelection(e, {handleClickOption: t} = {
2185    handleClickOption: () => {
2186    }
2187}) {
2188    const o = document.getElementById(e);
2189    if (!o) return;
2190    const n = o.querySelector(".custom-select"), a = o.querySelectorAll(".custom-option");
2191    let i = n.textContent.trim().toLowerCase();
2192    a.forEach((e => {
2193        e.classList.toggle("selected", e.textContent.trim().toLowerCase() === i)
2194    })), o.addEventListener("click", (e => {
2195        const o = e.target.closest(".custom-option");
2196        o && (n.textContent = o.textContent, i = o.textContent.trim().toLowerCase(), a.forEach((e => e.classList.remove("selected"))), o.classList.add("selected"), t({
2197            value: o.getAttribute("value"),
2198            text: o.textContent
2199        }))
2200    })), o.addEventListener("mouseover", (e => {
2201        e.target.closest(".custom-option") && a.forEach((e => e.classList.remove("selected")))
2202    })), o.addEventListener("mouseout", (e => {
2203        e.target.closest(".custom-option") && a.forEach((e => {
2204            e.classList.toggle("selected", e.textContent.trim().toLowerCase() === i)
2205        }))
2206    }))
2207}
2208
2209function parseSelection(e, t, o = "") {
2210    var n = document.getElementById(e);
2211    if (!n || !n.length) return;
2212    const a = $("#" + e).parent();
2213    var i = [];
2214    let r = "",
2215        s = `<div class="custom-select">${n.options[t] ? n.options[t].text.trim() : n.options[0].text.trim()}</div>`;
2216    for (var l = 0; l < n.options.length; l++) {
2217        var c = n.options[l], d = {value: c.value, text: c.text.trim()};
2218        i.push(d), r += `<div value="${c.value}" onclick="changeSelectValue(${e}, ${c.value})" class="custom-option ${t == l ? "selected" : ""}"> ${c.text.trim()} </div>`
2219    }
2220    let u = `\n    <div class="custom-select-02">\n        ${s}\n        <div class="custom-options scroll-custom">\n            ${r}\n        </div>\n    </div>\n    `;
2221    const h = a.find(".box-flex-select");
2222    0 !== h.length ? h.append(u) : a.append(`\n    <div class="box-flex-select d-flex ${o} ">\n        ${u}\n    </div>\n    `), a.find("select").hide()
2223}
2224
2225function changeSelectValue(e, t) {
2226    $(e).val(t).trigger("change")
2227}
2228
2229function addMatchToFavouriteList() {
2230    try {
2231        let e = Config.getFavMatchIds(), t = $(this), o = parseInt(t.attr("mid")), n = e.indexOf(o.toString());
2232        n <= -1 ? e.push(o.toString()) : e.splice(n, 1), Config.setFavMatchIds(e)
2233    } catch (e) {
2234    }
2235}
2236
2237function addLeagueToFavouriteList() {
2238    try {
2239        let e = Config.getFavLeagueIds(), t = $(this), o = parseInt(t.attr("lid")), n = e.indexOf(o.toString());
2240        n <= -1 ? e.push(o.toString()) : e.splice(n, 1), Config.setFavLeagueIds(e)
2241    } catch (e) {
2242        console.log(e)
2243    }
2244}
2245
2246function getCurrentTimeZone() {
2247    const e = getCookie("Time_Zone") || getCookie("Default_TimeZone") || 7;
2248    return Number.parseFloat(e)
2249}
2250
2251$(document).ready((function () {
2252    function e(e) {
2253        const t = document.querySelectorAll(e);
2254        0 !== t.length && t.forEach((e => {
2255            const t = e.getElementsByClassName("home"), o = e.getElementsByClassName("guest");
2256
2257            function n(e, t) {
2258                for (let o = 0; o < e.length; o++) {
2259                    const n = e[o].getElementsByTagName("img");
2260                    for (let e = 0; e < n.length; e++) n[e].src.includes("football1.") && (n[e].src = t)
2261                }
2262            }
2263
2264            n(t, "/assets/images/home_1.svg"), n(o, "/assets/images/away_1.svg")
2265        }))
2266    }
2267
2268    function t() {
2269        var e = document.getElementById("homepage");
2270        return e && "true" === e.getAttribute("data-home")
2271    }
2272
2273    e(".fbheader.desk"), e(".fbheader.mobile"), e("#porletP1"), e("#porletP2"), e("#porletP5"), e("#porletP6"), e(".table-charts"), e("#fbheader"), e(".event-football-detail-right-content"), function () {
2274        const e = document.getElementById("navigation-home"), o = document.getElementById("navigation-hot"),
2275            n = document.getElementById("navigation-new");
2276        e && (e.addEventListener("click", (function () {
2277            o.classList.remove("active-sp"), n.classList.remove("active-sp"), e.classList.add("active-sp"), window.location.href = "/?ishot=0", t() || (localStorage.setItem("filterApplied", "home"), window.location.href = "?is_host")
2278        })), o.addEventListener("click", (function () {
2279            e.classList.remove("active-sp"), n.classList.remove("active-sp"), o.classList.add("active-sp"), window.location.href = "/?ishot=1", t() || (localStorage.setItem("filterApplied", "hot"), window.location.href = "/")
2280        })), n.addEventListener("click", (function () {
2281            e.classList.remove("active-sp"), o.classList.remove("active-sp"), n.classList.add("active-sp")
2282        })), window.addEventListener("load", (function () {
2283            const t = localStorage.getItem("filterApplied");
2284            "home" === t ? (e.classList.add("active-sp"), o.classList.remove("active-sp"), localStorage.removeItem("filterApplied")) : "hot" === t && (o.classList.add("active-sp"), e.classList.remove("active-sp"), localStorage.removeItem("filterApplied"))
2285        })))
2286    }()
2287}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.