function diff_match_patch() { this.Diff_Timeout = 1, this.Diff_EditCost = 4, this.Match_Threshold = .5, this.Match_Distance = 1e3, this.Patch_DeleteThreshold = .5, this.Patch_Margin = 4, this.Match_MaxBits = 32; } !function(t, e) { function n(t) { var e = t.length, n = rt.type(t); return !rt.isWindow(t) && (!(1 !== t.nodeType || !e) || "array" === n || "function" !== n && (0 === e || "number" == typeof e && e > 0 && e - 1 in t)); } function i(t) { var e = ht[t] = {}; return rt.each(t.match(at) || [], function(t, n) { e[n] = !0; }), e; } function r() { Object.defineProperty(this.cache = {}, 0, { get: function() { return {}; } }), this.expando = rt.expando + Math.random(); } function o(t, n, i) { var r; if (i === e && 1 === t.nodeType) if (r = "data-" + n.replace(vt, "-$1").toLowerCase(), "string" == typeof (i = t.getAttribute(r))) { try { i = "true" === i || "false" !== i && ("null" === i ? null : +i + "" === i ? +i : gt.test(i) ? JSON.parse(i) : i); } catch (t) {} ft.set(t, n, i); } else i = e; return i; } function a() { return !0; } function s() { return !1; } function l() { try { return z.activeElement; } catch (t) {} } function c(t, e) { for (;(t = t[e]) && 1 !== t.nodeType; ) ; return t; } function u(t, e, n) { if (rt.isFunction(e)) return rt.grep(t, function(t, i) { return !!e.call(t, i, t) !== n; }); if (e.nodeType) return rt.grep(t, function(t) { return t === e !== n; }); if ("string" == typeof e) { if (Et.test(e)) return rt.filter(e, t, n); e = rt.filter(e, t); } return rt.grep(t, function(t) { return tt.call(e, t) >= 0 !== n; }); } function d(t, e) { return rt.nodeName(t, "table") && rt.nodeName(1 === e.nodeType ? e : e.firstChild, "tr") ? t.getElementsByTagName("tbody")[0] || t.appendChild(t.ownerDocument.createElement("tbody")) : t; } function p(t) { return t.type = (null !== t.getAttribute("type")) + "/" + t.type, t; } function h(t) { var e = Ft.exec(t.type); return e ? t.type = e[1] : t.removeAttribute("type"), t; } function f(t, e) { for (var n = t.length, i = 0; i < n; i++) mt.set(t[i], "globalEval", !e || mt.get(e[i], "globalEval")); } function m(t, e) { var n, i, r, o, a, s, l, c; if (1 === e.nodeType) { if (mt.hasData(t) && (o = mt.access(t), a = mt.set(e, o), c = o.events)) { delete a.handle, a.events = {}; for (r in c) for (n = 0, i = c[r].length; n < i; n++) rt.event.add(e, r, c[r][n]); } ft.hasData(t) && (s = ft.access(t), l = rt.extend({}, s), ft.set(e, l)); } } function g(t, n) { var i = t.getElementsByTagName ? t.getElementsByTagName(n || "*") : t.querySelectorAll ? t.querySelectorAll(n || "*") : []; return n === e || n && rt.nodeName(t, n) ? rt.merge([ t ], i) : i; } function v(t, e) { var n = e.nodeName.toLowerCase(); "input" === n && Rt.test(t.type) ? e.checked = t.checked : "input" !== n && "textarea" !== n || (e.defaultValue = t.defaultValue); } function b(t, e) { if (e in t) return e; for (var n = e.charAt(0).toUpperCase() + e.slice(1), i = e, r = Kt.length; r--; ) if ((e = Kt[r] + n) in t) return e; return i; } function y(t, e) { return t = e || t, "none" === rt.css(t, "display") || !rt.contains(t.ownerDocument, t); } function x(e) { return t.getComputedStyle(e, null); } function w(t, e) { for (var n, i, r, o = [], a = 0, s = t.length; a < s; a++) i = t[a], i.style && (o[a] = mt.get(i, "olddisplay"), n = i.style.display, e ? (o[a] || "none" !== n || (i.style.display = ""), "" === i.style.display && y(i) && (o[a] = mt.access(i, "olddisplay", k(i.nodeName)))) : o[a] || (r = y(i), (n && "none" !== n || !r) && mt.set(i, "olddisplay", r ? n : rt.css(i, "display")))); for (a = 0; a < s; a++) i = t[a], i.style && (e && "none" !== i.style.display && "" !== i.style.display || (i.style.display = e ? o[a] || "" : "none")); return t; } function S(t, e, n) { var i = Ut.exec(e); return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : e; } function C(t, e, n, i, r) { for (var o = n === (i ? "border" : "content") ? 4 : "width" === e ? 1 : 0, a = 0; o < 4; o += 2) "margin" === n && (a += rt.css(t, n + Yt[o], !0, r)), i ? ("content" === n && (a -= rt.css(t, "padding" + Yt[o], !0, r)), "margin" !== n && (a -= rt.css(t, "border" + Yt[o] + "Width", !0, r))) : (a += rt.css(t, "padding" + Yt[o], !0, r), "padding" !== n && (a += rt.css(t, "border" + Yt[o] + "Width", !0, r))); return a; } function _(t, e, n) { var i = !0, r = "width" === e ? t.offsetWidth : t.offsetHeight, o = x(t), a = rt.support.boxSizing && "border-box" === rt.css(t, "boxSizing", !1, o); if (r <= 0 || null == r) { if (r = $t(t, e, o), (r < 0 || null == r) && (r = t.style[e]), zt.test(r)) return r; i = a && (rt.support.boxSizingReliable || r === t.style[e]), r = parseFloat(r) || 0; } return r + C(t, e, n || (a ? "border" : "content"), i, o) + "px"; } function k(t) { var e = z, n = Wt[t]; return n || (n = E(t, e), "none" !== n && n || (qt = (qt || rt("