Overview

URLhttp://www.360doc.com/
IP117.79.156.196
ASNAS17431 Beijing TONEK Information Technology Development Company
Location China
Report completed2012-11-06 23:37:45 CET
StatusLoading report..
urlQuery Alerts No alerts detected


Settings

UserAgentMozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Referer
Adobe Reader8.0
Java1.6.0_26


Intrusion Detection Systems

Suricata /w Emerging Threats Pro No alerts detected
Snort /w Sourcefire VRT
Timestamp Source IP Destination IP Severity Alert
2012-11-06 23:37:11 123.125.115.126 urlQuery Client1BROWSER-IE Microsoft Internet Explorer userdata behavior memory corruption attempt


Recent reports on same IP/ASN/Domain

Last 6 reports on IP: 117.79.156.196

Date Alerts / IDS URL IP
2013-01-25 21:14:160 / 5http://www.360doc.com/content/12/1125/17/8834332_250152575.shtml117.79.156.196
2013-01-23 09:05:420 / 6http://www.360doc.com/content/12/1125/18/8834332_250166905.shtml117.79.156.196
2013-01-23 00:15:230 / 6http://www.360doc.com/content/12/1128/18/8834332_250802078.shtml117.79.156.196
2013-01-21 16:52:400 / 5http://www.360doc.com/content/12/1127/20/8834332_250614819.shtml117.79.156.196
2013-01-20 19:19:200 / 5http://www.360doc.com/content/12/1201/19/8834332_251421921.shtml117.79.156.196
2013-01-15 22:31:530 / 7http://www.360doc.com/content/12/1130/18/8834332_251234171.shtml117.79.156.196

Last 6 reports on ASN: AS17431 Beijing TONEK Information Technology Development Company

Date Alerts / IDS URL IP
2013-02-18 08:18:260 / 9http://www.baozipu.com/m1905.html117.79.93.180
2013-02-18 08:17:460 / 1http://www.baozipu.com/js/pub-merge_v2.js117.79.93.180
2013-02-16 20:01:330 / 0http://117.79.91.214117.79.91.214
2013-02-14 20:59:240 / 2http://www.jiaoshi.com.cn/template/default/image/msg/117.79.81.59
2013-02-14 19:42:550 / 0http://202.99.16068202.99.62.196
2013-02-13 19:56:500 / 0http://csdnimg.cn117.79.93.221

Last 6 reports on domain: www.360doc.com

Date Alerts / IDS URL IP
2013-01-25 21:14:160 / 5http://www.360doc.com/content/12/1125/17/8834332_250152575.shtml117.79.156.196
2013-01-25 21:14:140 / 1http://www.360doc.com/content/12/1125/16/8834332_250140366.shtml117.79.156.195
2013-01-23 09:05:440 / 6http://www.360doc.com/content/12/1127/19/8834332_250600620.shtml117.79.156.195
2013-01-23 09:05:420 / 6http://www.360doc.com/content/12/1125/18/8834332_250166905.shtml117.79.156.196
2013-01-23 00:15:520 / 9http://www.360doc.com/content/12/1126/21/8834332_250417960.shtml117.79.156.195
2013-01-23 00:15:230 / 6http://www.360doc.com/content/12/1128/18/8834332_250802078.shtml117.79.156.196



JavaScript

Executed Scripts (13)


Executed Evals (4)

#1 JavaScript::Eval (size: 3905, repeated: 1)

$(function() {
    if ((document.referrer == null || document.referrer == "") && getCookie("LoginName") != null && getCookie("LoginName") != "") {
        if (getCookie("360doc1") != null) window.location = "http://www.360doc.com/myreadroom.html";
        else window.location = "http://www.360doc.com/readroom.html"
    }
    getResaving()
});

function getResaving() {
    $.ajax({
        url: "/ajax/getResaving.ashx",
        cache: false,
        success: function(result) {
            $("#divresave").html(result);
            var scrtime;
            $("#divresaving").hover(function() {
                clearInterval(scrtime)
            }, function() {
                scrtime = setInterval(function() {
                    var $ul = $("#divresaving ul");
                    var $ul1 = $("#divresaving1 ul");
                    var liHeight = $ul.find("li:last").height();
                    $ul.animate({
                        marginTop: liHeight + "px"
                    }, 1000, function() {
                        $ul1.find("li:first").prependTo($ul);
                        $ul.find("li:first").hide();
                        $ul.css({
                            marginTop: 0
                        });
                        $ul.find("li:first").fadeIn(1000);
                        if ($ul1.find("li").length < 10) {
                            $.ajax({
                                url: "/ajax/getResaving.ashx?type=1",
                                cache: false,
                                success: function(result1) {
                                    $ul1.append(result1)
                                },
                                error: onFailed
                            })
                        }
                    })
                }, 4000)
            }).trigger("mouseleave")
        },
        error: onFailed
    })
}
function onLogin() {
    var evt = null;
    if (window.event) {
        evt = window.event
    } else {
        evt = SearchEvent()
    }
    var keyCode = evt.keyCode;
    if (keyCode == 13) {
        document.getElementById("btnLogin").focus();
        document.getElementById("btnLogin").onclick()
    }
}
function Login() {
    var theEmail = document.getElementById("txtEmail").value;
    var thePws = document.getElementById("txtpws").value;
    var isRemember = 0;
    if (document.getElementById("chkRemember").checked == true) {
        isRemember = 1
    }
    var callbackobject = new CallBackXML("");
    callbackobject.onComplete = function(responseText, responseXml) {
        if (responseText != "") {
            if (responseText == "1" || responseText == "2" || responseText == "3" || responseText == "4") {
                if (getCookie("360doc1") != null) {
                    if (responseText == "1") {
                        window.location.href = "http://www.360doc.com/myfollow.aspx"
                    } else if (responseText == "2") {
                        window.location.href = "http://www.360doc.com/myindex.aspx"
                    } else if (responseText == "3") {
                        window.location.href = "http://www.360doc.com/myfiles.aspx?app=1&type=3"
                    } else if (responseText == "4") {
                        window.location.href = "http://www.360doc.com/myfollow.aspx?type=2"
                    }
                } else {
                    window.location.href = "/nocookie.html"
                }
            } else if (responseText == "&nbsp;ïÆ") {
                window.location.href = "/verifylogin.aspx?mail=" + encodeURI(theEmail) + ""
            } else if (responseText == "pwdissample") {
                window.location.href = "myfiles.aspx?app=9&type=3"
            } else {
                document.getElementById("divMsg").innerHTML = responseText
            }
        } else {
            if (getCookie("360doc1") != null) {
                window.location.href = "/myfollow.aspx"
            } else {
                window.location.href = "/nocookie.html"
            }
        }
    };
    theEmail = encodeURI(theEmail);
    thePws = escape($.md5(thePws.toLowerCase()));
    callbackobject.DoCallBack("userLogin.aspx?email=" + theEmail + "&pws=" + thePws + "&isr=" + isRemember + "&login=1")
}
function getUserInfo() {
    var struserid = getCookie("360doc1");
    if (struserid == null || struserid == "") {
        $("#divuserinfo").html("<div id=\"divMsg\" style=\"color: #ff0000; text-align: left;\"></div><div style=\"height: 43px;\"><input id=\"txtEmail\" type=\"text\" class=\"logininputanew\" value=\"茮±5ð\" onblur=\"if(!this.value) {this.value='茮±5ð';this.style.color='#b2b2b2';}\" onfocus=\"if(this.value=='茮±5ð') this.value='';this.style.color='#272727'\" /></div><div style=\"height: 43px; text-align: left; color: #fd8401;\" class=\"juselike\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td><input id=\"txtpws\" type=\"password\" class=\"logininputbnew\" value=\"Password\" onkeydown=\"onLogin();\" onblur=\"if(!this.value) {this.value='Password';this.style.color='#b2b2b2';}\" onfocus=\"if(this.value=='Password') this.value='';this.style.color='#272727'\" /></td><td>&nbsp;<a href=\"/get_pass.aspx\">ذÆ</a></td></tr></table></div><div style=\"height: 33px;\"><div class=\" left\"><div class=\"left\" style=\"padding-top: 3px;\"><input id=\"chkRemember\" type=\"checkbox\" value=\"\" /></div><div class=\"left\" style=\"width: 80px; padding-top: 5px; color: #737172;\" title=\"d!{Uꁨ
¹û

#2 JavaScript::Eval (size: 429, repeated: 1)

(function() {
    if (getCookie("360doc10") == null) {
        var $backToTopEle = $(".backToTop");
        $backToTopEle.show();
        setCookie("360doc10", 1, 240000);
        var $backToTopFun = function() {
                var st = $(document).scrollTop(),
                    winh = $(window).height();
                if (!window.XMLHttpRequest) {
                    $backToTopEle.css("top", st + winh - 140)
                }
            };
        $(window).bind("scroll", $backToTopFun);
        $(function() {
            $backToTopFun()
        })
    }
})();

function closediv() {
    $(".backToTop").hide();
    setCookie("360doc10", 1, 240000)
}

#3 JavaScript::Eval (size: 72732, repeated: 1)

(function() {
    var window = this,
        undefined, _jQuery = window.jQuery,
        _$ = window.$,
        jQuery = window.jQuery = window.$ = function(selector, context) {
            return new jQuery.fn.init(selector, context)
        },
        quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
        isSimple = /^.[^:#\[\.,]*$/;
    jQuery.fn = jQuery.prototype = {
        init: function(selector, context) {
            selector = selector || document;
            if (selector.nodeType) {
                this[0] = selector;
                this.length = 1;
                this.context = selector;
                return this
            }
            if (typeof selector === "string") {
                var match = quickExpr.exec(selector);
                if (match && (match[1] || !context)) {
                    if (match[1]) selector = jQuery.clean([match[1]], context);
                    else {
                        var elem = document.getElementById(match[3]);
                        if (elem && elem.id != match[3]) return jQuery().find(selector);
                        var ret = jQuery(elem || []);
                        ret.context = document;
                        ret.selector = selector;
                        return ret
                    }
                } else return jQuery(context).find(selector)
            } else if (jQuery.isFunction(selector)) return jQuery(document).ready(selector);
            if (selector.selector && selector.context) {
                this.selector = selector.selector;
                this.context = selector.context
            }
            return this.setArray(jQuery.isArray(selector) ? selector : jQuery.makeArray(selector))
        },
        selector: "",
        jquery: "1.3.2",
        size: function() {
            return this.length
        },
        get: function(num) {
            return num === undefined ? Array.prototype.slice.call(this) : this[num]
        },
        pushStack: function(elems, name, selector) {
            var ret = jQuery(elems);
            ret.prevObject = this;
            ret.context = this.context;
            if (name === "find") ret.selector = this.selector + (this.selector ? " " : "") + selector;
            else if (name) ret.selector = this.selector + "." + name + "(" + selector + ")";
            return ret
        },
        setArray: function(elems) {
            this.length = 0;
            Array.prototype.push.apply(this, elems);
            return this
        },
        each: function(callback, args) {
            return jQuery.each(this, callback, args)
        },
        index: function(elem) {
            return jQuery.inArray(elem && elem.jquery ? elem[0] : elem, this)
        },
        attr: function(name, value, type) {
            var options = name;
            if (typeof name === "string") if (value === undefined) return this[0] && jQuery[type || "attr"](this[0], name);
            else {
                options = {};
                options[name] = value
            }
            return this.each(function(i) {
                for (name in options) jQuery.attr(type ? this.style : this, name, jQuery.prop(this, options[name], type, i, name))
            })
        },
        css: function(key, value) {
            if ((key == 'width' || key == 'height') && parseFloat(value) < 0) value = undefined;
            return this.attr(key, value, "curCSS")
        },
        text: function(text) {
            if (typeof text !== "object" && text != null) return this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(text));
            var ret = "";
            jQuery.each(text || this, function() {
                jQuery.each(this.childNodes, function() {
                    if (this.nodeType != 8) ret += this.nodeType != 1 ? this.nodeValue : jQuery.fn.text([this])
                })
            });
            return ret
        },
        wrapAll: function(html) {
            if (this[0]) {
                var wrap = jQuery(html, this[0].ownerDocument).clone();
                if (this[0].parentNode) wrap.insertBefore(this[0]);
                wrap.map(function() {
                    var elem = this;
                    while (elem.firstChild) elem = elem.firstChild;
                    return elem
                }).append(this)
            }
            return this
        },
        wrapInner: function(html) {
            return this.each(function() {
                jQuery(this).contents().wrapAll(html)
            })
        },
        wrap: function(html) {
            return this.each(function() {
                jQuery(this).wrapAll(html)
            })
        },
        append: function() {
            return this.domManip(arguments, true, function(elem) {
                if (this.nodeType == 1) this.appendChild(elem)
            })
        },
        prepend: function() {
            return this.domManip(arguments, true, function(elem) {
                if (this.nodeType == 1) this.insertBefore(elem, this.firstChild)
            })
        },
        before: function() {
            return this.domManip(arguments, false, function(elem) {
                this.parentNode.insertBefore(elem, this)
            })
        },
        after: function() {
            return this.domManip(arguments, false, function(elem) {
                this.parentNode.insertBefore(elem, this.nextSibling)
            })
        },
        end: function() {
            return this.prevObject || jQuery([])
        },
        push: [].push,
        sort: [].sort,
        splice: [].splice,
        find: function(selector) {
            if (this.length === 1) {
                var ret = this.pushStack([], "find", selector);
                ret.length = 0;
                jQuery.find(selector, this[0], ret);
                return ret
            } else {
                return this.pushStack(jQuery.unique(jQuery.map(this, function(elem) {
                    return jQuery.find(selector, elem)
                })), "find", selector)
            }
        },
        clone: function(events) {
            var ret = this.map(function() {
                if (!jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this)) {
                    var html = this.outerHTML;
                    if (!html) {
                        var div = this.ownerDocument.createElement("div");
                        div.appendChild(this.cloneNode(true));
                        html = div.innerHTML
                    }
                    return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]
                } else return this.cloneNode(true)
            });
            if (events === true) {
                var orig = this.find("*").andSelf(),
                    i = 0;
                ret.find("*").andSelf().each(function() {
                    if (this.nodeName !== orig[i].nodeName) return;
                    var events = jQuery.data(orig[i], "events");
                    for (var type in events) {
                        for (var handler in events[type]) {
                            jQuery.event.add(this, type, events[type][handler], events[type][handler].data)
                        }
                    }
                    i++
                })
            }
            return ret
        },
        filter: function(selector) {
            return this.pushStack(jQuery.isFunction(selector) && jQuery.grep(this, function(elem, i) {
                return selector.call(elem, i)
            }) || jQuery.multiFilter(selector, jQuery.grep(this, function(elem) {
                return elem.nodeType === 1
            })), "filter", selector)
        },
        closest: function(selector) {
            var pos = jQuery.expr.match.POS.test(selector) ? jQuery(selector) : null,
                closer = 0;
            return this.map(function() {
                var cur = this;
                while (cur && cur.ownerDocument) {
                    if (pos ? pos.index(cur) > -1 : jQuery(cur).is(selector)) {
                        jQuery.data(cur, "closest", closer);
                        return cur
                    }
                    cur = cur.parentNode;
                    closer++
                }
            })
        },
        not: function(selector) {
            if (typeof selector === "string") if (isSimple.test(selector)) return this.pushStack(jQuery.multiFilter(selector, this, true), "not", selector);
            else selector = jQuery.multiFilter(selector, this);
            var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
            return this.filter(function() {
                return isArrayLike ? jQuery.inArray(this, selector) < 0 : this != selector
            })
        },
        add: function(selector) {
            return this.pushStack(jQuery.unique(jQuery.merge(this.get(), typeof selector === "string" ? jQuery(selector) : jQuery.makeArray(selector))))
        },
        is: function(selector) {
            return !!selector && jQuery.multiFilter(selector, this).length > 0
        },
        hasClass: function(selector) {
            return !!selector && this.is("." + selector)
        },
        val: function(value) {
            if (value === undefined) {
                var elem = this[0];
                if (elem) {
                    if (jQuery.nodeName(elem, 'option')) return (elem.attributes.value || {}).specified ? elem.value : elem.text;
                    if (jQuery.nodeName(elem, "select")) {
                        var index = elem.selectedIndex,
                            values = [],
                            options = elem.options,
                            one = elem.type == "select-one";
                        if (index < 0) return null;
                        for (var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++) {
                            var option = options[i];
                            if (option.selected) {
                                value = jQuery(option).val();
                                if (one) return value;
                                values.push(value)
                            }
                        }
                        return values
                    }
                    return (elem.value || "").replace(/\r/g, "")
                }
                return undefined
            }
            if (typeof value === "number") value += '';
            return this.each(function() {
                if (this.nodeType != 1) return;
                if (jQuery.isArray(value) && /radio|checkbox/.test(this.type)) this.checked = (jQuery.inArray(this.value, value) >= 0 || jQuery.inArray(this.name, value) >= 0);
                else if (jQuery.nodeName(this, "select")) {
                    var values = jQuery.makeArray(value);
                    jQuery("option", this).each(function() {
                        this.selected = (jQuery.inArray(this.value, values) >= 0 || jQuery.inArray(this.text, values) >= 0)
                    });
                    if (!values.length) this.selectedIndex = -1
                } else this.value = value
            })
        },
        html: function(value) {
            return value === undefined ? (this[0] ? this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : null) : this.empty().append(value)
        },
        replaceWith: function(value) {
            return this.after(value).remove()
        },
        eq: function(i) {
            return this.slice(i, +i + 1)
        },
        slice: function() {
            return this.pushStack(Array.prototype.slice.apply(this, arguments), "slice", Array.prototype.slice.call(arguments).join(","))
        },
        map: function(callback) {
            return this.pushStack(jQuery.map(this, function(elem, i) {
                return callback.call(elem, i, elem)
            }))
        },
        andSelf: function() {
            return this.add(this.prevObject)
        },
        domManip: function(args, table, callback) {
            if (this[0]) {
                var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
                    scripts = jQuery.clean(args, (this[0].ownerDocument || this[0]), fragment),
                    first = fragment.firstChild;
                if (first) for (var i = 0, l = this.length; i < l; i++) callback.call(root(this[i], first), this.length > 1 || i > 0 ? fragment.cloneNode(true) : fragment);
                if (scripts) jQuery.each(scripts, evalScript)
            }
            return this;

            function root(elem, cur) {
                return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? (elem.getElementsByTagName("tbody")[0] || elem.appendChild(elem.ownerDocument.createElement("tbody"))) : elem
            }
        }
    };
    jQuery.fn.init.prototype = jQuery.fn;

    function evalScript(i, elem) {
        if (elem.src) jQuery.ajax({
            url: elem.src,
            async: false,
            dataType: "script"
        });
        else jQuery.globalEval(elem.text || elem.textContent || elem.innerHTML || "");
        if (elem.parentNode) elem.parentNode.removeChild(elem)
    }
    function now() {
        return +new Date
    }
    jQuery.extend = jQuery.fn.extend = function() {
        var target = arguments[0] || {},
            i = 1,
            length = arguments.length,
            deep = false,
            options;
        if (typeof target === "boolean") {
            deep = target;
            target = arguments[1] || {};
            i = 2
        }
        if (typeof target !== "object" && !jQuery.isFunction(target)) target = {};
        if (length == i) {
            target = this;
            --i
        }
        for (; i < length; i++) if ((options = arguments[i]) != null) for (var name in options) {
            var src = target[name],
                copy = options[name];
            if (target === copy) continue;
            if (deep && copy && typeof copy === "object" && !copy.nodeType) target[name] = jQuery.extend(deep, src || (copy.length != null ? [] : {}), copy);
            else if (copy !== undefined) target[name] = copy
        }
        return target
    };
    var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
        defaultView = document.defaultView || {},
        toString = Object.prototype.toString;
    jQuery.extend({
        noConflict: function(deep) {
            window.$ = _$;
            if (deep) window.jQuery = _jQuery;
            return jQuery
        },
        isFunction: function(obj) {
            return toString.call(obj) === "[object Function]"
        },
        isArray: function(obj) {
            return toString.call(obj) === "[object Array]"
        },
        isXMLDoc: function(elem) {
            return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || !! elem.ownerDocument && jQuery.isXMLDoc(elem.ownerDocument)
        },
        globalEval: function(data) {
            if (data && /\S/.test(data)) {
                var head = document.getElementsByTagName("head")[0] || document.documentElement,
                    script = document.createElement("script");
                script.type = "text/javascript";
                if (jQuery.support.scriptEval) script.appendChild(document.createTextNode(data));
                else script.text = data;
                head.insertBefore(script, head.firstChild);
                head.removeChild(script)
            }
        },
        nodeName: function(elem, name) {
            return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase()
        },
        each: function(object, callback, args) {
            var name, i = 0,
                length = object.length;
            if (args) {
                if (length === undefined) {
                    for (name in object) if (callback.apply(object[name], args) === false) break
                } else for (; i < length;) if (callback.apply(object[i++], args) === false) break
            } else {
                if (length === undefined) {
                    for (name in object) if (callback.call(object[name], name, object[name]) === false) break
                } else for (var value = object[0]; i < length && callback.call(value, i, value) !== false; value = object[++i]) {}
            }
            return object
        },
        prop: function(elem, value, type, i, name) {
            if (jQuery.isFunction(value)) value = value.call(elem, i);
            return typeof value === "number" && type == "curCSS" && !exclude.test(name) ? value + "px" : value
        },
        className: {
            add: function(elem, classNames) {
                jQuery.each((classNames || "").split(/\s+/), function(i, className) {
                    if (elem.nodeType == 1 && !jQuery.className.has(elem.className, className)) elem.className += (elem.className ? " " : "") + className
                })
            },
            remove: function(elem, classNames) {
                if (elem.nodeType == 1) elem.className = classNames !== undefined ? jQuery.grep(elem.className.split(/\s+/), function(className) {
                    return !jQuery.className.has(classNames, className)
                }).join(" ") : ""
            },
            has: function(elem, className) {
                return elem && jQuery.inArray(className, (elem.className || elem).toString().split(/\s+/)) > -1
            }
        },
        swap: function(elem, options, callback) {
            var old = {};
            for (var name in options) {
                old[name] = elem.style[name];
                elem.style[name] = options[name]
            }
            callback.call(elem);
            for (var name in options) elem.style[name] = old[name]
        },
        css: function(elem, name, force, extra) {
            if (name == "width" || name == "height") {
                var val, props = {
                    position: "absolute",
                    visibility: "hidden",
                    display: "block"
                },
                    which = name == "width" ? ["Left", "Right"] : ["Top", "Bottom"];

                function getWH() {
                    val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
                    if (extra === "border") return;
                    jQuery.each(which, function() {
                        if (!extra) val -= parseFloat(jQuery.curCSS(elem, "padding" + this, true)) || 0;
                        if (extra === "margin") val += parseFloat(jQuery.curCSS(elem, "margin" + this, true)) || 0;
                        else val -= parseFloat(jQuery.curCSS(elem, "border" + this + "Width", true)) || 0
                    })
                }
                if (elem.offsetWidth !== 0) getWH();
                else jQuery.swap(elem, props, getWH);
                return Math.max(0, Math.round(val))
            }
            return jQuery.curCSS(elem, name, force)
        },
        curCSS: function(elem, name, force) {
            var ret, style = elem.style;
            if (name == "opacity" && !jQuery.support.opacity) {
                ret = jQuery.attr(style, "opacity");
                return ret == "" ? "1" : ret
            }
            if (name.match(/float/i)) name = styleFloat;
            if (!force && style && style[name]) ret = style[name];
            else if (defaultView.getComputedStyle) {
                if (name.match(/float/i)) name = "float";
                name = name.replace(/([A-Z])/g, "-$1").toLowerCase();
                var computedStyle = defaultView.getComputedStyle(elem, null);
                if (computedStyle) ret = computedStyle.getPropertyValue(name);
                if (name == "opacity" && ret == "") ret = "1"
            } else if (elem.currentStyle) {
                var camelCase = name.replace(/\-(\w)/g, function(all, letter) {
                    return letter.toUpperCase()
                });
                ret = elem.currentStyle[name] || elem.currentStyle[camelCase];
                if (!/^\d+(px)?$/i.test(ret) && /^\d/.test(ret)) {
                    var left = style.left,
                        rsLeft = elem.runtimeStyle.left;
                    elem.runtimeStyle.left = elem.currentStyle.left;
                    style.left = ret || 0;
                    ret = style.pixelLeft + "px";
                    style.left = left;
                    elem.runtimeStyle.left = rsLeft
                }
            }
            return ret
        },
        clean: function(elems, context, fragment) {
            context = context || document;
            if (typeof context.createElement === "undefined") context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
            if (!fragment && elems.length === 1 && typeof elems[0] === "string") {
                var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
                if (match) return [context.createElement(match[1])]
            }
            var ret = [],
                scripts = [],
                div = context.createElement("div");
            jQuery.each(elems, function(i, elem) {
                if (typeof elem === "number") elem += '';
                if (!elem) return;
                if (typeof elem === "string") {
                    elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag) {
                        return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? all : front + "></" + tag + ">"
                    });
                    var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase();
                    var wrap = !tags.indexOf("<opt") && [1, "<select multiple='multiple'>", "</select>"] || !tags.indexOf("<leg") && [1, "<fieldset>", "</fieldset>"] || tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1, "<table>", "</table>"] || !tags.indexOf("<tr") && [2, "<table><tbody>", "</tbody></table>"] || (!tags.indexOf("<td") || !tags.indexOf("<th")) && [3, "<table><tbody><tr>", "</tr></tbody></table>"] || !tags.indexOf("<col") && [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"] || !jQuery.support.htmlSerialize && [1, "div<div>", "</div>"] || [0, "", ""];
                    div.innerHTML = wrap[1] + elem + wrap[2];
                    while (wrap[0]--) div = div.lastChild;
                    if (!jQuery.support.tbody) {
                        var hasBody = /<tbody/i.test(elem),
                            tbody = !tags.indexOf("<table") && !hasBody ? div.firstChild && div.firstChild.childNodes : wrap[1] == "<table>" && !hasBody ? div.childNodes : [];
                        for (var j = tbody.length - 1; j >= 0; --j) if (jQuery.nodeName(tbody[j], "tbody") && !tbody[j].childNodes.length) tbody[j].parentNode.removeChild(tbody[j])
                    }
                    if (!jQuery.support.leadingWhitespace && /^\s/.test(elem)) div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]), div.firstChild);
                    elem = jQuery.makeArray(div.childNodes)
                }
                if (elem.nodeType) ret.push(elem);
                else ret = jQuery.merge(ret, elem)
            });
            if (fragment) {
                for (var i = 0; ret[i]; i++) {
                    if (jQuery.nodeName(ret[i], "script") && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript")) {
                        scripts.push(ret[i].parentNode ? ret[i].parentNode.removeChild(ret[i]) : ret[i])
                    } else {
                        if (ret[i].nodeType === 1) ret.splice.apply(ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))));
                        fragment.appendChild(ret[i])
                    }
                }
                return scripts
            }
            return ret
        },
        attr: function(elem, name, value) {
            if (!elem || elem.nodeType == 3 || elem.nodeType == 8) return undefined;
            var notxml = !jQuery.isXMLDoc(elem),
                set = value !== undefined;
            name = notxml && jQuery.props[name] || name;
            if (elem.tagName) {
                var special = /href|src|style/.test(name);
                if (name == "selected" && elem.parentNode) elem.parentNode.selectedIndex;
                if (name in elem && notxml && !special) {
                    if (set) {
                        if (name == "type" && jQuery.nodeName(elem, "input") && elem.parentNode) throw "type property can't be changed";
                        elem[name] = value
                    }
                    if (jQuery.nodeName(elem, "form") && elem.getAttributeNode(name)) return elem.getAttributeNode(name).nodeValue;
                    if (name == "tabIndex") {
                        var attributeNode = elem.getAttributeNode("tabIndex");
                        return attributeNode && attributeNode.specified ? attributeNode.value : elem.nodeName.match(/(button|input|object|select|textarea)/i) ? 0 : elem.nodeName.match(/^(a|area)$/i) && elem.href ? 0 : undefined
                    }
                    return elem[name]
                }
                if (!jQuery.support.style && notxml && name == "style") return jQuery.attr(elem.style, "cssText", value);
                if (set) elem.setAttribute(name, "" + value);
                var attr = !jQuery.support.hrefNormalized && notxml && special ? elem.getAttribute(name, 2) : elem.getAttribute(name);
                return attr === null ? undefined : attr
            }
            if (!jQuery.support.opacity && name == "opacity") {
                if (set) {
                    elem.zoom = 1;
                    elem.filter = (elem.filter || "").replace(/alpha\([^)]*\)/, "") + (parseInt(value) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")")
                }
                return elem.filter && elem.filter.indexOf("opacity=") >= 0 ? (parseFloat(elem.filter.match(/opacity=([^)]*)/)[1]) / 100) + '' : ""
            }
            name = name.replace(/-([a-z])/ig, function(all, letter) {
                return letter.toUpperCase()
            });
            if (set) elem[name] = value;
            return elem[name]
        },
        trim: function(text) {
            return (text || "").replace(/^\s+|\s+$/g, "")
        },
        makeArray: function(array) {
            var ret = [];
            if (array != null) {
                var i = array.length;
                if (i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval) ret[0] = array;
                else while (i) ret[--i] = array[i]
            }
            return ret
        },
        inArray: function(elem, array) {
            for (var i = 0, length = array.length; i < length; i++) if (array[i] === elem) return i;
            return -1
        },
        merge: function(first, second) {
            var i = 0,
                elem, pos = first.length;
            if (!jQuery.support.getAll) {
                while ((elem = second[i++]) != null) if (elem.nodeType != 8) first[pos++] = elem
            } else while ((elem = second[i++]) != null) first[pos++] = elem;
            return first
        },
        unique: function(array) {
            var ret = [],
                done = {};
            try {
                for (var i = 0, length = array.length; i < length; i++) {
                    var id = jQuery.data(array[i]);
                    if (!done[id]) {
                        done[id] = true;
                        ret.push(array[i])
                    }
                }
            } catch (e) {
                ret = array
            }
            return ret
        },
        grep: function(elems, callback, inv) {
            var ret = [];
            for (var i = 0, length = elems.length; i < length; i++) if (!inv != !callback(elems[i], i)) ret.push(elems[i]);
            return ret
        },
        map: function(elems, callback) {
            var ret = [];
            for (var i = 0, length = elems.length; i < length; i++) {
                var value = callback(elems[i], i);
                if (value != null) ret[ret.length] = value
            }
            return ret.concat.apply([], ret)
        }
    });
    var userAgent = navigator.userAgent.toLowerCase();
    jQuery.browser = {
        version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, '0'])[1],
        safari: /webkit/.test(userAgent),
        opera: /opera/.test(userAgent),
        msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
        mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
    };
    jQuery.each({
        parent: function(elem) {
            return elem.parentNode
        },
        parents: function(elem) {
            return jQuery.dir(elem, "parentNode")
        },
        next: function(elem) {
            return jQuery.nth(elem, 2, "nextSibling")
        },
        prev: function(elem) {
            return jQuery.nth(elem, 2, "previousSibling")
        },
        nextAll: function(elem) {
            return jQuery.dir(elem, "nextSibling")
        },
        prevAll: function(elem) {
            return jQuery.dir(elem, "previousSibling")
        },
        siblings: function(elem) {
            return jQuery.sibling(elem.parentNode.firstChild, elem)
        },
        children: function(elem) {
            return jQuery.sibling(elem.firstChild)
        },
        contents: function(elem) {
            return jQuery.nodeName(elem, "iframe") ? elem.contentDocument || elem.contentWindow.document : jQuery.makeArray(elem.childNodes)
        }
    }, function(name, fn) {
        jQuery.fn[name] = function(selector) {
            var ret = jQuery.map(this, fn);
            if (selector && typeof selector == "string") ret = jQuery.multiFilter(selector, ret);
            return this.pushStack(jQuery.unique(ret), name, selector)
        }
    });
    jQuery.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function(name, original) {
        jQuery.fn[name] = function(selector) {
            var ret = [],
                insert = jQuery(selector);
            for (var i = 0, l = insert.length; i < l; i++) {
                var elems = (i > 0 ? this.clone(true) : this).get();
                jQuery.fn[original].apply(jQuery(insert[i]), elems);
                ret = ret.concat(elems)
            }
            return this.pushStack(ret, name, selector)
        }
    });
    jQuery.each({
        removeAttr: function(name) {
            jQuery.attr(this, name, "");
            if (this.nodeType == 1) this.removeAttribute(name)
        },
        addClass: function(classNames) {
            jQuery.className.add(this, classNames)
        },
        removeClass: function(classNames) {
            jQuery.className.remove(this, classNames)
        },
        toggleClass: function(classNames, state) {
            if (typeof state !== "boolean") state = !jQuery.className.has(this, classNames);
            jQuery.className[state ? "add" : "remove"](this, classNames)
        },
        remove: function(selector) {
            if (!selector || jQuery.filter(selector, [this]).length) {
                jQuery("*", this).add([this]).each(function() {
                    jQuery.event.remove(this);
                    jQuery.removeData(this)
                });
                if (this.parentNode) this.parentNode.removeChild(this)
            }
        },
        empty: function() {
            jQuery(this).children().remove();
            while (this.firstChild) this.removeChild(this.firstChild)
        }
    }, function(name, fn) {
        jQuery.fn[name] = function() {
            return this.each(fn, arguments)
        }
    });

    function num(elem, prop) {
        return elem[0] && parseInt(jQuery.curCSS(elem[0], prop, true), 10) || 0
    }
    var expando = "jQuery" + now(),
        uuid = 0,
        windowData = {};
    jQuery.extend({
        cache: {},
        data: function(elem, name, data) {
            elem = elem == window ? windowData : elem;
            var id = elem[expando];
            if (!id) id = elem[expando] = ++uuid;
            if (name && !jQuery.cache[id]) jQuery.cache[id] = {};
            if (data !== undefined) jQuery.cache[id][name] = data;
            return name ? jQuery.cache[id][name] : id
        },
        removeData: function(elem, name) {
            elem = elem == window ? windowData : elem;
            var id = elem[expando];
            if (name) {
                if (jQuery.cache[id]) {
                    delete jQuery.cache[id][name];
                    name = "";
                    for (name in jQuery.cache[id]) break;
                    if (!name) jQuery.removeData(elem)
                }
            } else {
                try {
                    delete elem[expando]
                } catch (e) {
                    if (elem.removeAttribute) elem.removeAttribute(expando)
                }
                delete jQuery.cache[id]
            }
        },
        queue: function(elem, type, data) {
            if (elem) {
                type = (type || "fx") + "queue";
                var q = jQuery.data(elem, type);
                if (!q || jQuery.isArray(data)) q = jQuery.data(elem, type, jQuery.makeArray(data));
                else if (data) q.push(data)
            }
            return q
        },
        dequeue: function(elem, type) {
            var queue = jQuery.queue(elem, type),
                fn = queue.shift();
            if (!type || type === "fx") fn = queue[0];
            if (fn !== undefined) fn.call(elem)
        }
    });
    jQuery.fn.extend({
        data: function(key, value) {
            var parts = key.split(".");
            parts[1] = parts[1] ? "." + parts[1] : "";
            if (value === undefined) {
                var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
                if (data === undefined && this.length) data = jQuery.data(this[0], key);
                return data === undefined && parts[1] ? this.data(parts[0]) : data
            } else return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function() {
                jQuery.data(this, key, value)
            })
        },
        removeData: function(key) {
            return this.each(function() {
                jQuery.removeData(this, key)
            })
        },
        queue: function(type, data) {
            if (typeof type !== "string") {
                data = type;
                type = "fx"
            }
            if (data === undefined) return jQuery.queue(this[0], type);
            return this.each(function() {
                var queue = jQuery.queue(this, type, data);
                if (type == "fx" && queue.length == 1) queue[0].call(this)
            })
        },
        dequeue: function(type) {
            return this.each(function() {
                jQuery.dequeue(this, type)
            })
        }
    });
    (function() {
        var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,
            done = 0,
            toString = Object.prototype.toString;
        var Sizzle = function(selector, context, results, seed) {
                results = results || [];
                context = context || document;
                if (context.nodeType !== 1 && context.nodeType !== 9) return [];
                if (!selector || typeof selector !== "string") {
                    return results
                }
                var parts = [],
                    m, set, checkSet, check, mode, extra, prune = true;
                chunker.lastIndex = 0;
                while ((m = chunker.exec(selector)) !== null) {
                    parts.push(m[1]);
                    if (m[2]) {
                        extra = RegExp.rightContext;
                        break
                    }
                }
                if (parts.length > 1 && origPOS.exec(selector)) {
                    if (parts.length === 2 && Expr.relative[parts[0]]) {
                        set = posProcess(parts[0] + parts[1], context)
                    } else {
                        set = Expr.relative[parts[0]] ? [context] : Sizzle(parts.shift(), context);
                        while (parts.length) {
                            selector = parts.shift();
                            if (Expr.relative[selector]) selector += parts.shift();
                            set = posProcess(selector, set)
                        }
                    }
                } else {
                    var ret = seed ? {
                        expr: parts.pop(),
                        set: makeArray(seed)
                    } : Sizzle.find(parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context));
                    set = Sizzle.filter(ret.expr, ret.set);
                    if (parts.length > 0) {
                        checkSet = makeArray(set)
                    } else {
                        prune = false
                    }
                    while (parts.length) {
                        var cur = parts.pop(),
                            pop = cur;
                        if (!Expr.relative[cur]) {
                            cur = ""
                        } else {
                            pop = parts.pop()
                        }
                        if (pop == null) {
                            pop = context
                        }
                        Expr.relative[cur](checkSet, pop, isXML(context))
                    }
                }
                if (!checkSet) {
                    checkSet = set
                }
                if (!checkSet) {
                    throw "Syntax error, unrecognized expression: " + (cur || selector)
                }
                if (toString.call(checkSet) === "[object Array]") {
                    if (!prune) {
                        results.push.apply(results, checkSet)
                    } else if (context.nodeType === 1) {
                        for (var i = 0; checkSet[i] != null; i++) {
                            if (checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i]))) {
                                results.push(set[i])
                            }
                        }
                    } else {
                        for (var i = 0; checkSet[i] != null; i++) {
                            if (checkSet[i] && checkSet[i].nodeType === 1) {
                                results.push(set[i])
                            }
                        }
                    }
                } else {
                    makeArray(checkSet, results)
                }
                if (extra) {
                    Sizzle(extra, context, results, seed);
                    if (sortOrder) {
                        hasDuplicate = false;
                        results.sort(sortOrder);
                        if (hasDuplicate) {
                            for (var i = 1; i < results.length; i++) {
                                if (results[i] === results[i - 1]) {
                                    results.splice(i--, 1)
                                }
                            }
                        }
                    }
                }
                return results
            };
        Sizzle.matches = function(expr, set) {
            return Sizzle(expr, null, null, set)
        };
        Sizzle.find = function(expr, context, isXML) {
            var set, match;
            if (!expr) {
                return []
            }
            for (var i = 0, l = Expr.order.length; i < l; i++) {
                var type = Expr.order[i],
                    match;
                if ((match = Expr.match[type].exec(expr))) {
                    var left = RegExp.leftContext;
                    if (left.substr(left.length - 1) !== "\\") {
                        match[1] = (match[1] || "").replace(/\\/g, "");
                        set = Expr.find[type](match, context, isXML);
                        if (set != null) {
                            expr = expr.replace(Expr.match[type], "");
                            break
                        }
                    }
                }
            }
            if (!set) {
                set = context.getElementsByTagName("*")
            }
            return {
                set: set,
                expr: expr
            }
        };
        Sizzle.filter = function(expr, set, inplace, not) {
            var old = expr,
                result = [],
                curLoop = set,
                match, anyFound, isXMLFilter = set && set[0] && isXML(set[0]);
            while (expr && set.length) {
                for (var type in Expr.filter) {
                    if ((match = Expr.match[type].exec(expr)) != null) {
                        var filter = Expr.filter[type],
                            found, item;
                        anyFound = false;
                        if (curLoop == result) {
                            result = []
                        }
                        if (Expr.preFilter[type]) {
                            match = Expr.preFilter[type](match, curLoop, inplace, result, not, isXMLFilter);
                            if (!match) {
                                anyFound = found = true
                            } else if (match === true) {
                                continue
                            }
                        }
                        if (match) {
                            for (var i = 0;
                            (item = curLoop[i]) != null; i++) {
                                if (item) {
                                    found = filter(item, match, i, curLoop);
                                    var pass = not ^ !! found;
                                    if (inplace && found != null) {
                                        if (pass) {
                                            anyFound = true
                                        } else {
                                            curLoop[i] = false
                                        }
                                    } else if (pass) {
                                        result.push(item);
                                        anyFound = true
                                    }
                                }
                            }
                        }
                        if (found !== undefined) {
                            if (!inplace) {
                                curLoop = result
                            }
                            expr = expr.replace(Expr.match[type], "");
                            if (!anyFound) {
                                return []
                            }
                            break
                        }
                    }
                }
                if (expr == old) {
                    if (anyFound == null) {
                        throw "Syntax error, unrecognized expression: " + expr
                    } else {
                        break
                    }
                }
                old = expr
            }
            return curLoop
        };
        var Expr = Sizzle.selectors = {
            order: ["ID", "NAME", "TAG"],
            match: {
                ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
                CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
                NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
                ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
                TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
                CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
                POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
                PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
            },
            attrMap: {
                "class": "className",
                "for": "htmlFor"
            },
            attrHandle: {
                href: function(elem) {
                    return elem.getAttribute("href")
                }
            },
            relative: {
                "+": function(checkSet, part, isXML) {
                    var isPartStr = typeof part === "string",
                        isTag = isPartStr && !/\W/.test(part),
                        isPartStrNotTag = isPartStr && !isTag;
                    if (isTag && !isXML) {
                        part = part.toUpperCase()
                    }
                    for (var i = 0, l = checkSet.length, elem; i < l; i++) {
                        if ((elem = checkSet[i])) {
                            while ((elem = elem.previousSibling) && elem.nodeType !== 1) {}
                            checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ? elem || false : elem === part
                        }
                    }
                    if (isPartStrNotTag) {
                        Sizzle.filter(part, checkSet, true)
                    }
                },
                ">": function(checkSet, part, isXML) {
                    var isPartStr = typeof part === "string";
                    if (isPartStr && !/\W/.test(part)) {
                        part = isXML ? part : part.toUpperCase();
                        for (var i = 0, l = checkSet.length; i < l; i++) {
                            var elem = checkSet[i];
                            if (elem) {
                                var parent = elem.parentNode;
                                checkSet[i] = parent.nodeName === part ? parent : false
                            }
                        }
                    } else {
                        for (var i = 0, l = checkSet.length; i < l; i++) {
                            var elem = checkSet[i];
                            if (elem) {
                                checkSet[i] = isPartStr ? elem.parentNode : elem.parentNode === part
                            }
                        }
                        if (isPartStr) {
                            Sizzle.filter(part, checkSet, true)
                        }
                    }
                },
                "": function(checkSet, part, isXML) {
                    var doneName = done++,
                        checkFn = dirCheck;
                    if (!part.match(/\W/)) {
                        var nodeCheck = part = isXML ? part : part.toUpperCase();
                        checkFn = dirNodeCheck
                    }
                    checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML)
                },
                "~": function(checkSet, part, isXML) {
                    var doneName = done++,
                        checkFn = dirCheck;
                    if (typeof part === "string" && !part.match(/\W/)) {
                        var nodeCheck = part = isXML ? part : part.toUpperCase();
                        checkFn = dirNodeCheck
                    }
                    checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML)
                }
            },
            find: {
                ID: function(match, context, isXML) {
                    if (typeof context.getElementById !== "undefined" && !isXML) {
                        var m = context.getElementById(match[1]);
                        return m ? [m] : []
                    }
                },
                NAME: function(match, context, isXML) {
                    if (typeof context.getElementsByName !== "undefined") {
                        var ret = [],
                            results = context.getElementsByName(match[1]);
                        for (var i = 0, l = results.length; i < l; i++) {
                            if (results[i].getAttribute("name") === match[1]) {
                                ret.push(results[i])
                            }
                        }
                        return ret.length === 0 ? null : ret
                    }
                },
                TAG: function(match, context) {
                    return context.getElementsByTagName(match[1])
                }
            },
            preFilter: {
                CLASS: function(match, curLoop, inplace, result, not, isXML) {
                    match = " " + match[1].replace(/\\/g, "") + " ";
                    if (isXML) {
                        return match
                    }
                    for (var i = 0, elem;
                    (elem = curLoop[i]) != null; i++) {
                        if (elem) {
                            if (not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0)) {
                                if (!inplace) result.push(elem)
                            } else if (inplace) {
                                curLoop[i] = false
                            }
                        }
                    }
                    return false
                },
                ID: function(match) {
                    return match[1].replace(/\\/g, "")
                },
                TAG: function(match, curLoop) {
                    for (var i = 0; curLoop[i] === false; i++) {}
                    return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase()
                },
                CHILD: function(match) {
                    if (match[1] == "nth") {
                        var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" || !/\D/.test(match[2]) && "0n+" + match[2] || match[2]);
                        match[2] = (test[1] + (test[2] || 1)) - 0;
                        match[3] = test[3] - 0
                    }
                    match[0] = done++;
                    return match
                },
                ATTR: function(match, curLoop, inplace, result, not, isXML) {
                    var name = match[1].replace(/\\/g, "");
                    if (!isXML && Expr.attrMap[name]) {
                        match[1] = Expr.attrMap[name]
                    }
                    if (match[2] === "~=") {
                        match[4] = " " + match[4] + " "
                    }
                    return match
                },
                PSEUDO: function(match, curLoop, inplace, result, not) {
                    if (match[1] === "not") {
                        if (match[3].match(chunker).length > 1 || /^\w/.test(match[3])) {
                            match[3] = Sizzle(match[3], null, null, curLoop)
                        } else {
                            var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
                            if (!inplace) {
                                result.push.apply(result, ret)
                            }
                            return false
                        }
                    } else if (Expr.match.POS.test(match[0]) || Expr.match.CHILD.test(match[0])) {
                        return true
                    }
                    return match
                },
                POS: function(match) {
                    match.unshift(true);
                    return match
                }
            },
            filters: {
                enabled: function(elem) {
                    return elem.disabled === false && elem.type !== "hidden"
                },
                disabled: function(elem) {
                    return elem.disabled === true
                },
                checked: function(elem) {
                    return elem.checked === true
                },
                selected: function(elem) {
                    elem.parentNode.selectedIndex;
                    return elem.selected === true
                },
                parent: function(elem) {
                    return !!elem.firstChild
                },
                empty: function(elem) {
                    return !elem.firstChild
                },
                has: function(elem, i, match) {
                    return !!Sizzle(match[3], elem).length
                },
                header: function(elem) {
                    return /h\d/i.test(elem.nodeName)
                },
                text: function(elem) {
                    return "text" === elem.type
                },
                radio: function(elem) {
                    return "radio" === elem.type
                },
                checkbox: function(elem) {
                    return "checkbox" === elem.type
                },
                file: function(elem) {
                    return "file" === elem.type
                },
                password: function(elem) {
                    return "password" === elem.type
                },
                submit: function(elem) {
                    return "submit" === elem.type
                },
                image: function(elem) {
                    return "image" === elem.type
                },
                reset: function(elem) {
                    return "reset" === elem.type
                },
                button: function(elem) {
                    return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON"
                },
                input: function(elem) {
                    return /input|select|textarea|button/i.test(elem.nodeName)
                }
            },
            setFilters: {
                first: function(elem, i) {
                    return i === 0
                },
                last: function(elem, i, match, array) {
                    return i === array.length - 1
                },
                even: function(elem, i) {
                    return i % 2 === 0
                },
                odd: function(elem, i) {
                    return i % 2 === 1
                },
                lt: function(elem, i, match) {
                    return i < match[3] - 0
                },
                gt: function(elem, i, match) {
                    return i > match[3] - 0
                },
                nth: function(elem, i, match) {
                    return match[3] - 0 == i
                },
                eq: function(elem, i, match) {
                    return match[3] - 0 == i
                }
            },
            filter: {
                PSEUDO: function(elem, match, i, array) {
                    var name = match[1],
                        filter = Expr.filters[name];
                    if (filter) {
                        return filter(elem, i, match, array)
                    } else if (name === "contains") {
                        return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0
                    } else if (name === "not") {
                        var not = match[3];
                        for (var i = 0, l = not.length; i < l; i++) {
                            if (not[i] === elem) {
                                return false
                            }
                        }
                        return true
                    }
                },
                CHILD: function(elem, match) {
                    var type = match[1],
                        node = elem;
                    switch (type) {
                    case 'only':
                    case 'first':
                        while (node = node.previousSibling) {
                            if (node.nodeType === 1) return false
                        }
                        if (type == 'first') return true;
                        node = elem;
                    case 'last':
                        while (node = node.nextSibling) {
                            if (node.nodeType === 1) return false
                        }
                        return true;
                    case 'nth':
                        var first = match[2],
                            last = match[3];
                        if (first == 1 && last == 0) {
                            return true
                        }
                        var doneName = match[0],
                            parent = elem.parentNode;
                        if (parent && (parent.sizcache !== doneName || !elem.nodeIndex)) {
                            var count = 0;
                            for (node = parent.firstChild; node; node = node.nextSibling) {
                                if (node.nodeType === 1) {
                                    node.nodeIndex = ++count
                                }
                            }
                            parent.sizcache = doneName
                        }
                        var diff = elem.nodeIndex - last;
                        if (first == 0) {
                            return diff == 0
                        } else {
                            return (diff % first == 0 && diff / first >= 0)
                        }
                    }
                },
                ID: function(elem, match) {
                    return elem.nodeType === 1 && elem.getAttribute("id") === match
                },
                TAG: function(elem, match) {
                    return (match === "*" && elem.nodeType === 1) || elem.nodeName === match
                },
                CLASS: function(elem, match) {
                    return (" " + (elem.className || elem.getAttribute("class")) + " ").indexOf(match) > -1
                },
                ATTR: function(elem, match) {
                    var name = match[1],
                        result = Expr.attrHandle[name] ? Expr.attrHandle[name](elem) : elem[name] != null ? elem[name] : elem.getAttribute(name),
                        value = result + "",
                        type = match[2],
                        check = match[4];
                    return result == null ? type === "!=" : type === "=" ? value === check : type === "*=" ? value.indexOf(check) >= 0 : type === "~=" ? (" " + value + " ").indexOf(check) >= 0 : !check ? value && result !== false : type === "!=" ? value != check : type === "^=" ? value.indexOf(check) === 0 : type === "$=" ? value.substr(value.length - check.length) === check : type === "|=" ? value === check || value.substr(0, check.length + 1) === check + "-" : false
                },
                POS: function(elem, match, i, array) {
                    var name = match[2],
                        filter = Expr.setFilters[name];
                    if (filter) {
                        return filter(elem, i, match, array)
                    }
                }
            }
        };
        var origPOS = Expr.match.POS;
        for (var type in Expr.match) {
            Expr.match[type] = RegExp(Expr.match[type].source + /(?![^\[]*\])(?![^\(]*\))/.source)
        }
        var makeArray = function(array, results) {
                array = Array.prototype.slice.call(array);
                if (results) {
                    results.push.apply(results, array);
                    return results
                }
                return array
            };
        try {
            Array.prototype.slice.call(document.documentElement.childNodes)
        } catch (e) {
            makeArray = function(array, results) {
                var ret = results || [];
                if (toString.call(array) === "[object Array]") {
                    Array.prototype.push.apply(ret, array)
                } else {
                    if (typeof array.length === "number") {
                        for (var i = 0, l = array.length; i < l; i++) {
                            ret.push(array[i])
                        }
                    } else {
                        for (var i = 0; array[i]; i++) {
                            ret.push(array[i])
                        }
                    }
                }
                return ret
            }
        }
        var sortOrder;
        if (document.documentElement.compareDocumentPosition) {
            sortOrder = function(a, b) {
                var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
                if (ret === 0) {
                    hasDuplicate = true
                }
                return ret
            }
        } else if ("sourceIndex" in document.documentElement) {
            sortOrder = function(a, b) {
                var ret = a.sourceIndex - b.sourceIndex;
                if (ret === 0) {
                    hasDuplicate = true
                }
                return ret
            }
        } else if (document.createRange) {
            sortOrder = function(a, b) {
                var aRange = a.ownerDocument.createRange(),
                    bRange = b.ownerDocument.createRange();
                aRange.selectNode(a);
                aRange.collapse(true);
                bRange.selectNode(b);
                bRange.collapse(true);
                var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
                if (ret === 0) {
                    hasDuplicate = true
                }
                return ret
            }
        }(function() {
            var form = document.createElement("form"),
                id = "script" + (new Date).getTime();
            form.innerHTML = "<input name='" + id + "'/>";
            var root = document.documentElement;
            root.insertBefore(form, root.firstChild);
            if ( !! document.getElementById(id)) {
                Expr.find.ID = function(match, context, isXML) {
                    if (typeof context.getElementById !== "undefined" && !isXML) {
                        var m = context.getElementById(match[1]);
                        return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : []
                    }
                };
                Expr.filter.ID = function(elem, match) {
                    var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
                    return elem.nodeType === 1 && node && node.nodeValue === match
                }
            }
            root.removeChild(form)
        })();
        (function() {
            var div = document.createElement("div");
            div.appendChild(document.createComment(""));
            if (div.getElementsByTagName("*").length > 0) {
                Expr.find.TAG = function(match, context) {
                    var results = context.getElementsByTagName(match[1]);
                    if (match[1] === "*") {
                        var tmp = [];
                        for (var i = 0; results[i]; i++) {
                            if (results[i].nodeType === 1) {
                                tmp.push(results[i])
                            }
                        }
                        results = tmp
                    }
                    return results
                }
            }
            div.innerHTML = "<a href='#'></a>";
            if (div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && div.firstChild.getAttribute("href") !== "#") {
                Expr.attrHandle.href = function(elem) {
                    return elem.getAttribute("href", 2)
                }
            }
        })();
        if (document.querySelectorAll)(function() {
            var oldSizzle = Sizzle,
                div = document.createElement("div");
            div.innerHTML = "<p class='TEST'></p>";
            if (div.querySelectorAll && div.querySelectorAll(".TEST").length === 0) {
                return
            }
            Sizzle = function(query, context, extra, seed) {
                context = context || document;
                if (!seed && context.nodeType === 9 && !isXML(context)) {
                    try {
                        return makeArray(context.querySelectorAll(query), extra)
                    } catch (e) {}
                }
                return oldSizzle(query, context, extra, seed)
            };
            Sizzle.find = oldSizzle.find;
            Sizzle.filter = oldSizzle.filter;
            Sizzle.selectors = oldSizzle.selectors;
            Sizzle.matches = oldSizzle.matches
        })();
        if (document.getElementsByClassName && document.documentElement.getElementsByClassName)(function() {
            var div = document.createElement("div");
            div.innerHTML = "<div class='test e'></div><div class='test'></div>";
            if (div.getElementsByClassName("e").length === 0) return;
            div.lastChild.className = "e";
            if (div.getElementsByClassName("e").length === 1) return;
            Expr.order.splice(1, 0, "CLASS");
            Expr.find.CLASS = function(match, context, isXML) {
                if (typeof context.getElementsByClassName !== "undefined" && !isXML) {
                    return context.getElementsByClassName(match[1])
                }
            }
        })();

        function dirNodeCheck(dir, cur, doneName, checkSet, nodeCheck, isXML) {
            var sibDir = dir == "previousSibling" && !isXML;
            for (var i = 0, l = checkSet.length; i < l; i++) {
                var elem = checkSet[i];
                if (elem) {
                    if (sibDir && elem.nodeType === 1) {
                        elem.sizcache = doneName;
                        elem.sizset = i
                    }
                    elem = elem[dir];
                    var match = false;
                    while (elem) {
                        if (elem.sizcache === doneName) {
                            match = checkSet[elem.sizset];
                            break
                        }
                        if (elem.nodeType === 1 && !isXML) {
                            elem.sizcache = doneName;
                            elem.sizset = i
                        }
                        if (elem.nodeName === cur) {
                            match = elem;
                            break
                        }
                        elem = elem[dir]
                    }
                    checkSet[i] = match
                }
            }
        }
        function dirCheck(dir, cur, doneName, checkSet, nodeCheck, isXML) {
            var sibDir = dir == "previousSibling" && !isXML;
            for (var i = 0, l = checkSet.length; i < l; i++) {
                var elem = checkSet[i];
                if (elem) {
                    if (sibDir && elem.nodeType === 1) {
                        elem.sizcache = doneName;
                        elem.sizset = i
                    }
                    elem = elem[dir];
                    var match = false;
                    while (elem) {
                        if (elem.sizcache === doneName) {
                            match = checkSet[elem.sizset];
                            break
                        }
                        if (elem.nodeType === 1) {
                            if (!isXML) {
                                elem.sizcache = doneName;
                                elem.sizset = i
                            }
                            if (typeof cur !== "string") {
                                if (elem === cur) {
                                    match = true;
                                    break
                                }
                            } else if (Sizzle.filter(cur, [elem]).length > 0) {
                                match = elem;
                                break
                            }
                        }
                        elem = elem[dir]
                    }
                    checkSet[i] = match
                }
            }
        }
        var contains = document.compareDocumentPosition ?
        function(a, b) {
            return a.compareDocumentPosition(b) & 16
        } : function(a, b) {
            return a !== b && (a.contains ? a.contains(b) : true)
        };
        var isXML = function(elem) {
                return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || !! elem.ownerDocument && isXML(elem.ownerDocument)
            };
        var posProcess = function(selector, context) {
                var tmpSet = [],
                    later = "",
                    match, root = context.nodeType ? [context] : context;
                while ((match = Expr.match.PSEUDO.exec(selector))) {
                    later += match[0];
                    selector = selector.replace(Expr.match.PSEUDO, "")
                }
                selector = Expr.relative[selector] ? selector + "*" : selector;
                for (var i = 0, l = root.length; i < l; i++) {
                    Sizzle(selector, root[i], tmpSet)
                }
                return Sizzle.filter(later, tmpSet)
            };
        jQuery.find = Sizzle;
        jQuery.filter = Sizzle.filter;
        jQuery.expr = Sizzle.selectors;
        jQuery.expr[":"] = jQuery.expr.filters;
        Sizzle.selectors.filters.hidden = function(elem) {
            return elem.offsetWidth === 0 || elem.offsetHeight === 0
        };
        Sizzle.selectors.filters.visible = function(elem) {
            return elem.offsetWidth > 0 || elem.offsetHeight > 0
        };
        Sizzle.selectors.filters.animated = function(elem) {
            return jQuery.grep(jQuery.timers, function(fn) {
                return elem === fn.elem
            }).length
        };
        jQuery.multiFilter = function(expr, elems, not) {
            if (not) {
                expr = ":not(" + expr + ")"
            }
            return Sizzle.matches(expr, elems)
        };
        jQuery.dir = function(elem, dir) {
            var matched = [],
                cur = elem[dir];
            while (cur && cur != document) {
                if (cur.nodeType == 1) matched.push(cur);
                cur = cur[dir]
            }
            return matched
        };
        jQuery.nth = function(cur, result, dir, elem) {
            result = result || 1;
            var num = 0;
            for (; cur; cur = cur[dir]) if (cur.nodeType == 1 && ++num == result) break;
            return cur
        };
        jQuery.sibling = function(n, elem) {
            var r = [];
            for (; n; n = n.nextSibling) {
                if (n.nodeType == 1 && n != elem) r.push(n)
            }
            return r
        };
        return;
        window.Sizzle = Sizzle
    })();
    jQuery.event = {
        add: function(elem, types, handler, data) {
            if (elem.nodeType == 3 || elem.nodeType == 8) return;
            if (elem.setInterval && elem != window) elem = window;
            if (!handler.guid) handler.guid = this.guid++;
            if (data !== undefined) {
                var fn = handler;
                handler = this.proxy(fn);
                handler.data = data
            }
            var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
                handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function() {
                    return typeof jQuery !== "undefined" && !jQuery.event.triggered ? jQuery.event.handle.apply(arguments.callee.elem, arguments) : undefined
                });
            handle.elem = elem;
            jQuery.each(types.split(/\s+/), function(index, type) {
                var namespaces = type.split(".");
                type = namespaces.shift();
                handler.type = namespaces.slice().sort().join(".");
                var handlers = events[type];
                if (jQuery.event.specialAll[type]) jQuery.event.specialAll[type].setup.call(elem, data, namespaces);
                if (!handlers) {
                    handlers = events[type] = {};
                    if (!jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false) {
                        if (elem.addEventListener) elem.addEventListener(type, handle, false);
                        else if (elem.attachEvent) elem.attachEvent("on" + type, handle)
                    }
                }
                handlers[handler.guid] = handler;
                jQuery.event.global[type] = true
            });
            elem = null
        },
        guid: 1,
        global: {},
        remove: function(elem, types, handler) {
            if (elem.nodeType == 3 || elem.nodeType == 8) return;
            var events = jQuery.data(elem, "events"),
                ret, index;
            if (events) {
                if (types === undefined || (typeof types === "string" && types.charAt(0) == ".")) for (var type in events) this.remove(elem, type + (types || ""));
                else {
                    if (types.type) {
                        handler = types.handler;
                        types = types.type
                    }
                    jQuery.each(types.split(/\s+/), function(index, type) {
                        var namespaces = type.split(".");
                        type = namespaces.shift();
                        var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
                        if (events[type]) {
                            if (handler) delete events[type][handler.guid];
                            else for (var handle in events[type]) if (namespace.test(events[type][handle].type)) delete events[type][handle];
                            if (jQuery.event.specialAll[type]) jQuery.event.specialAll[type].teardown.call(elem, namespaces);
                            for (ret in events[type]) break;
                            if (!ret) {
                                if (!jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false) {
                                    if (elem.removeEventListener) elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
                                    else if (elem.detachEvent) elem.detachEvent("on" + type, jQuery.data(elem, "handle"))
                                }
                                ret = null;
                                delete events[type]
                            }
                        }
                    })
                }
                for (ret in events) break;
                if (!ret) {
                    var handle = jQuery.data(elem, "handle");
                    if (handle) handle.elem = null;
                    jQuery.removeData(elem, "events");
                    jQuery.removeData(elem, "handle")
                }
            }
        },
        trigger: function(event, data, elem, bubbling) {
            var type = event.type || event;
            if (!bubbling) {
                event = typeof event === "object" ? event[expando] ? event : jQuery.extend(jQuery.Event(type), event) : jQuery.Event(type);
                if (type.indexOf("!") >= 0) {
                    event.type = type = type.slice(0, -1);
                    event.exclusive = true
                }
                if (!elem) {
                    event.stopPropagation();
                    if (this.global[type]) jQuery.each(jQuery.cache, function() {
                        if (this.events && this.events[type]) jQuery.event.trigger(event, data, this.handle.elem)
                    })
                }
                if (!elem || elem.nodeType == 3 || elem.nodeType == 8) return undefined;
                event.result = undefined;
                event.target = elem;
                data = jQuery.makeArray(data);
                data.unshift(event)
            }
            event.currentTarget = elem;
            var handle = jQuery.data(elem, "handle");
            if (handle) handle.apply(elem, data);
            if ((!elem[type] || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on" + type] && elem["on" + type].apply(elem, data) === false) event.result = false;
            if (!bubbling && elem[type] && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type == "click")) {
                this.triggered = true;
                try {
                    elem[type]()
                } catch (e) {}
            }
            this.triggered = false;
            if (!event.isPropagationStopped()) {
                var parent = elem.parentNode || elem.ownerDocument;
                if (parent) jQuery.event.trigger(event, data, parent, true)
            }
        },
        handle: function(event) {
            var all, handlers;
            event = arguments[0] = jQuery.event.fix(event || window.event);
            event.currentTarget = this;
            var namespaces = event.type.split(".");
            event.type = namespaces.shift();
            all = !namespaces.length && !event.exclusive;
            var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
            handlers = (jQuery.data(this, "events") || {})[event.type];
            for (var j in handlers) {
                var handler = handlers[j];
                if (all || namespace.test(handler.type)) {
                    event.handler = handler;
                    event.data = handler.data;
                    var ret = handler.apply(this, arguments);
                    if (ret !== undefined) {
                        event.result = ret;
                        if (ret === false) {
                            event.preventDefault();
                            event.stopPropagation()
                        }
                    }
                    if (event.isImmediatePropagationStopped()) break
                }
            }
        },
        props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
        fix: function(event) {
            if (event[expando]) return event;
            var originalEvent = event;
            event = jQuery.Event(originalEvent);
            for (var i = this.props.length, prop; i;) {
                prop = this.props[--i];
                event[prop] = originalEvent[prop]
            }
            if (!event.target) event.target = event.srcElement || document;
            if (event.target.nodeType == 3) event.target = event.target.parentNode;
            if (!event.relatedTarget && event.fromElement) event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
            if (event.pageX == null && event.clientX != null) {
                var doc = document.documentElement,
                    body = document.body;
                event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
                event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0)
            }
            if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) event.which = event.charCode || event.keyCode;
            if (!event.metaKey && event.ctrlKey) event.metaKey = event.ctrlKey;
            if (!event.which && event.button) event.which = (event.button & 1 ? 1 : (event.button & 2 ? 3 : (event.button & 4 ? 2 : 0)));
            return event
        },
        proxy: function(fn, proxy) {
            proxy = proxy ||
            function() {
                return fn.apply(this, arguments)
            };
            proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
            return proxy
        },
        special: {
            ready: {
                setup: bindReady,
                teardown: function() {}
            }
        },
        specialAll: {
            live: {
                setup: function(selector, namespaces) {
                    jQuery.event.add(this, namespaces[0], liveHandler)
                },
                teardown: function(namespaces) {
                    if (namespaces.length) {
                        var remove = 0,
                            name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
                        jQuery.each((jQuery.data(this, "events").live || {}), function() {
                            if (name.test(this.type)) remove++
                        });
                        if (remove < 1) jQuery.event.remove(this, namespaces[0], liveHandler)
                    }
                }
            }
        }
    };
    jQuery.Event = function(src) {
        if (!this.preventDefault) return new jQuery.Event(src);
        if (src && src.type) {
            this.originalEvent = src;
            this.type = src.type
        } else this.type = src;
        this.timeStamp = now();
        this[expando] = true
    };

    function returnFalse() {
        return false
    }
    function returnTrue() {
        return true
    }
    jQuery.Event.prototype = {
        preventDefault: function() {
            this.isDefaultPrevented = returnTrue;
            var e = this.originalEvent;
            if (!e) return;
            if (e.preventDefault) e.preventDefault();
            e.returnValue = false
        },
        stopPropagation: function() {
            this.isPropagationStopped = returnTrue;
            var e = this.originalEvent;
            if (!e) return;
            if (e.stopPropagation) e.stopPropagation();
            e.cancelBubble = true
        },
        stopImmediatePropagation: function() {
            this.isImmediatePropagationStopped = returnTrue;
            this.stopPropagation()
        },
        isDefaultPrevented: returnFalse,
        isPropagationStopped: returnFalse,
        isImmediatePropagationStopped: returnFalse
    };
    var withinElement = function(event) {
            var parent = event.relatedTarget;
            while (parent && parent != this) try {
                parent = parent.parentNode
            } catch (e) {
                parent = this
            }
            if (parent != this) {
                event.type = event.data;
                jQuery.event.handle.apply(this, arguments)
            }
        };
    jQuery.each({
        mouseover: 'mouseenter',
        mouseout: 'mouseleave'
    }, function(orig, fix) {
        jQuery.event.special[fix] = {
            setup: function() {
                jQuery.event.add(this, orig, withinElement, fix)
            },
            teardown: function() {
                jQuery.event.remove(this, orig, withinElement)
            }
        }
    });
    jQuery.fn.extend({
        bind: function(type, data, fn) {
            return type == "unload" ? this.one(type, data, fn) : this.each(function() {
                jQuery.event.add(this, type, fn || data, fn && data)
            })
        },
        one: function(type, data, fn) {
            var one = jQuery.event.proxy(fn || data, function(event) {
                jQuery(this).unbind(event, one);
                return (fn || data).apply(this, arguments)
            });
            return this.each(function() {
                jQuery.event.add(this, type, one, fn && data)
            })
        },
        unbind: function(type, fn) {
            return this.each(function() {
                jQuery.event.remove(this, type, fn)
            })
        },
        trigger: function(type, data) {
            return this.each(function() {
                jQuery.event.trigger(type, data, this)
            })
        },
        triggerHandler: function(type, data) {
            if (this[0]) {
                var event = jQuery.Event(type);
                event.preventDefault();
                event.stopPropagation();
                jQuery.event.trigger(event, data, this[0]);
                return event.result
            }
        },
        toggle: function(fn) {
            var args = arguments,
                i = 1;
            while (i < args.length) jQuery.event.proxy(fn, args[i++]);
            return this.click(jQuery.event.proxy(fn, function(event) {
                this.lastToggle = (this.lastToggle || 0) % i;
                event.preventDefault();
                return args[this.lastToggle++].apply(this, arguments) || false
            }))
        },
        hover: function(fnOver, fnOut) {
            return this.mouseenter(fnOver).mouseleave(fnOut)
        },
        ready: function(fn) {
            bindReady();
            if (jQuery.isReady) fn.call(document, jQuery);
            else jQuery.readyList.push(fn);
            return this
        },
        live: function(type, fn) {
            var proxy = jQuery.event.proxy(fn);
            proxy.guid += this.selector + type;
            jQuery(document).bind(liveConvert(type, this.selector), this.selector, proxy);
            return this
        },
        die: function(type, fn) {
            jQuery(document).unbind(liveConvert(type, this.selector), fn ? {
                guid: fn.guid + this.selector + type
            } : null);
            return this
        }
    });

    function liveHandler(event) {
        var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
            stop = true,
            elems = [];
        jQuery.each(jQuery.data(this, "events").live || [], function(i, fn) {
            if (check.test(fn.type)) {
                var elem = jQuery(event.target).closest(fn.data)[0];
                if (elem) elems.push({
                    elem: elem,
                    fn: fn
                })
            }
        });
        elems.sort(function(a, b) {
            return jQuery.data(a.elem, "closest") - jQuery.data(b.elem, "closest")
        });
        jQuery.each(elems, function() {
            if (this.fn.call(this.elem, event, this.fn.data) === false) return (stop = false)
        });
        return stop
    }
    function liveConvert(type, selector) {
        return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "|")].join(".")
    }
    jQuery.extend({
        isReady: false,
        readyList: [],
        ready: function() {
            if (!jQuery.isReady) {
                jQuery.isReady = true;
                if (jQuery.readyList) {
                    jQuery.each(jQuery.readyList, function() {
                        this.call(document, jQuery)
                    });
                    jQuery.readyList = null
                }
                jQuery(document).triggerHandler("ready")
            }
        }
    });
    var readyBound = false;

    function bindReady() {
        if (readyBound) return;
        readyBound = true;
        if (document.addEventListener) {
            document.addEventListener("DOMContentLoaded", function() {
                document.removeEventListener("DOMContentLoaded", arguments.callee, false);
                jQuery.ready()
            }, false)
        } else if (document.attachEvent) {
            document.attachEvent("onreadystatechange", function() {
                if (document.readyState === "complete") {
                    document.detachEvent("onreadystatechange", arguments.callee);
                    jQuery.ready()
                }
            });
            if (document.documentElement.doScroll && window == window.top)(function() {
                if (jQuery.isReady) return;
                try {
                    document.documentElement.doScroll("left")
                } catch (error) {
                    setTimeout(arguments.callee, 0);
                    return
                }
                jQuery.ready()
            })()
        }
        jQuery.event.add(window, "load", jQuery.ready)
    }
    jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick," + "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," + "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name) {
        jQuery.fn[name] = function(fn) {
            return fn ? this.bind(name, fn) : this.trigger(name)
        }
    });
    jQuery(window).bind('unload', function() {
        for (var id in jQuery.cache) if (id != 1 && jQuery.cache[id].handle) jQuery.event.remove(jQuery.cache[id].handle.elem)
    });
    (function() {
        jQuery.support = {};
        var root = document.documentElement,
            script = document.createElement("script"),
            div = document.createElement("div"),
            id = "script" + (new Date).getTime();
        div.style.display = "none";
        div.innerHTML = '   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
        var all = div.getElementsByTagName("*"),
            a = div.getElementsByTagName("a")[0];
        if (!all || !all.length || !a) {
            return
        }
        jQuery.support = {
            leadingWhitespace: div.firstChild.nodeType == 3,
            tbody: !div.getElementsByTagName("tbody").length,
            objectAll: !! div.getElementsByTagName("object")[0].getElementsByTagName("*").length,
            htmlSerialize: !! div.getElementsByTagName("link").length,
            style: /red/.test(a.getAttribute("style")),
            hrefNormalized: a.getAttribute("href") === "/a",
            opacity: a.style.opacity === "0.5",
            cssFloat: !! a.style.cssFloat,
            scriptEval: false,
            noCloneEvent: true,
            boxModel: null
        };
        script.type = "text/javascript";
        try {
            script.appendChild(document.createTextNode("window." + id + "=1;"))
        } catch (e) {}
        root.insertBefore(script, root.firstChild);
        if (window[id]) {
            jQuery.support.scriptEval = true;
            delete window[id]
        }
        root.removeChild(script);
        if (div.attachEvent && div.fireEvent) {
            div.attachEvent("onclick", function() {
                jQuery.support.noCloneEvent = false;
                div.detachEvent("onclick", arguments.callee)
            });
            div.cloneNode(true).fireEvent("onclick")
        }
        jQuery(function() {
            var div = document.createElement("div");
            div.style.width = div.style.paddingLeft = "1px";
            document.body.appendChild(div);
            jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
            document.body.removeChild(div).style.display = 'none'
        })
    })();
    var styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat";
    jQuery.props = {
        "for": "htmlFor",
        "class": "className",
        "float": styleFloat,
        cssFloat: styleFloat,
        styleFloat: styleFloat,
        readonly: "readOnly",
        maxlength: "maxLength",
        cellspacing: "cellSpacing",
        rowspan: "rowSpan",
        tabindex: "tabIndex"
    };
    jQuery.fn.extend({
        _load: jQuery.fn.load,
        load: function(url, params, callback) {
            if (typeof url !== "string") return this._load(url);
            var off = url.indexOf(" ");
            if (off >= 0) {
                var selector = url.slice(off, url.length);
                url = url.slice(0, off)
            }
            var type = "GET";
            if (params) if (jQuery.isFunction(params)) {
                callback = params;
                params = null
            } else if (typeof params === "object") {
                params = jQuery.param(params);
                type = "POST"
            }
            var self = this;
            jQuery.ajax({
                url: url,
                type: type,
                dataType: "html",
                data: params,
                complete: function(res, status) {
                    if (status == "success" || status == "notmodified") self.html(selector ? jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g, "")).find(selector) : res.responseText);
                    if (callback) self.each(callback, [res.responseText, status, res])
                }
            });
            return this
        },
        serialize: function() {
            return jQuery.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                return this.elements ? jQuery.makeArray(this.elements) : this
            }).filter(function() {
                return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || /text|hidden|password|search/i.test(this.type))
            }).map(function(i, elem) {
                var val = jQuery(this).val();
                return val == null ? null : jQuery.isArray(val) ? jQuery.map(val, function(val, i) {
                    return {
                        name: elem.name,
                        value: val
                    }
                }) : {
                    name: elem.name,
                    value: val
                }
            }).get()
        }
    });
    jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i, o) {
        jQuery.fn[o] = function(f) {
            return this.bind(o, f)
        }
    });
    var jsc = now();
    jQuery.extend({
        get: function(url, data, callback, type) {
            if (jQuery.isFunction(data)) {
                callback = data;
                data = null
            }
            return jQuery.ajax({
                type: "GET",
                url: url,
                data: data,
                success: callback,
                dataType: type
            })
        },
        getScript: function(url, callback) {
            return jQuery.get(url, null, callback, "script")
        },
        getJSON: function(url, data, callback) {
            return jQuery.get(url, data, callback, "json")
        },
        post: function(url, data, callback, type) {
            if (jQuery.isFunction(data)) {
                callback = data;
                data = {}
            }
            return jQuery.ajax({
                type: "POST",
                url: url,
                data: data,
                success: callback,
                dataType: type
            })
        },
        ajaxSetup: function(settings) {
            jQuery.extend(jQuery.ajaxSettings, settings)
        },
        ajaxSettings: {
            url: location.href,
            global: true,
            type: "GET",
            contentType: "application/x-www-form-urlencoded",
            processData: true,
            async: true,
            xhr: function() {
                return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest()
            },
            accepts: {
                xml: "application/xml, text/xml",
                html: "text/html",
                script: "text/javascript, application/javascript",
                json: "application/json, text/javascript",
                text: "text/plain",
                _default: "*/*"
            }
        },
        lastModified: {},
        ajax: function(s) {
            s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
            var jsonp, jsre = /=\?(&|$)/g,
                status, data, type = s.type.toUpperCase();
            if (s.data && s.processData && typeof s.data !== "string") s.data = jQuery.param(s.data);
            if (s.dataType == "jsonp") {
                if (type == "GET") {
                    if (!s.url.match(jsre)) s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?"
                } else if (!s.data || !s.data.match(jsre)) s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
                s.dataType = "json"
            }
            if (s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre))) {
                jsonp = "jsonp" + jsc++;
                if (s.data) s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
                s.url = s.url.replace(jsre, "=" + jsonp + "$1");
                s.dataType = "script";
                window[jsonp] = function(tmp) {
                    data = tmp;
                    success();
                    complete();
                    window[jsonp] = undefined;
                    try {
                        delete window[jsonp]
                    } catch (e) {}
                    if (head) head.removeChild(script)
                }
            }
            if (s.dataType == "script" && s.cache == null) s.cache = false;
            if (s.cache === false && type == "GET") {
                var ts = now();
                var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
                s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "")
            }
            if (s.data && type == "GET") {
                s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
                s.data = null
            }
            if (s.global && !jQuery.active++) jQuery.event.trigger("ajaxStart");
            var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec(s.url);
            if (s.dataType == "script" && type == "GET" && parts && (parts[1] && parts[1] != location.protocol || parts[2] != location.host)) {
                var head = document.getElementsByTagName("head")[0];
                var script = document.createElement("script");
                script.src = s.url;
                if (s.scriptCharset) script.charset = s.scriptCharset;
                if (!jsonp) {
                    var done = false;
                    script.onload = script.onreadystatechange = function() {
                        if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
                            done = true;
                            success();
                            complete();
                            script.onload = script.onreadystatechange = null;
                            head.removeChild(script)
                        }
                    }
                }
                head.appendChild(script);
                return undefined
            }
            var requestDone = false;
            var xhr = s.xhr();
            if (s.username) xhr.open(type, s.url, s.async, s.username, s.password);
            else xhr.open(type, s.url, s.async);
            try {
                if (s.data) xhr.setRequestHeader("Content-Type", s.contentType);
                if (s.ifModified) xhr.setRequestHeader("If-Modified-Since", jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT");
                xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
                xhr.setRequestHeader("Accept", s.dataType && s.accepts[s.dataType] ? s.accepts[s.dataType] + ", */*" : s.accepts._default)
            } catch (e) {}
            if (s.beforeSend && s.beforeSend(xhr, s) === false) {
                if (s.global && !--jQuery.active) jQuery.event.trigger("ajaxStop");
                xhr.abort();
                return false
            }
            if (s.global) jQuery.event.trigger("ajaxSend", [xhr, s]);
            var onreadystatechange = function(isTimeout) {
                    if (xhr.readyState == 0) {
                        if (ival) {
                            clearInterval(ival);
                            ival = null;
                            if (s.global && !--jQuery.active) jQuery.event.trigger("ajaxStop")
                        }
                    } else if (!requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout")) {
                        requestDone = true;
                        if (ival) {
                            clearInterval(ival);
                            ival = null
                        }
                        status = isTimeout == "timeout" ? "timeout" : !jQuery.httpSuccess(xhr) ? "error" : s.ifModified && jQuery.httpNotModified(xhr, s.url) ? "notmodified" : "success";
                        if (status == "success") {
                            try {
                                data = jQuery.httpData(xhr, s.dataType, s)
                            } catch (e) {
                                status = "parsererror"
                            }
                        }
                        if (status == "success") {
                            var modRes;
                            try {
                                modRes = xhr.getResponseHeader("Last-Modified")
                            } catch (e) {}
                            if (s.ifModified && modRes) jQuery.lastModified[s.url] = modRes;
                            if (!jsonp) success()
                        } else jQuery.handleError(s, xhr, status);
                        complete();
                        if (isTimeout) xhr.abort();
                        if (s.async) xhr = null
                    }
                };
            if (s.async) {
                var ival = setInterval(onreadystatechange, 13);
                if (s.timeout > 0) setTimeout(function() {
                    if (xhr && !requestDone) onreadystatechange("timeout")
                }, s.timeout)
            }
            try {
                xhr.send(s.data)
            } catch (e) {
                jQuery.handleError(s, xhr, null, e)
            }
            if (!s.async) onreadystatechange();

            function success() {
                if (s.success) s.success(data, status);
                if (s.global) jQuery.event.trigger("ajaxSuccess", [xhr, s])
            }
            function complete() {
                if (s.complete) s.complete(xhr, status);
                if (s.global) jQuery.event.trigger("ajaxComplete", [xhr, s]);
                if (s.global && !--jQuery.active) jQuery.event.trigger("ajaxStop")
            }
            return xhr
        },
        handleError: function(s, xhr, status, e) {
            if (s.error) s.error(xhr, status, e);
            if (s.global) jQuery.event.trigger("ajaxError", [xhr, s, e])
        },
        active: 0,
        httpSuccess: function(xhr) {
            try {
                return !xhr.status && location.protocol == "file:" || (xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || xhr.status == 1223
            } catch (e) {}
            return false
        },
        httpNotModified: function(xhr, url) {
            try {
                var xhrRes = xhr.getResponseHeader("Last-Modified");
                return xhr.status == 304 || xhrRes == jQuery.lastModified[url]
            } catch (e) {}
            return false
        },
        httpData: function(xhr, type, s) {
            var ct = xhr.getResponseHeader("content-type"),
                xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
                data = xml ? xhr.responseXML : xhr.responseText;
            if (xml && data.documentElement.tagName == "parsererror") throw "parsererror";
            if (s && s.dataFilter) data = s.dataFilter(data, type);
            if (typeof data === "string") {
                if (type == "script") jQuery.globalEval(data);
                if (type == "json") data = window["eval"]("(" + data + ")")
            }
            return data
        },
        param: function(a) {
            var s = [];

            function add(key, value) {
                s[s.length] = encodeURIComponent(key) + '=' + encodeURIComponent(value)
            };
            if (jQuery.isArray(a) || a.jquery) jQuery.each(a, function() {
                add(this.name, this.value)
            });
            else for (var j in a) if (jQuery.isArray(a[j])) jQuery.each(a[j], function() {
                add(j, this)
            });
            else add(j, jQuery.isFunction(a[j]) ? a[j]() : a[j]);
            return s.join("&").replace(/%20/g, "+")
        }
    });
    var elemdisplay = {},
        timerId, fxAttrs = [
            ["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"],
            ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"],
            ["opacity"]
        ];

    function genFx(type, num) {
        var obj = {};
        jQuery.each(fxAttrs.concat.apply([], fxAttrs.slice(0, num)), function() {
            obj[this] = type
        });
        return obj
    }
    jQuery.fn.extend({
        show: function(speed, callback) {
            if (speed) {
                return this.animate(genFx("show", 3), speed, callback)
            } else {
                for (var i = 0, l = this.length; i < l; i++) {
                    var old = jQuery.data(this[i], "olddisplay");
                    this[i].style.display = old || "";
                    if (jQuery.css(this[i], "display") === "none") {
                        var tagName = this[i].tagName,
                            display;
                        if (elemdisplay[tagName]) {
                            display = elemdisplay[tagName]
                        } else {
                            var elem = jQuery("<" + tagName + " />").appendTo("body");
                            display = elem.css("display");
                            if (display === "none") display = "block";
                            elem.remove();
                            elemdisplay[tagName] = display
                        }
                        jQuery.data(this[i], "olddisplay", display)
                    }
                }
                for (var i = 0, l = this.length; i < l; i++) {
                    this[i].style.display = jQuery.data(this[i], "olddisplay") || ""
                }
                return this
            }
        },
        hide: function(speed, callback) {
            if (speed) {
                return this.animate(genFx("hide", 3), speed, callback)
            } else {
                for (var i = 0, l = this.length; i < l; i++) {
                    var old = jQuery.data(this[i], "olddisplay");
                    if (!old && old !== "none") jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"))
                }
                for (var i = 0, l = this.length; i < l; i++) {
                    this[i].style.display = "none"
                }
                return this
            }
        },
        _toggle: jQuery.fn.toggle,
        toggle: function(fn, fn2) {
            var bool = typeof fn === "boolean";
            return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ? this._toggle.apply(this, arguments) : fn == null || bool ? this.each(function() {
                var state = bool ? fn : jQuery(this).is(":hidden");
                jQuery(this)[state ? "show" : "hide"]()
            }) : this.animate(genFx("toggle", 3), fn, fn2)
        },
        fadeTo: function(speed, to, callback) {
            return this.animate({
                opacity: to
            }, speed, callback)
        },
        animate: function(prop, speed, easing, callback) {
            var optall = jQuery.speed(speed, easing, callback);
            return this[optall.queue === false ? "each" : "queue"](function() {
                var opt = jQuery.extend({}, optall),
                    p, hidden = this.nodeType == 1 && jQuery(this).is(":hidden"),
                    self = this;
                for (p in prop) {
                    if (prop[p] == "hide" && hidden || prop[p] == "show" && !hidden) return opt.complete.call(this);
                    if ((p == "height" || p == "width") && this.style) {
                        opt.display = jQuery.css(this, "display");
                        opt.overflow = this.style.overflow
                    }
                }
                if (opt.overflow != null) this.style.overflow = "hidden";
                opt.curAnim = jQuery.extend({}, prop);
                jQuery.each(prop, function(name, val) {
                    var e = new jQuery.fx(self, opt, name);
                    if (/toggle|show|hide/.test(val)) e[val == "toggle" ? hidden ? "show" : "hide" : val](prop);
                    else {
                        var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
                            start = e.cur(true) || 0;
                        if (parts) {
                            var end = parseFloat(parts[2]),
                                unit = parts[3] || "px";
                            if (unit != "px") {
                                self.style[name] = (end || 1) + unit;
                                start = ((end || 1) / e.cur(true)) * start;
                                self.style[name] = start + unit
                            }
                            if (parts[1]) end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
                            e.custom(start, end, unit)
                        } else e.custom(start, val, "")
                    }
                });
                return true
            })
        },
        stop: function(clearQueue, gotoEnd) {
            var timers = jQuery.timers;
            if (clearQueue) this.queue([]);
            this.each(function() {
                for (var i = timers.length - 1; i >= 0; i--) if (timers[i].elem == this) {
                    if (gotoEnd) timers[i](true);
                    timers.splice(i, 1)
                }
            });
            if (!gotoEnd) this.dequeue();
            return this
        }
    });
    jQuery.each({
        slideDown: genFx("show", 1),
        slideUp: genFx("hide", 1),
        slideToggle: genFx("toggle", 1),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        }
    }, function(name, props) {
        jQuery.fn[name] = function(speed, callback) {
            return this.animate(props, speed, callback)
        }
    });
    jQuery.extend({
        speed: function(speed, easing, fn) {
            var opt = typeof speed === "object" ? speed : {
                complete: fn || !fn && easing || jQuery.isFunction(speed) && speed,
                duration: speed,
                easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
            };
            opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default;
            opt.old = opt.complete;
            opt.complete = function() {
                if (opt.queue !== false) jQuery(this).dequeue();
                if (jQuery.isFunction(opt.old)) opt.old.call(this)
            };
            return opt
        },
        easing: {
            linear: function(p, n, firstNum, diff) {
                return firstNum + diff * p
            },
            swing: function(p, n, firstNum, diff) {
                return ((-Math.cos(p * Math.PI) / 2) + 0.5) * diff + firstNum
            }
        },
        timers: [],
        fx: function(elem, options, prop) {
            this.options = options;
            this.elem = elem;
            this.prop = prop;
            if (!options.orig) options.orig = {}
        }
    });
    jQuery.fx.prototype = {
        update: function() {
            if (this.options.step) this.options.step.call(this.elem, this.now, this);
            (jQuery.fx.step[this.prop] || jQuery.fx.step._default)(this);
            if ((this.prop == "height" || this.prop == "width") && this.elem.style) this.elem.style.display = "block"
        },
        cur: function(force) {
            if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) return this.elem[this.prop];
            var r = parseFloat(jQuery.css(this.elem, this.prop, force));
            return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0
        },
        custom: function(from, to, unit) {
            this.startTime = now();
            this.start = from;
            this.end = to;
            this.unit = unit || this.unit || "px";
            this.now = this.start;
            this.pos = this.state = 0;
            var self = this;

            function t(gotoEnd) {
                return self.step(gotoEnd)
            }
            t.elem = this.elem;
            if (t() && jQuery.timers.push(t) && !timerId) {
                timerId = setInterval(function() {
                    var timers = jQuery.timers;
                    for (var i = 0; i < timers.length; i++) if (!timers[i]()) timers.splice(i--, 1);
                    if (!timers.length) {
                        clearInterval(timerId);
                        timerId = undefined
                    }
                }, 13)
            }
        },
        show: function() {
            this.options.orig[this.prop] = jQuery.attr(this.elem.style, this.prop);
            this.options.show = true;
            this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
            jQuery(this.elem).show()
        },
        hide: function() {
            this.options.orig[this.prop] = jQuery.attr(this.elem.style, this.prop);
            this.options.hide = true;
            this.custom(this.cur(), 0)
        },
        step: function(gotoEnd) {
            var t = now();
            if (gotoEnd || t >= this.options.duration + this.startTime) {
                this.now = this.end;
                this.pos = this.state = 1;
                this.update();
                this.options.curAnim[this.prop] = true;
                var done = true;
                for (var i in this.options.curAnim) if (this.options.curAnim[i] !== true) done = false;
                if (done) {
                    if (this.options.display != null) {
                        this.elem.style.overflow = this.options.overflow;
                        this.elem.style.display = this.options.display;
                        if (jQuery.css(this.elem, "display") == "none") this.elem.style.display = "block"
                    }
                    if (this.options.hide) jQuery(this.elem).hide();
                    if (this.options.hide || this.options.show) for (var p in this.options.curAnim) jQuery.attr(this.elem.style, p, this.options.orig[p]);
                    this.options.complete.call(this.elem)
                }
                return false
            } else {
                var n = t - this.startTime;
                this.state = n / this.options.duration;
                this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
                this.now = this.start + ((this.end - this.start) * this.pos);
                this.update()
            }
            return true
        }
    };
    jQuery.extend(jQuery.fx, {
        speeds: {
            slow: 600,
            fast: 200,
            _default: 400
        },
        step: {
            opacity: function(fx) {
                jQuery.attr(fx.elem.style, "opacity", fx.now)
            },
            _default: function(fx) {
                if (fx.elem.style && fx.elem.style[fx.prop] != null) fx.elem.style[fx.prop] = fx.now + fx.unit;
                else fx.elem[fx.prop] = fx.now
            }
        }
    });
    if (document.documentElement["getBoundingClientRect"]) jQuery.fn.offset = function() {
        if (!this[0]) return {
            top: 0,
            left: 0
        };
        if (this[0] === this[0].ownerDocument.body) return jQuery.offset.bodyOffset(this[0]);
        var box = this[0].getBoundingClientRect(),
            doc = this[0].ownerDocument,
            body = doc.body,
            docElem = doc.documentElement,
            clientTop = docElem.clientTop || body.clientTop || 0,
            clientLeft = docElem.clientLeft || body.clientLeft || 0,
            top = box.top + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop || body.scrollTop) - clientTop,
            left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft;
        return {
            top: top,
            left: left
        }
    };
    else jQuery.fn.offset = function() {
        if (!this[0]) return {
            top: 0,
            left: 0
        };
        if (this[0] === this[0].ownerDocument.body) return jQuery.offset.bodyOffset(this[0]);
        jQuery.offset.initialized || jQuery.offset.initialize();
        var elem = this[0],
            offsetParent = elem.offsetParent,
            prevOffsetParent = elem,
            doc = elem.ownerDocument,
            computedStyle, docElem = doc.documentElement,
            body = doc.body,
            defaultView = doc.defaultView,
            prevComputedStyle = defaultView.getComputedStyle(elem, null),
            top = elem.offsetTop,
            left = elem.offsetLeft;
        while ((elem = elem.parentNode) && elem !== body && elem !== docElem) {
            computedStyle = defaultView.getComputedStyle(elem, null);
            top -= elem.scrollTop, left -= elem.scrollLeft;
            if (elem === offsetParent) {
                top += elem.offsetTop, left += elem.offsetLeft;
                if (jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName))) top += parseInt(computedStyle.borderTopWidth, 10) || 0, left += parseInt(computedStyle.borderLeftWidth, 10) || 0;
                prevOffsetParent = offsetParent, offsetParent = elem.offsetParent
            }
            if (jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible") top += parseInt(computedStyle.borderTopWidth, 10) || 0, left += parseInt(computedStyle.borderLeftWidth, 10) || 0;
            prevComputedStyle = computedStyle
        }
        if (prevComputedStyle.position === "relative" || prevComputedStyle.position === "static") top += body.offsetTop, left += body.offsetLeft;
        if (prevComputedStyle.position === "fixed") top += Math.max(docElem.scrollTop, body.scrollTop), left += Math.max(docElem.scrollLeft, body.scrollLeft);
        return {
            top: top,
            left: left
        }
    };
    jQuery.offset = {
        initialize: function() {
            if (this.initialized) return;
            var body = document.body,
                container = document.createElement('div'),
                innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop,
                html = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
            rules = {
                position: 'absolute',
                top: 0,
                left: 0,
                margin: 0,
                border: 0,
                width: '1px',
                height: '1px',
                visibility: 'hidden'
            };
            for (prop in rules) container.style[prop] = rules[prop];
            container.innerHTML = html;
            body.insertBefore(container, body.firstChild);
            innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild;
            this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
            this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
            innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative';
            this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
            body.style.marginTop = '1px';
            this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0);
            body.style.marginTop = bodyMarginTop;
            body.removeChild(container);
            this.initialized = true
        },
        bodyOffset: function(body) {
            jQuery.offset.initialized || jQuery.offset.initialize();
            var top = body.offsetTop,
                left = body.offsetLeft;
            if (jQuery.offset.doesNotIncludeMarginInBodyOffset) top += parseInt(jQuery.curCSS(body, 'marginTop', true), 10) || 0, left += parseInt(jQuery.curCSS(body, 'marginLeft', true), 10) || 0;
            return {
                top: top,
                left: left
            }
        }
    };
    jQuery.fn.extend({
        position: function() {
            var left = 0,
                top = 0,
                results;
            if (this[0]) {
                var offsetParent = this.offsetParent(),
                    offset = this.offset(),
                    parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? {
                        top: 0,
                        left: 0
                    } : offsetParent.offset();
                offset.top -= num(this, 'marginTop');
                offset.left -= num(this, 'marginLeft');
                parentOffset.top += num(offsetParent, 'borderTopWidth');
                parentOffset.left += num(offsetParent, 'borderLeftWidth');
                results = {
                    top: offset.top - parentOffset.top,
                    left: offset.left - parentOffset.left
                }
            }
            return results
        },
        offsetParent: function() {
            var offsetParent = this[0].offsetParent || document.body;
            while (offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static')) offsetParent = offsetParent.offsetParent;
            return jQuery(offsetParent)
        }
    });
    jQuery.each(['Left', 'Top'], function(i, name) {
        var method = 'scroll' + name;
        jQuery.fn[method] = function(val) {
            if (!this[0]) return null;
            return val !== undefined ? this.each(function() {
                this == window || this == document ? window.scrollTo(!i ? val : jQuery(window).scrollLeft(), i ? val : jQuery(window).scrollTop()) : this[method] = val
            }) : this[0] == window || this[0] == document ? self[i ? 'pageYOffset' : 'pageXOffset'] || jQuery.boxModel && document.documentElement[method] || document.body[method] : this[0][method]
        }
    });
    jQuery.each(["Height", "Width"], function(i, name) {
        var tl = i ? "Left" : "Top",
            br = i ? "Right" : "Bottom",
            lower = name.toLowerCase();
        jQuery.fn["inner" + name] = function() {
            return this[0] ? jQuery.css(this[0], lower, false, "padding") : null
        };
        jQuery.fn["outer" + name] = function(margin) {
            return this[0] ? jQuery.css(this[0], lower, false, margin ? "margin" : "border") : null
        };
        var type = name.toLowerCase();
        jQuery.fn[type] = function(size) {
            return this[0] == window ? document.compatMode == "CSS1Compat" && document.documentElement["client" + name] || document.body["client" + name] : this[0] == document ? Math.max(document.documentElement["client" + name], document.body["scroll" + name], document.documentElement["scroll" + name], document.body["offset" + name], document.documentElement["offset" + name]) : size === undefined ? (this.length ? jQuery.css(this[0], type) : null) : this.css(type, typeof size === "string" ? size : size + "px")
        }
    })
})();

#4 JavaScript::Eval (size: 3619, repeated: 1)

var ua = navigator.userAgent.toLowerCase();
var isIE6 = ua.indexOf("msie 6") > -1;
if (isIE6) {
    try {
        document.execCommand("BackgroundImageCache", false, true)
    } catch (e) {}
}
var strurl = this.location.href;
strurl = strurl.toLowerCase();
if (strurl.indexOf("http://www.360doc.com") >= 0 || strurl.indexOf("http://211.100.36.164") >= 0 || strurl.indexOf("http://360doc.com") >= 0 || strurl.indexOf("http://localhost/") >= 0 || strurl.indexOf("http://image") >= 0 || strurl.indexOf("http://lib.360doc.com") >= 0 || strurl.indexOf("http://rel.360doc.com") >= 0 || strurl.indexOf("http://webservice.360doc.com") >= 0 || strurl.indexOf("http://t.360doc.com") >= 0 || strurl.indexOf("http://m.360doc.com") >= 0 || strurl.indexOf("http://css.360doc.com") >= 0 || strurl.indexOf("http://pubimage.360doc.com") >= 0 || strurl.indexOf("http://log.360doc.com") >= 0 || strurl.indexOf("http://js.360doc.com") >= 0 || strurl.indexOf("http://pendant.360doc.com") >= 0 || strurl.indexOf("http://channelpic.360doc.com") >= 0 || strurl.indexOf("http://yidong.360doc.com") >= 0 || strurl.indexOf("360doc.net") >= 0 || strurl.indexOf("doc360.com") >= 0 || strurl.indexOf("http://192.168.1.9") >= 0) {} else {
    strHost = strurl.substring(7, strurl.indexOf(".360doc.com", 7));
    if (strHost != "") {
        window.location.href = "/gohost.aspx?hostname=" + strHost + ""
    }
}
function change(pro_name, i) {
    var pro = document.getElementById(pro_name);
    var pro_arr = pro.getElementsByTagName("span");
    for (var m = 0; m < pro_arr.length; m++) {
        pro_arr[m].className = "unclecked link_black";
        if (document.getElementById(pro_name + "_ul_" + m) != null) {
            document.getElementById(pro_name + "_ul_" + m).style.display = "none"
        }
    }
    pro_arr[i].className = "checked link_bai";
    if (document.getElementById(pro_name + "_ul_" + i) != null) {
        document.getElementById(pro_name + "_ul_" + i).style.display = "block"
    }
}
function changecab(pro_name, i) {
    var pro = document.getElementById(pro_name);
    var pro_arr = pro.getElementsByTagName("span");
    for (var m = 0; m < pro_arr.length; m++) {
        pro_arr[m].className = "unclecked link_black";
        if (document.getElementById(pro_name + "_ul_" + m) != null) {
            document.getElementById(pro_name + "_ul_" + m).style.display = "none"
        }
    }
    pro_arr[i].className = "checked link_bai";
    if (document.getElementById(pro_name + "_ul_" + i) != null) {
        document.getElementById(pro_name + "_ul_" + i).style.display = "block"
    }
}
function gourl(url) {
    window.location.href = url
}
function setHomepage() {
    if (document.all) {
        document.body.style.behavior = 'url(#default#homepage)';
        document.body.setHomePage('http://www.360doc.com')
    } else if (window.sidebar) {
        if (window.netscape) {
            try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
            } catch (e) {
                alert("åÍ\«OÈhÒÝ‚œó/(åŸý÷(0@…“e about:config,6y signed.applets.codebase_principal_support <å:true")
            }
        }
        var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
        prefs.setCharPref('browser.startup.homepage', 'http://www.360doc.com')
    }
}
function AddFavorite(sURL, sTitle) {
    try {
        window.external.addFavorite(sURL, sTitle)
    } catch (e) {
        try {
            window.sidebar.addPanel(sTitle, sURL, "")
        } catch (e) {
            alert(" e6Ï1%÷(Ctrl+DÛLû ")
        }
    }
}
function SearchEvent() {
    func = SearchEvent.caller;
    while (func != null) {
        var arg0 = func.arguments[0];
        if (arg0) {
            if (typeof(arg0) == "object") {
                return arg0
            }
        }
        func = func.caller
    }
    return func
}
function HotKey222() {
    var evt = null;
    if (window.event) {
        evt = window.event
    } else {
        evt = SearchEvent()
    }
    var keyCode = evt.keyCode;
    if (keyCode == 13) {
        document.getElementById("aaSearch").focus()
    }
}
function initLogin() {
    if (getCookie("360doc1") != null) {
        document.getElementById("spanLogin").innerHTML = '<a href="/login.aspx">{U</a><span style="font-family:@‹S">&nbsp;&nbsp;</span>|<span style="font-family:@‹S">&nbsp;&nbsp;</span><a href="#" onclick="quit();">

Executed Writes (3)

#1 JavaScript::Write (size: 6, repeated: 1)

Œ

#2 JavaScript::Write (size: 14, repeated: 1)

2012t1106Ã¥

#3 JavaScript::Write (size: 105, repeated: 1)

<script src=' http://hm.baidu.com/h.js?d86954201130d615136257dde062a503' type='text/javascript'></script>


HTTP Transactions (74)


Request Response
GET / HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
HTTP/1.1 200 OK

Content-Type: text/html; charset=utf-8
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:05 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Content-Location: http://www.360doc.com/index.html
Last-Modified: Tue, 06 Nov 2012 22:36:36 GMT
Etag: W/&quot;4e28332e6fbccd1:1362b&quot;
X-Powered-By: ASP.NET
Content-Encoding: gzip
GET /js/index.js?t=2012081401 HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: application/x-javascript; charset=utf-8
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: max-age=1800
Last-Modified: Tue, 14 Aug 2012 02:26:39 GMT
Etag: &quot;a6d8a3cc479cd1:1362b&quot;
X-Powered-By: ASP.NET
Content-Encoding: gzip
GET /js/commonJS.js?t=2011111801 HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: application/x-javascript; charset=utf-8
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: max-age=1800
Last-Modified: Mon, 16 Apr 2012 01:35:14 GMT
Etag: &quot;1842232c711bcd1:1362b&quot;
X-Powered-By: ASP.NET
Content-Encoding: gzip
GET /js/jQuery.md5.js HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: application/x-javascript; charset=utf-8
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: max-age=1800
Last-Modified: Tue, 31 Jul 2012 06:43:41 GMT
Etag: &quot;74dcb6d2e76ecd1:1362b&quot;
X-Powered-By: ASP.NET
Content-Encoding: gzip
GET /newsite/bgf.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Connection: keep-alive
Content-Length: 2391
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:06 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/tubiao_3.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Connection: keep-alive
Content-Length: 276
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:06 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/logo1.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Connection: keep-alive
Content-Length: 1629
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:06 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /js/tishi.js HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: application/x-javascript; charset=utf-8
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Connection: keep-alive
Cache-Control: max-age=1800
Content-Length: 720
Last-Modified: Thu, 23 Jun 2011 07:33:16 GMT
Accept-Ranges: bytes
Etag: &quot;4689e3d07731cc1:1362b&quot;
X-Powered-By: ASP.NET
GET /maincss.css?t=20111125 HTTP/1.1

Host: css.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/css,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: text/css
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Last-Modified: Mon, 18 Jun 2012 07:55:26 GMT
Vary: Accept-Encoding
Expires: Thu, 06 Dec 2012 22:37:06 GMT
Cache-Control: max-age=2592000
Content-Encoding: gzip
GET /headfoot.css?t=201102151 HTTP/1.1

Host: css.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/css,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: text/css
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Last-Modified: Wed, 15 Feb 2012 02:37:59 GMT
Vary: Accept-Encoding
Expires: Thu, 06 Dec 2012 22:37:06 GMT
Cache-Control: max-age=2592000
Content-Encoding: gzip
GET /newsite/tupian02.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Connection: keep-alive
Content-Length: 3716
Last-Modified: Sat, 30 Jul 2011 06:58:15 GMT
Expires: Thu, 06 Dec 2012 22:37:07 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/logo.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Connection: keep-alive
Content-Length: 5852
Last-Modified: Mon, 31 Oct 2011 09:16:21 GMT
Expires: Thu, 06 Dec 2012 22:37:06 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /js/jquery.js HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: application/x-javascript; charset=utf-8
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: max-age=1800
Last-Modified: Wed, 19 Aug 2009 06:01:58 GMT
Etag: &quot;08f998f9220ca1:1362b&quot;
X-Powered-By: ASP.NET
Content-Encoding: gzip
GET /newsite/hy.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Connection: keep-alive
Content-Length: 4909
Last-Modified: Sat, 30 Jul 2011 06:58:15 GMT
Expires: Thu, 06 Dec 2012 22:37:07 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/jk.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Connection: keep-alive
Content-Length: 4982
Last-Modified: Sat, 30 Jul 2011 06:58:15 GMT
Expires: Thu, 06 Dec 2012 22:37:07 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /images/wbindex.gif HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 301 Moved Permanently

Content-Type: text/html
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 185
Connection: keep-alive
Location: http://pubimage.360doc.com/wbindex.gif
GET /images/rrindex.gif HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 301 Moved Permanently

Content-Type: text/html
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 185
Connection: keep-alive
Location: http://pubimage.360doc.com/rrindex.gif
GET /images/qqindex.gif HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 301 Moved Permanently

Content-Type: text/html
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 185
Connection: keep-alive
Location: http://pubimage.360doc.com/qqindex.gif
GET /12/1023/20/10874767_201210232006410197_50.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 1358
Last-Modified: Tue, 23 Oct 2012 12:06:40 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:07 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /12/0930/17/10791158_201209301701290555_50.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 1107
Last-Modified: Sun, 30 Sep 2012 09:01:29 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:07 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /12/0928/20/10739112_201209282049050581_50.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 801
Last-Modified: Fri, 28 Sep 2012 12:49:06 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:07 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /newsite/zhucebt.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 4349
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/yy.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 5355
Last-Modified: Sat, 30 Jul 2011 06:58:15 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/tupian06.jpg HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Connection: keep-alive
Content-Length: 13861
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:07 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /12/0917/20/10747691_201209172008520983_50.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 1463
Last-Modified: Mon, 17 Sep 2012 12:08:56 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:07 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /12/0906/20/10707385_201209062023130553_50.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:08 GMT
Content-Length: 1472
Last-Modified: Thu, 06 Sep 2012 12:23:15 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:08 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /12/1004/06/10744090_201210040650220555_50.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:08 GMT
Content-Length: 1696
Last-Modified: Wed, 03 Oct 2012 22:50:20 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:08 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /12/0826/15/10555598_201208261549380275_50.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 1579
Last-Modified: Sun, 26 Aug 2012 07:49:39 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:07 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /12/0917/12/10701407_201209171242200858_50.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:08 GMT
Content-Length: 1152
Last-Modified: Mon, 17 Sep 2012 04:42:25 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:08 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /11/0802/20/6987213_201108022034530375_main.jpg HTTP/1.1

Host: userimage2.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/1.0.10
Date: Wed, 07 Nov 2012 06:42:50 GMT
Content-Length: 5058
Last-Modified: Tue, 02 Aug 2011 12:34:44 GMT
Connection: keep-alive
Expires: Tue, 03 Sep 2013 06:42:50 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /newsite/tupian07.jpg HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Connection: keep-alive
Content-Length: 15699
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:07 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /wbindex.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 1078
Last-Modified: Tue, 30 Aug 2011 08:07:38 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /11/0829/15/7607720_201108291558290156_main.jpg HTTP/1.1

Host: userimage2.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/1.0.10
Date: Wed, 07 Nov 2012 06:42:50 GMT
Content-Length: 10990
Last-Modified: Mon, 29 Aug 2011 07:58:11 GMT
Connection: keep-alive
Expires: Tue, 03 Sep 2013 06:42:50 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /qqindex.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 1067
Last-Modified: Tue, 30 Aug 2011 08:07:38 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /rrindex.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 1079
Last-Modified: Tue, 30 Aug 2011 08:07:38 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/tupian01.jpg HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:07 GMT
Connection: keep-alive
Content-Length: 14571
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:07 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/jy.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 4541
Last-Modified: Sat, 30 Jul 2011 06:58:15 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /12/1009/07/5138922_201210090706180789_large.jpg HTTP/1.1

Host: userimage3.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.39
Date: Tue, 06 Nov 2012 22:37:07 GMT
Content-Length: 28269
Last-Modified: Mon, 08 Oct 2012 23:06:21 GMT
Connection: keep-alive
Expires: Mon, 02 Sep 2013 22:37:07 GMT
Cache-Control: max-age=25920000
Accept-Ranges: bytes
GET /newsite/bj_5.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:09 GMT
Connection: keep-alive
Content-Length: 299
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:09 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/tupian08.jpg HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 14053
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/tupian11.jpg HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 14577
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/tupian04.jpg HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/jpeg
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:08 GMT
Connection: keep-alive
Content-Length: 14773
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:08 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/xx/xx_10.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:09 GMT
Connection: keep-alive
Content-Length: 1370
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:09 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bj_6.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:09 GMT
Connection: keep-alive
Content-Length: 377
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:09 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bjindex.png HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/png
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:06 GMT
Connection: keep-alive
Content-Length: 89484
Last-Modified: Thu, 17 Nov 2011 07:33:50 GMT
Expires: Thu, 06 Dec 2012 22:37:06 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/xx/xx_4small.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:09 GMT
Connection: keep-alive
Content-Length: 1239
Last-Modified: Sat, 22 Oct 2011 07:21:50 GMT
Expires: Thu, 06 Dec 2012 22:37:09 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /head/001_50.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:09 GMT
Connection: keep-alive
Content-Length: 2348
Last-Modified: Thu, 23 Jun 2011 07:22:49 GMT
Expires: Thu, 06 Dec 2012 22:37:09 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/xx/xx_5small.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:09 GMT
Connection: keep-alive
Content-Length: 1282
Last-Modified: Sat, 22 Oct 2011 07:21:35 GMT
Expires: Thu, 06 Dec 2012 22:37:09 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/xx/xx_7small.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:09 GMT
Connection: keep-alive
Content-Length: 1221
Last-Modified: Sat, 22 Oct 2011 07:22:32 GMT
Expires: Thu, 06 Dec 2012 22:37:09 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/xx/xx_6small.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:09 GMT
Connection: keep-alive
Content-Length: 1176
Last-Modified: Sat, 22 Oct 2011 07:22:07 GMT
Expires: Thu, 06 Dec 2012 22:37:09 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/xx/xx_2small.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1286
Last-Modified: Sat, 22 Oct 2011 07:20:14 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /gzhu-bt1.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1091
Last-Modified: Tue, 14 Feb 2012 10:00:20 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /gzhu-bt2.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1080
Last-Modified: Tue, 14 Feb 2012 10:00:20 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /gzhu-bt3.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1089
Last-Modified: Tue, 14 Feb 2012 10:00:20 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /gzhu-bt4.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1082
Last-Modified: Tue, 14 Feb 2012 10:00:20 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /c.js HTTP/1.1

Host: s1.nuangao.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 404 Not Found

Content-Type: text/html
Server: nginx/1.2.2
Date: Tue, 06 Nov 2012 22:27:18 GMT
Content-Length: 168
Connection: keep-alive
GET /newsite/gongan.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1627
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/baidulm.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1547
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bj_1.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/headfoot.css?t=201102151
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 111
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /untitled.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 2929
Last-Modified: Thu, 23 Jun 2011 07:22:49 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bj_12.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/headfoot.css?t=201102151
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1189
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bgd.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/headfoot.css?t=201102151
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1597
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bj_2.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/headfoot.css?t=201102151
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 1928
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bj_3.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/headfoot.css?t=201102151
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 148
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/loginbig.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 2027
Last-Modified: Mon, 19 Sep 2011 06:35:59 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /read/xitiao2.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/headfoot.css?t=201102151
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 49
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/dian.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/maincss.css?t=20111125
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 90
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bj_9.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/maincss.css?t=20111125
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:10 GMT
Connection: keep-alive
Content-Length: 49
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:10 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /newsite/bj_7.gif HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://css.360doc.com/maincss.css?t=20111125
HTTP/1.1 200 OK

Content-Type: image/gif
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:11 GMT
Connection: keep-alive
Content-Length: 88
Last-Modified: Sat, 30 Jul 2011 06:41:41 GMT
Expires: Thu, 06 Dec 2012 22:37:11 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /favicon.ico HTTP/1.1

Host: pubimage.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
HTTP/1.1 200 OK

Content-Type: image/x-icon
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:11 GMT
Connection: keep-alive
Content-Length: 198
Last-Modified: Thu, 22 Sep 2011 03:40:42 GMT
Expires: Thu, 06 Dec 2012 22:37:11 GMT
Cache-Control: max-age=2592000
Accept-Ranges: bytes
GET /h.js?d86954201130d615136257dde062a503 HTTP/1.1

Host: hm.baidu.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
HTTP/1.1 200 OK

Content-Type: application/javascript
Etag: 372eda29e4cdb94b43ecc91aac8c6da2
Cache-Control: max-age=0, must-revalidate
Content-Encoding: gzip
Set-Cookie: HMACCOUNT=362780898CE6A922; Path=/; Domain=hm.baidu.com; Expires=Sun, 18 Jan 2038 00:00:00 GMT
P3P: CP=&quot;CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR&quot;
Connection: close
Content-Length: 5071
Date: Tue, 06 Nov 2012 22:37:11 GMT
Server: apache
GET /ajax/getResaving.ashx?_=1352241431744 HTTP/1.1

Host: www.360doc.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://www.360doc.com/
Cookie: 360doc10=1; Hm_lvt_d86954201130d615136257dde062a503=1352241431683; Hm_lpvt_d86954201130d615136257dde062a503=1352241431683
HTTP/1.1 200 OK

Content-Type: text/plain; charset=utf-8
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:11 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Encoding: gzip
GET /hm.gif?cc=1&ck=1&cl=24-bit&ds=1176x885&et=0&fl=10.0&ja=1&ln=en-US&lo=0&nv=1&rnd=457862120&si=d86954201130d615136257dde062a503&st=1&v=1.0.34&lv=1 HTTP/1.1

Host: hm.baidu.com
GET /hm.gif?cc=1&amp;ck=1&amp;cl=24-bit&amp;ds=1176x885&amp;et=0&amp;fl=10.0&amp;ja=1&amp;ln=en-US&amp;lo=0&amp;nv=1&amp;rnd=457862120&amp;si=d86954201130d615136257dde062a503&amp;st=1&amp;v=1.0.34&amp;lv=1 HTTP/1.1

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://www.360doc.com/
Cookie: HMACCOUNT=362780898CE6A922
HTTP/1.1 200 OK

Content-Type: image/gif
Cache-Control: private, max-age=0, no-cache
Pragma: no-cache
X-Content-Type-Options: nosniff
Connection: close
Content-Length: 43
Date: Tue, 06 Nov 2012 22:37:12 GMT
Server: apache
GET /ajax/getResaving.ashx?type=1&_=1352241437525 HTTP/1.1

Host: www.360doc.com
GET /ajax/getResaving.ashx?type=1&amp;_=1352241437525 HTTP/1.1

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://www.360doc.com/
Cookie: 360doc10=1; Hm_lvt_d86954201130d615136257dde062a503=1352241431683; Hm_lpvt_d86954201130d615136257dde062a503=1352241431683
HTTP/1.1 200 OK

Content-Type: text/plain; charset=utf-8
Server: nginx/0.8.44
Date: Tue, 06 Nov 2012 22:37:17 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Encoding: gzip