/gi, R = /^(?:body|html)$/i, Z = /([A-Z])/g, z = ["val", "css", "html", "text", "data", "width", "height", "offset"], q = A.createElement("table"), H = A.createElement("tr"), I = { tr: A.createElement("tbody"), tbody: q, thead: q, tfoot: q, td: H, th: H, "*": A.createElement("div") }, V = /complete|loaded|interactive/, _ = /^[\w-]*$/, B = {}, U = B.toString, X = {}, J = A.createElement("div"), W = { tabindex: "tabIndex", readonly: "readOnly", for: "htmlFor", class: "className", maxlength: "maxLength", cellspacing: "cellSpacing", cellpadding: "cellPadding", rowspan: "rowSpan", colspan: "colSpan", usemap: "useMap", frameborder: "frameBorder", contenteditable: "contentEditable" }, Y = Array.isArray || function (t) { return t instanceof Array }; return X.matches = function (t, e) { if (!e || !t || 1 !== t.nodeType) return !1; var n = t.matches || t.webkitMatchesSelector || t.mozMatchesSelector || t.oMatchesSelector || t.matchesSelector; if (n) return n.call(t, e); var r, i = t.parentNode, o = !i; return o && (i = J).appendChild(t), r = ~X.qsa(i, e).indexOf(t), o && J.removeChild(t), r }, w = function (t) { return t.replace(/-+(.)?/g, function (t, e) { return e ? e.toUpperCase() : "" }) }, S = function (t) { return O.call(t, function (e, n) { return t.indexOf(e) == n }) }, X.fragment = function (t, e, n) { var r, i, o; return k.test(t) && (r = j(A.createElement(RegExp.$1))), r || (t.replace && (t = t.replace(M, "<$1>$2>")), e === b && (e = F.test(t) && RegExp.$1), e in I || (e = "*"), (o = I[e]).innerHTML = "" + t, r = j.each(P.call(o.childNodes), function () { o.removeChild(this) })), a(n) && (i = j(r), j.each(n, function (t, e) { z.indexOf(t) > -1 ? i[t](e) : i.attr(t, e) })), r }, X.Z = function (t, e) { return new p(t, e) }, X.isZ = function (t) { return t instanceof X.Z }, X.init = function (t, e) { var r; if (!t) return X.Z(); if ("string" == typeof t) if ("<" == (t = t.trim())[0] && F.test(t)) r = X.fragment(t, RegExp.$1, e), t = null; else { if (e !== b) return j(e).find(t); r = X.qsa(A, t) } else { if (n(t)) return j(A).ready(t); if (X.isZ(t)) return t; if (Y(t)) r = function (t) { return O.call(t, function (t) { return null != t }) }(t); else if (o(t)) r = [t], t = null; else if (F.test(t)) r = X.fragment(t.trim(), RegExp.$1, e), t = null; else { if (e !== b) return j(e).find(t); r = X.qsa(A, t) } } return X.Z(r, t) }, (j = function (t, e) { return X.init(t, e) }).extend = function (t) { var e, n = P.call(arguments, 1); return "boolean" == typeof t && (e = t, t = n.shift()), n.forEach(function (n) { d(t, n, e) }), t }, X.qsa = function (t, e) { var n, r = "#" == e[0], i = !r && "." == e[0], o = r || i ? e.slice(1) : e, a = _.test(o); return t.getElementById && a && r ? (n = t.getElementById(o)) ? [n] : [] : 1 !== t.nodeType && 9 !== t.nodeType && 11 !== t.nodeType ? [] : P.call(a && !r && t.getElementsByClassName ? i ? t.getElementsByClassName(o) : t.getElementsByTagName(e) : t.querySelectorAll(e)) }, j.contains = A.documentElement.contains ? function (t, e) { return t !== e && t.contains(e) } : function (t, e) { for (; e && (e = e.parentNode);)if (e === t) return !0; return !1 }, j.type = e, j.isFunction = n, j.isWindow = r, j.isArray = Y, j.isPlainObject = a, j.isEmptyObject = function (t) { var e; for (e in t) return !1; return !0 }, j.isNumeric = function (t) { var e = Number(t), n = typeof t; return null != t && "boolean" != n && ("string" != n || t.length) && !isNaN(e) && isFinite(e) || !1 }, j.inArray = function (t, e, n) { return C.indexOf.call(e, t, n) }, j.camelCase = w, j.trim = function (t) { return null == t ? "" : String.prototype.trim.call(t) }, j.uuid = 0, j.support = {}, j.expr = {}, j.noop = function () { }, j.map = function (t, e) { var n, r, i, o = []; if (s(t)) for (r = 0; r < t.length; r++)null != (n = e(t[r], r)) && o.push(n); else for (i in t) null != (n = e(t[i], i)) && o.push(n); return u(o) }, j.each = function (t, e) { var n, r; if (s(t)) { for (n = 0; n < t.length; n++)if (!1 === e.call(t[n], n, t[n])) return t } else for (r in t) if (!1 === e.call(t[r], r, t[r])) return t; return t }, j.grep = function (t, e) { return O.call(t, e) }, t.JSON && (j.parseJSON = JSON.parse), j.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (t, e) { B["[object " + e + "]"] = e.toLowerCase() }), j.fn = { constructor: X.Z, length: 0, forEach: C.forEach, reduce: C.reduce, push: C.push, sort: C.sort, splice: C.splice, indexOf: C.indexOf, concat: function () { var t, e, n = []; for (t = 0; t < arguments.length; t++)e = arguments[t], n[t] = X.isZ(e) ? e.toArray() : e; return N.apply(X.isZ(this) ? this.toArray() : this, n) }, map: function (t) { return j(j.map(this, function (e, n) { return t.call(e, n, e) })) }, slice: function () { return j(P.apply(this, arguments)) }, ready: function (t) { return V.test(A.readyState) && A.body ? t(j) : A.addEventListener("DOMContentLoaded", function () { t(j) }, !1), this }, get: function (t) { return t === b ? P.call(this) : this[t >= 0 ? t : t + this.length] }, toArray: function () { return this.get() }, size: function () { return this.length }, remove: function () { return this.each(function () { null != this.parentNode && this.parentNode.removeChild(this) }) }, each: function (t) { return C.every.call(this, function (e, n) { return !1 !== t.call(e, n, e) }), this }, filter: function (t) { return n(t) ? this.not(this.not(t)) : j(O.call(this, function (e) { return X.matches(e, t) })) }, add: function (t, e) { return j(S(this.concat(j(t, e)))) }, is: function (t) { return this.length > 0 && X.matches(this[0], t) }, not: function (t) { var e = []; if (n(t) && t.call !== b) this.each(function (n) { t.call(this, n) || e.push(this) }); else { var r = "string" == typeof t ? this.filter(t) : s(t) && n(t.item) ? P.call(t) : j(t); this.forEach(function (t) { r.indexOf(t) < 0 && e.push(t) }) } return j(e) }, has: function (t) { return this.filter(function () { return o(t) ? j.contains(this, t) : j(this).find(t).size() }) }, eq: function (t) { return -1 === t ? this.slice(t) : this.slice(t, +t + 1) }, first: function () { var t = this[0]; return t && !o(t) ? t : j(t) }, last: function () { var t = this[this.length - 1]; return t && !o(t) ? t : j(t) }, find: function (t) { var e = this; return t ? "object" == typeof t ? j(t).filter(function () { var t = this; return C.some.call(e, function (e) { return j.contains(e, t) }) }) : 1 == this.length ? j(X.qsa(this[0], t)) : this.map(function () { return X.qsa(this, t) }) : j() }, closest: function (t, e) { var n = [], r = "object" == typeof t && j(t); return this.each(function (o, a) { for (; a && !(r ? r.indexOf(a) >= 0 : X.matches(a, t));)a = a !== e && !i(a) && a.parentNode; a && n.indexOf(a) < 0 && n.push(a) }), j(n) }, parents: function (t) { for (var e = [], n = this; n.length > 0;)n = j.map(n, function (t) { return (t = t.parentNode) && !i(t) && e.indexOf(t) < 0 ? (e.push(t), t) : void 0 }); return m(e, t) }, parent: function (t) { return m(S(this.pluck("parentNode")), t) }, children: function (t) { return m(this.map(function () { return h(this) }), t) }, contents: function () { return this.map(function () { return this.contentDocument || P.call(this.childNodes) }) }, siblings: function (t) { return m(this.map(function (t, e) { return O.call(h(e.parentNode), function (t) { return t !== e }) }), t) }, empty: function () { return this.each(function () { this.innerHTML = "" }) }, pluck: function (t) { return j.map(this, function (e) { return e[t] }) }, show: function () { return this.each(function () { var t, e, n; "none" == this.style.display && (this.style.display = ""), "none" == getComputedStyle(this, "").getPropertyValue("display") && (this.style.display = (t = this.nodeName, D[t] || (e = A.createElement(t), A.body.appendChild(e), n = getComputedStyle(e, "").getPropertyValue("display"), e.parentNode.removeChild(e), "none" == n && (n = "block"), D[t] = n), D[t])) }) }, replaceWith: function (t) { return this.before(t).remove() }, wrap: function (t) { var e = n(t); if (this[0] && !e) var r = j(t).get(0), i = r.parentNode || this.length > 1; return this.each(function (n) { j(this).wrapAll(e ? t.call(this, n) : i ? r.cloneNode(!0) : r) }) }, wrapAll: function (t) { if (this[0]) { j(this[0]).before(t = j(t)); for (var e; (e = t.children()).length;)t = e.first(); j(t).append(this) } return this }, wrapInner: function (t) { var e = n(t); return this.each(function (n) { var r = j(this), i = r.contents(), o = e ? t.call(this, n) : t; i.length ? i.wrapAll(o) : r.append(o) }) }, unwrap: function () { return this.parent().each(function () { j(this).replaceWith(j(this).children()) }), this }, clone: function () { return this.map(function () { return this.cloneNode(!0) }) }, hide: function () { return this.css("display", "none") }, toggle: function (t) { return this.each(function () { var e = j(this); (t === b ? "none" == e.css("display") : t) ? e.show() : e.hide() }) }, prev: function (t) { return j(this.pluck("previousElementSibling")).filter(t || "*") }, next: function (t) { return j(this.pluck("nextElementSibling")).filter(t || "*") }, html: function (t) { return 0 in arguments ? this.each(function (e) { var n = this.innerHTML; j(this).empty().append(v(this, t, e, n)) }) : 0 in this ? this[0].innerHTML : null }, text: function (t) { return 0 in arguments ? this.each(function (e) { var n = v(this, t, e, this.textContent); this.textContent = null == n ? "" : "" + n }) : 0 in this ? this.pluck("textContent").join("") : null }, attr: function (t, e) { var n; return "string" != typeof t || 1 in arguments ? this.each(function (n) { if (1 === this.nodeType) if (o(t)) for (E in t) g(this, E, t[E]); else g(this, t, v(this, e, n, this.getAttribute(t))) }) : 0 in this && 1 == this[0].nodeType && null != (n = this[0].getAttribute(t)) ? n : b }, removeAttr: function (t) { return this.each(function () { 1 === this.nodeType && t.split(" ").forEach(function (t) { g(this, t) }, this) }) }, prop: function (t, e) { return t = W[t] || t, 1 in arguments ? this.each(function (n) { this[t] = v(this, e, n, this[t]) }) : this[0] && this[0][t] }, removeProp: function (t) { return t = W[t] || t, this.each(function () { delete this[t] }) }, data: function (t, e) { var n = "data-" + t.replace(Z, "-$1").toLowerCase(), r = 1 in arguments ? this.attr(n, e) : this.attr(n); return null !== r ? x(r) : b }, val: function (t) { return 0 in arguments ? (null == t && (t = ""), this.each(function (e) { this.value = v(this, t, e, this.value) })) : this[0] && (this[0].multiple ? j(this[0]).find("option").filter(function () { return this.selected }).pluck("value") : this[0].value) }, offset: function (e) { if (e) return this.each(function (t) { var n = j(this), r = v(this, e, t, n.offset()), i = n.offsetParent().offset(), o = { top: r.top - i.top, left: r.left - i.left }; "static" == n.css("position") && (o.position = "relative"), n.css(o) }); if (!this.length) return null; if (A.documentElement !== this[0] && !j.contains(A.documentElement, this[0])) return { top: 0, left: 0 }; var n = this[0].getBoundingClientRect(); return { left: n.left + t.pageXOffset, top: n.top + t.pageYOffset, width: Math.round(n.width), height: Math.round(n.height) } }, css: function (t, n) { if (arguments.length < 2) { var r = this[0]; if ("string" == typeof t) { if (!r) return; return r.style[w(t)] || getComputedStyle(r, "").getPropertyValue(t) } if (Y(t)) { if (!r) return; var i = {}, o = getComputedStyle(r, ""); return j.each(t, function (t, e) { i[e] = r.style[w(e)] || o.getPropertyValue(e) }), i } } var a = ""; if ("string" == e(t)) n || 0 === n ? a = c(t) + ":" + f(t, n) : this.each(function () { this.style.removeProperty(c(t)) }); else for (E in t) t[E] || 0 === t[E] ? a += c(E) + ":" + f(E, t[E]) + ";" : this.each(function () { this.style.removeProperty(c(E)) }); return this.each(function () { this.style.cssText += ";" + a }) }, index: function (t) { return t ? this.indexOf(j(t)[0]) : this.parent().children().indexOf(this[0]) }, hasClass: function (t) { return !!t && C.some.call(this, function (t) { return this.test(y(t)) }, l(t)) }, addClass: function (t) { return t ? this.each(function (e) { if ("className" in this) { T = []; var n = y(this); v(this, t, e, n).split(/\s+/g).forEach(function (t) { j(this).hasClass(t) || T.push(t) }, this), T.length && y(this, n + (n ? " " : "") + T.join(" ")) } }) : this }, removeClass: function (t) { return this.each(function (e) { if ("className" in this) { if (t === b) return y(this, ""); T = y(this), v(this, t, e, T).split(/\s+/g).forEach(function (t) { T = T.replace(l(t), " ") }), y(this, T.trim()) } }) }, toggleClass: function (t, e) { return t ? this.each(function (n) { var r = j(this); v(this, t, n, y(this)).split(/\s+/g).forEach(function (t) { (e === b ? !r.hasClass(t) : e) ? r.addClass(t) : r.removeClass(t) }) }) : this }, scrollTop: function (t) { if (this.length) { var e = "scrollTop" in this[0]; return t === b ? e ? this[0].scrollTop : this[0].pageYOffset : this.each(e ? function () { this.scrollTop = t } : function () { this.scrollTo(this.scrollX, t) }) } }, scrollLeft: function (t) { if (this.length) { var e = "scrollLeft" in this[0]; return t === b ? e ? this[0].scrollLeft : this[0].pageXOffset : this.each(e ? function () { this.scrollLeft = t } : function () { this.scrollTo(t, this.scrollY) }) } }, position: function () { if (this.length) { var t = this[0], e = this.offsetParent(), n = this.offset(), r = R.test(e[0].nodeName) ? { top: 0, left: 0 } : e.offset(); return n.top -= parseFloat(j(t).css("margin-top")) || 0, n.left -= parseFloat(j(t).css("margin-left")) || 0, r.top += parseFloat(j(e[0]).css("border-top-width")) || 0, r.left += parseFloat(j(e[0]).css("border-left-width")) || 0, { top: n.top - r.top, left: n.left - r.left } } }, offsetParent: function () { return this.map(function () { for (var t = this.offsetParent || A.body; t && !R.test(t.nodeName) && "static" == j(t).css("position");)t = t.offsetParent; return t }) } }, j.fn.detach = j.fn.remove, ["width", "height"].forEach(function (t) { var e = t.replace(/./, function (t) { return t[0].toUpperCase() }); j.fn[t] = function (n) { var o, a = this[0]; return n === b ? r(a) ? a["inner" + e] : i(a) ? a.documentElement["scroll" + e] : (o = this.offset()) && o[t] : this.each(function (e) { (a = j(this)).css(t, v(this, n, e, a[t]())) }) } }), ["after", "prepend", "before", "append"].forEach(function (n, r) { var i = r % 2; j.fn[n] = function () { var n, o, a = j.map(arguments, function (t) { var r = []; return "array" == (n = e(t)) ? (t.forEach(function (t) { return t.nodeType !== b ? r.push(t) : j.zepto.isZ(t) ? r = r.concat(t.get()) : void (r = r.concat(X.fragment(t))) }), r) : "object" == n || null == t ? t : X.fragment(t) }), s = this.length > 1; return a.length < 1 ? this : this.each(function (e, n) { o = i ? n : n.parentNode, n = 0 == r ? n.nextSibling : 1 == r ? n.firstChild : 2 == r ? n : null; var u = j.contains(A.documentElement, o); a.forEach(function (e) { if (s) e = e.cloneNode(!0); else if (!o) return j(e).remove(); o.insertBefore(e, n), u && function t(e, n) { n(e); for (var r = 0, i = e.childNodes.length; i > r; r++)t(e.childNodes[r], n) }(e, function (e) { if (!(null == e.nodeName || "SCRIPT" !== e.nodeName.toUpperCase() || e.type && "text/javascript" !== e.type || e.src)) { var n = e.ownerDocument ? e.ownerDocument.defaultView : t; n.eval.call(n, e.innerHTML) } }) }) }) }, j.fn[i ? n + "To" : "insert" + (r ? "Before" : "After")] = function (t) { return j(t)[n](this), this } }), X.Z.prototype = p.prototype = j.fn, X.uniq = S, X.deserializeValue = x, j.zepto = X, j }(); return t.Zepto = e, void 0 === t.$ && (t.$ = e), function (e) { function n(t) { return t._zid || (t._zid = h++) } function r(t, e, r, o) { if ((e = i(e)).ns) var a = function (t) { return new RegExp("(?:^| )" + t.replace(" ", " .* ?") + "(?: |$)") }(e.ns); return (v[n(t)] || []).filter(function (t) { return t && (!e.e || t.e == e.e) && (!e.ns || a.test(t.ns)) && (!r || n(t.fn) === n(r)) && (!o || t.sel == o) }) } function i(t) { var e = ("" + t).split("."); return { e: e[0], ns: e.slice(1).sort().join(" ") } } function o(t, e) { return t.del && !y && t.e in x || !!e } function a(t) { return b[t] || y && x[t] || t } function s(t, r, s, u, l, h, p) { var d = n(t), m = v[d] || (v[d] = []); r.split(/\s/).forEach(function (n) { if ("ready" == n) return e(document).ready(s); var r = i(n); r.fn = s, r.sel = l, r.e in b && (s = function (t) { var n = t.relatedTarget; return !n || n !== this && !e.contains(this, n) ? r.fn.apply(this, arguments) : void 0 }), r.del = h; var d = h || s; r.proxy = function (e) { if (!(e = c(e)).isImmediatePropagationStopped()) { e.data = u; var n = d.apply(t, e._args == f ? [e] : [e].concat(e._args)); return !1 === n && (e.preventDefault(), e.stopPropagation()), n } }, r.i = m.length, m.push(r), "addEventListener" in t && t.addEventListener(a(r.e), r.proxy, o(r, p)) }) } function u(t, e, i, s, u) { var c = n(t); (e || "").split(/\s/).forEach(function (e) { r(t, e, i, s).forEach(function (e) { delete v[c][e.i], "removeEventListener" in t && t.removeEventListener(a(e.e), e.proxy, o(e, u)) }) }) } function c(t, n) { return (n || !t.isDefaultPrevented) && (n || (n = t), e.each(w, function (e, r) { var i = n[e]; t[e] = function () { return this[r] = E, i && i.apply(n, arguments) }, t[r] = j }), t.timeStamp || (t.timeStamp = Date.now()), (n.defaultPrevented !== f ? n.defaultPrevented : "returnValue" in n ? !1 === n.returnValue : n.getPreventDefault && n.getPreventDefault()) && (t.isDefaultPrevented = E)), t } function l(t) { var e, n = { originalEvent: t }; for (e in t) T.test(e) || t[e] === f || (n[e] = t[e]); return c(n, t) } var f, h = 1, p = Array.prototype.slice, d = e.isFunction, m = function (t) { return "string" == typeof t }, v = {}, g = {}, y = "onfocusin" in t, x = { focus: "focusin", blur: "focusout" }, b = { mouseenter: "mouseover", mouseleave: "mouseout" }; g.click = g.mousedown = g.mouseup = g.mousemove = "MouseEvents", e.event = { add: s, remove: u }, e.proxy = function (t, r) { var i = 2 in arguments && p.call(arguments, 2); if (d(t)) { var o = function () { return t.apply(r, i ? i.concat(p.call(arguments)) : arguments) }; return o._zid = n(t), o } if (m(r)) return i ? (i.unshift(t[r], t), e.proxy.apply(null, i)) : e.proxy(t[r], t); throw new TypeError("expected function") }, e.fn.bind = function (t, e, n) { return this.on(t, e, n) }, e.fn.unbind = function (t, e) { return this.off(t, e) }, e.fn.one = function (t, e, n, r) { return this.on(t, e, n, r, 1) }; var E = function () { return !0 }, j = function () { return !1 }, T = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/, w = { preventDefault: "isDefaultPrevented", stopImmediatePropagation: "isImmediatePropagationStopped", stopPropagation: "isPropagationStopped" }; e.fn.delegate = function (t, e, n) { return this.on(e, t, n) }, e.fn.undelegate = function (t, e, n) { return this.off(e, t, n) }, e.fn.live = function (t, n) { return e(document.body).delegate(this.selector, t, n), this }, e.fn.die = function (t, n) { return e(document.body).undelegate(this.selector, t, n), this }, e.fn.on = function (t, n, r, i, o) { var a, c, h = this; return t && !m(t) ? (e.each(t, function (t, e) { h.on(t, n, r, e, o) }), h) : (m(n) || d(i) || !1 === i || (i = r, r = n, n = f), (i === f || !1 === r) && (i = r, r = f), !1 === i && (i = j), h.each(function (f, h) { o && (a = function (t) { return u(h, t.type, i), i.apply(this, arguments) }), n && (c = function (t) { var r, o = e(t.target).closest(n, h).get(0); return o && o !== h ? (r = e.extend(l(t), { currentTarget: o, liveFired: h }), (a || i).apply(o, [r].concat(p.call(arguments, 1)))) : void 0 }), s(h, t, i, r, n, c || a) })) }, e.fn.off = function (t, n, r) { var i = this; return t && !m(t) ? (e.each(t, function (t, e) { i.off(t, n, e) }), i) : (m(n) || d(r) || !1 === r || (r = n, n = f), !1 === r && (r = j), i.each(function () { u(this, t, r, n) })) }, e.fn.trigger = function (t, n) { return (t = m(t) || e.isPlainObject(t) ? e.Event(t) : c(t))._args = n, this.each(function () { t.type in x && "function" == typeof this[t.type] ? this[t.type]() : "dispatchEvent" in this ? this.dispatchEvent(t) : e(this).triggerHandler(t, n) }) }, e.fn.triggerHandler = function (t, n) { var i, o; return this.each(function (a, s) { (i = l(m(t) ? e.Event(t) : t))._args = n, i.target = s, e.each(r(s, t.type || t), function (t, e) { return o = e.proxy(i), !i.isImmediatePropagationStopped() && void 0 }) }), o }, "focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function (t) { e.fn[t] = function (e) { return 0 in arguments ? this.bind(t, e) : this.trigger(t) } }), e.Event = function (t, e) { m(t) || (t = (e = t).type); var n = document.createEvent(g[t] || "Events"), r = !0; if (e) for (var i in e) "bubbles" == i ? r = !!e[i] : n[i] = e[i]; return n.initEvent(t, r, !0), c(n) } }(e), function (e) { function n(t, n, r) { var i = e.Event(n); return e(t).trigger(i, r), !i.isDefaultPrevented() } function r(t, e, r, i) { return t.global ? n(e || g, r, i) : void 0 } function i(t) { t.global && 0 == e.active++ && r(t, null, "ajaxStart") } function o(t) { t.global && !--e.active && r(t, null, "ajaxStop") } function a(t, e) { var n = e.context; return !1 !== e.beforeSend.call(n, t, e) && !1 !== r(e, n, "ajaxBeforeSend", [t, e]) && void r(e, n, "ajaxSend", [t, e]) } function s(t, e, n, i) { var o = n.context, a = "success"; n.success.call(o, t, a, e), i && i.resolveWith(o, [t, a, e]), r(n, o, "ajaxSuccess", [e, n, t]), c(a, e, n) } function u(t, e, n, i, o) { var a = i.context; i.error.call(a, n, e, t), o && o.rejectWith(a, [n, e, t]), r(i, a, "ajaxError", [n, i, t || e]), c(e, n, i) } function c(t, e, n) { var i = n.context; n.complete.call(i, e, t), r(n, i, "ajaxComplete", [e, n]), o(n) } function l() { } function f(t) { return t && (t = t.split(";", 2)[0]), t && (t == j ? "html" : t == E ? "json" : x.test(t) ? "script" : b.test(t) && "xml") || "text" } function h(t, e) { return "" == e ? t : (t + "&" + e).replace(/[&?]{1,2}/, "?") } function p(t, n, r, i) { return e.isFunction(n) && (i = r, r = n, n = void 0), e.isFunction(r) || (i = r, r = void 0), { url: t, data: n, success: r, dataType: i } } var d, m, v = +new Date, g = t.document, y = /
版本更新日期:2021年09月02日
版本生效日期:2021年09月02日
《有車以后用戶協(xié)議》
歡迎您使用有車以后App!
為了更好地為您提供服務(wù),請您在開始使用有車以后及相關(guān)服務(wù)之前,務(wù)必認真閱讀并充分理解本協(xié)議,特別是涉及免除或者限制責(zé)任的條款、權(quán)利許可和信息使用的條款、同意開通和使用特殊單項服務(wù)的條款、法律適用和爭議解決條款等。其中,免除或者限制責(zé)任條款等重要內(nèi)容將以加粗形式提示您注意,您應(yīng)重點閱讀。如您未滿18周歲,請您在法定監(jiān)護人陪同下仔細閱讀并充分理解本協(xié)議,并征得法定監(jiān)護人的同意后使用有車以后及相關(guān)服務(wù)。
請仔細閱讀協(xié)議全文,您有權(quán)選擇同意或不同意本協(xié)議,如您不同意本協(xié)議,這將導(dǎo)致我們無法為您提供完整的產(chǎn)品和服務(wù),您也可以選擇停止使用。如您自主選擇同意或使用有車以后及相關(guān)服務(wù),則視為您已充分閱讀并理解本協(xié)議,并同意作為本協(xié)議的一方當(dāng)事人接受本協(xié)議和相關(guān)規(guī)則(包括但不限于《隱私政策》)的約束。
目錄
一、有車以后App及相關(guān)服務(wù)
二、關(guān)于“賬號”
三、用戶個人信息保護
四、用戶行為規(guī)范
五、信息內(nèi)容使用規(guī)范
六、違約處理
七、服務(wù)的變更、中斷和終止
八、廣告
九、知識產(chǎn)權(quán)
十、免責(zé)聲明
十一、關(guān)于單項服務(wù)與第三方服務(wù)的特殊約定
十二、未成年人使用條款
十三、其他
一、有車以后App及相關(guān)服務(wù)
有車以后App及相關(guān)服務(wù)(以下簡稱“該產(chǎn)品服務(wù)”或“服務(wù)”),系指廣州市有車以后信息科技有限公司及其關(guān)聯(lián)公司(以下簡稱“有車以后”或“公司”)通過合法擁有并運營的、標(biāo)注名稱為“有車以后”的App應(yīng)用程序向您提供的產(chǎn)品與服務(wù),包括但不限于車型詢價交易、個性化推薦、選車看車、發(fā)布信息、互動交流、搜索查詢等核心功能及其他相關(guān)功能?!队脩魠f(xié)議》(以下或稱“協(xié)議”或“本協(xié)議”)是您與公司之間就您注冊、登錄、使用(以下統(tǒng)稱“使用”)相關(guān)服務(wù)所訂立的協(xié)議。
1. 您可以通過預(yù)裝、公司已授權(quán)的第三方下載等方式獲取。若您并非從公司或經(jīng)公司授權(quán)的第三方獲取本軟件的,公司無法保證非官方版本的軟件應(yīng)用能夠正常使用,您因此遭受的損失與公司無關(guān)。
2. 公司可能為不同的終端設(shè)備開發(fā)不同的應(yīng)用程序軟件版本,您應(yīng)當(dāng)根據(jù)實際設(shè)備狀況獲取、下載、安裝合適的版本。如您不再使用該產(chǎn)品服務(wù),您也可自行卸載相應(yīng)的應(yīng)用程序軟件。
3. 為更好的提升用戶體驗及服務(wù),公司將不定期提供該產(chǎn)品服務(wù)的更新或改變(包括但不限于軟件修改、升級、功能強化、開發(fā)新服務(wù)、軟件替換等),您可根據(jù)需要自行選擇是否更新相應(yīng)的版本。
4. 為保證該產(chǎn)品服務(wù)安全、提升用戶服務(wù)體驗,在該產(chǎn)品服務(wù)的部分或全部更新后,公司將在可行的情況下以妥當(dāng)?shù)姆绞剑òǖ幌抻谙到y(tǒng)提示、公告等)提示您,您有權(quán)選擇接受更新后的版本;如您選擇不更新,部分功能將受到限制或不能正常使用。
5. 除非得到公司事先書面授權(quán),您不得以任何形式對該產(chǎn)品服務(wù)進行包括但不限于改編、復(fù)制、傳播、垂直搜索、鏡像或交易等未經(jīng)授權(quán)的訪問或使用。
6. 您理解,使用該產(chǎn)品服務(wù)需自行準(zhǔn)備與軟件及相關(guān)服務(wù)有關(guān)的終端設(shè)備(如電腦、手機等),一旦您在終端設(shè)備中打開有車以后App,即視為您使用該產(chǎn)品服務(wù)。為充分實現(xiàn)有車以后App的全部功能,您可能需要將終端設(shè)備聯(lián)網(wǎng),您理解由您承擔(dān)所需要的費用(如流量費、上網(wǎng)費等)。
7. 公司許可您一項個人的、不可轉(zhuǎn)讓的、非獨占地和非商業(yè)的合法使用該產(chǎn)品服務(wù)的權(quán)利。本協(xié)議未明示授權(quán)的其他一切權(quán)利仍由公司保留,您在行使該等權(quán)利前須另行獲得公司的書面許可,同時公司如未行使前述任何權(quán)利,并不構(gòu)成對該權(quán)利的放棄。
8. 您無需注冊也可開始使用該產(chǎn)品服務(wù),但部分功能或服務(wù)可能會受到影響。同時,您也理解,為使您更好地使用該產(chǎn)品服務(wù),保障您的賬號安全,某些功能和/或某些單項服務(wù)項目(如帖子評論服務(wù)、現(xiàn)金提現(xiàn)等)將要求您按照國家相關(guān)法律法規(guī)的規(guī)定,提供真實的身份信息實名注冊并登錄后方可使用。
二、關(guān)于“賬號”
有車以后用戶賬號,適用在公司運營主體下的關(guān)聯(lián)App或小程序,包括但不限于:有車以后App、車小蜂App、有車以后+小程序,車小蜂小程序等。
1. 行為能力——在注冊賬號之前,您應(yīng)當(dāng)確認并承諾,您具備中華人民共和國法律規(guī)定的與您行為相適應(yīng)的民事行為能力。
2. 登錄方式——您可以通過手機驗證碼注冊并登錄,或使用第三方賬號注冊登錄賬號。手機號、驗證碼(包括經(jīng)授權(quán)的微信賬號等)是用戶用以登錄并使用服務(wù)的憑證。
3. 賬戶注冊——在注冊用戶賬戶時,您應(yīng)當(dāng)提供真實、有效的信息(包括但不限于聯(lián)系手機號、姓名、聯(lián)系地址等)。您理解并承諾,您所設(shè)置的賬號不得違反國家法律法規(guī)及公司的相關(guān)規(guī)則,您的賬號昵稱、頭像和簡介等注冊信息及其他個人信息中不得出現(xiàn)違法和不良信息,未經(jīng)他人許可不得用他人名義(包括但不限于冒用他人姓名、名稱、字號、頭像等足以讓人引起混淆的方式)開設(shè)賬號,不得惡意注冊有車以后賬號(包括但不限于頻繁注冊、批量注冊賬號等行為)。您在賬號注冊及使用過程中需遵守相關(guān)法律法規(guī),不得實施任何侵害國家利益、損害其他公民合法權(quán)益,有害社會道德風(fēng)尚的行為。公司有權(quán)對您提交的信息進行審核。同時,您應(yīng)當(dāng)保證上述信息的持續(xù)有效性,一旦信息發(fā)生變化,您應(yīng)當(dāng)及時進行變更;否則您應(yīng)承擔(dān)信息不真實、聯(lián)系方式無效導(dǎo)致的相關(guān)不利后果及損失,且有車以后保留終止向您提供服務(wù)的權(quán)利。
4. 賬號保管——您的賬號及其信息由您自行設(shè)置保管,您有責(zé)任維護個人賬號的安全性與保密性,并對您以注冊賬號名義所從事的活動承擔(dān)全部法律責(zé)任,包括但不限于您在相關(guān)服務(wù)中進行的任何數(shù)據(jù)修改、言論發(fā)表、款項支付等操作行為可能引起的一切法律責(zé)任。您應(yīng)高度重視對賬號與密碼的保密,在任何情況下不向他人透露賬號及密碼。若發(fā)現(xiàn)他人未經(jīng)許可使用您的賬號或發(fā)生其他任何安全漏洞問題時,您應(yīng)當(dāng)立即通知公司。您的賬號僅限于您本人使用,未經(jīng)公司書面同意,禁止以任何形式贈與、借用、出租、轉(zhuǎn)讓、售賣或以其他方式許可他人使用該賬號。如果公司發(fā)現(xiàn)或者有合理理由認為使用者并非賬號初始注冊人,為保障賬號安全,公司有權(quán)立即暫?;蚪K止向該注冊賬號提供服務(wù),或注銷該賬號。由此造成的后果和損失,由您自行承擔(dān)。
5. 在丟失賬號或遺忘密碼時,您可遵照公司的申訴途徑及時申訴請求找回賬號或密碼。您理解并認可,公司的密碼找回機制僅需要識別申訴單上所填資料與系統(tǒng)記錄資料具有一致性,而無法識別申訴人是否系真正賬號有權(quán)使用者。公司特別提醒您應(yīng)妥善保管您的賬號和密碼。當(dāng)您使用完畢后,應(yīng)安全退出。如因您保管不當(dāng)?shù)茸陨碓蚧蚱渌豢煽挂蛩貙?dǎo)致遭受盜號或密碼丟失,您將自行承擔(dān)相應(yīng)責(zé)任。
6. 您理解并同意,除您登錄、使用該產(chǎn)品服務(wù)外,您還可以用有車以后用戶賬號登錄使用公司及其關(guān)聯(lián)公司提供的其他軟件、服務(wù);亦可用公司及其關(guān)聯(lián)公司提供的其他軟件上的注冊賬號登錄、使用該產(chǎn)品服務(wù)。您以有車以后賬號登錄并使用前述服務(wù)時,將受到前述服務(wù)的實際提供方的用戶協(xié)議及其他協(xié)議條款約束。
7. 您理解并同意,為了充分使用賬號資源,如您在注冊后未及時進行初次登錄使用或連續(xù)超過兩個月未登錄賬號使用等情形,公司有權(quán)收回您的賬號。
8. 您可以在我們的產(chǎn)品中直接申請注銷賬號,您注銷賬號后,我們將停止為您提供產(chǎn)品與/或服務(wù),并根據(jù)您的要求,除法律法規(guī)另有規(guī)定外,我們將刪除您的個人信息。
三、用戶個人信息保護
公司與您一同致力于您個人信息(即能夠獨立或與其他信息結(jié)合后識別用戶身份的信息)的保護,保護用戶個人信息是公司的基本原則之一。
請您知悉,在使用該產(chǎn)品服務(wù)的過程中,您可能需要提供您的個人信息(包括但不限于姓名、電話號碼、位置信息),以便公司向您提供更好的服務(wù)和相應(yīng)的技術(shù)支持。公司將運用加密技術(shù)、匿名化處理等其他與軟件產(chǎn)品服務(wù)相匹配的技術(shù)措施及其他安全措施保護您的個人信息,更多關(guān)于用戶個人信息保護和個人信息管理的內(nèi)容,請參見《有車以后隱私政策》。
四、用戶行為規(guī)范
(一)用戶行為要求
您應(yīng)當(dāng)對您使用有車以后及相關(guān)服務(wù)的行為負責(zé),除非法律允許或者經(jīng)公司事先書面許可,您使用有車以后及相關(guān)服務(wù)不得具有下列行為:
1. 使用未經(jīng)公司授權(quán)或許可的任何插件、外掛、系統(tǒng)或第三方工具對該產(chǎn)品服務(wù)的正常運行進行干擾、破壞、修改或施加其他影響。
2. 利用或針對有車以后及相關(guān)服務(wù)進行任何危害計算機網(wǎng)絡(luò)安全的行為,包括但不限于:
(1)非法侵入他人網(wǎng)絡(luò)、干擾他人網(wǎng)絡(luò)正常功能、竊取網(wǎng)絡(luò)數(shù)據(jù)等危害網(wǎng)絡(luò)安全的活動;
(2)提供專門用于從事侵入網(wǎng)絡(luò)、干擾網(wǎng)絡(luò)正常功能及防護措施、竊取網(wǎng)絡(luò)數(shù)據(jù)等危害網(wǎng)絡(luò)安全活動的程序、工具;
(3)明知他人從事危害網(wǎng)絡(luò)安全的活動的,為其提供技術(shù)支持、廣告推廣、支付結(jié)算等幫助;
(4)使用未經(jīng)許可的數(shù)據(jù)或進入未經(jīng)許可的服務(wù)器/賬號;
(5)未經(jīng)允許進入公眾計算機網(wǎng)絡(luò)或者他人計算機系統(tǒng)并刪除、修改、增加存儲信息;
(6)未經(jīng)許可,企圖探查、掃描、測試有車以后系統(tǒng)或網(wǎng)絡(luò)的弱點或其它實施破壞網(wǎng)絡(luò)安全的行為;
(7)企圖干涉、破壞有車以后系統(tǒng)或網(wǎng)站的正常運行,故意傳播惡意程序或病毒以及其他破壞干擾正常網(wǎng)絡(luò)信息服務(wù)的行為;
(8)偽造TCP/IP數(shù)據(jù)包名稱或部分名稱;
(9)對該產(chǎn)品服務(wù)進行反向工程、反向匯編、編譯或者以其他方式嘗試發(fā)現(xiàn)有車以后的源代碼;
(10)惡意注冊該產(chǎn)品服務(wù)的賬號,包括但不限于頻繁、批量注冊賬號;
(11)違反法律法規(guī)、本協(xié)議、公司的相關(guān)規(guī)則及侵犯他人合法權(quán)益的其他行為。
3. 在任何情況下,如果公司有理由認為您的任何行為違反或可能違反上述約定的,公司可獨立進行判斷并處理,且有權(quán)在不進行任何事先通知的情況下終止向您提供服務(wù),并追究相關(guān)法律責(zé)任。
(二)信息內(nèi)容規(guī)范
1. 您按規(guī)定完成實名認證后,可以以注冊賬號或有車以后合作平臺賬號登錄有車以后發(fā)布內(nèi)容、跟帖評論等。
2. 公司致力使發(fā)布信息、跟帖評論成為文明、理性、友善、高質(zhì)量的意見交流。在推動發(fā)布信息、互動交流、跟帖評論業(yè)務(wù)發(fā)展的同時,不斷加強相應(yīng)的信息安全管理能力,完善發(fā)布信息、跟帖評論規(guī)則,切實履行社會責(zé)任,遵守國家法律法規(guī),尊重公民合法權(quán)益,尊重社會公序良俗。
3. 您評論、發(fā)布、傳播的內(nèi)容應(yīng)自覺遵守憲法法律、法規(guī)、遵守公共秩序,尊重社會公德、社會主義制度、國家利益、公民合法權(quán)益、道德風(fēng)尚和信息真實性等要求。您同意并承諾不制作、復(fù)制、發(fā)布、傳播法律、法規(guī)禁止的下列信息內(nèi)容:
(1)反對憲法確定的基本原則的;
(2)危害國家安全,泄露國家秘密的;
(3)顛覆國家政權(quán),推翻社會主義制度、煽動分裂國家、破壞國家統(tǒng)一的;
(4)損害國家榮譽和利益的;
(5)宣揚恐怖主義、極端主義的;
(6)宣揚民族仇恨、民族歧視,破壞民族團結(jié)的;
(7)煽動地域歧視、地域仇恨的;
(8)破壞國家宗教政策,宣揚邪教和迷信的;
(9)編造、散布謠言、虛假信息,擾亂經(jīng)濟秩序和社會秩序、破壞社會穩(wěn)定的;
(10)散布、傳播暴力、淫穢、色情、賭博、兇殺、恐怖或者教唆犯罪的;
(11)侵害未成年人合法權(quán)益或者損害未成年人身心健康的;
(12)未獲他人允許,偷拍、偷錄他人,侵害他人合法權(quán)利的;
(13)包含恐怖、暴力血腥、高危險性、危害表演者自身或他人身心健康內(nèi)容的;
(14)危害網(wǎng)絡(luò)安全、利用網(wǎng)絡(luò)從事危害國家安全、榮譽和利益的;
(15)侮辱或者誹謗他人,侵害他人合法權(quán)益的;
(16)對他人進行暴力恐嚇、威脅,實施人肉搜索的;
(17)涉及他人隱私、個人信息或資料的;
(18)散布污言穢語,損害社會公序良俗的;
(19)侵犯他人隱私權(quán)、名譽權(quán)、肖像權(quán)、知識產(chǎn)權(quán)等合法權(quán)益內(nèi)容的;
(20)散布商業(yè)廣告,或類似的商業(yè)招攬信息、過度營銷信息及垃圾信息;
(21)使用本網(wǎng)站常用語言文字以外的其他語言文字評論的;
(22)與所評論的信息毫無關(guān)系的;
(23)所發(fā)表的信息毫無意義的,或刻意使用字符組合以逃避技術(shù)審核的;
(24)其他違反法律法規(guī)、政策及公序良俗、干擾有車以后正常運營或侵犯其他用戶或第三方合法權(quán)益內(nèi)容的其他信息。
(三)公司設(shè)立投訴、舉報機制
您可通過登錄客戶端的“用戶反饋”頁面向公司投訴、舉報各類違法違規(guī)行為、違法傳播活動、違法有害信息等內(nèi)容,公司將在收到您的反饋后【15個工作日】內(nèi)受理和處理您的投訴舉報,以共同營造風(fēng)清氣正的網(wǎng)絡(luò)空間。
五、信息內(nèi)容的使用規(guī)范
1. 未經(jīng)公司書面許可,您不得自行或授權(quán)、允許、協(xié)助任何第三人對本協(xié)議有車以后及相關(guān)服務(wù)中信息內(nèi)容進行如下行為:
(1)復(fù)制、讀取、采用有車以后及相關(guān)服務(wù)的信息內(nèi)容,用于包括但不限于宣傳、增加閱讀量、瀏覽量等商業(yè)用途;
(2)擅自編輯、整理、編排有車以后及相關(guān)服務(wù)的信息內(nèi)容后在有車以后及相關(guān)服務(wù)的源頁面以外的渠道進行展示;
(3)采用包括但不限于特殊標(biāo)識、特殊代碼等任何形式的識別方法,自行或協(xié)助第三人對有車以后及相關(guān)服務(wù)的信息內(nèi)容產(chǎn)生流量、閱讀量引導(dǎo)、轉(zhuǎn)移、劫持等不利影響;
(4)其他非法獲取或使用有車以后及相關(guān)服務(wù)的信息內(nèi)容的行為。
2. 經(jīng)公司書面許可后,您對產(chǎn)品服務(wù)的信息內(nèi)容的分享、轉(zhuǎn)發(fā)等行為,還應(yīng)符合以下規(guī)范:
(1)對抓取、統(tǒng)計、獲得的相關(guān)搜索熱詞、命中率、分類、搜索量、點擊率、閱讀量等相關(guān)數(shù)據(jù),未經(jīng)公司事先書面同意,不得將上述數(shù)據(jù)以任何方式公示、提供、泄露給任何第三人;
(2)不得對該產(chǎn)品服務(wù)的源網(wǎng)頁進行任何形式的任何改動,包括但不限于首頁鏈接等入口,也不得對其源頁面的展示進行任何形式的遮擋、插入、彈窗等妨礙;
(3)應(yīng)當(dāng)采取安全、有效、嚴密的措施,防止信息內(nèi)容被第三方通過包括但不限于“蜘蛛(spider)”程序等任何形式進行非法獲取;
(4)不得把相關(guān)數(shù)據(jù)內(nèi)容用于公司書面許可范圍之外的目的,進行任何形式的銷售和商業(yè)使用,或向第三方泄露、提供或允許第三方為任何方式的使用;
(5)向任何第三人分享、轉(zhuǎn)發(fā)、復(fù)制有車以后及相關(guān)服務(wù)信息內(nèi)容的行為,應(yīng)當(dāng)遵守公司為此制定的其他規(guī)范和標(biāo)準(zhǔn)。
六、違約處理
1. 針對您違反本協(xié)議或其他服務(wù)條款的行為,公司有權(quán)獨立判斷并視情況采取預(yù)先警示、拒絕發(fā)布、立即停止傳輸信息、刪除跟帖、短期禁止發(fā)言、限制賬號部分或者全部功能直至永久關(guān)閉賬號等措施。公司有權(quán)公告處理結(jié)果,且有權(quán)根據(jù)實際情況決定是否恢復(fù)相關(guān)賬號的使用。對涉嫌違反法律法規(guī)、涉嫌違法犯罪的行為將保存有關(guān)記錄,并依法向有關(guān)主管部門報告、配合有關(guān)主管部門調(diào)查。
2. 因您違反本協(xié)議或其他服務(wù)條款規(guī)定,引起第三方投訴或訴訟索賠的,您應(yīng)當(dāng)自行處理并承擔(dān)全部可能由此引起的法律責(zé)任。因您的違法、侵權(quán)或違約等行為導(dǎo)致公司及其關(guān)聯(lián)公司向任何第三方賠償或遭受國家機關(guān)處罰的,您還應(yīng)足額賠償公司及其關(guān)聯(lián)公司因此遭受的全部損失。
3. 公司尊重并保護用戶及他人的知識產(chǎn)權(quán)、名譽權(quán)、姓名權(quán)、隱私權(quán)等合法權(quán)益。您保證,在使用有車以后及相關(guān)服務(wù)時上傳的文字、圖片、視頻、音頻、鏈接等不侵犯任何第三方的知識產(chǎn)權(quán)、名譽權(quán)、姓名權(quán)、隱私權(quán)等權(quán)利及合法權(quán)益。否則,公司有權(quán)在收到權(quán)利方或者相關(guān)方通知的情況下移除該涉嫌侵權(quán)內(nèi)容。針對第三方提出的全部權(quán)利主張,您應(yīng)自行處理并承擔(dān)全部可能由此引起的法律責(zé)任;如因您的侵權(quán)行為導(dǎo)致公司及其關(guān)聯(lián)公司遭受損失的(包括經(jīng)濟、商譽等損失),您還應(yīng)足額賠償公司及其關(guān)聯(lián)公司遭受的全部損失。
七、服務(wù)的變更、中斷和終止
1. 您理解并同意,公司提供的該產(chǎn)品服務(wù)是按照現(xiàn)有技術(shù)和條件所能達到的現(xiàn)狀提供的。公司會盡最大努力向您提供服務(wù),確保服務(wù)的連貫性和安全性。您理解,公司不能隨時預(yù)見和防范技術(shù)以及其他風(fēng)險,包括但不限于不可抗力、病毒、木馬、黑客攻擊、系統(tǒng)不穩(wěn)定、第三方服務(wù)瑕疵及其他各種安全問題的侵擾等原因可能導(dǎo)致的服務(wù)中斷、數(shù)據(jù)丟失以及其他的損失和風(fēng)險。
2. 您理解并同意,公司為了服務(wù)整體運營的需要,有權(quán)在公告通知后修改、中斷、中止或終止該產(chǎn)品服務(wù),而無須向您負責(zé)或承擔(dān)任何賠償責(zé)任。
八、廣告
1. 您理解并同意,在使用該產(chǎn)品服務(wù)過程中公司可能會向您推送具有相關(guān)性的信息、廣告發(fā)布或品牌推廣服務(wù),且公司有權(quán)在該產(chǎn)品服務(wù)中展示相關(guān)和/或第三方供應(yīng)商、合作伙伴的商業(yè)廣告、推廣或信息(包括商業(yè)或非商業(yè)信息)。
2. 在使用該產(chǎn)品服務(wù)時,公司可能會基于偏好、興趣等方面向您推送程序化廣告,如有上述推送發(fā)生時,您可以在界面中選擇關(guān)閉程序化廣告推薦,如果關(guān)閉,您看到的廣告數(shù)量將保持不變,但廣告的相關(guān)性會降低。
3. 公司依照法律規(guī)定履行廣告及推廣相關(guān)義務(wù),您應(yīng)當(dāng)自行判斷該廣告或推廣信息的真實性和可靠性并為自己的判斷行為負責(zé)。除法律法規(guī)明確規(guī)定外,您因該廣告或推廣信息進行的購買、交易或因前述內(nèi)容遭受的損害或損失由您自行承擔(dān),公司不予承擔(dān)責(zé)任。
九、知識產(chǎn)權(quán)
1. 公司在該產(chǎn)品服務(wù)中提供的內(nèi)容(包括但不限于軟件、技術(shù)、程序、網(wǎng)頁、文字、圖片、圖像、音頻、視頻、圖表、版面設(shè)計、電子文檔等)的知識產(chǎn)權(quán)屬于公司或相關(guān)權(quán)利人所有。公司提供本服務(wù)時所依托的軟件的著作權(quán)、專利權(quán)及其他知識產(chǎn)權(quán)均歸公司所有。未經(jīng)公司許可,任何人不得擅自使用(包括但不限于通過任何機器人、蜘蛛等程序或設(shè)備監(jiān)視、復(fù)制、傳播、展示、鏡像、上載、下載)有車以后及相關(guān)服務(wù)中的內(nèi)容。
2. 您理解并同意,在使用該產(chǎn)品服務(wù)時發(fā)布上傳的文字、圖片、視頻、音頻等均由您原創(chuàng)或已獲合法授權(quán)。您通過有車以后上傳、發(fā)布的任何內(nèi)容的知識產(chǎn)權(quán)歸屬您或原始著作權(quán)人所有。
3. 您知悉、理解并同意,為持續(xù)改善并為您提供更好的服務(wù),您通過該產(chǎn)品服務(wù)發(fā)布、傳輸或傳播的內(nèi)容(包括但不限于文字、圖片、圖像、音頻、視頻和/或音頻中的音樂、聲音、對話等),授權(quán)公司及其關(guān)聯(lián)公司控制公司、繼承公司一項全球范圍內(nèi)、免費、非獨家、可再許可(通過多層次)的權(quán)利(包括但不限于復(fù)制權(quán)、信息網(wǎng)絡(luò)傳播權(quán)、改編權(quán)、匯編權(quán)、修改權(quán)、翻譯權(quán)、制作衍生品、表演和展示等權(quán)利),使用范圍包括但不限于在當(dāng)前或其他網(wǎng)站、應(yīng)用程序、產(chǎn)品或終端設(shè)備等。您在此確認并同意,上述權(quán)利的授予包括在內(nèi)容、有車以后公司和/或公司品牌有關(guān)的任何宣傳、推廣、廣告和/或相關(guān)營銷中使用和以其他方式開發(fā)內(nèi)容(全部或部分)的權(quán)利和許可。為避免疑惑,您同意,上述權(quán)利的授權(quán)包括許可使用、復(fù)制、展示、傳播您擁有或被許可使用并植入內(nèi)容中的個人形象、肖像、姓名、商標(biāo)、服務(wù)標(biāo)志、品牌、名稱、標(biāo)識、公司標(biāo)記及其他物料、素材等。
4. 您確認并同意授權(quán)公司以公司自己的名義或委托專業(yè)第三方對侵犯您上傳發(fā)布的享有知識產(chǎn)權(quán)的內(nèi)容進行代維權(quán),維權(quán)形式包括但不限于:監(jiān)測侵權(quán)行為、發(fā)送維權(quán)函、調(diào)解、和解等,公司有權(quán)對維權(quán)事宜做出決策并獨立實施。
5. 有車以后為服務(wù)運營提供技術(shù)支持,并對相關(guān)服務(wù)的開發(fā)和運營等過程中產(chǎn)生的所有軟件、系統(tǒng)、數(shù)據(jù)和信息等享有法律法規(guī)允許范圍內(nèi)的全部權(quán)利。
6. 請您在任何情況下都不要私自使用公司的包括但不限于「有車以后」、「車小蜂」等在內(nèi)的任何商標(biāo)、服務(wù)標(biāo)記、商號、域名、網(wǎng)站名稱或其他顯著品牌特征等(以下統(tǒng)稱為“標(biāo)識”)。未經(jīng)公司事先書面同意,您不得將本條款前述標(biāo)識以單獨或結(jié)合任何方式展示、使用或申請注冊商標(biāo)、進行域名注冊等,也不得實施向他人明示或暗示有權(quán)展示、使用、或其他有權(quán)處理該些標(biāo)識的行為。由于您違反本協(xié)議使用公司上述商標(biāo)、標(biāo)識等給公司或他人造成損失的,由您承擔(dān)全部法律責(zé)任。
十、免責(zé)聲明
1. 您理解并同意,該產(chǎn)品服務(wù)可能會受多種因素的影響或干擾,公司不保證(包括但不限于):
(1)公司完全適合用戶的使用要求;
(2)公司不受干擾,及時、安全、可靠或不出現(xiàn)錯誤;您經(jīng)由公司取得的任何軟件、服務(wù)或其他材料符合用戶的期望;
(3)軟件中任何錯誤都將能得到更正。
2. 對于涉嫌借款或其他涉財產(chǎn)的網(wǎng)絡(luò)信息、賬戶密碼、廣告或推廣等信息的,請您謹慎對待并自行進行判斷,基于前述原因您因此遭受的利潤、商業(yè)信譽、資料損失或其他有形或無形損失,公司不承擔(dān)任何直接、間接、附帶、特別、衍生性或懲罰性的賠償責(zé)任。
3. 您理解并同意,在使用該產(chǎn)品服務(wù)過程中,可能遇到不可抗力等因素(不可抗力是指不能預(yù)見、不能克服并不能避免的客觀事件),包括但不限于政府行為、自然災(zāi)害、網(wǎng)絡(luò)原因、黑客攻擊、戰(zhàn)爭或任何其它類似事件。出現(xiàn)不可抗力情況時,公司將努力在第一時間及時修復(fù),但因不可抗力造成的損失,公司不承擔(dān)責(zé)任。
4. 公司依據(jù)本協(xié)議約定獲得處理違法違規(guī)內(nèi)容的權(quán)利,該權(quán)利不構(gòu)成公司的義務(wù)或承諾,公司不能保證及時發(fā)現(xiàn)違法行為或進行相應(yīng)處理。
5. 您理解并同意,關(guān)于該產(chǎn)品服務(wù),公司不提供任何種類的明示或暗示擔(dān)?;驐l件,包括但不限于商業(yè)適售性、特定用途適用性等。您對有車以后及相關(guān)服務(wù)的使用行為必須自行承擔(dān)相應(yīng)風(fēng)險。
6. 您理解并同意,本協(xié)議是在保障遵守國家法律法規(guī)、維護公序良俗,保護他人合法權(quán)益,公司在能力范圍內(nèi)盡最大的努力按照相關(guān)法律法規(guī)進行判斷,但并不保證公司判斷完全與司法機關(guān)、行政機關(guān)的判斷一致,如因此產(chǎn)生的后果您已經(jīng)理解并同意自行承擔(dān)。
7. 在任何情況下,公司均不對任何間接性、后果性、懲罰性、偶然性、特殊性或刑罰性的損害,包括因您使用該產(chǎn)品服務(wù)而遭受的利潤損失,承擔(dān)責(zé)任。公司對您承擔(dān)的全部責(zé)任,無論因何原因或何種行為方式,始終不超過您在成為有車以后用戶期間因使用有車以后及相關(guān)服務(wù)而支付給公司的費用(如有)。
十一、關(guān)于單項服務(wù)與第三方服務(wù)的特殊約定
1. 該產(chǎn)品服務(wù)中包含公司以各種合法方式獲取的信息或信息內(nèi)容鏈接,同時也包括公司和/或其關(guān)聯(lián)方合法運營的其他單項服務(wù)。您可以在我們的服務(wù)中使用上述單項服務(wù)。某些單項服務(wù)可能需要您同時接受就此特別制訂的協(xié)議或者其他約束您與該單項服務(wù)提供者之間的規(guī)則,必要時在您計劃使用前述單向服務(wù)時以醒目的方式向您提供這些協(xié)議、規(guī)則,供您查閱與同意。一旦您授權(quán)同意并開始使用上述服務(wù),則視為您理解并接受有關(guān)單項服務(wù)的相關(guān)協(xié)議、規(guī)則的約束。如未標(biāo)明使用期限、或未標(biāo)明使用期限為“永久”、“無限期”或“無限制”的,則這些產(chǎn)品或服務(wù)的使用期限為自用戶開始使用該產(chǎn)品或服務(wù)至該產(chǎn)品或服務(wù)在有車以后中下線之日為止。
2. 如您在該產(chǎn)品服務(wù)中使用第三方提供的軟件及相關(guān)服務(wù)時,除遵守本協(xié)議及產(chǎn)品相關(guān)規(guī)則外,還可能需要同意并遵守第三方的協(xié)議、隱私政策及相關(guān)規(guī)則。如因第三方軟件及相關(guān)服務(wù)產(chǎn)生的爭議、損失或損害,由您與第三方自行解決,公司并不就此而對您或任何第三方承擔(dān)任何責(zé)任。
十二、未成年人使用條款
1. 若用戶是未滿18周歲的未成年人,應(yīng)在監(jiān)護人監(jiān)護、指導(dǎo)并獲得監(jiān)護人同意情況下認真閱讀本協(xié)議后,方可使用有車以后及相關(guān)服務(wù)。
2. 公司重視對未成年人個人信息的保護,未成年用戶在填寫個人信息時,請加強個人保護意識并謹慎對待,并在監(jiān)護人指導(dǎo)時正確使用有車以后及相關(guān)服務(wù)。
3. 未成年用戶理解如因您違反法律法規(guī)、本協(xié)議內(nèi)容,則您及您的監(jiān)護人應(yīng)依照法律規(guī)定承擔(dān)因此而可能引起的全部法律責(zé)任。
4. 未成年人用戶特別提示:
(1)青少年使用有車以后及相關(guān)服務(wù)應(yīng)該在其監(jiān)護人的監(jiān)督指導(dǎo)下,在合理范圍內(nèi)正確學(xué)習(xí)使用網(wǎng)絡(luò),避免沉迷虛擬的網(wǎng)絡(luò)空間,養(yǎng)成良好上網(wǎng)習(xí)慣。
(2)青少年用戶必須遵守《全國青少年網(wǎng)絡(luò)文明公約》:
要善于網(wǎng)上學(xué)習(xí),不瀏覽不良信息;
要誠實友好交流,不侮辱欺詐他人;
要增強自護意識,不隨意約會網(wǎng)友;
要維護網(wǎng)絡(luò)安全,不破壞網(wǎng)絡(luò)秩序;
要有益身心健康,不沉溺虛擬時空。
5. 為更好的保護未成年人隱私權(quán)益,公司提醒用戶慎重發(fā)布包含未成年人素材的內(nèi)容,一經(jīng)發(fā)布,即視為用戶同意該產(chǎn)品服務(wù)展示未成年人的信息、肖像、聲音等,且允許公司依據(jù)本協(xié)議使用、處理該等與未成年人相關(guān)的內(nèi)容。
十三、其他
1. 本協(xié)議的成立、生效、履行、解釋及爭議的解決均應(yīng)適用中華人民共和國大陸地區(qū)法律。若本協(xié)議之任何規(guī)定因與中華人民共和國大陸地區(qū)的法律抵觸而無效或不可執(zhí)行,則這些條款將盡可能按照接近本協(xié)議原條文意旨重新解析,且本協(xié)議其它規(guī)定仍應(yīng)具有完整的效力及效果。
2. 本協(xié)議的簽訂地為中華人民共和國北京市海珠區(qū)。若您因本協(xié)議與公司發(fā)生任何爭議,雙方應(yīng)盡量友好協(xié)商解決;如協(xié)商不成的,您同意應(yīng)將相關(guān)爭議提交至本協(xié)議簽訂地的人民法院訴訟解決。
3. 為給您提供更好的服務(wù)或國家法律法規(guī)、政策調(diào)整,該產(chǎn)品服務(wù)將不時更新與變化,我們會適時對本協(xié)議進行修訂,這些修訂構(gòu)成本協(xié)議的一部分。本協(xié)議更新后,我們會在應(yīng)用程序中發(fā)出更新版本,并在更新后的條款生效前通過公告或其他適當(dāng)?shù)姆绞教嵝涯碌膬?nèi)容,以便您及時了解本協(xié)議的最新版本,您也可以在注冊登錄頁面或“系統(tǒng)設(shè)置”頁面查閱最新版本的協(xié)議條款。如您對修改后的協(xié)議條款存有異議的,請立即停止登錄或使用該產(chǎn)品服務(wù)。若您繼續(xù)登錄或使用該產(chǎn)品服務(wù),即視為您認可并接受修改后的協(xié)議條款。
4. 本協(xié)議中的標(biāo)題僅為方便及閱讀而設(shè),并不影響本協(xié)議中任何規(guī)定的含義或解釋。
5. 您和公司均是獨立的主體,在任何情況下本協(xié)議不構(gòu)成公司對用戶的任何形式的明示或暗示擔(dān)保或條件,雙方之間亦不構(gòu)成代理、合伙、合營或雇傭關(guān)系。