PageSourceSearch

https://fiu.go.tz/admin/js/visitors-counter/client.min.js

js fiu.go.tz collected 2026-09-29 11:04:47 UTC 63,550 bytes, 1,020 lines download raw bytes

1(function (f, e) {
2    var d = {
3        extend: function (a, c) {
4            for (var h in c) -1 !== "browser cpu device engine os".indexOf(h) && 0 === c[h].length % 2 && (a[h] = c[h].concat(a[h]));
5            return a
6        }, has: function (a, c) {
7            if ("string" === typeof a) return -1 !== c.toLowerCase().indexOf(a.toLowerCase())
8        }, lowerize: function (a) {
9            return a.toLowerCase()
10        }
11    }, n = function () {
12        for (var a, c = 0, h, b, f, m, g, d, n = arguments; c < n.length && !g;) {
13            var l = n[c], p = n[c + 1];
14            if ("undefined" === typeof a) for (f in a = {}, p) m = p[f], "object" === typeof m ? a[m[0]] = e : a[m] = e;
15            for (h = b = 0; h < l.length && !g;) if (g =
16                l[h++].exec(this.getUA())) for (f = 0; f < p.length; f++) d = g[++b], m = p[f], "object" === typeof m && 0 < m.length ? 2 == m.length ? a[m[0]] = "function" == typeof m[1] ? m[1].call(this, d) : m[1] : 3 == m.length ? a[m[0]] = "function" !== typeof m[1] || m[1].exec && m[1].test ? d ? d.replace(m[1], m[2]) : e : d ? m[1].call(this, d, m[2]) : e : 4 == m.length && (a[m[0]] = d ? m[3].call(this, d.replace(m[1], m[2])) : e) : a[m] = d ? d : e;
17            c += 2
18        }
19        return a
20    }, b = function (a, c) {
21        for (var h in c) if ("object" === typeof c[h] && 0 < c[h].length) for (var b = 0; b < c[h].length; b++) {
22            if (d.has(c[h][b], a)) return "?" ===
23            h ? e : h
24        } else if (d.has(c[h], a)) return "?" === h ? e : h;
25        return a
26    }, g = {
27        ME: "4.90",
28        "NT 3.11": "NT3.51",
29        "NT 4.0": "NT4.0",
30        2E3: "NT 5.0",
31        XP: ["NT 5.1", "NT 5.2"],
32        Vista: "NT 6.0",
33        7: "NT 6.1",
34        8: "NT 6.2",
35        "8.1": "NT 6.3",
36        10: "NT 6.4",
37        RT: "ARM"
38    }, p = {
39        browser: [[/(opera\smini)\/((\d+)?[\w\.-]+)/i, /(opera\s[mobiletab]+).+version\/((\d+)?[\w\.-]+)/i, /(opera).+version\/((\d+)?[\w\.]+)/i, /(opera)[\/\s]+((\d+)?[\w\.]+)/i], ["name", "version", "major"], [/\s(opr)\/((\d+)?[\w\.]+)/i], [["name", "Opera"], "version", "major"], [/(kindle)\/((\d+)?[\w\.]+)/i,
40            /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?((\d+)?[\w\.]+)*/i, /(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?((\d+)?[\w\.]*)/i, /(?:ms|\()(ie)\s((\d+)?[\w\.]+)/i, /(rekonq)((?:\/)[\w\.]+)*/i, /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron)\/((\d+)?[\w\.-]+)/i], ["name", "version", "major"], [/(trident).+rv[:\s]((\d+)?[\w\.]+).+like\sgecko/i], [["name", "IE"], "version", "major"], [/(yabrowser)\/((\d+)?[\w\.]+)/i], [["name", "Yandex"], "version", "major"], [/(comodo_dragon)\/((\d+)?[\w\.]+)/i],
41            [["name", /_/g, " "], "version", "major"], [/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?((\d+)?[\w\.]+)/i, /(uc\s?browser|qqbrowser)[\/\s]?((\d+)?[\w\.]+)/i], ["name", "version", "major"], [/(dolfin)\/((\d+)?[\w\.]+)/i], [["name", "Dolphin"], "version", "major"], [/((?:android.+)crmo|crios)\/((\d+)?[\w\.]+)/i], [["name", "Chrome"], "version", "major"], [/version\/((\d+)?[\w\.]+).+?mobile\/\w+\s(safari)/i], ["version", "major", ["name", "Mobile Safari"]], [/version\/((\d+)?[\w\.]+).+?(mobile\s?safari|safari)/i], ["version",
42                "major", "name"], [/webkit.+?(mobile\s?safari|safari)((\/[\w\.]+))/i], ["name", ["major", b, {
43                1: ["/8", "/1", "/3"],
44                2: "/4",
45                "?": "/"
46            }], ["version", b, {
47                "1.0": "/8",
48                "1.2": "/1",
49                "1.3": "/3",
50                "2.0": "/412",
51                "2.0.2": "/416",
52                "2.0.3": "/417",
53                "2.0.4": "/419",
54                "?": "/"
55            }]], [/(konqueror)\/((\d+)?[\w\.]+)/i, /(webkit|khtml)\/((\d+)?[\w\.]+)/i], ["name", "version", "major"], [/(navigator|netscape)\/((\d+)?[\w\.-]+)/i], [["name", "Netscape"], "version", "major"], [/(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?((\d+)?[\w\.\+]+)/i,
56                /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix)\/((\d+)?[\w\.-]+)/i, /(mozilla)\/((\d+)?[\w\.]+).+rv\:.
56+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf)[\/\s]?((\d+)?[\w\.]+)/i, /(links)\s\(((\d+)?[\w\.]+)/i, /(gobrowser)\/?((\d+)?[\w\.]+)*/i, /(ice\s?browser)\/v?((\d+)?[\w\._]+)/i, /(mosaic)[\/\s]((\d+)?[\w\.]+)/i], ["name", "version", "major"]],
57        cpu: [[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i], [["architecture", "amd64"]], [/(ia32(?=;))/i], [["architecture", d.lowerize]], [/((?:i[346]|x)86)[;\)]/i],
58            [["architecture", "ia32"]], [/windows\s(ce|mobile);\sppc;/i], [["architecture", "arm"]], [/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i], [["architecture", /ower/, "", d.lowerize]], [/(sun4\w)[;\)]/i], [["architecture", "sparc"]], [/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+;))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i], [["architecture", d.lowerize]]],
59        device: [[/\((ipad|playbook);[\w\s\);-]+(rim|apple)/i], ["model", "vendor", ["type", "tablet"]], [/applecoremedia\/[\w\.]+ \((ipad)/], ["model", ["vendor",
60            "Apple"], ["type", "tablet"]], [/(apple\s{0,1}tv)/i], [["model", "Apple TV"], ["vendor", "Apple"]], [/(archos)\s(gamepad2?)/i, /(hp).+(touchpad)/i, /(kindle)\/([\w\.]+)/i, /\s(nook)[\w\s]+build\/(\w+)/i, /(dell)\s(strea[kpr\s\d]*[\dko])/i], ["vendor", "model", ["type", "tablet"]], [/(kf[A-z]+)\sbuild\/[\w\.]+.*silk\//i], ["model", ["vendor", "Amazon"], ["type", "tablet"]], [/(sd|kf)[0349hijorstuw]+\sbuild\/[\w\.]+.*silk\//i], [["model", b, {"Fire Phone": ["SD", "KF"]}], ["vendor", "Amazon"], ["type", "mobile"]], [/\((ip[honed|\s\w*]+);.+(apple)/i],
61            ["model", "vendor", ["type", "mobile"]], [/\((ip[honed|\s\w*]+);/i], ["model", ["vendor", "Apple"], ["type", "mobile"]], [/(blackberry)[\s-]?(\w+)/i, /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|huawei|meizu|motorola|polytron)[\s_-]?([\w-]+)*/i, /(hp)\s([\w\s]+\w)/i, /(asus)-?(\w+)/i], ["vendor", "model", ["type", "mobile"]], [/\(bb10;\s(\w+)/i], ["model", ["vendor", "BlackBerry"], ["type", "mobile"]], [/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7)/i], ["model", ["vendor", "Asus"], ["type", "tablet"]],
62            [/(sony)\s(tablet\s[ps])/i], ["vendor", "model", ["type", "tablet"]], [/\s(ouya)\s/i, /(nintendo)\s([wids3u]+)/i], ["vendor", "model", ["type", "console"]], [/android.+;\s(shield)\sbuild/i], ["model", ["vendor", "Nvidia"], ["type", "console"]], [/(playstation\s[3portablevi]+)/i], ["model", ["vendor", "Sony"], ["type", "console"]], [/(sprint\s(\w+))/i], [["vendor", b, {
63                HTC: "APA",
64                Sprint: "Sprint"
65            }], ["model", b, {"Evo Shift 4G": "7373KT"}], ["type", "mobile"]], [/(lenovo)\s?(S(?:5000|6000)+(?:[-][\w+]))/i], ["vendor", "model", ["type",
66                "tablet"]], [/(htc)[;_\s-]+([\w\s]+(?=\))|\w+)*/i, /(zte)-(\w+)*/i, /(alcatel|geeksphone|huawei|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]+)*/i], ["vendor", ["model", /_/g, " "], ["type", "mobile"]], [/[\s\(;](xbox(?:\sone)?)[\s\);]/i], ["model", ["vendor", "Microsoft"], ["type", "console"]], [/(kin\.[onetw]{3})/i], [["model", /\./g, " "], ["vendor", "Microsoft"], ["type", "mobile"]], [/\s((milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?))[\w\s]+build\//i, /(mot)[\s-]?(\w+)*/i], [["vendor", "Motorola"],
67                "model", ["type", "mobile"]], [/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i], ["model", ["vendor", "Motorola"], ["type", "tablet"]], [/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n8000|sgh-t8[56]9|nexus 10))/i, /((SM-T\w+))/i], [["vendor", "Samsung"], "model", ["type", "tablet"]], [/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-n900))/i, /(sam[sung]*)[\s-]*(\w+-?[\w-]*)*/i, /sec-((sgh\w+))/i], [["vendor", "Samsung"], "model", ["type", "mobile"]], [/(samsung);smarttv/i], ["vendor", "model", ["type", "smarttv"]], [/\(dtv[\);].+(aquos)/i],
68            ["model", ["vendor", "Sharp"], ["type", "smarttv"]], [/sie-(\w+)*/i], ["model", ["vendor", "Siemens"], ["type", "mobile"]], [/(maemo|nokia).*(n900|lumia\s\d+)/i, /(nokia)[\s_-]?([\w-]+)*/i], [["vendor", "Nokia"], "model", ["type", "mobile"]], [/android\s3\.[\s\w-;]{10}(a\d{3})/i], ["model", ["vendor", "Acer"], ["type", "tablet"]], [/android\s3\.[\s\w-;]{10}(lg?)-([06cv9]{3,4})/i], [["vendor", "LG"], "model", ["type", "tablet"]], [/(lg) netcast\.tv/i], ["vendor", "model", ["type", "smarttv"]], [/(nexus\s[45]
68)/i, /lg[e;\s\/-]+(\w+)*/i],
69            ["model", ["vendor", "LG"], ["type", "mobile"]], [/android.+(ideatab[a-z0-9\-\s]+)/i], ["model", ["vendor", "Lenovo"], ["type", "tablet"]], [/linux;.+((jolla));/i], ["vendor", "model", ["type", "mobile"]], [/((pebble))app\/[\d\.]+\s/i], ["vendor", "model", ["type", "wearable"]], [/android.+;\s(glass)\s\d/i], ["model", ["vendor", "Google"], ["type", "wearable"]], [/(mobile|tablet);.+rv\:.+gecko\//i], [["type", d.lowerize], "vendor", "model"]],
70        engine: [[/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i,
71            /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, /(icab)[\/\s]([23]\.[\d\.]+)/i], ["name", "version"], [/rv\:([\w\.]+).*(gecko)/i], ["version", "name"]],
72        os: [[/microsoft\s(windows)\s(vista|xp)/i], ["name", "version"], [/(windows)\snt\s6\.2;\s(arm)/i, /(windows\sphone(?:\sos)*|windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i], ["name", ["version", b, g]], [/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i], [["name", "Windows"], ["version", b, g]], [/\((bb)(10);/i], [["name", "BlackBerry"], "version"], [/(blackberry)\w*\/?([\
72w\.]+)*/i, /(tizen)[\/\s]([\w\.]+)/i,
73            /(android|webos|palm\os|qnx|bada|rim\stablet\sos|meego|contiki)[\/\s-]?([\w\.]+)*/i, /linux;.+(sailfish);/i], ["name", "version"], [/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]+)*/i], [["name", "Symbian"], "version"], [/\((series40);/i], ["name"], [/mozilla.+\(mobile;.+gecko.+firefox/i], [["name", "Firefox OS"], "version"], [/(nintendo|playstation)\s([wids3portablevu]+)/i, /(mint)[\/\s\(]?(\w+)*/i, /(mageia|vectorlinux)[;\s]/i, /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i,
74            /(hurd|linux)\s?([\w\.]+)*/i, /(gnu)\s?([\w\.]+)*/i], ["name", "version"], [/(cros)\s[\w]+\s([\w\.]+\w)/i], [["name", "Chromium OS"], "version"], [/(sunos)\s?([\w\.]+\d)*/i], [["name", "Solaris"], "version"], [/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i], ["name", "version"], [/(ip[honead]+)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i], [["name", "iOS"], ["version", /_/g, "."]], [/(mac\sos\sx)\s?([\w\s\.]+\w)*/i, /(macintosh|mac(?=_powerpc)\s)/i], [["name", "Mac OS"], ["version", /_/g, "."]], [/((?:open)?solaris)[\/\s-]?([\w\.]+)*/i,
75            /(haiku)\s(\w+)/i, /(aix)\s((\d)(?=\.|\)|\s)[\w\.]*)*/i, /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms)/i, /(unix)\s?([\w\.]+)*/i], ["name", "version"]]
76    }, q = function (a, c) {
77        if (!(this instanceof q)) return (new q(a, c)).getResult();
78        var h = a || (f && f.navigator && f.navigator.userAgent ? f.navigator.userAgent : ""),
79            b = c ? d.extend(p, c) : p;
80        this.getBrowser = function () {
81            return n.apply(this, b.browser)
82        };
83        this.getCPU = function () {
84            return n.apply(this, b.cpu)
85        };
86        this.getDevice = function () {
87            return n.apply(this, b.device)
88        };
89        this.getEngine =
90            function () {
91                return n.apply(this, b.engine)
92            };
93        this.getOS = function () {
94            return n.apply(this, b.os)
95        };
96        this.getResult = function () {
97            return {
98                ua: this.getUA(),
99                browser: this.getBrowser(),
100                engine: this.getEngine(),
101                os: this.getOS(),
102                device: this.getDevice(),
103                cpu: this.getCPU()
104            }
105        };
106        this.getUA = function () {
107            return h
108        };
109        this.setUA = function (a) {
110            h = a;
111            return this
112        };
113        this.setUA(h)
114    };
115    q.VERSION = "0.7.3";
116    q.BROWSER = {NAME: "name", MAJOR: "major", VERSION: "version"};
117    q.CPU = {ARCHITECTURE: "architecture"};
118    q.DEVICE = {
119        MODEL: "model", VENDOR: "vendor", TYPE: "type", CONSOLE: "console",
120        MOBILE: "mobile", SMARTTV: "smarttv", TABLET: "tablet", WEARABLE: "wearable", EMBEDDED: "embedded"
121    };
122    q.ENGINE = {NAME: "name", VERSION: "version"};
123    q.OS = {NAME: "name", VERSION: "version"};
124    if ("undefined" !== typeof exports) "undefined" !== typeof module && module.exports && (exports = module.exports = q), exports.UAParser = q; else {
125        f.UAParser = q;
126        "function" === typeof define && define.amd && define(function () {
127            return q
128        });
129        var r = f.jQuery || f.Zepto;
130        if ("undefined" !== typeof r) {
131            var t = new q;
132            r.ua = t.getResult();
133            r.ua.get = function () {
134                return t.getUA()
135            };
136            r.ua.set =
137                function (a) {
138                    t.setUA(a);
139                    a = t.getResult();
140                    for (var c in a) r.ua[c] = a[c]
141                }
142        }
143    }
144})(this);
145var Detector = function () {
146    var f = ["monospace", "sans-serif", "serif"], e = document.getElementsByTagName("body")[0],
147        d = document.createElement("span");
148    d.style.fontSize = "72px";
149    d.innerHTML = "mmmmmmmmmmlli";
150    var n = {}, b = {}, g;
151    for (g in f) d.style.fontFamily = f[g], e.appendChild(d), n[f[g]] = d.offsetWidth, b[f[g]] = d.offsetHeight, e.removeChild(d);
152    this.detect = function (g) {
153        var q = !1, r;
154        for (r in f) {
155            d.style.fontFamily = g + "," + f[r];
156            e.appendChild(d);
157            var t = d.offsetWidth != n[f[r]] || d.offsetHeight != b[f[r]];
158            e.removeChild(d);
159            q = q || t
160        }
161        return q
162    }
163};
164var swfobject = function () {
165    function f() {
166        if (!A) {
167            try {
168                var a = l.getElementsByTagName("body")[0].appendChild(l.createElement("span"));
169                a.parentNode.removeChild(a)
170            } catch (c) {
171                return
172            }
173            A = !0;
174            for (var a = E.length, h = 0; h < a; h++) E[h]()
175        }
176    }
177
178    function e(a) {
179        A ? a() : E[E.length] = a
180    }
181
182    function d(a) {
183        if ("undefined" != typeof u.addEventListener) u.addEventListener("load", a, !1); else if ("undefined" != typeof l.addEventListener) l.addEventListener("load", a, !1); else if ("undefined" != typeof u.attachEvent) v(u, "onload", a); else if ("function" == typeof u.onload) {
184            var c =
185                u.onload;
186            u.onload = function () {
187                c();
188                a()
189            }
190        } else u.onload = a
191    }
192
193    function n() {
194        var a = l.getElementsByTagName("body")[0], c = l.createElement("object");
195        c.setAttribute("type", "application/x-shockwave-flash");
196        var h = a.appendChild(c);
197        if (h) {
198            var e = 0;
199            (function () {
200                if ("undefined" != typeof h.GetVariable) {
201                    var d = h.GetVariable("$version");
202                    d && (d = d.split(" ")[1].split(","), k.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)])
203                } else if (10 > e) {
204                    e++;
205                    setTimeout(arguments.callee, 10);
206                    return
207                }
208                a.removeChild(c);
209                h = null;
210                b()
211            })()
212        } else b()
213    }
214
215    function b() {
216        var a = y.length;
217        if (0 < a) for (var c = 0; c < a; c++) {
218            var b = y[c].id, d = y[c].callbackFn, e = {success: !1, id: b};
219            if (0 < k.pv[0]) {
220                var f = h(b);
221                if (f) if (!D(y[c].swfVersion) || k.wk && 312 > k.wk) if (y[c].expressInstall && p()) {
222                    e = {};
223                    e.data = y[c].expressInstall;
224                    e.width = f.getAttribute("width") || "0";
225                    e.height = f.getAttribute("height") || "0";
226                    f.getAttribute("class") && (e.styleclass = f.getAttribute("class"));
227                    f.getAttribute("align") && (e.align = f.getAttribute("align"));
228                    for (var m = {}, f = f.getElementsByTagName("param"), l = f.length, n = 0; n <
229                    l; n++) "movie" != f[n].getAttribute("name").toLowerCase() && (m[f[n].getAttribute("name")] = f[n].getAttribute("value"));
230                    q(e, m, b, d)
231                } else r(f), d && d(e); else z(b, !0), d && (e.success = !0, e.ref = g(b), d(e))
232            } else z(b, !0), d && ((b = g(b)) && "undefined" != typeof b.SetVariable && (e.success = !0, e.ref = b), d(e))
233        }
234    }
235
236    function g(a) {
237        var c = null;
238        (a = h(a)) && "OBJECT" == a.nodeName && ("undefined" != typeof a.SetVariable ? c = a : (a = a.getElementsByTagName("object")[0]) && (c = a));
239        return c
240    }
241
242    function p() {
243        return !F && D("6.0.65") && (k.win || k.mac) && !(k.wk && 312 > k.wk)
244    }
245
246    function q(c, b, e, d) {
247        F = !0;
248        I = d || null;
249        L = {success: !1, id: e};
250        var f = h(e);
251        if (f) {
252            "OBJECT" == f.nodeName ? (C = t(f), G = null) : (C = f, G = e);
253            c.id = "SWFObjectExprInst";
254            if ("undefined" == typeof c.width || !/%$/.test(c.width) && 310 > parseInt(c.width, 10)) c.width = "310";
255            if ("undefined" == typeof c.height || !/%$/.test(c.height) && 137 > parseInt(c.height, 10)) c.height = "137";
256            l.title = l.title.slice(0, 47) + " - Flash Player Installation";
257            d = k.ie && k.win ? "ActiveX" : "PlugIn";
258            d = "MMredirectURL=" + u.location.toString().replace(/&/g, "%26") + "&MMplayerType=" +
259                d + "&MMdoctitle=" + l.title;
260            b.flashvars = "undefined" != typeof b.flashvars ? b.flashvars + ("&" + d) : d;
261            k.ie && k.win && 4 != f.readyState && (d = l.createElement("div"), e += "SWFObjectNew", d.setAttribute("id", e), f.parentNode.insertBefore(d, f), f.style.display = "none", function () {
262                4 == f.readyState ? f.parentNode.removeChild(f) : setTimeout(arguments.callee, 10)
263            }());
264            a(c, b, e)
265        }
266    }
267
268    function r(a) {
269        if (k.ie && k.win && 4 != a.readyState) {
270            var c = l.createElement("div");
271            a.parentNode.insertBefore(c, a);
272            c.parentNode.replaceChild(t(a), c);
273            a.style.display = "none";
274            (function () {
275                4 == a.readyState ? a.parentNode.removeChild(a) : setTimeout(arguments.callee, 10)
276            })()
277        } else a.parentNode.replaceChild(t(a), a)
278    }
279
280    function t(a) {
281        var c = l.createElement("div");
282        if (k.win && k.ie) c.innerHTML = a.innerHTML; else if (a = a.getElementsByTagName("object")[0]) if (a = a.childNodes) for (var b = a.length, h 
282= 0; h < b; h++) 1 == a[h].nodeType && "PARAM" == a[h].nodeName || 8 == a[h].nodeType || c.appendChild(a[h].cloneNode(!0));
283        return c
284    }
285
286    function a(a, c, b) {
287        var e, f = h(b);
288        if (k.wk && 312 > k.wk) return e;
289        if (f) if ("undefined" == typeof a.id &&
290        (a.id = b), k.ie && k.win) {
291            var d = "", m;
292            for (m in a) a[m] != Object.prototype[m] && ("data" == m.toLowerCase() ? c.movie = a[m] : "styleclass" == m.toLowerCase() ? d += ' class="' + a[m] + '"' : "classid" != m.toLowerCase() && (d += " " + m + '="' + a[m] + '"'));
293            m = "";
294            for (var g in c) c[g] != Object.prototype[g] && (m += '<param name="' + g + '" value="' + c[g] + '" />');
295            f.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + d + ">" + m + "</object>";
296            H[H.length] = a.id;
297            e = h(a.id)
298        } else {
299            g = l.createElement("object");
300            g.setAttribute("type", "application/x-shockwave-flash");
301            for (var n in a) a[n] != Object.prototype[n] && ("styleclass" == n.toLowerCase() ? g.setAttribute("class", a[n]) : "classid" != n.toLowerCase() && g.setAttribute(n, a[n]));
302            for (d in c) c[d] != Object.prototype[d] && "movie" != d.toLowerCase() && (a = g, m = d, n = c[d], b = l.createElement("param"), b.setAttribute("name", m), b.setAttribute("value", n), a.appendChild(b));
303            f.parentNode.replaceChild(g, f);
304            e = g
305        }
306        return e
307    }
308
309    function c(a) {
310        var c = h(a);
311        c && "OBJECT" == c.nodeName && (k.ie && k.win ? (c.style.display = "none", function () {
312            if (4 == c.readyState) {
313                var b = h(a);
314                if (b) {
315                    for (var d in b) "function" == typeof b[d] && (b[d] = null);
316                    b.parentNode.removeChild(b)
317                }
318            } else setTimeout(arguments.callee, 10)
319        }()) : c.parentNode.removeChild(c))
320    }
321
322    function h(a) {
323        var c = null;
324        try {
325            c = l.getElementById(a)
326        } catch (b) {
327        }
328        return c
329    }
330
331    function v(a, c, b) {
332        a.attachEvent(c, b);
333        B[B.length] = [a, c, b]
334    }
335
336    function D(a) {
337        var c = k.pv;
338        a = a.split(".");
339        a[0] = parseInt(a[0], 10);
340        a[1] = parseInt(a[1], 10) || 0;
341        a[2] = parseInt(a[2], 10) || 0;
342        return c[0] > a[0] || c[0] == a[0] && c[1] > a[1] || c[0] == a[0] && c[1] == a[1] && c[2] >= a[2] ? !0 : !1
343    }
344
345    function m(a, c, b, h) {
346        if (!k.ie ||
347            !k.mac) {
348            var d = l.getElementsByTagName("head")[0];
349            d && (b = b && "string" == typeof b ? b : "screen", h && (J = w = null), w && J == b || (h = l.createElement("style"), h.setAttribute("type", "text/css"), h.setAttribute("media", b), w = d.appendChild(h), k.ie && k.win && "undefined" != typeof l.styleSheets && 0 < l.styleSheets.length && (w = l.styleSheets[l.styleSheets.length - 1]), J = b), k.ie && k.win ? w && "object" == typeof w.addRule && w.addRule(a, c) : w && "undefined" != typeof l.createTextNode && w.appendChild(l.createTextNode(a + " {" + c + "}")))
350        }
351    }
352
353    function z(a, c) {
354        if (M) {
355            var b =
356                c ? "visible" : "hidden";
357            A && h(a) ? h(a).style.visibility = b : m("#" + a, "visibility:" + b)
358        }
359    }
360
361    function K(a) {
362        return null != /[\\\"<>\.;]/.exec(a) && "undefined" != typeof encodeURIComponent ? encodeURIComponent(a) : a
363    }
364
365    var u = window, l = document, x = navigator, N = !1, E = [function () {
366        N ? n() : b()
367    }], y = [], H = [], B = [], C, G, I, L, A = !1, F = !1, w, J, M = !0, k = function () {
368        var a = "undefined" != typeof l.getElementById && "undefined" != typeof l.getElementsByTagName && "undefined" != typeof l.createElement,
369            c = x.userAgent.toLowerCase(), b = x.platform.toLowerCase(), h = b ? /win/.test(b) :
370            /win/.test(c), b = b ? /mac/.test(b) : /mac/.test(c),
371            c = /webkit/.test(c) ? parseFloat(c.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : !1, d = !+"\v1",
372            e = [0, 0, 0], f = null;
373        if ("undefined" != typeof x.plugins && "object" == typeof x.plugins["Shockwave Flash"]) !(f = x.plugins["Shockwave Flash"].description) || "undefined" != typeof x.mimeTypes && x.mimeTypes["application/x-shockwave-flash"] && !x.mimeTypes["application/x-shockwave-flash"].enabledPlugin || (N = !0, d = !1, f = f.replace(/^.*\s+(\S+\s+\S+$)/, "$1"), e[0] = parseInt(f.replace(/^(.*)\..*$/,
374            "$1"), 10), e[1] = parseInt(f.replace(/^.*\.(.*)\s.*$/, "$1"), 10), e[2] = /[a-zA-Z]/.test(f) ? parseInt(f.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0); else if ("undefined" != typeof u.ActiveXObject) try {
375            var m = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
376            m && (f = m.GetVariable("$version")) && (d = !0, f = f.split(" ")[1].split(","), e = [parseInt(f[0], 10), parseInt(f[1], 10), parseInt(f[2], 10)])
377        } catch (g) {
378        }
379        return {w3: a, pv: e, wk: c, ie: d, win: h, mac: b}
380    }();
381    (function () {
382        k.w3 && (("undefined" != typeof l.readyState && "complete" == l.readyState ||
383            "undefined" == typeof l.readyState && (l.getElementsByTagName("body")[0] || l.body)) && f(), A || ("undefined" != typeof l.addEventListener && l.addEventListener("DOMContentLoaded", f, !1), k.ie && k.win && (l.attachEvent("onreadystatechange", function () {
384            "complete" == l.readyState && (l.detachEvent("onreadystatechange", arguments.callee), f())
385        }), u == top && function () {
386            if (!A) {
387                try {
388                    l.documentElement.doScroll("left")
389                } catch (a) {
390                    setTimeout(arguments.callee, 0);
391                    return
392                }
393                f()
394            }
395        }()), k.wk && function () {
396            A || (/loaded|complete/.test(l.readyState) ? f() :
397                setTimeout(arguments.callee, 0))
398        }(), d(f)))
399    })();
400    (function () {
401        k.ie && k.win && window.attachEvent("onunload", function () {
402            for (var a = B.length, b = 0; b < a; b++) B[b][0].detachEvent(B[b][1], B[b][2]);
403            a = H.length;
404            for (b = 0; b < a; b++) c(H[b]);
405            for (var h in k) k[h] = null;
406            k = null;
407            for (var d in swfobject) swfobject[d] = null;
408            swfobject = null
409        })
410    })();
411    return {
412        registerObject: function (a, c, b, h) {
413            if (k.w3 && a && c) {
414                var d = {};
415                d.id = a;
416                d.swfVersion = c;
417                d.expressInstall = b;
418                d.callbackFn = h;
419                y[y.length] = d;
420                z(a, !1)
421            } else h && h({success: !1, id: a})
422        }, getObjectById: function (a) {
423            if (k.w3) return g(a)
424        },
425        embedSWF: function (c, b, h, d, f, m, g, n, l, v) {
426            var u = {success: !1, id: b};
427            k.w3 && !(k.wk && 312 > k.wk) && c && b && h && d && f ? (z(b, !1), e(function () {
428                h += "";
429                d += "";
430                var e = {};
431                if (l && "object" === typeof l) for (var k in l) e[k] = l[k];
432                e.data = c;
433                e.width = h;
434                e.height = d;
435                k = {};
436                if (n && "object" === typeof n) for (var r in n) k[r] = n[r];
437                if (g && "object" === typeof g) for (var t in g) k.flashvars = "undefined" != typeof k.flashvars ? k.flashvars + ("&" + t + "=" + g[t]) : t + "=" + g[t];
438                if (D(f)) r = a(e, k, b), e.id == b && z(b, !0), u.success = !0, u.ref = r; else {
439                    if (m && p()) {
440                        e.data = m;
441                        q(e, k, b, v);
442                        return
443                    }
444                    z(b,
445                        !0)
446                }
447                v && v(u)
448            })) : v && v(u)
449        }, switchOffAutoHideShow: function () {
450            M = !1
451        }, ua: k, getFlashPlayerVersion: function () {
452            return {major: k.pv[0], minor: k.pv[1], release: k.pv[2]}
453        }, hasFlashPlayerVersion: D, createSWF: function (c, b, h) {
454            if (k.w3) return a(c, b, h)
455        }, showExpressInstall: function (a, c, b, h) {
456            k.w3 && p() && q(a, c, b, h)
457        }, removeSWF: function (a) {
458            k.w3 && c(a)
459        }, createCSS: function (a, c, b, h) {
460            k.w3 && m(a, c, b, h)
461        }, addDomLoadEvent: e, addLoadEvent: d, getQueryParamValue: function (a) {
462            var c = l.location.search || l.location.hash;
463            if (c) {
464                /\?/.test(c) && (c = c.split("?")[1]);
465                if (null == a) return K(c);
466                for (var c = c.split("&"), b = 0; b < c.length; b++) if (c[b].substring(0, c[b].indexOf("=")) == a) return K(c[b].substring(c[b].indexOf("=") + 1))
467            }
468            return ""
469        }, expressInstallCallback: function () {
470            if (F) {
471                var a = h("SWFObjectExprInst");
472                a && C && (a.parentNode.replaceChild(C, a), G && (z(G, !0), k.ie && k.win && (C.style.display = "block")), I && I(L));
473                F = !1
474            }
475        }
476    }
477}();
478
479function murmurhash3_32_gc(f, e) {
480    var d, n, b, g, p;
481    d = f.length & 3;
482    n = f.length - d;
483    b = e;
484    for (p = 0; p < n;) g = f.charCodeAt(p) & 255 | (f.charCodeAt(++p) & 255) << 8 | (f.charCodeAt(++p) & 255) << 16 | (f.charCodeAt(++p) & 255) << 24, ++p, g = 3432918353 * (g & 65535) + ((3432918353 * (g >>> 16) & 65535) << 16) & 4294967295, g = g << 15 | g >>> 17, g = 461845907 * (g & 65535) + ((461845907 * (g >>> 16) & 65535) << 16) & 4294967295, b ^= g, b = b << 13 | b >>> 19, b = 5 * (b & 65535) + ((5 * (b >>> 16) & 65535) << 16) & 4294967295, b = (b & 65535) + 27492 + (((b >>> 16) + 58964 & 65535) << 16);
485    g = 0;
486    switch (d) {
487        case 3:
488            g ^= (f.charCodeAt(p +
489                2) & 255) << 16;
490        case 2:
491            g ^= (f.charCodeAt(p + 1) & 255) << 8;
492        case 1:
493            g ^= f.charCodeAt(p) & 255, g = 3432918353 * (g & 65535) + ((3432918353 * (g >>> 16) & 65535) << 16) & 4294967295, g = g << 15 | g >>> 17, b ^= 461845907 * (g & 65535) + ((461845907 * (g >>> 16) & 65535) << 16) & 4294967295
494    }
495    b ^= f.length;
496    b ^= b >>> 16;
497    b = 2246822507 * (b & 65535) + ((2246822507 * (b >>> 16) & 65535) << 16) & 4294967295;
498    b ^= b >>> 13;
499    b = 3266489909 * (b & 65535) + ((3266489909 * (b >>> 16) & 65535) << 16) & 4294967295;
500    return (b ^ b >>> 16) >>> 0
501};var deployJava = function () {
502    function f(a) {
503        p.debug && (console.log ? console.log(a) : alert(a))
504    }
505
506    function e(a) {
507        if (null == a || 0 == a.length) return "http://java.com/dt-redirect";
508        "&" == a.charAt(0) && (a = a.substring(1, a.length));
509        return "http://java.com/dt-redirect?" + a
510    }
511
512    var d = ["id", "class", "title", "style"];
513    "classid codebase codetype data type archive declare standby height width usemap name tabindex align border hspace vspace".split(" ").concat(d, ["lang", "dir"], "onclick ondblclick onmousedown onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown onkeyup".split(" "));
514    var n = "codebase code name archive object width height alt align hspace vspace".split(" ").concat(d), b;
515    try {
516        b = -1 != document.location.protocol.indexOf("http") ? "//java.com/js/webstart.png" : "http://java.com/js/webstart.png"
517    } catch (g) {
518        b = "http://java.com/js/webstart.png"
519    }
520    var p = {
521        debug: null,
522        version: "20120801",
523        firefoxJavaVersion: null,
524        myInterval: null,
525        preInstallJREList: null,
526        returnPage: null,
527        brand: null,
528        locale: null,
529        installType: null,
530        EAInstallEnabled: !1,
531        EarlyAccessURL: null,
532        oldMimeType: "application/npruntime-scriptable-plugin;DeploymentToolkit",
533        mimeType: "application/java-deployment-toolkit",
534        launchButtonPNG: b,
535        browserName: null,
536        browserName2: null,
537        getJREs: function () {
538            var a = [];
539            if (this.isPluginInstalled()) for (var c = this.getPlugin().jvms, b = 0; b < c.getLength(); b++) a[b] = c.get(b).version; else c = this.getBrowser(), "MSIE" == c ? this.testUsingActiveX("1.7.0") ? a[0] = "1.7.0" : this.testUsingActiveX("1.6.0") ? a[0] = "1.6.0" : this.testUsingActiveX("1.5.0") ? a[0] = "1.5.0" : this.testUsingActiveX("1.4.2") ? a[0] = "1.4.2" : this.testForMSVM() && (a[0] = "1.1") : "Netscape Family" == c && (this.getJPIVersionUsingMimeType(),
540                null != this.firefoxJavaVersion ? a[0] = this.firefoxJavaVersion : this.testUsingMimeTypes("1.7") ? a[0] = "1.7.0" : this.testUsingMimeTypes("1.6") ? a[0] = "1.6.0" : this.testUsingMimeTypes("1.5") ? a[0] = "1.5.0" : this.testUsingMimeTypes("1.4.2") ? a[0] = "1.4.2" : "Safari" == this.browserName2 && (this.testUsingPluginsArray("1.7.0") ? a[0] = "1.7.0" : this.testUsingPluginsArray("1.6") ? a[0] = "1.6.0" : this.testUsingPluginsArray("1.5") ? a[0] = "1.5.0" : this.testUsingPluginsArray("1.4.2") && (a[0] = "1.4.2")));
541            if (this.debug) for (b = 0; b < a.length; ++b) f("[getJREs()] We claim to have detected Java SE " +
542                a[b]);
543            return a
544        },
545        installJRE: function (a, c) {
546            if (this.isPluginInstalled() && this.isAutoInstallEnabled(a)) {
547                var b = !1;
548                if (b = this.isCallbackSupported() ? this.getPlugin().installJRE(a, c) : this.getPlugin().installJRE(a)) this.refresh(), null != this.returnPage && (document.location = this.returnPage);
549                return b
550            }
551            return this.installLatestJRE()
552        },
553        isAutoInstallEnabled: function (a) {
554            if (!this.isPluginInstalled()) return !1;
555            "undefined" == typeof a && (a = null);
556            if ("MSIE" != deployJava.browserName || deployJava.compareVersionToPattern(deployJava.getPlugin().version,
557                ["10", "0", "0"], !1, !0)) a = !0; else if (null == a) a = !1; else {
558                var c = "1.6.0_33+";
559                if (null == c || 0 == c.length) a = !0; else {
560                    var b = c.charAt(c.length - 1);
561                    "+" != b && "*" != b && -1 != c.indexOf("_") && "_" != b && (c += "*", b = "*");
562                    c = c.substring(0, c.length - 1);
563                    if (0 < c.length) {
564                        var d = c.charAt(c.length - 1);
565                        if ("." == d || "_" == d) c = c.substring(0, c.length - 1)
566                    }
567                    a = "*" == b ? 0 == a.indexOf(c) : "+" == b ? c <= a : !1
568                }
569                a = !a
570            }
571            return a
572        },
573        isCallbackSupported: function () {
574            return this.isPluginInstalled() && this.compareVersionToPattern(this.getPlugin().version, ["10", "2", "0"], !1, !0)
575        },
576        installLatestJRE: function (a) {
577            if (this.isPluginInstalled() && this.isAutoInstallEnabled()) {
578                var c = !1;
579                if (c = this.isCallbackSupported() ? this.getPlugin().installLatestJRE(a) : this.getPlugin().installLatestJRE()) this.refresh(), null != this.returnPage && (document.location = this.returnPage);
580                return c
581            }
582            a = this.getBrowser();
583            c = navigator.platform.toLowerCase();
584            if ("true" == this.EAInstallEnabled && -1 != c.indexOf("win") && null != this.EarlyAccessURL) this.preInstallJREList = this.getJREs(), null != this.returnPage && (this.myInterval = setInterval("deployJava.poll()",
585                3E3)), location.href = this.EarlyAccessURL; else {
586                if ("MSIE" == a) return this.IEInstall();
587                if ("Netscape Family" == a && -1 != c.indexOf("win32")) return this.FFInstall();
588                location.href = e((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : ""))
589            }
590            return !1
591        },
592        runApplet: function (a, c, b) {
593            if ("undefined" == b || null == b) b = "1.1";
594            var d = b.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$");
595            null == this.returnPage && (this.returnPage = document.location);
596            null != d ? "?" != this.getBrowser() ? this.versionCheck(b + "+") ? this.writeAppletTag(a, c) : this.installJRE(b + "+") && (this.refresh(), location.href = document.location, this.writeAppletTag(a, c)) : this.writeAppletTag(a, c) : f("[runApplet()] Invalid minimumVersion argument to runApplet():" + b)
597        },
598        writeAppletTag: function (a, c) {
599            var b = "<applet ", d = "", e = !0;
600            if (null == c || "object" != typeof c) c = {};
601            for (var f in a) {
602                var g;
603                a:{
604                    g = f.toLowerCase();
605                    for (var p = n.length, q = 0; q < p; q++) if (n[q] === g) {
606                        g = !0;
607                        break a
608                    }
609                    g = !1
610                }
611                g ? (b += " " + f + '="' + a[f] + '"', "code" ==
612                f && (e = !1)) : c[f] = a[f]
613            }
614            f = !1;
615            for (var l in c) {
616                "codebase_lookup" == l && (f = !0);
617                if ("object" == l || "java_object" == l || "java_code" == l) e = !1;
618                d += '<param name="' + l + '" value="' + c[l] + '"/>'
619            }
620            f || (d += '<param name="codebase_lookup" value="false"/>');
621            e && (b += ' code="dummy"');
622            document.write(b + ">\n" + d + "\n</applet>")
623        },
624        versionCheck: function (a) {
625            var c = 0, b = a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?(\\*|\\+)?$");
626            if (null != b) {
627                for (var d = a = !1, e = [], g = 1; g < b.length; ++g) "string" == typeof b[g] && "" != b[g] && (e[c] = b[g], c++);
628                "+" == e[e.length -
629                1] ? (d = !0, a = !1, e.length--) : "*" == e[e.length - 1] ? (d = !1, a = !0, e.length--) : 4 > e.length && (d = !1, a = !0);
630                c = this.getJREs();
631                for (g = 0; g < c.length; ++g) if (this.compareVersionToPattern(c[g], e, a, d)) return !0
632            } else c = "Invalid versionPattern passed to versionCheck: " + a, f("[versionCheck()] " + c), alert(c);
633            return !1
634        },
635        isWebStartInstalled: function (a) {
636            if ("?" == this.getBrowser()) return !0;
637            if ("undefined" == a || null == a) a = "1.4.2";
638            var c = !1;
639            null != a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$") ? c = this.versionCheck(a + "+") : (f("[isWebStartInstaller()] Invalid minimumVersion argument to isWebStartInstalled(): " +
640                a), c = this.versionCheck("1.4.2+"));
641            return c
642        },
643        getJPIVersionUsingMimeType: function () {
644            for (var a = 0; a < navigator.mimeTypes.length; ++a) {
645                var c = navigator.mimeTypes[a].type.match(/^application\/x-java-applet;jpi-version=(.*)$/);
646                if (null != c && (this.firefoxJavaVersion = c[1], "Opera" != this.browserName2)) break
647            }
648        },
649        launchWebStartApplication: function (a) {
650            navigator.userAgent.toLowerCase();
651            this.getJPIVersionUsingMimeType();
652            if (0 == this.isWebStartInstalled("1.7.0") && (0 == this.installJRE("1.7.0+") || 0 == this.isWebStartInstalled("1.7.0"))) return !1;
653            var c = null;
654            // document.documentURI && (c = document.documentURI);
655            // null == c && (c = document.URL);
656            // var b = this.getBrowser(), d;
657            // "MSIE" == b ? d = '<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="0" height="0"><PARAM name="launchjnlp" value="' + a + '"><PARAM name="docbase" value="' + c + '"></object>' : "Netscape Family" == b && (d = '<embed type="application/x-java-applet;jpi-version=' + this.firefoxJavaVersion + '" width="0" height="0" launchjnlp="' + a + '"docbase="' + c + '" />');
658            // "undefined" == document.body || null == document.body ?
659            //     (document.write(d), document.location = c) : (a = document.createElement("div"), a.id = "div1", a.style.position = "relative", a.style.left = "-10000px", a.style.margin = "0px auto", a.className = "dynamicDiv", a.innerHTML = d, document.body.appendChild(a))
660        },
661        createWebStartLaunchButtonEx: function (a, c) {
662            null == this.returnPage && (this.returnPage = a);
663            document.write('<a href="' + ("javascript:deployJava.launchWebStartApplication('" + a + "');") + '" onMouseOver="window.status=\'\'; return true;"><img src="' + this.launchButtonPNG + '" border="0" /></a>')
664        },
665        createWebStartLaunchButton: function (a, c) {
666            null == this.returnPage && (this.returnPage = a);
667            document.write('<a href="' + ("javascript:if (!deployJava.isWebStartInstalled(&quot;" + c + "&quot;)) {if (deployJava.installLatestJRE()) {if (deployJava.launch(&quot;" + a + "&quot;)) {}}} else {if (deployJava.launch(&quot;" + a + "&quot;)) {}}") + '" onMouseOver="window.status=\'\'; return true;"><img src="' + this.launchButtonPNG + '" border="0" /></a>')
668        },
669        launch: function (a) {
670            document.location = a;
671            return !0
672        },
673        isPluginInstalled: function () {
674            var a =
675                this.getPlugin();
676            return a && a.jvms ? !0 : !1
677        },
678        isAutoUpdateEnabled: function () {
679            return this.isPluginInstalled() ? this.getPlugin().isAutoUpdateEnabled() : !1
680        },
681        setAutoUpdateEnabled: function () {
682            return this.isPluginInstalled() ? this.getPlugin().setAutoUpdateEnabled() : !1
683        },
684        setInstallerType: function (a) {
685            this.installType = a;
686            return this.isPluginInstalled() ? this.getPlugin().setInstallerType(a) : !1
687        },
688        setAdditionalPackages: function (a) {
689            return this.isPluginInstalled() ? this.getPlugin().setAdditionalPackages(a) : !1
690        },
691        setEarlyAccess: function (a) {
692            this.EAInstallEnabled =
693                a
694        },
695        isPlugin2: function () {
696            if (this.isPluginInstalled() && this.versionCheck("1.6.0_10+")) try {
697                return this.getPlugin().isPlugin2()
698            } catch (a) {
699            }
700            return !1
701        },
702        allowPlugin: function () {
703            this.getBrowser();
704            return "Safari" != this.browserName2 && "Opera" != this.browserName2
705        },
706        getPlugin: function () {
707            this.refresh();
708            var a = null;
709            this.allowPlugin() && (a = document.getElementById("deployJavaPlugin"));
710            return a
711        },
712        compareVersionToPattern: function (a, c, b, d) {
713            if (void 0 == a || void 0 == c) return !1;
714            var e = a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$");
715            if (null != e) {
716                var f = 0;
717                a = [];
718                for (var g = 1; g < e.length; ++g) "string" == typeof e[g] && "" != e[g] && (a[f] = e[g], f++);
719                e = Math.min(a.length, c.length);
720                if (d) {
721                    for (g = 0; g < e; ++g) {
722                        if (a[g] < c[g]) return !1;
723                        if (a[g] > c[g]) break
724                    }
725                    return !0
726                }
727                for (g = 0; g < e; ++g) if (a[g] != c[g]) return !1;
728                return b ? !0 : a.length == c.length
729            }
730            return !1
731        },
732        getBrowser: function () {
733            if (null == this.browserName) {
734                var a = navigator.userAgent.toLowerCase();
735                f("[getBrowser()] navigator.userAgent.toLowerCase() -> " + a);
736                -1 != a.indexOf("msie") && -1 == a.indexOf("opera") ? this.browserName2 = this.browserName =
737                    "MSIE" : -1 != a.indexOf("iphone") ? (this.browserName = "Netscape Family", this.browserName2 = "iPhone") : -1 != a.indexOf("firefox") && -1 == a.indexOf("opera") ? (this.browserName = "Netscape Family", this.browserName2 = "Firefox") : -1 != a.indexOf("chrome") ? (this.browserName = "Netscape Family", this.browserName2 = "Chrome") : -1 != a.indexOf("safari") ? (this.browserName = "Netscape Family", this.browserName2 = "Safari") : -1 != a.indexOf("mozilla") && -1 == a.indexOf("opera") ? (this.browserName = "Netscape Family", this.browserName2 = "Other") : -1 !=
738                a.indexOf("opera") ? (this.browserName = "Netscape Family", this.browserName2 = "Opera") : (this.browserName = "?", this.browserName2 = "unknown");
739                f("[getBrowser()] Detected browser name:" + this.browserName + ", " + this.browserName2)
740            }
741            return this.browserName
742        },
743        testUsingActiveX: function (a) {
744            a = "JavaWebStart.isInstalled." + a + ".0";
745            if ("undefined" == typeof ActiveXObject || !ActiveXObject) return f("[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?"), !1;
746            try {
747                return null != new ActiveXObject(a)
748            } catch (c) {
749                return !1
750            }
751        },
752        testForMSVM: function () {
753            if ("undefined" != typeof oClientCaps) {
754                var a = oClientCaps.getComponentVersion("{08B0E5C0-4FCB-11CF-AAA5-00401C608500}", "ComponentID");
755                return "" == a || "5,0,5000,0" == a ? !1 : !0
756            }
757            return !1
758        },
759        testUsingMimeTypes: function (a) {
760            if (!navigator.mimeTypes) return f("[testUsingMimeTypes()] Browser claims to be Netscape family, but no mimeTypes[] array?"), !1;
761            for (var c = 0; c < navigator.mimeTypes.length; ++c) {
762                s = navigator.mimeTypes[c].type;
763                var b = s.match(/^application\/x-java-applet\x3Bversion=(1\.8|1\.7|1\.6|1\.5|1\.4\.2)$/);
764                if (null != b && this.compareVersions(b[1], a)) return !0
765            }
766            return !1
767        },
768        testUsingPluginsArray: function (a) {
769            if (!navigator.plugins || !navigator.plugins.length) return !1;
770            for (var c = navigator.platform.toLowerCase(), b = 0; b < navigator.plugins.length; ++b) if (s = navigator.plugins[b].description, -1 != s.search(/^Java Switchable Plug-in (Cocoa)/)) {
771                if (this.compareVersions("1.5.0", a)) return !0
772            } else if (-1 != s.search(/^Java/) && -1 != c.indexOf("win") && (this.compareVersions("1.5.0", a) || this.compareVersions("1.6.0", a))) return !0;
773            return this.compareVersions("1.5.0",
774                a) ? !0 : !1
775        },
776        IEInstall: function () {
777            location.href = e((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : ""));
778            return !1
779        },
780        done: function (a, b) {
781        },
782        FFInstall: function () {
783            location.href = e((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : "") + (null != this.installType ? "&type=" + this.installType : ""));
784            return !1
785        },
786        compareVersions: function (a,
787                                   b) {
788            for (var d = a.split("."), e = b.split("."), f = 0; f < d.length; ++f) d[f] = Number(d[f]);
789            for (f = 0; f < e.length; ++f) e[f] = Number(e[f]);
790            2 == d.length && (d[2] = 0);
791            return d[0] > e[0] ? !0 : d[0] < e[0] ? !1 : d[1] > e[1] ? !0 : d[1] < e[1] ? !1 : d[2] > e[2] ? !0 : d[2] < e[2] ? !1 : !0
792        },
793        enableAlerts: function () {
794            this.browserName = null;
795            this.debug = !0
796        },
797        poll: function () {
798            this.refresh();
799            var a = this.getJREs();
800            0 == this.preInstallJREList.length && 0 != a.length && (clearInterval(this.myInterval), null != this.returnPage && (location.href = this.returnPage));
801            0 != this.preInstallJREList.length &&
802            0 != a.length && this.preInstallJREList[0] != a[0] && (clearInterval(this.myInterval), null != this.returnPage && (location.href = this.returnPage))
803        },
804        writePluginTag: function () {
805            var a = this.getBrowser();
806            "MSIE" == a ? document.write('<object classid="clsid:CAFEEFAC-DEC7-0000-0001-ABCDEFFEDCBA" id="deployJavaPlugin" width="0" height="0"></object>') : "Netscape Family" == a && this.allowPlugin() && this.writeEmbedTag()
807        },
808        refresh: function () {
809            navigator.plugins.refresh(!1);
810            "Netscape Family" == this.getBrowser() && this.allowPlugin() && null ==
811            document.getElementById("deployJavaPlugin") && this.writeEmbedTag()
812        },
813        writeEmbedTag: function () {
814            var a = !1;
815            if (null != navigator.mimeTypes) {
816                for (var b = 0; b < navigator.mimeTypes.length; b++) navigator.mimeTypes[b].type == this.mimeType && navigator.mimeTypes[b].enabledPlugin && (document.write('<embed id="deployJavaPlugin" type="' + this.mimeType + '" hidden="true" />'), a = !0);
817                if (!a) for (b = 0; b < navigator.mimeTypes.length; b++) navigator.mimeTypes[b].type == this.oldMimeType && navigator.mimeTypes[b].enabledPlugin && document.write('
817<embed id="deployJavaPlugin" type="' +
818                    this.oldMimeType + '" hidden="true" />')
819            }
820        }
821    };
822    p.writePluginTag();
823    if (null == p.locale) {
824        d = null;
825        if (null == d) try {
826            d = navigator.userLanguage
827        } catch (q) {
828        }
829        if (null == d) try {
830            d = navigator.systemLanguage
831        } catch (r) {
832        }
833        if (null == d) try {
834            d = navigator.language
835        } catch (t) {
836        }
837        null != d && (d.replace("-", "_"), p.locale = d)
838    }
839    return p
840}();
841(function (f) {
842    var e, d = function () {
843        e = (new UAParser).getResult();
844        return this
845    };
846    d.prototype = {
847        getSoftwareVersion: function () {
848            return "ClientJS 0.1.5"
849        }, getBrowserData: function () {
850            return e
851        }, getFingerprint: function () {
852            var d = e.ua, b = this.getScreenPrint(), f = this.getPlugins(), p = this.getFonts(),
853                q = this.isLocalStorage(), r = this.isSessionStorage(), t = this.getTimeZone(), a = this.getLanguage(),
854                c = this.getSystemLanguage(), h = this.isCookie(), v = this.getCanvasPrint();
855            return murmurhash3_32_gc(d + "|" + b + "|" + f + "|" + p + "|" + q + "|" + r + "|" + t + "|" +
856                a + "|" + c + "|" + h + "|" + v, 256)
857        }, getUserAgent: function () {
858            return e.ua
859        }, getUserAgentLowerCase: function () {
860            return e.ua.toLowerCase()
861        }, getBrowser: function () {
862            return e.browser.name
863        }, getBrowserVersion: function () {
864            return e.browser.version
865        }, getBrowserMajorVersion: function () {
866            return e.browser.major
867        }, isIE: function () {
868            return /IE/i.test(e.browser.name)
869        }, isChrome: function () {
870            return /Chrome/i.test(e.browser.name)
871        }, isFirefox: function () {
872            return /Firefox/i.test(e.browser.name)
873        }, isSafari: function () {
874            return /Safari/i.test(e.browser.name)
875        },
876        isOpera: function () {
877            return /Opera/i.test(e.browser.name)
878        }, getEngine: function () {
879            return e.engine.name
880        }, getEngineVersion: function () {
881            return e.engine.version
882        }, getOS: function () {
883            return e.os.name
884        }, getOSVersion: function () {
885            return e.os.version
886        }, isWindows: function () {
887            return /Windows/i.test(e.os.name)
888        }, isMac: function () {
889            return /Mac/i.test(e.os.name)
890        }, isLinux: function () {
891            return /Linux/i.test(e.os.name)
892        }, isUbuntu: function () {
893            return /Ubuntu/i.test(e.os.name)
894        }, isSolaris: function () {
895            return /Solaris/i.test(e.os.name)
896        }, getDevice: function () {
897            return e.device.model
898        },
899        getDeviceType: function () {
900            return e.device.type
901        }, getDeviceVendor: function () {
902            return e.device.vendor
903        }, getCPU: function () {
904            return e.cpu.architecture
905        }, isMobile: function () {
906            var d = e.ua || navigator.vendor || window.opera;
907            return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(d) ||
908                /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
908sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(d.substr(0,
909                    4))
910        }, isMobileMajor: function () {
911            return this.isMobileAndroid() || this.isMobileBlackBerry() || this.isMobileIOS() || this.isMobileOpera() || this.isMobileWindows()
912        }, isMobileAndroid: function () {
913            return e.ua.match(/Android/i) ? !0 : !1
914        }, isMobileOpera: function () {
915            return e.ua.match(/Opera Mini/i) ? !0 : !1
916        }, isMobileWindows: function () {
917            return e.ua.match(/IEMobile/i) ? !0 : !1
918        }, isMobileBlackBerry: function () {
919            return e.ua.match(/BlackBerry/i) ? !0 : !1
920        }, isMobileIOS: function () {
921            return e.ua.match(/iPhone|iPad|iPod/i) ? !0 : !1
922        }, isIphone: function () {
923            return e.ua.match(/iPhone/i) ?
924                !0 : !1
925        }, isIpad: function () {
926            return e.ua.match(/iPad/i) ? !0 : !1
927        }, isIpod: function () {
928            return e.ua.match(/iPod/i) ? !0 : !1
929        }, getScreenPrint: function () {
930            return "Current Resolution: " + this.getCurrentResolution() + ", Avaiable Resolution: " + this.getAvailableResolution() + ", Color Depth: " + this.getColorDepth() + ", Device XDPI: " + this.getDeviceXDPI() + ", Device YDPI: " + this.getDeviceYDPI()
931        }, getColorDepth: function () {
932            return screen.colorDepth
933        }, getCurrentResolution: function () {
934            return screen.width + "x" + screen.height
935        }, getAvailableResolution: function () {
936            return screen.availWidth +
937                "x" + screen.availHeight
938        }, getDeviceXDPI: function () {
939            return screen.deviceXDPI
940        }, getDeviceYDPI: function () {
941            return screen.deviceYDPI
942        }, getPlugins: function () {
943            for (var d = "", b = 0; b < navigator.plugins.length; b++) d = b == navigator.plugins.length - 1 ? d + navigator.plugins[b].name : d + (navigator.plugins[b].name + ", ");
944            return d
945        }, isJava: function () {
946            return navigator.javaEnabled()
947        }, getJavaVersion: function () {
948            return deployJava.getJREs().toString()
949        }, isFlash: function () {
950            return navigator.plugins["Shockwave Flash"] ? !0 : !1
951        }, getFlashVersion: function () {
952            return this.isFlash() ?
953                (objPlayerVersion = swfobject.getFlashPlayerVersion(), objPlayerVersion.major + "." + objPlayerVersion.minor + "." + objPlayerVersion.release) : ""
954        }, isSilverlight: function () {
955            return navigator.plugins["Silverlight Plug-In"] ? !0 : !1
956        }, getSilverlightVersion: function () {
957            return this.isSilverlight() ? navigator.plugins["Silverlight Plug-In"].description : ""
958        }, isMimeTypes: function () {
959            return navigator.mimeTypes.length ? !0 : !1
960        }, getMimeTypes: function () {
961            for (var d = "", b = 0; b < navigator.mimeTypes.length; b++) d = b == navigator.mimeTypes.length -
962            1 ? d + navigator.mimeTypes[b].description : d + (navigator.mimeTypes[b].description + ", ");
963            return d
964        }, isFont: function (d) {
965            return (new Detector).detect(d)
966        }, getFonts: function () {
967            for (var d = new Detector, b = "Abadi MT Condensed Light;Adobe Fangsong Std;Adobe Hebrew;Adobe Ming Std;Agency FB;Aharoni;Andalus;Angsana New;AngsanaUPC;Aparajita;Arab;Arabic Transparent;Arabic Typesetting;Arial Baltic;Arial Black;Arial CE;Arial CYR;Arial Greek;Arial TUR;Arial;Batang;BatangChe;Bauhaus 93;Bell MT;Bitstream Vera Serif;Bodoni MT;Bookman Old Style;Braggadocio;Broadway;Browallia New;BrowalliaUPC;Calibri Light;Calibri;Californian FB;Cambria Math;Cambria;Candara;Castellar;Casual;Centaur;Century Gothic;Chalkduster;Colonna MT;Comic Sans MS;Consolas;Constantia;Copperplate Gothic Light;Corbel;Cordia New;CordiaUPC;Courier New Baltic;Courier New CE;Courier New CYR;Courier New Greek;Courier New TUR;Courier New;DFKai-SB;DaunPenh;David;DejaVu LGC Sans Mono;Desdemona;DilleniaUPC;DokChampa;Dotum;DotumChe;Ebrima;Engravers MT;Eras Bold ITC;Estrangelo Edessa;EucrosiaUPC;Euphemia;Eurostile;FangSong;Forte;FrankRuehl;Franklin Gothic Heavy;Franklin Gothic Medium;FreesiaUPC;French Script MT;Gabriola;Gautami;Georgia;Gigi;Gisha;Goudy Old Style;Gulim;GulimChe;GungSeo;Gungsuh;GungsuhChe;Haettenschweiler;Harrington;Hei S;HeiT;Heisei Kaku Gothic;Hiragino Sans GB;Impact;Informal Roman;IrisUPC;Iskoola Pota;JasmineUPC;KacstOne;KaiTi;Kalinga;Kartika;Khmer UI;Kino MT;KodchiangUPC;Kokila;Kozuka Gothic Pr6N;Lao UI;Latha;Leelawadee;Levenim MT;LilyUPC;Lohit Gujarati;Loma;Lucida Bright;Lucida Console;Lucida Fax;Lucida Sans Unicode;MS Gothic;MS Mincho;MS PGothic;MS PMincho;MS Reference Sans Serif;MS UI Gothic;MV Boli;Magneto;Malgun Gothic;Mangal;Marlett;Matura MT Script Capitals;Meiryo UI;Meiryo;Menlo;Microsoft Himalaya;Microsoft JhengHei;Microsoft New Tai Lue;Microsoft PhagsPa;Microsoft Sans Serif;Microsoft Tai Le;Microsoft Uighur;Microsoft YaHei;Microsoft Yi Baiti;MingLiU;MingLiU-ExtB;MingLiU_HKSCS;MingLiU_HKSCS-ExtB;Miriam Fixed;Miriam;Mongolian Baiti;MoolBoran;NSimSun;
967Narkisim;News Gothic MT;Niagara Solid;Nyala;PMingLiU;PMingLiU-ExtB;Palace Script MT;Palatino Linotype;Papyrus;Perpetua;Plantagenet Cherokee;Playbill;Prelude Bold;Prelude Condensed Bold;Prelude Condensed Medium;Prelude Medium;PreludeCompressedWGL Black;PreludeCompressedWGL Bold;PreludeCompressedWGL Light;PreludeCompressedWGL Medium;PreludeCondensedWGL Black;PreludeCondensedWGL Bold;PreludeCondensedWGL Light;PreludeCondensedWGL Medium;PreludeWGL Black;PreludeWGL Bold;PreludeWGL Light;PreludeWGL Medium;Raavi;Rachana;Rockwell;Rod;Sakkal Majalla;Sawasdee;Script MT Bold;Segoe Print;Segoe Script;Segoe UI Light;Segoe UI Semibold;Segoe UI Symbol;Segoe UI;Shonar Bangla;Showcard Gothic;Shruti;SimHei;SimSun;SimSun-ExtB;Simplified Arabic Fixed;Simplified Arabic;Snap ITC;Sylfaen;Symbol;Tahoma;Times New Roman Baltic;Times New Roman CE;Times New Roman CYR;Times New Roman Greek;Times New Roman TUR;Times New Roman;TlwgMono;Traditional Arabic;Trebuchet MS;Tunga;Tw Cen MT Condensed Extra Bold;Ubuntu;Umpush;Univers;Utopia;Utsaah;Vani;Verdana;Vijaya;Vladimir Script;Vrinda;Webdings;Wide Latin;Wingdings".split(";"),
968                     e = "", f = 0; f < b.length; f++) d.detect(b[f]) && (e = f == b.length - 1 ? e + b[f] : e + (b[f] + ", "));
969            return e
970        }, isLocalStorage: function () {
971            try {
972                return !!f.localStorage
973            } catch (d) {
974                return !0
975            }
976        }, isSessionStorage: function () {
977            try {
978                return !!f.sessionStorage
979            } catch (d) {
980                return !0
981            }
982        }, isCookie: function () {
983            return navigator.cookieEnabled
984        }, getTimeZone: function () {
985            return String(String(new Date).split("(")[1]).split(")")[0]
986        }, getLanguage: function () {
987            return navigator.language
988        }, getSystemLanguage: function () {
989            return navigator.systemLanguage
990        }, isCanvas: function () {
991            var d =
992                document.createElement("canvas");
993            try {
994                return !(!d.getContext || !d.getContext("2d"))
995            } catch (b) {
996                return !1
997            }
998        }, getCanvasPrint: function () {
999            var d = document.createElement("canvas"), b;
1000            try {
1001                b = d.getContext("2d")
1002            } catch (e) {
1003                return ""
1004            }
1005            b.textBaseline = "top";
1006            b.font = "14px 'Arial'";
1007            b.textBaseline = "alphabetic";
1008            b.fillStyle = "#f60";
1009            b.fillRect(125, 1, 62, 20);
1010            b.fillStyle = "#069";
1011            b.fillText("http://valve.github.io", 2, 15);
1012            b.fillStyle = "rgba(102, 204, 0, 0.7)";
1013            b.fillText("http://valve.github.io", 4, 17);
1014            return d.toDataURL()
1015        }
1016    };
1017    "object" === typeof module &&
1018    "object" === typeof exports && (module.exports = d);
1019    f.ClientJS = d
1020})(window);

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.