diff --git a/app/index.html b/app/index.html
index e3627df99d..8d808ea1b0 100644
--- a/app/index.html
+++ b/app/index.html
@@ -19,13 +19,13 @@
+
-
-
-
+
+
@@ -80,25 +80,17 @@
JavaScript Required
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
@@ -115,7 +107,6 @@ JavaScript Required
-
@@ -129,49 +120,58 @@ JavaScript Required
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
diff --git a/bower.json b/bower.json
index e0895ef3a0..62de942ff5 100644
--- a/bower.json
+++ b/bower.json
@@ -2,49 +2,49 @@
"name": "origin-web-console",
"version": "3.9.0",
"dependencies": {
- "ace-builds": "1.2.9",
"angular": "1.5.11",
- "angular-animate": "1.5.11",
- "angular-bootstrap": "0.14.3",
- "angular-cookies": "1.5.11",
- "angular-extension-registry": "1.2.6",
- "angular-gettext": "2.3.9",
- "angular-inview": "2.2.0",
- "angular-moment": "1.0.0",
- "angular-patternfly": "4.14.9",
+ "json3": "3.3.2",
+ "es5-shim": "3.1.1",
+ "es5-dom-shim": "*",
"angular-resource": "1.5.11",
- "angular-route": "1.5.11",
+ "angular-cookies": "1.5.11",
"angular-sanitize": "1.5.11",
+ "angular-animate": "1.5.11",
"angular-touch": "1.5.11",
- "angular-ui-ace": "0.2.3",
- "angular-utf8-base64": "0.0.5",
- "ansi_up": "1.3.0",
- "bootstrap-hover-dropdown": "2.1.3",
- "c3": "0.4.11",
- "clipboard": "1.5.8",
- "es5-dom-shim": "*",
- "es5-shim": "3.1.1",
- "file-saver": "1.3.3",
- "jquery": "3.2.1",
- "js-yaml": "3.6.1",
- "json3": "3.3.2",
- "kubernetes-container-terminal": "3.0.0",
- "kubernetes-label-selector": "2.1.1",
- "kubernetes-object-describer": "1.0.4",
- "lodash": "4.17.4",
- "matchHeight": "0.7.0",
- "microplugin": "0.0.3",
+ "angular-route": "1.5.11",
+ "angular-bootstrap": "0.14.3",
+ "angular-patternfly": "4.14.9",
+ "angular-gettext": "2.3.9",
+ "uri.js": "1.18.12",
"moment": "2.19.3",
"moment-timezone": "0.5.3",
- "ng-sortable": "1.3.8",
- "origin-web-catalog": "3.10.0-alpha.1",
- "origin-web-common": "3.10.0-alpha.1",
"patternfly": "3.37.4",
- "registry-image-widgets": "https://github.com/cockpit-project/registry-image-widgets.git#0.0.15",
- "selectize": "0.12.1",
+ "jquery": "3.2.1",
+ "lodash": "4.17.4",
"sifter": "0.4.1",
+ "microplugin": "0.0.3",
+ "selectize": "0.12.1",
+ "c3": "0.4.11",
+ "kubernetes-label-selector": "2.1.1",
+ "kubernetes-container-terminal": "3.0.0",
+ "registry-image-widgets": "https://github.com/cockpit-project/registry-image-widgets.git#0.0.15",
+ "kubernetes-object-describer": "1.0.4",
+ "bootstrap-hover-dropdown": "2.1.3",
+ "angular-ui-ace": "0.2.3",
+ "ace-builds": "1.2.9",
+ "clipboard": "1.5.8",
+ "ansi_up": "1.3.0",
+ "angular-extension-registry": "1.2.6",
+ "ng-sortable": "1.3.8",
"ui-select": "angular-ui-select#0.19.4",
- "uri.js": "1.18.12"
+ "matchHeight": "0.7.0",
+ "angular-inview": "2.2.0",
+ "js-yaml": "3.6.1",
+ "angular-moment": "1.0.0",
+ "angular-utf8-base64": "0.0.5",
+ "file-saver": "1.3.3",
+ "origin-web-common": "3.10.0-alpha.1",
+ "origin-web-catalog": "3.10.0-alpha.1"
},
"devDependencies": {
"angular-mocks": "1.5.11",
@@ -53,15 +53,15 @@
},
"appPath": "app",
"resolutions": {
- "angular": "1.5.11",
"angular-bootstrap": "0.14.3",
- "angular-sanitize": "1.5.11",
"d3": "3.5.17",
+ "angular": "1.5.11",
+ "angular-sanitize": "1.5.11",
+ "moment": "2.14.2",
"font-awesome": "4.7.0",
"jquery": "3.2.1",
"lodash": "4.17.4",
- "matchHeight": "0.7.2",
- "moment": "2.14.2"
+ "matchHeight": "0.7.2"
},
"overrides": {
"angular": {
diff --git a/dist/scripts/vendor.js b/dist/scripts/vendor.js
index 138682e98f..ad87410d2d 100644
--- a/dist/scripts/vendor.js
+++ b/dist/scripts/vendor.js
@@ -661,70395 +661,70183 @@ return S.parse.apply(this, arguments);
}, n.Date = T;
}
-if ((D = n._) && D.ielt9shims && (D.ielt9shims.forEach(v), n._ = D.orig_), w = D = A = ca = z = E = F = G = I = y = T = ka = g, function() {
-var e = function() {
-return this;
-}();
-!e && "undefined" != typeof window && (e = window);
-var t = function(e, n, i) {
-"string" == typeof e ? (2 == arguments.length && (i = n), t.modules[e] || (t.payloads[e] = i, t.modules[e] = null)) : t.original ? t.original.apply(this, arguments) : (console.error("dropping module because define wasn't a string."), console.trace());
-};
-t.modules = {}, t.payloads = {};
-var n = function(e, t, n) {
-if ("string" == typeof t) {
-var r = o(e, t);
-if (void 0 != r) return n && n(), r;
-} else if ("[object Array]" === Object.prototype.toString.call(t)) {
-for (var a = [], s = 0, l = t.length; s < l; ++s) {
-var c = o(e, t[s]);
-if (void 0 == c && i.original) return;
-a.push(c);
+if ((D = n._) && D.ielt9shims && (D.ielt9shims.forEach(v), n._ = D.orig_), w = D = A = ca = z = E = F = G = I = y = T = ka = g, function(e, t) {
+"use strict";
+"object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
+if (!e.document) throw new Error("jQuery requires a window with a document");
+return t(e);
+} : t(e);
+}("undefined" != typeof window ? window : this, function(e, t) {
+"use strict";
+function n(e, t) {
+var n = (t = t || te).createElement("script");
+n.text = e, t.head.appendChild(n).parentNode.removeChild(n);
}
-return n && n.apply(null, a) || !0;
+function i(e) {
+var t = !!e && "length" in e && e.length, n = fe.type(e);
+return "function" !== n && !fe.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e);
}
-}, i = function(e, t) {
-var r = n("", e, t);
-return void 0 == r && i.original ? i.original.apply(this, arguments) : r;
-}, r = function(e, t) {
-if (-1 !== t.indexOf("!")) {
-var n = t.split("!");
-return r(e, n[0]) + "!" + r(e, n[1]);
+function r(e, t) {
+return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
}
-if ("." == t.charAt(0)) for (t = e.split("/").slice(0, -1).join("/") + "/" + t; -1 !== t.indexOf(".") && i != t; ) {
-var i = t;
-t = t.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
+function o(e, t, n) {
+return fe.isFunction(t) ? fe.grep(e, function(e, i) {
+return !!t.call(e, i, e) !== n;
+}) : t.nodeType ? fe.grep(e, function(e) {
+return e === t !== n;
+}) : "string" != typeof t ? fe.grep(e, function(e) {
+return ae.call(t, e) > -1 !== n;
+}) : Ce.test(t) ? fe.filter(t, e, n) : (t = fe.filter(t, e), fe.grep(e, function(e) {
+return ae.call(t, e) > -1 !== n && 1 === e.nodeType;
+}));
}
-return t;
-}, o = function(e, i) {
-i = r(e, i);
-var o = t.modules[i];
-if (!o) {
-if ("function" == typeof (o = t.payloads[i])) {
-var a = {}, s = {
-id: i,
-uri: "",
-exports: a,
-packaged: !0
-};
-a = o(function(e, t) {
-return n(i, e, t);
-}, a, s) || s.exports, t.modules[i] = a, delete t.payloads[i];
+function a(e, t) {
+for (;(e = e[t]) && 1 !== e.nodeType; ) ;
+return e;
}
-o = t.modules[i] = a || o;
+function s(e) {
+var t = {};
+return fe.each(e.match(Te) || [], function(e, n) {
+t[n] = !0;
+}), t;
}
-return o;
-};
-!function(n) {
-var r = e;
-n && (e[n] || (e[n] = {}), r = e[n]), r.define && r.define.packaged || (t.original = r.define, r.define = t, r.define.packaged = !0), r.require && r.require.packaged || (i.original = r.require, r.require = i, r.require.packaged = !0);
-}("ace");
-}(), ace.define("ace/lib/regexp", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-function i(e) {
-return (e.global ? "g" : "") + (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.extended ? "x" : "") + (e.sticky ? "y" : "");
+function l(e) {
+return e;
}
-function r(e, t, n) {
-if (Array.prototype.indexOf) return e.indexOf(t, n);
-for (var i = n || 0; i < e.length; i++) if (e[i] === t) return i;
-return -1;
+function c(e) {
+throw e;
}
-var o = {
-exec: RegExp.prototype.exec,
-test: RegExp.prototype.test,
-match: String.prototype.match,
-replace: String.prototype.replace,
-split: String.prototype.split
-}, a = void 0 === o.exec.call(/()??/, "")[1], s = function() {
-var e = /^/g;
-return o.test.call(e, ""), !e.lastIndex;
-}();
-s && a || (RegExp.prototype.exec = function(e) {
-var t, n, l = o.exec.apply(this, arguments);
-if ("string" == typeof e && l) {
-if (!a && l.length > 1 && r(l, "") > -1 && (n = RegExp(this.source, o.replace.call(i(this), "g", "")), o.replace.call(e.slice(l.index), n, function() {
-for (var e = 1; e < arguments.length - 2; e++) void 0 === arguments[e] && (l[e] = void 0);
-})), this._xregexp && this._xregexp.captureNames) for (var c = 1; c < l.length; c++) (t = this._xregexp.captureNames[c - 1]) && (l[t] = l[c]);
-!s && this.global && !l[0].length && this.lastIndex > l.index && this.lastIndex--;
+function u(e, t, n, i) {
+var r;
+try {
+e && fe.isFunction(r = e.promise) ? r.call(e).done(t).fail(n) : e && fe.isFunction(r = e.then) ? r.call(e, t, n) : t.apply(void 0, [ e ].slice(i));
+} catch (e) {
+n.apply(void 0, [ e ]);
}
-return l;
-}, s || (RegExp.prototype.test = function(e) {
-var t = o.exec.call(this, e);
-return t && this.global && !t[0].length && this.lastIndex > t.index && this.lastIndex--, !!t;
-}));
-}), ace.define("ace/lib/es5-shim", [ "require", "exports", "module" ], function(e, t, n) {
-function i() {}
-function r(e) {
+}
+function d() {
+te.removeEventListener("DOMContentLoaded", d), e.removeEventListener("load", d), fe.ready();
+}
+function h() {
+this.expando = fe.expando + h.uid++;
+}
+function f(e) {
+return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : Le.test(e) ? JSON.parse(e) : e);
+}
+function p(e, t, n) {
+var i;
+if (void 0 === n && 1 === e.nodeType) if (i = "data-" + t.replace(Oe, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(i))) {
try {
-return Object.defineProperty(e, "sentinel", {}), "sentinel" in e;
+n = f(n);
} catch (e) {}
+Pe.set(e, t, n);
+} else n = void 0;
+return n;
}
-function o(e) {
-return (e = +e) !== e ? e = 0 : 0 !== e && e !== 1 / 0 && e !== -1 / 0 && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), e;
+function g(e, t, n, i) {
+var r, o = 1, a = 20, s = i ? function() {
+return i.cur();
+} : function() {
+return fe.css(e, t, "");
+}, l = s(), c = n && n[3] || (fe.cssNumber[t] ? "" : "px"), u = (fe.cssNumber[t] || "px" !== c && +l) && Ne.exec(fe.css(e, t));
+if (u && u[3] !== c) {
+c = c || u[3], n = n || [], u = +l || 1;
+do {
+u /= o = o || ".5", fe.style(e, t, u + c);
+} while (o !== (o = s() / l) && 1 !== o && --a);
}
-Function.prototype.bind || (Function.prototype.bind = function(e) {
-var t = this;
-if ("function" != typeof t) throw new TypeError("Function.prototype.bind called on incompatible " + t);
-var n = p.call(arguments, 1), r = function() {
-if (this instanceof r) {
-var i = t.apply(this, n.concat(p.call(arguments)));
-return Object(i) === i ? i : this;
+return n && (u = +u || +l || 0, r = n[1] ? u + (n[1] + 1) * n[2] : +n[2], i && (i.unit = c, i.start = u, i.end = r)), r;
}
-return t.apply(e, n.concat(p.call(arguments)));
-};
-return t.prototype && (i.prototype = t.prototype, r.prototype = new i(), i.prototype = null), r;
-});
-var a, s, l, c, u, d = Function.prototype.call, h = Array.prototype, f = Object.prototype, p = h.slice, g = d.bind(f.toString), m = d.bind(f.hasOwnProperty);
-if ((u = m(f, "__defineGetter__")) && (a = d.bind(f.__defineGetter__), s = d.bind(f.__defineSetter__), l = d.bind(f.__lookupGetter__), c = d.bind(f.__lookupSetter__)), 2 != [ 1, 2 ].splice(0).length) if (function() {
-function e(e) {
-var t = new Array(e + 2);
-return t[0] = t[1] = 0, t;
+function m(e) {
+var t, n = e.ownerDocument, i = e.nodeName, r = Ve[i];
+return r || (t = n.body.appendChild(n.createElement(i)), r = fe.css(t, "display"), t.parentNode.removeChild(t), "none" === r && (r = "block"), Ve[i] = r, r);
}
-var t, n = [];
-if (n.splice.apply(n, e(20)), n.splice.apply(n, e(26)), t = n.length, n.splice(5, 0, "XXX"), n.length, t + 1 == n.length) return !0;
-}()) {
-var v = Array.prototype.splice;
-Array.prototype.splice = function(e, t) {
-return arguments.length ? v.apply(this, [ void 0 === e ? 0 : e, void 0 === t ? this.length - e : t ].concat(p.call(arguments, 2))) : [];
-};
-} else Array.prototype.splice = function(e, t) {
-var n = this.length;
-e > 0 ? e > n && (e = n) : void 0 == e ? e = 0 : e < 0 && (e = Math.max(n + e, 0)), e + t < n || (t = n - e);
-var i = this.slice(e, e + t), r = p.call(arguments, 2), o = r.length;
-if (e === n) o && this.push.apply(this, r); else {
-var a = Math.min(t, n - e), s = e + a, l = s + o - a, c = n - s, u = n - a;
-if (l < s) for (var d = 0; d < c; ++d) this[l + d] = this[s + d]; else if (l > s) for (d = c; d--; ) this[l + d] = this[s + d];
-if (o && e === u) this.length = u, this.push.apply(this, r); else for (this.length = u + o, d = 0; d < o; ++d) this[e + d] = r[d];
+function v(e, t) {
+for (var n, i, r = [], o = 0, a = e.length; o < a; o++) (i = e[o]).style && (n = i.style.display, t ? ("none" === n && (r[o] = Ie.get(i, "display") || null, r[o] || (i.style.display = "")), "" === i.style.display && je(i) && (r[o] = m(i))) : "none" !== n && (r[o] = "none", Ie.set(i, "display", n)));
+for (o = 0; o < a; o++) null != r[o] && (e[o].style.display = r[o]);
+return e;
}
-return i;
-};
-Array.isArray || (Array.isArray = function(e) {
-return "[object Array]" == g(e);
-});
-var b = Object("a"), y = "a" != b[0] || !(0 in b);
-if (Array.prototype.forEach || (Array.prototype.forEach = function(e) {
-var t = F(this), n = y && "[object String]" == g(this) ? this.split("") : t, i = arguments[1], r = -1, o = n.length >>> 0;
-if ("[object Function]" != g(e)) throw new TypeError();
-for (;++r < o; ) r in n && e.call(i, n[r], r, t);
-}), Array.prototype.map || (Array.prototype.map = function(e) {
-var t = F(this), n = y && "[object String]" == g(this) ? this.split("") : t, i = n.length >>> 0, r = Array(i), o = arguments[1];
-if ("[object Function]" != g(e)) throw new TypeError(e + " is not a function");
-for (var a = 0; a < i; a++) a in n && (r[a] = e.call(o, n[a], a, t));
-return r;
-}), Array.prototype.filter || (Array.prototype.filter = function(e) {
-var t, n = F(this), i = y && "[object String]" == g(this) ? this.split("") : n, r = i.length >>> 0, o = [], a = arguments[1];
-if ("[object Function]" != g(e)) throw new TypeError(e + " is not a function");
-for (var s = 0; s < r; s++) s in i && (t = i[s], e.call(a, t, s, n) && o.push(t));
-return o;
-}), Array.prototype.every || (Array.prototype.every = function(e) {
-var t = F(this), n = y && "[object String]" == g(this) ? this.split("") : t, i = n.length >>> 0, r = arguments[1];
-if ("[object Function]" != g(e)) throw new TypeError(e + " is not a function");
-for (var o = 0; o < i; o++) if (o in n && !e.call(r, n[o], o, t)) return !1;
+function b(e, t) {
+var n;
+return n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && r(e, t) ? fe.merge([ e ], n) : n;
+}
+function y(e, t) {
+for (var n = 0, i = e.length; n < i; n++) Ie.set(e[n], "globalEval", !t || Ie.get(t[n], "globalEval"));
+}
+function w(e, t, n, i, r) {
+for (var o, a, s, l, c, u, d = t.createDocumentFragment(), h = [], f = 0, p = e.length; f < p; f++) if ((o = e[f]) || 0 === o) if ("object" === fe.type(o)) fe.merge(h, o.nodeType ? [ o ] : o); else if (Ge.test(o)) {
+for (a = a || d.appendChild(t.createElement("div")), s = (ze.exec(o) || [ "", "" ])[1].toLowerCase(), l = qe[s] || qe._default, a.innerHTML = l[1] + fe.htmlPrefilter(o) + l[2], u = l[0]; u--; ) a = a.lastChild;
+fe.merge(h, a.childNodes), (a = d.firstChild).textContent = "";
+} else h.push(t.createTextNode(o));
+for (d.textContent = "", f = 0; o = h[f++]; ) if (i && fe.inArray(o, i) > -1) r && r.push(o); else if (c = fe.contains(o.ownerDocument, o), a = b(d.appendChild(o), "script"), c && y(a), n) for (u = 0; o = a[u++]; ) We.test(o.type || "") && n.push(o);
+return d;
+}
+function _() {
return !0;
-}), Array.prototype.some || (Array.prototype.some = function(e) {
-var t = F(this), n = y && "[object String]" == g(this) ? this.split("") : t, i = n.length >>> 0, r = arguments[1];
-if ("[object Function]" != g(e)) throw new TypeError(e + " is not a function");
-for (var o = 0; o < i; o++) if (o in n && e.call(r, n[o], o, t)) return !0;
+}
+function x() {
return !1;
-}), Array.prototype.reduce || (Array.prototype.reduce = function(e) {
-var t = F(this), n = y && "[object String]" == g(this) ? this.split("") : t, i = n.length >>> 0;
-if ("[object Function]" != g(e)) throw new TypeError(e + " is not a function");
-if (!i && 1 == arguments.length) throw new TypeError("reduce of empty array with no initial value");
-var r, o = 0;
-if (arguments.length >= 2) r = arguments[1]; else for (;;) {
-if (o in n) {
-r = n[o++];
-break;
}
-if (++o >= i) throw new TypeError("reduce of empty array with no initial value");
+function C() {
+try {
+return te.activeElement;
+} catch (e) {}
}
-for (;o < i; o++) o in n && (r = e.call(void 0, r, n[o], o, t));
-return r;
-}), Array.prototype.reduceRight || (Array.prototype.reduceRight = function(e) {
-var t = F(this), n = y && "[object String]" == g(this) ? this.split("") : t, i = n.length >>> 0;
-if ("[object Function]" != g(e)) throw new TypeError(e + " is not a function");
-if (!i && 1 == arguments.length) throw new TypeError("reduceRight of empty array with no initial value");
-var r, o = i - 1;
-if (arguments.length >= 2) r = arguments[1]; else for (;;) {
-if (o in n) {
-r = n[o--];
-break;
+function S(e, t, n, i, r, o) {
+var a, s;
+if ("object" == typeof t) {
+"string" != typeof n && (i = i || n, n = void 0);
+for (s in t) S(e, s, n, i, t[s], o);
+return e;
}
-if (--o < 0) throw new TypeError("reduceRight of empty array with no initial value");
+if (null == i && null == r ? (r = n, i = n = void 0) : null == r && ("string" == typeof n ? (r = i, i = void 0) : (r = i, i = n, n = void 0)), !1 === r) r = x; else if (!r) return e;
+return 1 === o && (a = r, (r = function(e) {
+return fe().off(e), a.apply(this, arguments);
+}).guid = a.guid || (a.guid = fe.guid++)), e.each(function() {
+fe.event.add(this, t, r, i, n);
+});
}
-do {
-o in this && (r = e.call(void 0, r, n[o], o, t));
-} while (o--);
-return r;
-}), Array.prototype.indexOf && -1 == [ 0, 1 ].indexOf(1, 2) || (Array.prototype.indexOf = function(e) {
-var t = y && "[object String]" == g(this) ? this.split("") : F(this), n = t.length >>> 0;
-if (!n) return -1;
-var i = 0;
-for (arguments.length > 1 && (i = o(arguments[1])), i = i >= 0 ? i : Math.max(0, n + i); i < n; i++) if (i in t && t[i] === e) return i;
-return -1;
-}), Array.prototype.lastIndexOf && -1 == [ 0, 1 ].lastIndexOf(0, -3) || (Array.prototype.lastIndexOf = function(e) {
-var t = y && "[object String]" == g(this) ? this.split("") : F(this), n = t.length >>> 0;
-if (!n) return -1;
-var i = n - 1;
-for (arguments.length > 1 && (i = Math.min(i, o(arguments[1]))), i = i >= 0 ? i : n - Math.abs(i); i >= 0; i--) if (i in t && e === t[i]) return i;
-return -1;
-}), Object.getPrototypeOf || (Object.getPrototypeOf = function(e) {
-return e.__proto__ || (e.constructor ? e.constructor.prototype : f);
-}), !Object.getOwnPropertyDescriptor) {
-Object.getOwnPropertyDescriptor = function(e, t) {
-if ("object" != typeof e && "function" != typeof e || null === e) throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: " + e);
-if (m(e, t)) {
-var n;
-if (n = {
-enumerable: !0,
-configurable: !0
-}, u) {
-var i = e.__proto__;
-e.__proto__ = f;
-var r = l(e, t), o = c(e, t);
-if (e.__proto__ = i, r || o) return r && (n.get = r), o && (n.set = o), n;
+function $(e, t) {
+return r(e, "table") && r(11 !== t.nodeType ? t : t.firstChild, "tr") ? fe(">tbody", e)[0] || e : e;
}
-return n.value = e[t], n;
+function A(e) {
+return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e;
}
-};
+function k(e) {
+var t = tt.exec(e.type);
+return t ? e.type = t[1] : e.removeAttribute("type"), e;
}
-if (Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function(e) {
-return Object.keys(e);
-}), !Object.create) {
-var w;
-w = null === Object.prototype.__proto__ ? function() {
-return {
-__proto__: null
-};
-} : function() {
-var e = {};
-for (var t in e) e[t] = null;
-return e.constructor = e.hasOwnProperty = e.propertyIsEnumerable = e.isPrototypeOf = e.toLocaleString = e.toString = e.valueOf = e.__proto__ = null, e;
-}, Object.create = function(e, t) {
-var n;
-if (null === e) n = w(); else {
-if ("object" != typeof e) throw new TypeError("typeof prototype[" + typeof e + "] != 'object'");
-var i = function() {};
-i.prototype = e, (n = new i()).__proto__ = e;
+function T(e, t) {
+var n, i, r, o, a, s, l, c;
+if (1 === t.nodeType) {
+if (Ie.hasData(e) && (o = Ie.access(e), a = Ie.set(t, o), c = o.events)) {
+delete a.handle, a.events = {};
+for (r in c) for (n = 0, i = c[r].length; n < i; n++) fe.event.add(t, r, c[r][n]);
}
-return void 0 !== t && Object.defineProperties(n, t), n;
-};
+Pe.hasData(e) && (s = Pe.access(e), l = fe.extend({}, s), Pe.set(t, l));
}
-if (Object.defineProperty) {
-var _ = r({}), x = "undefined" == typeof document || r(document.createElement("div"));
-if (!_ || !x) var C = Object.defineProperty;
}
-if (!Object.defineProperty || C) {
-Object.defineProperty = function(e, t, n) {
-if ("object" != typeof e && "function" != typeof e || null === e) throw new TypeError("Object.defineProperty called on non-object: " + e);
-if ("object" != typeof n && "function" != typeof n || null === n) throw new TypeError("Property description must be an object: " + n);
-if (C) try {
-return C.call(Object, e, t, n);
-} catch (e) {}
-if (m(n, "value")) if (u && (l(e, t) || c(e, t))) {
-var i = e.__proto__;
-e.__proto__ = f, delete e[t], e[t] = n.value, e.__proto__ = i;
-} else e[t] = n.value; else {
-if (!u) throw new TypeError("getters & setters can not be defined on this javascript engine");
-m(n, "get") && a(e, t, n.get), m(n, "set") && s(e, t, n.set);
+function D(e, t) {
+var n = t.nodeName.toLowerCase();
+"input" === n && Ue.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue);
}
-return e;
-};
+function E(e, t, i, r) {
+t = re.apply([], t);
+var o, a, s, l, c, u, d = 0, h = e.length, f = h - 1, p = t[0], g = fe.isFunction(p);
+if (g || h > 1 && "string" == typeof p && !he.checkClone && et.test(p)) return e.each(function(n) {
+var o = e.eq(n);
+g && (t[0] = p.call(this, n, o.html())), E(o, t, i, r);
+});
+if (h && (o = w(t, e[0].ownerDocument, !1, e, r), a = o.firstChild, 1 === o.childNodes.length && (o = a), a || r)) {
+for (l = (s = fe.map(b(o, "script"), A)).length; d < h; d++) c = o, d !== f && (c = fe.clone(c, !0, !0), l && fe.merge(s, b(c, "script"))), i.call(e[d], c, d);
+if (l) for (u = s[s.length - 1].ownerDocument, fe.map(s, k), d = 0; d < l; d++) c = s[d], We.test(c.type || "") && !Ie.access(c, "globalEval") && fe.contains(u, c) && (c.src ? fe._evalUrl && fe._evalUrl(c.src) : n(c.textContent.replace(nt, ""), u));
}
-Object.defineProperties || (Object.defineProperties = function(e, t) {
-for (var n in t) m(t, n) && Object.defineProperty(e, n, t[n]);
-return e;
-}), Object.seal || (Object.seal = function(e) {
-return e;
-}), Object.freeze || (Object.freeze = function(e) {
return e;
-});
-try {
-Object.freeze(function() {});
-} catch (e) {
-Object.freeze = function(e) {
-return function(t) {
-return "function" == typeof t ? t : e(t);
-};
-}(Object.freeze);
}
-if (Object.preventExtensions || (Object.preventExtensions = function(e) {
+function F(e, t, n) {
+for (var i, r = t ? fe.filter(t, e) : e, o = 0; null != (i = r[o]); o++) n || 1 !== i.nodeType || fe.cleanData(b(i)), i.parentNode && (n && fe.contains(i.ownerDocument, i) && y(b(i, "script")), i.parentNode.removeChild(i));
return e;
-}), Object.isSealed || (Object.isSealed = function(e) {
-return !1;
-}), Object.isFrozen || (Object.isFrozen = function(e) {
-return !1;
-}), Object.isExtensible || (Object.isExtensible = function(e) {
-if (Object(e) === e) throw new TypeError();
-for (var t = ""; m(e, t); ) t += "?";
-e[t] = !0;
-var n = m(e, t);
-return delete e[t], n;
-}), !Object.keys) {
-var S = !0, $ = [ "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor" ], A = $.length;
-for (var k in {
-toString: null
-}) S = !1;
-Object.keys = function(e) {
-if ("object" != typeof e && "function" != typeof e || null === e) throw new TypeError("Object.keys called on a non-object");
-var t = [];
-for (var n in e) m(e, n) && t.push(n);
-if (S) for (var i = 0, r = A; i < r; i++) {
-var o = $[i];
-m(e, o) && t.push(o);
}
-return t;
-};
+function M(e, t, n) {
+var i, r, o, a, s = e.style;
+return (n = n || ot(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || fe.contains(e.ownerDocument, e) || (a = fe.style(e, t)), !he.pixelMarginRight() && rt.test(a) && it.test(t) && (i = s.width, r = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = i, s.minWidth = r, s.maxWidth = o)), void 0 !== a ? a + "" : a;
}
-Date.now || (Date.now = function() {
-return new Date().getTime();
-});
-var T = "\t\n\v\f\r \u2028\u2029\ufeff";
-if (!String.prototype.trim || T.trim()) {
-T = "[" + T + "]";
-var D = new RegExp("^" + T + T + "*"), E = new RegExp(T + T + "*$");
-String.prototype.trim = function() {
-return String(this).replace(D, "").replace(E, "");
-};
+function I(e, t) {
+return {
+get: function() {
+if (!e()) return (this.get = t).apply(this, arguments);
+delete this.get;
}
-var F = function(e) {
-if (null == e) throw new TypeError("can't convert " + e + " to object");
-return Object(e);
};
-}), ace.define("ace/lib/fixoldbrowsers", [ "require", "exports", "module", "ace/lib/regexp", "ace/lib/es5-shim" ], function(e, t, n) {
-"use strict";
-e("./regexp"), e("./es5-shim");
-}), ace.define("ace/lib/dom", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-t.getDocumentHead = function(e) {
-return e || (e = document), e.head || e.getElementsByTagName("head")[0] || e.documentElement;
-}, t.createElement = function(e, t) {
-return document.createElementNS ? document.createElementNS(t || "http://www.w3.org/1999/xhtml", e) : document.createElement(e);
-}, t.hasCssClass = function(e, t) {
-return -1 !== (e.className + "").split(/\s+/g).indexOf(t);
-}, t.addCssClass = function(e, n) {
-t.hasCssClass(e, n) || (e.className += " " + n);
-}, t.removeCssClass = function(e, t) {
-for (var n = e.className.split(/\s+/g); ;) {
-var i = n.indexOf(t);
-if (-1 == i) break;
-n.splice(i, 1);
}
-e.className = n.join(" ");
-}, t.toggleCssClass = function(e, t) {
-for (var n = e.className.split(/\s+/g), i = !0; ;) {
-var r = n.indexOf(t);
-if (-1 == r) break;
-i = !1, n.splice(r, 1);
+function P(e) {
+if (e in dt) return e;
+for (var t = e[0].toUpperCase() + e.slice(1), n = ut.length; n--; ) if ((e = ut[n] + t) in dt) return e;
}
-return i && n.push(t), e.className = n.join(" "), i;
-}, t.setCssClass = function(e, n, i) {
-i ? t.addCssClass(e, n) : t.removeCssClass(e, n);
-}, t.hasCssString = function(e, t) {
-var n, i = 0;
-if ((t = t || document).createStyleSheet && (n = t.styleSheets)) {
-for (;i < n.length; ) if (n[i++].owningElement.id === e) return !0;
-} else if (n = t.getElementsByTagName("style")) for (;i < n.length; ) if (n[i++].id === e) return !0;
-return !1;
-}, t.importCssString = function(e, n, i) {
-if (i = i || document, n && t.hasCssString(n, i)) return null;
-var r;
-n && (e += "\n/*# sourceURL=ace/css/" + n + " */"), i.createStyleSheet ? (r = i.createStyleSheet(), r.cssText = e, n && (r.owningElement.id = n)) : ((r = t.createElement("style")).appendChild(i.createTextNode(e)), n && (r.id = n), t.getDocumentHead(i).appendChild(r));
-}, t.importCssStylsheet = function(e, n) {
-if (n.createStyleSheet) n.createStyleSheet(e); else {
-var i = t.createElement("link");
-i.rel = "stylesheet", i.href = e, t.getDocumentHead(n).appendChild(i);
+function L(e) {
+var t = fe.cssProps[e];
+return t || (t = fe.cssProps[e] = P(e) || e), t;
}
-}, t.getInnerWidth = function(e) {
-return parseInt(t.computedStyle(e, "paddingLeft"), 10) + parseInt(t.computedStyle(e, "paddingRight"), 10) + e.clientWidth;
-}, t.getInnerHeight = function(e) {
-return parseInt(t.computedStyle(e, "paddingTop"), 10) + parseInt(t.computedStyle(e, "paddingBottom"), 10) + e.clientHeight;
-}, t.scrollbarWidth = function(e) {
-var n = t.createElement("ace_inner");
-n.style.width = "100%", n.style.minWidth = "0px", n.style.height = "200px", n.style.display = "block";
-var i = t.createElement("ace_outer"), r = i.style;
-r.position = "absolute", r.left = "-10000px", r.overflow = "hidden", r.width = "200px", r.minWidth = "0px", r.height = "150px", r.display = "block", i.appendChild(n);
-var o = e.documentElement;
-o.appendChild(i);
-var a = n.offsetWidth;
-r.overflow = "scroll";
-var s = n.offsetWidth;
-return a == s && (s = i.clientWidth), o.removeChild(i), a - s;
-}, "undefined" != typeof document ? (void 0 !== window.pageYOffset ? (t.getPageScrollTop = function() {
-return window.pageYOffset;
-}, t.getPageScrollLeft = function() {
-return window.pageXOffset;
-}) : (t.getPageScrollTop = function() {
-return document.body.scrollTop;
-}, t.getPageScrollLeft = function() {
-return document.body.scrollLeft;
-}), window.getComputedStyle ? t.computedStyle = function(e, t) {
-return t ? (window.getComputedStyle(e, "") || {})[t] || "" : window.getComputedStyle(e, "") || {};
-} : t.computedStyle = function(e, t) {
-return t ? e.currentStyle[t] : e.currentStyle;
-}, t.setInnerHtml = function(e, t) {
-var n = e.cloneNode(!1);
-return n.innerHTML = t, e.parentNode.replaceChild(n, e), n;
-}, "textContent" in document.documentElement ? (t.setInnerText = function(e, t) {
-e.textContent = t;
-}, t.getInnerText = function(e) {
-return e.textContent;
-}) : (t.setInnerText = function(e, t) {
-e.innerText = t;
-}, t.getInnerText = function(e) {
-return e.innerText;
-}), t.getParentWindow = function(e) {
-return e.defaultView || e.parentWindow;
-}) : t.importCssString = function() {};
-}), ace.define("ace/lib/oop", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-t.inherits = function(e, t) {
-e.super_ = t, e.prototype = Object.create(t.prototype, {
-constructor: {
-value: e,
-enumerable: !1,
-writable: !0,
-configurable: !0
+function O(e, t, n) {
+var i = Ne.exec(t);
+return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t;
}
-});
-}, t.mixin = function(e, t) {
-for (var n in t) e[n] = t[n];
-return e;
-}, t.implement = function(e, n) {
-t.mixin(e, n);
-};
-}), ace.define("ace/lib/keys", [ "require", "exports", "module", "ace/lib/fixoldbrowsers", "ace/lib/oop" ], function(e, t, n) {
-"use strict";
-e("./fixoldbrowsers");
-var i = e("./oop"), r = function() {
-var e, t, n = {
-MODIFIER_KEYS: {
-16: "Shift",
-17: "Ctrl",
-18: "Alt",
-224: "Meta"
-},
-KEY_MODS: {
-ctrl: 1,
-alt: 2,
-option: 2,
-shift: 4,
-super: 8,
-meta: 8,
-command: 8,
-cmd: 8
-},
-FUNCTION_KEYS: {
-8: "Backspace",
-9: "Tab",
-13: "Return",
-19: "Pause",
-27: "Esc",
-32: "Space",
-33: "PageUp",
-34: "PageDown",
-35: "End",
-36: "Home",
-37: "Left",
-38: "Up",
-39: "Right",
-40: "Down",
-44: "Print",
-45: "Insert",
-46: "Delete",
-96: "Numpad0",
-97: "Numpad1",
-98: "Numpad2",
-99: "Numpad3",
-100: "Numpad4",
-101: "Numpad5",
-102: "Numpad6",
-103: "Numpad7",
-104: "Numpad8",
-105: "Numpad9",
-"-13": "NumpadEnter",
-112: "F1",
-113: "F2",
-114: "F3",
-115: "F4",
-116: "F5",
-117: "F6",
-118: "F7",
-119: "F8",
-120: "F9",
-121: "F10",
-122: "F11",
-123: "F12",
-144: "Numlock",
-145: "Scrolllock"
-},
-PRINTABLE_KEYS: {
-32: " ",
-48: "0",
-49: "1",
-50: "2",
-51: "3",
-52: "4",
-53: "5",
-54: "6",
-55: "7",
-56: "8",
-57: "9",
-59: ";",
-61: "=",
-65: "a",
-66: "b",
-67: "c",
-68: "d",
-69: "e",
-70: "f",
-71: "g",
-72: "h",
-73: "i",
-74: "j",
-75: "k",
-76: "l",
-77: "m",
-78: "n",
-79: "o",
-80: "p",
-81: "q",
-82: "r",
-83: "s",
-84: "t",
-85: "u",
-86: "v",
-87: "w",
-88: "x",
-89: "y",
-90: "z",
-107: "+",
-109: "-",
-110: ".",
-186: ";",
-187: "=",
-188: ",",
-189: "-",
-190: ".",
-191: "/",
-192: "`",
-219: "[",
-220: "\\",
-221: "]",
-222: "'",
-111: "/",
-106: "*"
+function R(e, t, n, i, r) {
+var o, a = 0;
+for (o = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0; o < 4; o += 2) "margin" === n && (a += fe.css(e, n + Be[o], !0, r)), i ? ("content" === n && (a -= fe.css(e, "padding" + Be[o], !0, r)), "margin" !== n && (a -= fe.css(e, "border" + Be[o] + "Width", !0, r))) : (a += fe.css(e, "padding" + Be[o], !0, r), "padding" !== n && (a += fe.css(e, "border" + Be[o] + "Width", !0, r)));
+return a;
}
+function N(e, t, n) {
+var i, r = ot(e), o = M(e, t, r), a = "border-box" === fe.css(e, "boxSizing", !1, r);
+return rt.test(o) ? o : (i = a && (he.boxSizingReliable() || o === e.style[t]), "auto" === o && (o = e["offset" + t[0].toUpperCase() + t.slice(1)]), (o = parseFloat(o) || 0) + R(e, t, n || (a ? "border" : "content"), i, r) + "px");
+}
+function B(e, t, n, i, r) {
+return new B.prototype.init(e, t, n, i, r);
+}
+function j() {
+ft && (!1 === te.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(j) : e.setTimeout(j, fe.fx.interval), fe.fx.tick());
+}
+function H() {
+return e.setTimeout(function() {
+ht = void 0;
+}), ht = fe.now();
+}
+function V(e, t) {
+var n, i = 0, r = {
+height: e
};
-for (t in n.FUNCTION_KEYS) e = n.FUNCTION_KEYS[t].toLowerCase(), n[e] = parseInt(t, 10);
-for (t in n.PRINTABLE_KEYS) e = n.PRINTABLE_KEYS[t].toLowerCase(), n[e] = parseInt(t, 10);
-return i.mixin(n, n.MODIFIER_KEYS), i.mixin(n, n.PRINTABLE_KEYS), i.mixin(n, n.FUNCTION_KEYS), n.enter = n.return, n.escape = n.esc, n.del = n.delete, n[173] = "-", function() {
-for (var e = [ "cmd", "ctrl", "alt", "shift" ], t = Math.pow(2, e.length); t--; ) n.KEY_MODS[t] = e.filter(function(e) {
-return t & n.KEY_MODS[e];
-}).join("-") + "-";
-}(), n.KEY_MODS[0] = "", n.KEY_MODS[-1] = "input-", n;
-}();
-i.mixin(t, r), t.keyCodeToString = function(e) {
-var t = r[e];
-return "string" != typeof t && (t = String.fromCharCode(e)), t.toLowerCase();
-};
-}), ace.define("ace/lib/useragent", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-if (t.OS = {
-LINUX: "LINUX",
-MAC: "MAC",
-WINDOWS: "WINDOWS"
-}, t.getOS = function() {
-return t.isMac ? t.OS.MAC : t.isLinux ? t.OS.LINUX : t.OS.WINDOWS;
-}, "object" == typeof navigator) {
-var i = (navigator.platform.match(/mac|win|linux/i) || [ "other" ])[0].toLowerCase(), r = navigator.userAgent;
-t.isWin = "win" == i, t.isMac = "mac" == i, t.isLinux = "linux" == i, t.isIE = "Microsoft Internet Explorer" == navigator.appName || navigator.appName.indexOf("MSAppHost") >= 0 ? parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/) || [])[1]) : parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/) || [])[1]), t.isOldIE = t.isIE && t.isIE < 9, t.isGecko = t.isMozilla = (window.Controllers || window.controllers) && "Gecko" === window.navigator.product, t.isOldGecko = t.isGecko && parseInt((r.match(/rv:(\d+)/) || [])[1], 10) < 4, t.isOpera = window.opera && "[object Opera]" == Object.prototype.toString.call(window.opera), t.isWebKit = parseFloat(r.split("WebKit/")[1]) || void 0, t.isChrome = parseFloat(r.split(" Chrome/")[1]) || void 0, t.isAIR = r.indexOf("AdobeAIR") >= 0, t.isIPad = r.indexOf("iPad") >= 0, t.isChromeOS = r.indexOf(" CrOS ") >= 0, t.isIOS = /iPad|iPhone|iPod/.test(r) && !window.MSStream, t.isIOS && (t.isMac = !0);
+for (t = t ? 1 : 0; i < 4; i += 2 - t) r["margin" + (n = Be[i])] = r["padding" + n] = e;
+return t && (r.opacity = r.width = e), r;
}
-}), ace.define("ace/lib/event", [ "require", "exports", "module", "ace/lib/keys", "ace/lib/useragent" ], function(e, t, n) {
-"use strict";
-function i(e, t, n) {
-var i = c(t);
-if (!a.isMac && s) {
-if (t.getModifierState && (t.getModifierState("OS") || t.getModifierState("Win")) && (i |= 8), s.altGr) {
-if (3 == (3 & i)) return;
-s.altGr = 0;
+function U(e, t, n) {
+for (var i, r = (W.tweeners[t] || []).concat(W.tweeners["*"]), o = 0, a = r.length; o < a; o++) if (i = r[o].call(n, t, e)) return i;
}
-if (18 === n || 17 === n) {
-var r = "location" in t ? t.location : t.keyLocation;
-17 === n && 1 === r ? 1 == s[n] && (l = t.timeStamp) : 18 === n && 3 === i && 2 === r && t.timeStamp - l < 50 && (s.altGr = !0);
+function z(e, t) {
+var n, i, r, o, a;
+for (n in e) if (i = fe.camelCase(n), r = t[i], o = e[n], Array.isArray(o) && (r = o[1], o = e[n] = o[0]), n !== i && (e[i] = o, delete e[n]), (a = fe.cssHooks[i]) && "expand" in a) {
+o = a.expand(o), delete e[i];
+for (n in o) n in e || (e[n] = o[n], t[n] = r);
+} else t[i] = r;
}
+function W(e, t, n) {
+var i, r, o = 0, a = W.prefilters.length, s = fe.Deferred().always(function() {
+delete l.elem;
+}), l = function() {
+if (r) return !1;
+for (var t = ht || H(), n = Math.max(0, c.startTime + c.duration - t), i = 1 - (n / c.duration || 0), o = 0, a = c.tweens.length; o < a; o++) c.tweens[o].run(i);
+return s.notifyWith(e, [ c, i, n ]), i < 1 && a ? n : (a || s.notifyWith(e, [ c, 1, 0 ]), s.resolveWith(e, [ c ]), !1);
+}, c = s.promise({
+elem: e,
+props: fe.extend({}, t),
+opts: fe.extend(!0, {
+specialEasing: {},
+easing: fe.easing._default
+}, n),
+originalProperties: t,
+originalOptions: n,
+startTime: ht || H(),
+duration: n.duration,
+tweens: [],
+createTween: function(t, n) {
+var i = fe.Tween(e, c.opts, t, n, c.opts.specialEasing[t] || c.opts.easing);
+return c.tweens.push(i), i;
+},
+stop: function(t) {
+var n = 0, i = t ? c.tweens.length : 0;
+if (r) return this;
+for (r = !0; n < i; n++) c.tweens[n].run(1);
+return t ? (s.notifyWith(e, [ c, 1, 0 ]), s.resolveWith(e, [ c, t ])) : s.rejectWith(e, [ c, t ]), this;
}
-if (n in o.MODIFIER_KEYS && (n = -1), 8 & i && n >= 91 && n <= 93 && (n = -1), i || 13 !== n || 3 !== (r = "location" in t ? t.location : t.keyLocation) || (e(t, i, -n), !t.defaultPrevented)) {
-if (a.isChromeOS && 8 & i) {
-if (e(t, i, n), t.defaultPrevented) return;
-i &= -9;
+}), u = c.props;
+for (z(u, c.opts.specialEasing); o < a; o++) if (i = W.prefilters[o].call(c, e, u, c.opts)) return fe.isFunction(i.stop) && (fe._queueHooks(c.elem, c.opts.queue).stop = fe.proxy(i.stop, i)), i;
+return fe.map(u, U, c), fe.isFunction(c.opts.start) && c.opts.start.call(e, c), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always), fe.fx.timer(fe.extend(l, {
+elem: e,
+anim: c,
+queue: c.opts.queue
+})), c;
}
-return !!(i || n in o.FUNCTION_KEYS || n in o.PRINTABLE_KEYS) && e(t, i, n);
+function q(e) {
+return (e.match(Te) || []).join(" ");
}
+function G(e) {
+return e.getAttribute && e.getAttribute("class") || "";
}
-function r() {
-s = Object.create(null);
+function Y(e, t, n, i) {
+var r;
+if (Array.isArray(t)) fe.each(t, function(t, r) {
+n || $t.test(e) ? i(e, r) : Y(e + "[" + ("object" == typeof r && null != r ? t : "") + "]", r, n, i);
+}); else if (n || "object" !== fe.type(t)) i(e, t); else for (r in t) Y(e + "[" + r + "]", t[r], n, i);
}
-var o = e("./keys"), a = e("./useragent"), s = null, l = 0;
-t.addListener = function(e, t, n) {
-if (e.addEventListener) return e.addEventListener(t, n, !1);
-if (e.attachEvent) {
-var i = function() {
-n.call(e, window.event);
+function K(e) {
+return function(t, n) {
+"string" != typeof t && (n = t, t = "*");
+var i, r = 0, o = t.toLowerCase().match(Te) || [];
+if (fe.isFunction(n)) for (;i = o[r++]; ) "+" === i[0] ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n);
};
-n._wrapper = i, e.attachEvent("on" + t, i);
}
-}, t.removeListener = function(e, t, n) {
-if (e.removeEventListener) return e.removeEventListener(t, n, !1);
-e.detachEvent && e.detachEvent("on" + t, n._wrapper || n);
-}, t.stopEvent = function(e) {
-return t.stopPropagation(e), t.preventDefault(e), !1;
-}, t.stopPropagation = function(e) {
-e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0;
-}, t.preventDefault = function(e) {
-e.preventDefault ? e.preventDefault() : e.returnValue = !1;
-}, t.getButton = function(e) {
-return "dblclick" == e.type ? 0 : "contextmenu" == e.type || a.isMac && e.ctrlKey && !e.altKey && !e.shiftKey ? 2 : e.preventDefault ? e.button : {
-1: 0,
-2: 2,
-4: 1
-}[e.button];
-}, t.capture = function(e, n, i) {
-function r(e) {
-n && n(e), i && i(e), t.removeListener(document, "mousemove", n, !0), t.removeListener(document, "mouseup", r, !0), t.removeListener(document, "dragstart", r, !0);
+function X(e, t, n, i) {
+function r(s) {
+var l;
+return o[s] = !0, fe.each(e[s] || [], function(e, s) {
+var c = s(t, n, i);
+return "string" != typeof c || a || o[c] ? a ? !(l = c) : void 0 : (t.dataTypes.unshift(c), r(c), !1);
+}), l;
}
-return t.addListener(document, "mousemove", n, !0), t.addListener(document, "mouseup", r, !0), t.addListener(document, "dragstart", r, !0), r;
-}, t.addTouchMoveListener = function(e, n) {
-var i, r;
-t.addListener(e, "touchstart", function(e) {
-var t = e.touches[0];
-i = t.clientX, r = t.clientY;
-}), t.addListener(e, "touchmove", function(e) {
-var t = e.touches;
-if (!(t.length > 1)) {
-var o = t[0];
-e.wheelX = i - o.clientX, e.wheelY = r - o.clientY, i = o.clientX, r = o.clientY, n(e);
+var o = {}, a = e === Rt;
+return r(t.dataTypes[0]) || !o["*"] && r("*");
}
-});
-}, t.addMouseWheelListener = function(e, n) {
-"onmousewheel" in e ? t.addListener(e, "mousewheel", function(e) {
-void 0 !== e.wheelDeltaX ? (e.wheelX = -e.wheelDeltaX / 8, e.wheelY = -e.wheelDeltaY / 8) : (e.wheelX = 0, e.wheelY = -e.wheelDelta / 8), n(e);
-}) : "onwheel" in e ? t.addListener(e, "wheel", function(e) {
-switch (e.deltaMode) {
-case e.DOM_DELTA_PIXEL:
-e.wheelX = .35 * e.deltaX || 0, e.wheelY = .35 * e.deltaY || 0;
+function Q(e, t) {
+var n, i, r = fe.ajaxSettings.flatOptions || {};
+for (n in t) void 0 !== t[n] && ((r[n] ? e : i || (i = {}))[n] = t[n]);
+return i && fe.extend(!0, e, i), e;
+}
+function Z(e, t, n) {
+for (var i, r, o, a, s = e.contents, l = e.dataTypes; "*" === l[0]; ) l.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type"));
+if (i) for (r in s) if (s[r] && s[r].test(i)) {
+l.unshift(r);
break;
-
-case e.DOM_DELTA_LINE:
-case e.DOM_DELTA_PAGE:
-e.wheelX = 5 * (e.deltaX || 0), e.wheelY = 5 * (e.deltaY || 0);
}
-n(e);
-}) : t.addListener(e, "DOMMouseScroll", function(e) {
-e.axis && e.axis == e.HORIZONTAL_AXIS ? (e.wheelX = 5 * (e.detail || 0), e.wheelY = 0) : (e.wheelX = 0, e.wheelY = 5 * (e.detail || 0)), n(e);
-});
-}, t.addMultiMouseDownListener = function(e, n, i, r) {
-function o(e) {
-if (0 !== t.getButton(e) ? d = 0 : e.detail > 1 ? ++d > 4 && (d = 1) : d = 1, a.isIE) {
-var o = Math.abs(e.clientX - l) > 5 || Math.abs(e.clientY - c) > 5;
-u && !o || (d = 1), u && clearTimeout(u), u = setTimeout(function() {
-u = null;
-}, n[d - 1] || 600), 1 == d && (l = e.clientX, c = e.clientY);
+if (l[0] in n) o = l[0]; else {
+for (r in n) {
+if (!l[0] || e.converters[r + " " + l[0]]) {
+o = r;
+break;
}
-if (e._clicks = d, i[r]("mousedown", e), d > 4) d = 0; else if (d > 1) return i[r](h[d], e);
+a || (a = r);
}
-function s(e) {
-d = 2, u && clearTimeout(u), u = setTimeout(function() {
-u = null;
-}, n[d - 1] || 600), i[r]("mousedown", e), i[r](h[d], e);
+o = o || a;
}
-var l, c, u, d = 0, h = {
-2: "dblclick",
-3: "tripleclick",
-4: "quadclick"
-};
-Array.isArray(e) || (e = [ e ]), e.forEach(function(e) {
-t.addListener(e, "mousedown", o), a.isOldIE && t.addListener(e, "dblclick", s);
-});
-};
-var c = !a.isMac || !a.isOpera || "KeyboardEvent" in window ? function(e) {
-return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);
-} : function(e) {
-return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);
-};
-if (t.getModifierString = function(e) {
-return o.KEY_MODS[c(e)];
-}, t.addCommandKeyListener = function(e, n) {
-var o = t.addListener;
-if (a.isOldGecko || a.isOpera && !("KeyboardEvent" in window)) {
-var l = null;
-o(e, "keydown", function(e) {
-l = e.keyCode;
-}), o(e, "keypress", function(e) {
-return i(n, e, l);
-});
-} else {
-var c = null;
-o(e, "keydown", function(e) {
-s[e.keyCode] = (s[e.keyCode] || 0) + 1;
-var t = i(n, e, e.keyCode);
-return c = e.defaultPrevented, t;
-}), o(e, "keypress", function(e) {
-c && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && (t.stopEvent(e), c = null);
-}), o(e, "keyup", function(e) {
-s[e.keyCode] = null;
-}), s || (r(), o(window, "focus", r));
+if (o) return o !== l[0] && l.unshift(o), n[o];
}
-}, "object" == typeof window && window.postMessage && !a.isOldIE) {
-t.nextTick = function(e, n) {
-n = n || window;
-var i = "zero-timeout-message-1";
-t.addListener(n, "message", function r(o) {
-o.data == i && (t.stopPropagation(o), t.removeListener(n, "message", r), e());
-}), n.postMessage(i, "*");
-};
+function J(e, t, n, i) {
+var r, o, a, s, l, c = {}, u = e.dataTypes.slice();
+if (u[1]) for (a in e.converters) c[a.toLowerCase()] = e.converters[a];
+for (o = u.shift(); o; ) if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = u.shift()) if ("*" === o) o = l; else if ("*" !== l && l !== o) {
+if (!(a = c[l + " " + o] || c["* " + o])) for (r in c) if ((s = r.split(" "))[1] === o && (a = c[l + " " + s[0]] || c["* " + s[0]])) {
+!0 === a ? a = c[r] : !0 !== c[r] && (o = s[0], u.unshift(s[1]));
+break;
}
-t.nextFrame = "object" == typeof window && (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame), t.nextFrame ? t.nextFrame = t.nextFrame.bind(window) : t.nextFrame = function(e) {
-setTimeout(e, 17);
-};
-}), ace.define("ace/lib/lang", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-t.last = function(e) {
-return e[e.length - 1];
-}, t.stringReverse = function(e) {
-return e.split("").reverse().join("");
-}, t.stringRepeat = function(e, t) {
-for (var n = ""; t > 0; ) 1 & t && (n += e), (t >>= 1) && (e += e);
-return n;
+if (!0 !== a) if (a && e.throws) t = a(t); else try {
+t = a(t);
+} catch (e) {
+return {
+state: "parsererror",
+error: a ? e : "No conversion from " + l + " to " + o
};
-var i = /^\s\s*/, r = /\s\s*$/;
-t.stringTrimLeft = function(e) {
-return e.replace(i, "");
-}, t.stringTrimRight = function(e) {
-return e.replace(r, "");
-}, t.copyObject = function(e) {
-var t = {};
-for (var n in e) t[n] = e[n];
-return t;
-}, t.copyArray = function(e) {
-for (var t = [], n = 0, i = e.length; n < i; n++) e[n] && "object" == typeof e[n] ? t[n] = this.copyObject(e[n]) : t[n] = e[n];
-return t;
-}, t.deepCopy = function e(t) {
-if ("object" != typeof t || !t) return t;
-var n;
-if (Array.isArray(t)) {
-n = [];
-for (i = 0; i < t.length; i++) n[i] = e(t[i]);
-return n;
}
-if ("[object Object]" !== Object.prototype.toString.call(t)) return t;
-n = {};
-for (var i in t) n[i] = e(t[i]);
-return n;
-}, t.arrayToMap = function(e) {
-for (var t = {}, n = 0; n < e.length; n++) t[e[n]] = 1;
-return t;
-}, t.createMap = function(e) {
-var t = Object.create(null);
-for (var n in e) t[n] = e[n];
-return t;
-}, t.arrayRemove = function(e, t) {
-for (var n = 0; n <= e.length; n++) t === e[n] && e.splice(n, 1);
-}, t.escapeRegExp = function(e) {
-return e.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1");
-}, t.escapeHTML = function(e) {
-return e.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/= 0 && n < t ? [ this[n] ] : []);
+},
+end: function() {
+return this.prevObject || this.constructor();
+},
+push: oe,
+sort: ee.sort,
+splice: ee.splice
+}, fe.extend = fe.fn.extend = function() {
+var e, t, n, i, r, o, a = arguments[0] || {}, s = 1, l = arguments.length, c = !1;
+for ("boolean" == typeof a && (c = a, a = arguments[s] || {}, s++), "object" == typeof a || fe.isFunction(a) || (a = {}), s === l && (a = this, s--); s < l; s++) if (null != (e = arguments[s])) for (t in e) n = a[t], a !== (i = e[t]) && (c && i && (fe.isPlainObject(i) || (r = Array.isArray(i))) ? (r ? (r = !1, o = n && Array.isArray(n) ? n : []) : o = n && fe.isPlainObject(n) ? n : {}, a[t] = fe.extend(c, o, i)) : void 0 !== i && (a[t] = i));
+return a;
+}, fe.extend({
+expando: "jQuery" + ("3.2.1" + Math.random()).replace(/\D/g, ""),
+isReady: !0,
+error: function(e) {
+throw new Error(e);
+},
+noop: function() {},
+isFunction: function(e) {
+return "function" === fe.type(e);
+},
+isWindow: function(e) {
+return null != e && e === e.window;
+},
+isNumeric: function(e) {
+var t = fe.type(e);
+return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e));
+},
+isPlainObject: function(e) {
+var t, n;
+return !(!e || "[object Object]" !== le.call(e)) && (!(t = ne(e)) || "function" == typeof (n = ce.call(t, "constructor") && t.constructor) && ue.call(n) === de);
+},
+isEmptyObject: function(e) {
+var t;
+for (t in e) return !1;
+return !0;
+},
+type: function(e) {
+return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? se[le.call(e)] || "object" : typeof e;
+},
+globalEval: function(e) {
+n(e);
+},
+camelCase: function(e) {
+return e.replace(ge, "ms-").replace(me, ve);
+},
+each: function(e, t) {
+var n, r = 0;
+if (i(e)) for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++) ; else for (r in e) if (!1 === t.call(e[r], r, e[r])) break;
+return e;
+},
+trim: function(e) {
+return null == e ? "" : (e + "").replace(pe, "");
+},
+makeArray: function(e, t) {
+var n = t || [];
+return null != e && (i(Object(e)) ? fe.merge(n, "string" == typeof e ? [ e ] : e) : oe.call(n, e)), n;
+},
+inArray: function(e, t, n) {
+return null == t ? -1 : ae.call(t, e, n);
+},
+merge: function(e, t) {
+for (var n = +t.length, i = 0, r = e.length; i < n; i++) e[r++] = t[i];
+return e.length = r, e;
+},
+grep: function(e, t, n) {
+for (var i = [], r = 0, o = e.length, a = !n; r < o; r++) !t(e[r], r) !== a && i.push(e[r]);
+return i;
+},
+map: function(e, t, n) {
+var r, o, a = 0, s = [];
+if (i(e)) for (r = e.length; a < r; a++) null != (o = t(e[a], a, n)) && s.push(o); else for (a in e) null != (o = t(e[a], a, n)) && s.push(o);
+return re.apply([], s);
+},
+guid: 1,
+proxy: function(e, t) {
+var n, i, r;
+if ("string" == typeof t && (n = e[t], t = e, e = n), fe.isFunction(e)) return i = ie.call(arguments, 2), r = function() {
+return e.apply(t || this, i.concat(ie.call(arguments)));
+}, r.guid = e.guid = e.guid || fe.guid++, r;
+},
+now: Date.now,
+support: he
+}), "function" == typeof Symbol && (fe.fn[Symbol.iterator] = ee[Symbol.iterator]), fe.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
+se["[object " + t + "]"] = t.toLowerCase();
+});
+var be = function(e) {
+function t(e, t, n, i) {
+var r, o, a, s, l, u, h, f = t && t.ownerDocument, p = t ? t.nodeType : 9;
+if (n = n || [], "string" != typeof e || !e || 1 !== p && 9 !== p && 11 !== p) return n;
+if (!i && ((t ? t.ownerDocument || t : B) !== F && E(t), t = t || F, I)) {
+if (11 !== p && (l = ge.exec(e))) if (r = l[1]) {
+if (9 === p) {
+if (!(a = t.getElementById(r))) return n;
+if (a.id === r) return n.push(a), n;
+} else if (f && (a = f.getElementById(r)) && R(t, a) && a.id === r) return n.push(a), n;
+} else {
+if (l[2]) return X.apply(n, t.getElementsByTagName(e)), n;
+if ((r = l[3]) && w.getElementsByClassName && t.getElementsByClassName) return X.apply(n, t.getElementsByClassName(r)), n;
}
+if (w.qsa && !z[e + " "] && (!P || !P.test(e))) {
+if (1 !== p) f = t, h = e; else if ("object" !== t.nodeName.toLowerCase()) {
+for ((s = t.getAttribute("id")) ? s = s.replace(ye, we) : t.setAttribute("id", s = N), o = (u = S(e)).length; o--; ) u[o] = "#" + s + " " + d(u[o]);
+h = u.join(","), f = me.test(e) && c(t.parentNode) || t;
}
-function d() {
-b || (f.value = p, r.isWebKit && C.schedule());
+if (h) try {
+return X.apply(n, f.querySelectorAll(h)), n;
+} catch (e) {} finally {
+s === N && t.removeAttribute("id");
}
-function h() {
-clearTimeout(P), P = setTimeout(function() {
-y && (f.style.cssText = y, y = ""), null == t.renderer.$keepTextAreaAtCursor && (t.renderer.$keepTextAreaAtCursor = !0, t.renderer.$moveTextAreaToCursor());
-}, 0);
}
-var f = o.createElement("textarea");
-f.className = r.isIOS ? "ace_text-input ace_text-input-ios" : "ace_text-input", r.isTouchPad && f.setAttribute("x-palm-disable-auto-cap", !0), f.setAttribute("wrap", "off"), f.setAttribute("autocorrect", "off"), f.setAttribute("autocapitalize", "off"), f.setAttribute("spellcheck", !1), f.style.opacity = "0", e.insertBefore(f, e.firstChild);
-var p = "\n aaaa a\n", g = !1, m = !1, v = !1, b = !1, y = "", w = !0;
-try {
-var _ = document.activeElement === f;
-} catch (e) {}
-i.addListener(f, "blur", function(e) {
-t.onBlur(e), _ = !1;
-}), i.addListener(f, "focus", function(e) {
-_ = !0, t.onFocus(e), n();
-}), this.focus = function() {
-if (y) return f.focus();
-f.style.position = "fixed", f.focus();
-}, this.blur = function() {
-f.blur();
-}, this.isFocused = function() {
-return _;
-};
-var x = a.delayedCall(function() {
-_ && n(w);
-}), C = a.delayedCall(function() {
-b || (f.value = p, _ && n());
-});
-r.isWebKit || t.addEventListener("changeSelection", function() {
-t.selection.isEmpty() != w && (w = !w, x.schedule());
-}), d(), _ && t.onFocus();
-var S = function(e) {
-return 0 === e.selectionStart && e.selectionEnd === e.value.length;
-}, $ = null;
-this.setInputHandler = function(e) {
-$ = e;
-}, this.getInputHandler = function() {
-return $;
-};
-var A = !1, k = function(e) {
-4 === f.selectionStart && 5 === f.selectionEnd || ($ && (e = $(e), $ = null), v ? (n(), e && t.onPaste(e), v = !1) : e == p.substr(0) && 4 === f.selectionStart ? A ? t.execCommand("del", {
-source: "ace"
-}) : t.execCommand("backspace", {
-source: "ace"
-}) : g || (e.substring(0, 9) == p && e.length > p.length ? e = e.substr(9) : e.substr(0, 4) == p.substr(0, 4) ? e = e.substr(4, e.length - p.length + 1) : e.charAt(e.length - 1) == p.charAt(0) && (e = e.slice(0, -1)), e != p.charAt(0) && e.charAt(e.length - 1) == p.charAt(0) && (e = e.slice(0, -1)), e && t.onTextInput(e)), g && (g = !1), A && (A = !1));
-}, T = function(e) {
-if (!b) {
-var t = f.value;
-k(t), d();
}
-}, D = function(e, t, n) {
-var i = e.clipboardData || window.clipboardData;
-if (i && !c) {
-var r = u || n ? "Text" : "text/plain";
+return A(e.replace(oe, "$1"), t, n, i);
+}
+function n() {
+function e(n, i) {
+return t.push(n + " ") > _.cacheLength && delete e[t.shift()], e[n + " "] = i;
+}
+var t = [];
+return e;
+}
+function i(e) {
+return e[N] = !0, e;
+}
+function r(e) {
+var t = F.createElement("fieldset");
try {
-return t ? !1 !== i.setData(r, t) : i.getData(r);
+return !!e(t);
} catch (e) {
-if (!n) return D(e, t, !0);
-}
+return !1;
+} finally {
+t.parentNode && t.parentNode.removeChild(t), t = null;
}
-}, E = function(e, o) {
-var a = t.getCopyText();
-if (!a) return i.preventDefault(e);
-D(e, a) ? (r.isIOS && (m = o, f.value = "\n aa" + a + "a a\n", f.setSelectionRange(4, 4 + a.length), g = {
-value: a
-}), o ? t.onCut() : t.onCopy(), r.isIOS || i.preventDefault(e)) : (g = !0, f.value = a, f.select(), setTimeout(function() {
-g = !1, d(), n(), o ? t.onCut() : t.onCopy();
-}));
-};
-i.addCommandKeyListener(f, t.onCommandKey.bind(t)), i.addListener(f, "select", function(e) {
-S(f) ? (t.selectAll(), n()) : $ && n(t.selection.isEmpty());
-}), i.addListener(f, "input", T), i.addListener(f, "cut", function(e) {
-E(e, !0);
-}), i.addListener(f, "copy", function(e) {
-E(e, !1);
-}), i.addListener(f, "paste", function(e) {
-var o = D(e);
-"string" == typeof o ? (o && t.onPaste(o, e), r.isIE && setTimeout(n), i.preventDefault(e)) : (f.value = "", v = !0);
-});
-var F = function() {
-if (b && t.onCompositionUpdate && !t.$readOnly) {
-var e = f.value.replace(/\x01/g, "");
-if (b.lastValue !== e && (t.onCompositionUpdate(e), b.lastValue && t.undo(), b.canUndo && (b.lastValue = e), b.lastValue)) {
-var n = t.selection.getRange();
-t.insert(b.lastValue), t.session.markUndoGroup(), b.range = t.selection.getRange(), t.selection.setRange(n), t.selection.clearSelection();
}
+function o(e, t) {
+for (var n = e.split("|"), i = n.length; i--; ) _.attrHandle[n[i]] = t;
}
-}, M = function(e) {
-if (t.onCompositionEnd && !t.$readOnly) {
-var n = b;
-b = !1;
-var i = setTimeout(function() {
-i = null;
-var e = f.value.replace(/\x01/g, "");
-b || (e == n.lastValue ? d() : !n.lastValue && e && (d(), k(e)));
-});
-$ = function(e) {
-return i && clearTimeout(i), (e = e.replace(/\x01/g, "")) == n.lastValue ? "" : (n.lastValue && i && t.undo(), e);
-}, t.onCompositionEnd(), t.removeListener("mousedown", M), "compositionend" == e.type && n.range && t.selection.setRange(n.range), (!!r.isChrome && r.isChrome >= 53 || !!r.isWebKit && r.isWebKit >= 603) && T();
+function a(e, t) {
+var n = t && e, i = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
+if (i) return i;
+if (n) for (;n = n.nextSibling; ) if (n === t) return -1;
+return e ? 1 : -1;
}
-}, I = a.delayedCall(F, 50);
-i.addListener(f, "compositionstart", function(e) {
-b || !t.onCompositionStart || t.$readOnly || ((b = {}).canUndo = t.session.$undoManager, t.onCompositionStart(), setTimeout(F, 0), t.on("mousedown", M), b.canUndo && !t.selection.isEmpty() && (t.insert(""), t.session.markUndoGroup(), t.selection.clearSelection()), t.session.markUndoGroup());
-}), r.isGecko ? i.addListener(f, "text", function() {
-I.schedule();
-}) : (i.addListener(f, "keyup", function() {
-I.schedule();
-}), i.addListener(f, "keydown", function() {
-I.schedule();
-})), i.addListener(f, "compositionend", M), this.getElement = function() {
-return f;
-}, this.setReadOnly = function(e) {
-f.readOnly = e;
-}, this.onContextMenu = function(e) {
-A = !0, n(t.selection.isEmpty()), t._emit("nativecontextmenu", {
-target: t,
-domEvent: e
-}), this.moveToMouse(e, !0);
-}, this.moveToMouse = function(e, n) {
-y || (y = f.style.cssText), f.style.cssText = (n ? "z-index:100000;" : "") + "height:" + f.style.height + ";" + (r.isIE ? "opacity:0.1;" : "");
-var a = t.container.getBoundingClientRect(), s = o.computedStyle(t.container), l = a.top + (parseInt(s.borderTopWidth) || 0), c = a.left + (parseInt(a.borderLeftWidth) || 0), u = a.bottom - l - f.clientHeight - 2, d = function(e) {
-f.style.left = e.clientX - c - 2 + "px", f.style.top = Math.min(e.clientY - l - 2, u) + "px";
-};
-d(e), "mousedown" == e.type && (t.renderer.$keepTextAreaAtCursor && (t.renderer.$keepTextAreaAtCursor = null), clearTimeout(P), r.isWin && i.capture(t.container, d, h));
-}, this.onContextMenuClose = h;
-var P, L = function(e) {
-t.textInput.onContextMenu(e), h();
+function s(e) {
+return function(t) {
+return "form" in t ? t.parentNode && !1 === t.disabled ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && xe(t) === e : t.disabled === e : "label" in t && t.disabled === e;
};
-if (i.addListener(f, "mouseup", L), i.addListener(f, "mousedown", function(e) {
-e.preventDefault(), h();
-}), i.addListener(t.renderer.scroller, "contextmenu", L), i.addListener(f, "contextmenu", L), r.isIOS) {
-var O = null, R = !1;
-e.addEventListener("keydown", function(e) {
-O && clearTimeout(O), R = !0;
-}), e.addEventListener("keyup", function(e) {
-O = setTimeout(function() {
-R = !1;
-}, 100);
-});
-var N = function(e) {
-if (document.activeElement === f && !R) {
-if (m) return setTimeout(function() {
-m = !1;
-}, 100);
-var n = f.selectionStart, i = f.selectionEnd;
-if (f.setSelectionRange(4, 5), n == i) switch (n) {
-case 0:
-t.onCommandKey(null, 0, s.up);
-break;
-
-case 1:
-t.onCommandKey(null, 0, s.home);
-break;
-
-case 2:
-t.onCommandKey(null, l.option, s.left);
-break;
-
-case 4:
-t.onCommandKey(null, 0, s.left);
-break;
-
-case 5:
-t.onCommandKey(null, 0, s.right);
-break;
-
-case 7:
-t.onCommandKey(null, l.option, s.right);
-break;
-
-case 8:
-t.onCommandKey(null, 0, s.end);
-break;
-
-case 9:
-t.onCommandKey(null, 0, s.down);
-} else {
-switch (i) {
-case 6:
-t.onCommandKey(null, l.shift, s.right);
-break;
-
-case 7:
-t.onCommandKey(null, l.shift | l.option, s.right);
-break;
-
-case 8:
-t.onCommandKey(null, l.shift, s.end);
-break;
-
-case 9:
-t.onCommandKey(null, l.shift, s.down);
}
-switch (n) {
-case 0:
-t.onCommandKey(null, l.shift, s.up);
-break;
-
-case 1:
-t.onCommandKey(null, l.shift, s.home);
-break;
-
-case 2:
-t.onCommandKey(null, l.shift | l.option, s.left);
-break;
-
-case 3:
-t.onCommandKey(null, l.shift, s.left);
+function l(e) {
+return i(function(t) {
+return t = +t, i(function(n, i) {
+for (var r, o = e([], n.length, t), a = o.length; a--; ) n[r = o[a]] && (n[r] = !(i[r] = n[r]));
+});
+});
}
+function c(e) {
+return e && void 0 !== e.getElementsByTagName && e;
}
+function u() {}
+function d(e) {
+for (var t = 0, n = e.length, i = ""; t < n; t++) i += e[t].value;
+return i;
}
-};
-document.addEventListener("selectionchange", N), t.on("destroy", function() {
-document.removeEventListener("selectionchange", N);
-});
+function h(e, t, n) {
+var i = t.dir, r = t.next, o = r || i, a = n && "parentNode" === o, s = H++;
+return t.first ? function(t, n, r) {
+for (;t = t[i]; ) if (1 === t.nodeType || a) return e(t, n, r);
+return !1;
+} : function(t, n, l) {
+var c, u, d, h = [ j, s ];
+if (l) {
+for (;t = t[i]; ) if ((1 === t.nodeType || a) && e(t, n, l)) return !0;
+} else for (;t = t[i]; ) if (1 === t.nodeType || a) if (d = t[N] || (t[N] = {}), u = d[t.uniqueID] || (d[t.uniqueID] = {}), r && r === t.nodeName.toLowerCase()) t = t[i] || t; else {
+if ((c = u[o]) && c[0] === j && c[1] === s) return h[2] = c[2];
+if (u[o] = h, h[2] = e(t, n, l)) return !0;
}
+return !1;
};
-}), ace.define("ace/keyboard/textinput", [ "require", "exports", "module", "ace/lib/event", "ace/lib/useragent", "ace/lib/dom", "ace/lib/lang", "ace/keyboard/textinput_ios" ], function(e, t, n) {
-"use strict";
-var i = e("../lib/event"), r = e("../lib/useragent"), o = e("../lib/dom"), a = e("../lib/lang"), s = r.isChrome < 18, l = r.isIE, c = e("./textinput_ios").TextInput;
-t.TextInput = function(e, t) {
-function n(e) {
-if (!m) {
-if (m = !0, C) var t = 0, n = e ? 0 : h.value.length - 1; else var t = e ? 2 : 1, n = 2;
-try {
-h.setSelectionRange(t, n);
-} catch (e) {}
-m = !1;
}
+function f(e) {
+return e.length > 1 ? function(t, n, i) {
+for (var r = e.length; r--; ) if (!e[r](t, n, i)) return !1;
+return !0;
+} : e[0];
}
-function u() {
-m || (h.value = f, r.isWebKit && _.schedule());
+function p(e, n, i) {
+for (var r = 0, o = n.length; r < o; r++) t(e, n[r], i);
+return i;
}
-function d() {
-clearTimeout(L), L = setTimeout(function() {
-v && (h.style.cssText = v, v = ""), null == t.renderer.$keepTextAreaAtCursor && (t.renderer.$keepTextAreaAtCursor = !0, t.renderer.$moveTextAreaToCursor());
-}, 0);
+function g(e, t, n, i, r) {
+for (var o, a = [], s = 0, l = e.length, c = null != t; s < l; s++) (o = e[s]) && (n && !n(o, i, r) || (a.push(o), c && t.push(s)));
+return a;
}
-if (r.isIOS) return c.call(this, e, t);
-var h = o.createElement("textarea");
-h.className = "ace_text-input", h.setAttribute("wrap", "off"), h.setAttribute("autocorrect", "off"), h.setAttribute("autocapitalize", "off"), h.setAttribute("spellcheck", !1), h.style.opacity = "0", e.insertBefore(h, e.firstChild);
-var f = "\u2028\u2028", p = !1, g = !1, m = !1, v = "", b = !0;
-try {
-var y = document.activeElement === h;
-} catch (e) {}
-i.addListener(h, "blur", function(e) {
-t.onBlur(e), y = !1;
-}), i.addListener(h, "focus", function(e) {
-y = !0, t.onFocus(e), n();
-}), this.focus = function() {
-if (v) return h.focus();
-var e = h.style.top;
-h.style.position = "fixed", h.style.top = "0px", h.focus(), setTimeout(function() {
-h.style.position = "", "0px" == h.style.top && (h.style.top = e);
-}, 0);
-}, this.blur = function() {
-h.blur();
-}, this.isFocused = function() {
-return y;
-};
-var w = a.delayedCall(function() {
-y && n(b);
-}), _ = a.delayedCall(function() {
-m || (h.value = f, y && n());
-});
-r.isWebKit || t.addEventListener("changeSelection", function() {
-t.selection.isEmpty() != b && (b = !b, w.schedule());
-}), u(), y && t.onFocus();
-var x = function(e) {
-return 0 === e.selectionStart && e.selectionEnd === e.value.length;
-}, C = null;
-this.setInputHandler = function(e) {
-C = e;
-}, this.getInputHandler = function() {
-return C;
-};
-var S = !1, $ = function(e) {
-C && (e = C(e), C = null), g ? (n(), e && t.onPaste(e), g = !1) : e == f.charAt(0) ? S ? t.execCommand("del", {
-source: "ace"
-}) : t.execCommand("backspace", {
-source: "ace"
-}) : (e.substring(0, 2) == f ? e = e.substr(2) : e.charAt(0) == f.charAt(0) ? e = e.substr(1) : e.charAt(e.length - 1) == f.charAt(0) && (e = e.slice(0, -1)), e.charAt(e.length - 1) == f.charAt(0) && (e = e.slice(0, -1)), e && t.onTextInput(e)), S && (S = !1);
-}, A = function(e) {
-if (!m) {
-var t = h.value;
-$(t), u();
+function m(e, t, n, r, o, a) {
+return r && !r[N] && (r = m(r)), o && !o[N] && (o = m(o, a)), i(function(i, a, s, l) {
+var c, u, d, h = [], f = [], m = a.length, v = i || p(t || "*", s.nodeType ? [ s ] : s, []), b = !e || !i && t ? v : g(v, h, e, s, l), y = n ? o || (i ? e : m || r) ? [] : a : b;
+if (n && n(b, y, s, l), r) for (c = g(y, f), r(c, [], s, l), u = c.length; u--; ) (d = c[u]) && (y[f[u]] = !(b[f[u]] = d));
+if (i) {
+if (o || e) {
+if (o) {
+for (c = [], u = y.length; u--; ) (d = y[u]) && c.push(b[u] = d);
+o(null, y = [], c, l);
}
-}, k = function(e, t, n) {
-var i = e.clipboardData || window.clipboardData;
-if (i && !s) {
-var r = l || n ? "Text" : "text/plain";
-try {
-return t ? !1 !== i.setData(r, t) : i.getData(r);
-} catch (e) {
-if (!n) return k(e, t, !0);
+for (u = y.length; u--; ) (d = y[u]) && (c = o ? Z(i, d) : h[u]) > -1 && (i[c] = !(a[c] = d));
}
+} else y = g(y === a ? y.splice(m, y.length) : y), o ? o(null, a, y, l) : X.apply(a, y);
+});
}
-}, T = function(e, r) {
-var o = t.getCopyText();
-if (!o) return i.preventDefault(e);
-k(e, o) ? (r ? t.onCut() : t.onCopy(), i.preventDefault(e)) : (p = !0, h.value = o, h.select(), setTimeout(function() {
-p = !1, u(), n(), r ? t.onCut() : t.onCopy();
-}));
-}, D = function(e) {
-T(e, !0);
-}, E = function(e) {
-T(e, !1);
-}, F = function(e) {
-var o = k(e);
-"string" == typeof o ? (o && t.onPaste(o, e), r.isIE && setTimeout(n), i.preventDefault(e)) : (h.value = "", g = !0);
-};
-i.addCommandKeyListener(h, t.onCommandKey.bind(t)), i.addListener(h, "select", function(e) {
-p ? p = !1 : x(h) ? (t.selectAll(), n()) : C && n(t.selection.isEmpty());
-}), i.addListener(h, "input", A), i.addListener(h, "cut", D), i.addListener(h, "copy", E), i.addListener(h, "paste", F), (!("oncut" in h) || !("oncopy" in h) || !("onpaste" in h)) && i.addListener(e, "keydown", function(e) {
-if ((!r.isMac || e.metaKey) && e.ctrlKey) switch (e.keyCode) {
-case 67:
-E(e);
-break;
-
-case 86:
-F(e);
-break;
-
-case 88:
-D(e);
-}
-});
-var M = function() {
-if (m && t.onCompositionUpdate && !t.$readOnly) {
-var e = h.value.replace(/\u2028/g, "");
-if (m.lastValue !== e && (t.onCompositionUpdate(e), m.lastValue && t.undo(), m.canUndo && (m.lastValue = e), m.lastValue)) {
-var n = t.selection.getRange();
-t.insert(m.lastValue), t.session.markUndoGroup(), m.range = t.selection.getRange(), t.selection.setRange(n), t.selection.clearSelection();
-}
-}
-}, I = function(e) {
-if (t.onCompositionEnd && !t.$readOnly) {
-var n = m;
-m = !1;
-var i = setTimeout(function() {
-i = null;
-var e = h.value.replace(/\u2028/g, "");
-m || (e == n.lastValue ? u() : !n.lastValue && e && (u(), $(e)));
-});
-C = function(e) {
-return i && clearTimeout(i), (e = e.replace(/\u2028/g, "")) == n.lastValue ? "" : (n.lastValue && i && t.undo(), e);
-}, t.onCompositionEnd(), t.removeListener("mousedown", I), "compositionend" == e.type && n.range && t.selection.setRange(n.range), (!!r.isChrome && r.isChrome >= 53 || !!r.isWebKit && r.isWebKit >= 603) && A();
+function v(e) {
+for (var t, n, i, r = e.length, o = _.relative[e[0].type], a = o || _.relative[" "], s = o ? 1 : 0, l = h(function(e) {
+return e === t;
+}, a, !0), c = h(function(e) {
+return Z(t, e) > -1;
+}, a, !0), u = [ function(e, n, i) {
+var r = !o && (i || n !== k) || ((t = n).nodeType ? l(e, n, i) : c(e, n, i));
+return t = null, r;
+} ]; s < r; s++) if (n = _.relative[e[s].type]) u = [ h(f(u), n) ]; else {
+if ((n = _.filter[e[s].type].apply(null, e[s].matches))[N]) {
+for (i = ++s; i < r && !_.relative[e[i].type]; i++) ;
+return m(s > 1 && f(u), s > 1 && d(e.slice(0, s - 1).concat({
+value: " " === e[s - 2].type ? "*" : ""
+})).replace(oe, "$1"), n, s < i && v(e.slice(s, i)), i < r && v(e = e.slice(i)), i < r && d(e));
}
-}, P = a.delayedCall(M, 50);
-i.addListener(h, "compositionstart", function(e) {
-m || !t.onCompositionStart || t.$readOnly || ((m = {}).canUndo = t.session.$undoManager, t.onCompositionStart(), setTimeout(M, 0), t.on("mousedown", I), m.canUndo && !t.selection.isEmpty() && (t.insert(""), t.session.markUndoGroup(), t.selection.clearSelection()), t.session.markUndoGroup());
-}), r.isGecko ? i.addListener(h, "text", function() {
-P.schedule();
-}) : (i.addListener(h, "keyup", function() {
-P.schedule();
-}), i.addListener(h, "keydown", function() {
-P.schedule();
-})), i.addListener(h, "compositionend", I), this.getElement = function() {
-return h;
-}, this.setReadOnly = function(e) {
-h.readOnly = e;
-}, this.onContextMenu = function(e) {
-S = !0, n(t.selection.isEmpty()), t._emit("nativecontextmenu", {
-target: t,
-domEvent: e
-}), this.moveToMouse(e, !0);
-}, this.moveToMouse = function(e, n) {
-v || (v = h.style.cssText), h.style.cssText = (n ? "z-index:100000;" : "") + "height:" + h.style.height + ";" + (r.isIE ? "opacity:0.1;" : "");
-var a = t.container.getBoundingClientRect(), s = o.computedStyle(t.container), l = a.top + (parseInt(s.borderTopWidth) || 0), c = a.left + (parseInt(a.borderLeftWidth) || 0), u = a.bottom - l - h.clientHeight - 2, f = function(e) {
-h.style.left = e.clientX - c - 2 + "px", h.style.top = Math.min(e.clientY - l - 2, u) + "px";
-};
-f(e), "mousedown" == e.type && (t.renderer.$keepTextAreaAtCursor && (t.renderer.$keepTextAreaAtCursor = null), clearTimeout(L), r.isWin && i.capture(t.container, f, d));
-}, this.onContextMenuClose = d;
-var L, O = function(e) {
-t.textInput.onContextMenu(e), d();
-};
-i.addListener(h, "mouseup", O), i.addListener(h, "mousedown", function(e) {
-e.preventDefault(), d();
-}), i.addListener(t.renderer.scroller, "contextmenu", O), i.addListener(h, "contextmenu", O);
-};
-}), ace.define("ace/mouse/default_handlers", [ "require", "exports", "module", "ace/lib/dom", "ace/lib/event", "ace/lib/useragent" ], function(e, t, n) {
-"use strict";
-function i(e) {
-e.$clickSelection = null;
-var t = e.editor;
-t.setDefaultHandler("mousedown", this.onMouseDown.bind(e)), t.setDefaultHandler("dblclick", this.onDoubleClick.bind(e)), t.setDefaultHandler("tripleclick", this.onTripleClick.bind(e)), t.setDefaultHandler("quadclick", this.onQuadClick.bind(e)), t.setDefaultHandler("mousewheel", this.onMouseWheel.bind(e)), t.setDefaultHandler("touchmove", this.onTouchMove.bind(e)), [ "select", "startSelect", "selectEnd", "selectAllEnd", "selectByWordsEnd", "selectByLinesEnd", "dragWait", "dragWaitEnd", "focusWait" ].forEach(function(t) {
-e[t] = this[t];
-}, this), e.selectByLines = this.extendSelectionBy.bind(e, "getLineRange"), e.selectByWords = this.extendSelectionBy.bind(e, "getWordRange");
+u.push(n);
}
-function r(e, t, n, i) {
-return Math.sqrt(Math.pow(n - e, 2) + Math.pow(i - t, 2));
+return f(u);
}
-function o(e, t) {
-if (e.start.row == e.end.row) n = 2 * t.column - e.start.column - e.end.column; else if (e.start.row != e.end.row - 1 || e.start.column || e.end.column) n = 2 * t.row - e.start.row - e.end.row; else var n = t.column - 4;
-return n < 0 ? {
-cursor: e.start,
-anchor: e.end
-} : {
-cursor: e.end,
-anchor: e.start
-};
+function b(e, n) {
+var r = n.length > 0, o = e.length > 0, a = function(i, a, s, l, c) {
+var u, d, h, f = 0, p = "0", m = i && [], v = [], b = k, y = i || o && _.find.TAG("*", c), w = j += null == b ? 1 : Math.random() || .1, x = y.length;
+for (c && (k = a === F || a || c); p !== x && null != (u = y[p]); p++) {
+if (o && u) {
+for (d = 0, a || u.ownerDocument === F || (E(u), s = !I); h = e[d++]; ) if (h(u, a || F, s)) {
+l.push(u);
+break;
}
-e("../lib/dom"), e("../lib/event");
-var a = e("../lib/useragent");
-(function() {
-this.onMouseDown = function(e) {
-var t = e.inSelection(), n = e.getDocumentPosition();
-this.mousedownEvent = e;
-var i = this.editor, r = e.getButton();
-if (0 !== r) {
-var o = i.getSelectionRange().isEmpty();
-return i.$blockScrolling++, (o || 1 == r) && i.selection.moveToPosition(n), i.$blockScrolling--, void (2 == r && (i.textInput.onContextMenu(e.domEvent), a.isMozilla || e.preventDefault()));
+c && (j = w);
}
-return this.mousedownEvent.time = Date.now(), !t || i.isFocused() || (i.focus(), !this.$focusTimout || this.$clickSelection || i.inMultiSelectMode) ? (this.captureMouse(e), this.startSelect(n, e.domEvent._clicks > 1), e.preventDefault()) : (this.setState("focusWait"), void this.captureMouse(e));
-}, this.startSelect = function(e, t) {
-e = e || this.editor.renderer.screenToTextCoordinates(this.x, this.y);
-var n = this.editor;
-n.$blockScrolling++, this.mousedownEvent.getShiftKey() ? n.selection.selectToPosition(e) : t || n.selection.moveToPosition(e), t || this.select(), n.renderer.scroller.setCapture && n.renderer.scroller.setCapture(), n.setStyle("ace_selecting"), this.setState("select"), n.$blockScrolling--;
-}, this.select = function() {
-var e, t = this.editor, n = t.renderer.screenToTextCoordinates(this.x, this.y);
-if (t.$blockScrolling++, this.$clickSelection) {
-var i = this.$clickSelection.comparePoint(n);
-if (-1 == i) e = this.$clickSelection.end; else if (1 == i) e = this.$clickSelection.start; else {
-var r = o(this.$clickSelection, n);
-n = r.cursor, e = r.anchor;
+r && ((u = !h && u) && f--, i && m.push(u));
}
-t.selection.setSelectionAnchor(e.row, e.column);
+if (f += p, r && p !== f) {
+for (d = 0; h = n[d++]; ) h(m, v, a, s);
+if (i) {
+if (f > 0) for (;p--; ) m[p] || v[p] || (v[p] = Y.call(l));
+v = g(v);
}
-t.selection.selectToPosition(n), t.$blockScrolling--, t.renderer.scrollCursorIntoView();
-}, this.extendSelectionBy = function(e) {
-var t, n = this.editor, i = n.renderer.screenToTextCoordinates(this.x, this.y), r = n.selection[e](i.row, i.column);
-if (n.$blockScrolling++, this.$clickSelection) {
-var a = this.$clickSelection.comparePoint(r.start), s = this.$clickSelection.comparePoint(r.end);
-if (-1 == a && s <= 0) t = this.$clickSelection.end, r.end.row == i.row && r.end.column == i.column || (i = r.start); else if (1 == s && a >= 0) t = this.$clickSelection.start, r.start.row == i.row && r.start.column == i.column || (i = r.end); else if (-1 == a && 1 == s) i = r.end, t = r.start; else {
-var l = o(this.$clickSelection, i);
-i = l.cursor, t = l.anchor;
+X.apply(l, v), c && !i && v.length > 0 && f + n.length > 1 && t.uniqueSort(l);
}
-n.selection.setSelectionAnchor(t.row, t.column);
+return c && (j = w, k = b), m;
+};
+return r ? i(a) : a;
}
-n.selection.selectToPosition(i), n.$blockScrolling--, n.renderer.scrollCursorIntoView();
-}, this.selectEnd = this.selectAllEnd = this.selectByWordsEnd = this.selectByLinesEnd = function() {
-this.$clickSelection = null, this.editor.unsetStyle("ace_selecting"), this.editor.renderer.scroller.releaseCapture && this.editor.renderer.scroller.releaseCapture();
-}, this.focusWait = function() {
-var e = r(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y), t = Date.now();
-(e > 0 || t - this.mousedownEvent.time > this.$focusTimout) && this.startSelect(this.mousedownEvent.getDocumentPosition());
-}, this.onDoubleClick = function(e) {
-var t = e.getDocumentPosition(), n = this.editor, i = n.session.getBracketRange(t);
-i ? (i.isEmpty() && (i.start.column--, i.end.column++), this.setState("select")) : (i = n.selection.getWordRange(t.row, t.column), this.setState("selectByWords")), this.$clickSelection = i, this.select();
-}, this.onTripleClick = function(e) {
-var t = e.getDocumentPosition(), n = this.editor;
-this.setState("selectByLines");
-var i = n.getSelectionRange();
-i.isMultiLine() && i.contains(t.row, t.column) ? (this.$clickSelection = n.selection.getLineRange(i.start.row), this.$clickSelection.end = n.selection.getLineRange(i.end.row).end) : this.$clickSelection = n.selection.getLineRange(t.row), this.select();
-}, this.onQuadClick = function(e) {
-var t = this.editor;
-t.selectAll(), this.$clickSelection = t.getSelectionRange(), this.setState("selectAll");
-}, this.onMouseWheel = function(e) {
-if (!e.getAccelKey()) {
-e.getShiftKey() && e.wheelY && !e.wheelX && (e.wheelX = e.wheelY, e.wheelY = 0);
-var t = this.editor;
-this.$lastScroll || (this.$lastScroll = {
-t: 0,
-vx: 0,
-vy: 0,
-allowed: 0
+var y, w, _, x, C, S, $, A, k, T, D, E, F, M, I, P, L, O, R, N = "sizzle" + 1 * new Date(), B = e.document, j = 0, H = 0, V = n(), U = n(), z = n(), W = function(e, t) {
+return e === t && (D = !0), 0;
+}, q = {}.hasOwnProperty, G = [], Y = G.pop, K = G.push, X = G.push, Q = G.slice, Z = function(e, t) {
+for (var n = 0, i = e.length; n < i; n++) if (e[n] === t) return n;
+return -1;
+}, J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", ee = "[\\x20\\t\\r\\n\\f]", te = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", ne = "\\[" + ee + "*(" + te + ")(?:" + ee + "*([*^$|!~]?=)" + ee + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + te + "))|)" + ee + "*\\]", ie = ":(" + te + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ne + ")*)|.*)\\)|)", re = new RegExp(ee + "+", "g"), oe = new RegExp("^" + ee + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ee + "+$", "g"), ae = new RegExp("^" + ee + "*," + ee + "*"), se = new RegExp("^" + ee + "*([>+~]|" + ee + ")" + ee + "*"), le = new RegExp("=" + ee + "*([^\\]'\"]*?)" + ee + "*\\]", "g"), ce = new RegExp(ie), ue = new RegExp("^" + te + "$"), de = {
+ID: new RegExp("^#(" + te + ")"),
+CLASS: new RegExp("^\\.(" + te + ")"),
+TAG: new RegExp("^(" + te + "|[*])"),
+ATTR: new RegExp("^" + ne),
+PSEUDO: new RegExp("^" + ie),
+CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ee + "*(even|odd|(([+-]|)(\\d*)n|)" + ee + "*(?:([+-]|)" + ee + "*(\\d+)|))" + ee + "*\\)|)", "i"),
+bool: new RegExp("^(?:" + J + ")$", "i"),
+needsContext: new RegExp("^" + ee + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ee + "*((?:-\\d)?\\d*)" + ee + "*\\)|)(?=[^-]|$)", "i")
+}, he = /^(?:input|select|textarea|button)$/i, fe = /^h\d$/i, pe = /^[^{]+\{\s*\[native \w/, ge = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, me = /[+~]/, ve = new RegExp("\\\\([\\da-f]{1,6}" + ee + "?|(" + ee + ")|.)", "ig"), be = function(e, t, n) {
+var i = "0x" + t - 65536;
+return i !== i || n ? t : i < 0 ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320);
+}, ye = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, we = function(e, t) {
+return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e;
+}, _e = function() {
+E();
+}, xe = h(function(e) {
+return !0 === e.disabled && ("form" in e || "label" in e);
+}, {
+dir: "parentNode",
+next: "legend"
});
-var n = this.$lastScroll, i = e.domEvent.timeStamp, r = i - n.t, o = e.wheelX / r, a = e.wheelY / r;
-r < 250 && (o = (o + n.vx) / 2, a = (a + n.vy) / 2);
-var s = Math.abs(o / a), l = !1;
-return s >= 1 && t.renderer.isScrollableBy(e.wheelX * e.speed, 0) && (l = !0), s <= 1 && t.renderer.isScrollableBy(0, e.wheelY * e.speed) && (l = !0), l ? n.allowed = i : i - n.allowed < 250 && (Math.abs(o) <= 1.1 * Math.abs(n.vx) && Math.abs(a) <= 1.1 * Math.abs(n.vy) ? (l = !0, n.allowed = i) : n.allowed = 0), n.t = i, n.vx = o, n.vy = a, l ? (t.renderer.scrollBy(e.wheelX * e.speed, e.wheelY * e.speed), e.stop()) : void 0;
+try {
+X.apply(G = Q.call(B.childNodes), B.childNodes), G[B.childNodes.length].nodeType;
+} catch (e) {
+X = {
+apply: G.length ? function(e, t) {
+K.apply(e, Q.call(t));
+} : function(e, t) {
+for (var n = e.length, i = 0; e[n++] = t[i++]; ) ;
+e.length = n - 1;
}
-}, this.onTouchMove = function(e) {
-this.editor._emit("mousewheel", e);
};
-}).call(i.prototype), t.DefaultHandlers = i;
-}), ace.define("ace/tooltip", [ "require", "exports", "module", "ace/lib/oop", "ace/lib/dom" ], function(e, t, n) {
-"use strict";
-function i(e) {
-this.isOpen = !1, this.$element = null, this.$parentNode = e;
}
-e("./lib/oop");
-var r = e("./lib/dom");
-(function() {
-this.$init = function() {
-return this.$element = r.createElement("div"), this.$element.className = "ace_tooltip", this.$element.style.display = "none", this.$parentNode.appendChild(this.$element), this.$element;
-}, this.getElement = function() {
-return this.$element || this.$init();
-}, this.setText = function(e) {
-r.setInnerText(this.getElement(), e);
-}, this.setHtml = function(e) {
-this.getElement().innerHTML = e;
-}, this.setPosition = function(e, t) {
-this.getElement().style.left = e + "px", this.getElement().style.top = t + "px";
-}, this.setClassName = function(e) {
-r.addCssClass(this.getElement(), e);
-}, this.show = function(e, t, n) {
-null != e && this.setText(e), null != t && null != n && this.setPosition(t, n), this.isOpen || (this.getElement().style.display = "block", this.isOpen = !0);
-}, this.hide = function() {
-this.isOpen && (this.getElement().style.display = "none", this.isOpen = !1);
-}, this.getHeight = function() {
-return this.getElement().offsetHeight;
-}, this.getWidth = function() {
-return this.getElement().offsetWidth;
-}, this.destroy = function() {
-this.isOpen = !1, this.$element && this.$element.parentNode && this.$element.parentNode.removeChild(this.$element);
+w = t.support = {}, C = t.isXML = function(e) {
+var t = e && (e.ownerDocument || e).documentElement;
+return !!t && "HTML" !== t.nodeName;
+}, E = t.setDocument = function(e) {
+var t, n, i = e ? e.ownerDocument || e : B;
+return i !== F && 9 === i.nodeType && i.documentElement ? (F = i, M = F.documentElement, I = !C(F), B !== F && (n = F.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", _e, !1) : n.attachEvent && n.attachEvent("onunload", _e)), w.attributes = r(function(e) {
+return e.className = "i", !e.getAttribute("className");
+}), w.getElementsByTagName = r(function(e) {
+return e.appendChild(F.createComment("")), !e.getElementsByTagName("*").length;
+}), w.getElementsByClassName = pe.test(F.getElementsByClassName), w.getById = r(function(e) {
+return M.appendChild(e).id = N, !F.getElementsByName || !F.getElementsByName(N).length;
+}), w.getById ? (_.filter.ID = function(e) {
+var t = e.replace(ve, be);
+return function(e) {
+return e.getAttribute("id") === t;
};
-}).call(i.prototype), t.Tooltip = i;
-}), ace.define("ace/mouse/default_gutter_handler", [ "require", "exports", "module", "ace/lib/dom", "ace/lib/oop", "ace/lib/event", "ace/tooltip" ], function(e, t, n) {
-"use strict";
-function i(e) {
-s.call(this, e);
+}, _.find.ID = function(e, t) {
+if (void 0 !== t.getElementById && I) {
+var n = t.getElementById(e);
+return n ? [ n ] : [];
}
-var r = e("../lib/dom"), o = e("../lib/oop"), a = e("../lib/event"), s = e("../tooltip").Tooltip;
-o.inherits(i, s), function() {
-this.setPosition = function(e, t) {
-var n = window.innerWidth || document.documentElement.clientWidth, i = window.innerHeight || document.documentElement.clientHeight, r = this.getWidth(), o = this.getHeight();
-t += 15, (e += 15) + r > n && (e -= e + r - n), t + o > i && (t -= 20 + o), s.prototype.setPosition.call(this, e, t);
+}) : (_.filter.ID = function(e) {
+var t = e.replace(ve, be);
+return function(e) {
+var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
+return n && n.value === t;
};
-}.call(i.prototype), t.GutterHandler = function(e) {
-function t() {
-var t = d.getDocumentPosition().row, i = l.$annotations[t];
-if (!i) return n();
-if (t == s.session.getLength()) {
-var r = s.renderer.pixelToScreenCoordinates(0, d.y).row, a = d.$pos;
-if (r > s.session.documentToScreenRow(a.row, a.column)) return n();
-}
-if (h != i) if (h = i.text.join("
"), c.setHtml(h), c.show(), s._signal("showGutterTooltip", c), s.on("mousewheel", n), e.$tooltipFollowsMouse) o(d); else {
-var u = d.domEvent.target.getBoundingClientRect(), f = c.getElement().style;
-f.left = u.right + "px", f.top = u.bottom + "px";
+}, _.find.ID = function(e, t) {
+if (void 0 !== t.getElementById && I) {
+var n, i, r, o = t.getElementById(e);
+if (o) {
+if ((n = o.getAttributeNode("id")) && n.value === e) return [ o ];
+for (r = t.getElementsByName(e), i = 0; o = r[i++]; ) if ((n = o.getAttributeNode("id")) && n.value === e) return [ o ];
}
+return [];
}
-function n() {
-u && (u = clearTimeout(u)), h && (c.hide(), h = null, s._signal("hideGutterTooltip", c), s.removeEventListener("mousewheel", n));
+}), _.find.TAG = w.getElementsByTagName ? function(e, t) {
+return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : w.qsa ? t.querySelectorAll(e) : void 0;
+} : function(e, t) {
+var n, i = [], r = 0, o = t.getElementsByTagName(e);
+if ("*" === e) {
+for (;n = o[r++]; ) 1 === n.nodeType && i.push(n);
+return i;
}
-function o(e) {
-c.setPosition(e.x, e.y);
+return o;
+}, _.find.CLASS = w.getElementsByClassName && function(e, t) {
+if (void 0 !== t.getElementsByClassName && I) return t.getElementsByClassName(e);
+}, L = [], P = [], (w.qsa = pe.test(F.querySelectorAll)) && (r(function(e) {
+M.appendChild(e).innerHTML = "", e.querySelectorAll("[msallowcapture^='']").length && P.push("[*^$]=" + ee + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || P.push("\\[" + ee + "*(?:value|" + J + ")"), e.querySelectorAll("[id~=" + N + "-]").length || P.push("~="), e.querySelectorAll(":checked").length || P.push(":checked"), e.querySelectorAll("a#" + N + "+*").length || P.push(".#.+[+~]");
+}), r(function(e) {
+e.innerHTML = "";
+var t = F.createElement("input");
+t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && P.push("name" + ee + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && P.push(":enabled", ":disabled"), M.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && P.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), P.push(",.*:");
+})), (w.matchesSelector = pe.test(O = M.matches || M.webkitMatchesSelector || M.mozMatchesSelector || M.oMatchesSelector || M.msMatchesSelector)) && r(function(e) {
+w.disconnectedMatch = O.call(e, "*"), O.call(e, "[s!='']:x"), L.push("!=", ie);
+}), P = P.length && new RegExp(P.join("|")), L = L.length && new RegExp(L.join("|")), t = pe.test(M.compareDocumentPosition), R = t || pe.test(M.contains) ? function(e, t) {
+var n = 9 === e.nodeType ? e.documentElement : e, i = t && t.parentNode;
+return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i)));
+} : function(e, t) {
+if (t) for (;t = t.parentNode; ) if (t === e) return !0;
+return !1;
+}, W = t ? function(e, t) {
+if (e === t) return D = !0, 0;
+var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
+return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !w.sortDetached && t.compareDocumentPosition(e) === n ? e === F || e.ownerDocument === B && R(B, e) ? -1 : t === F || t.ownerDocument === B && R(B, t) ? 1 : T ? Z(T, e) - Z(T, t) : 0 : 4 & n ? -1 : 1);
+} : function(e, t) {
+if (e === t) return D = !0, 0;
+var n, i = 0, r = e.parentNode, o = t.parentNode, s = [ e ], l = [ t ];
+if (!r || !o) return e === F ? -1 : t === F ? 1 : r ? -1 : o ? 1 : T ? Z(T, e) - Z(T, t) : 0;
+if (r === o) return a(e, t);
+for (n = e; n = n.parentNode; ) s.unshift(n);
+for (n = t; n = n.parentNode; ) l.unshift(n);
+for (;s[i] === l[i]; ) i++;
+return i ? a(s[i], l[i]) : s[i] === B ? -1 : l[i] === B ? 1 : 0;
+}, F) : F;
+}, t.matches = function(e, n) {
+return t(e, null, null, n);
+}, t.matchesSelector = function(e, n) {
+if ((e.ownerDocument || e) !== F && E(e), n = n.replace(le, "='$1']"), w.matchesSelector && I && !z[n + " "] && (!L || !L.test(n)) && (!P || !P.test(n))) try {
+var i = O.call(e, n);
+if (i || w.disconnectedMatch || e.document && 11 !== e.document.nodeType) return i;
+} catch (e) {}
+return t(n, F, null, [ e ]).length > 0;
+}, t.contains = function(e, t) {
+return (e.ownerDocument || e) !== F && E(e), R(e, t);
+}, t.attr = function(e, t) {
+(e.ownerDocument || e) !== F && E(e);
+var n = _.attrHandle[t.toLowerCase()], i = n && q.call(_.attrHandle, t.toLowerCase()) ? n(e, t, !I) : void 0;
+return void 0 !== i ? i : w.attributes || !I ? e.getAttribute(t) : (i = e.getAttributeNode(t)) && i.specified ? i.value : null;
+}, t.escape = function(e) {
+return (e + "").replace(ye, we);
+}, t.error = function(e) {
+throw new Error("Syntax error, unrecognized expression: " + e);
+}, t.uniqueSort = function(e) {
+var t, n = [], i = 0, r = 0;
+if (D = !w.detectDuplicates, T = !w.sortStable && e.slice(0), e.sort(W), D) {
+for (;t = e[r++]; ) t === e[r] && (i = n.push(r));
+for (;i--; ) e.splice(n[i], 1);
}
-var s = e.editor, l = s.renderer.$gutterLayer, c = new i(s.container);
-e.editor.setDefaultHandler("guttermousedown", function(t) {
-if (s.isFocused() && 0 == t.getButton() && "foldWidgets" != l.getRegion(t)) {
-var n = t.getDocumentPosition().row, i = s.session.selection;
-if (t.getShiftKey()) i.selectTo(n, 0); else {
-if (2 == t.domEvent.detail) return s.selectAll(), t.preventDefault();
-e.$clickSelection = s.selection.getLineRange(n);
+return T = null, e;
+}, x = t.getText = function(e) {
+var t, n = "", i = 0, r = e.nodeType;
+if (r) {
+if (1 === r || 9 === r || 11 === r) {
+if ("string" == typeof e.textContent) return e.textContent;
+for (e = e.firstChild; e; e = e.nextSibling) n += x(e);
+} else if (3 === r || 4 === r) return e.nodeValue;
+} else for (;t = e[i++]; ) n += x(t);
+return n;
+}, (_ = t.selectors = {
+cacheLength: 50,
+createPseudo: i,
+match: de,
+attrHandle: {},
+find: {},
+relative: {
+">": {
+dir: "parentNode",
+first: !0
+},
+" ": {
+dir: "parentNode"
+},
+"+": {
+dir: "previousSibling",
+first: !0
+},
+"~": {
+dir: "previousSibling"
}
-return e.setState("selectByLines"), e.captureMouse(t), t.preventDefault();
+},
+preFilter: {
+ATTR: function(e) {
+return e[1] = e[1].replace(ve, be), e[3] = (e[3] || e[4] || e[5] || "").replace(ve, be), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4);
+},
+CHILD: function(e) {
+return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || t.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && t.error(e[0]), e;
+},
+PSEUDO: function(e) {
+var t, n = !e[6] && e[2];
+return de.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && ce.test(n) && (t = S(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3));
}
-});
-var u, d, h;
-e.editor.setDefaultHandler("guttermousemove", function(i) {
-var a = i.domEvent.target || i.domEvent.srcElement;
-if (r.hasCssClass(a, "ace_fold-widget")) return n();
-h && e.$tooltipFollowsMouse && o(i), d = i, u || (u = setTimeout(function() {
-u = null, d && !e.isMousePressed ? t() : n();
-}, 50));
-}), a.addListener(s.renderer.$gutter, "mouseout", function(e) {
-d = null, h && !u && (u = setTimeout(function() {
-u = null, n();
-}, 50));
-}), s.on("changeSession", n);
+},
+filter: {
+TAG: function(e) {
+var t = e.replace(ve, be).toLowerCase();
+return "*" === e ? function() {
+return !0;
+} : function(e) {
+return e.nodeName && e.nodeName.toLowerCase() === t;
};
-}), ace.define("ace/mouse/mouse_event", [ "require", "exports", "module", "ace/lib/event", "ace/lib/useragent" ], function(e, t, n) {
-"use strict";
-var i = e("../lib/event"), r = e("../lib/useragent"), o = t.MouseEvent = function(e, t) {
-this.domEvent = e, this.editor = t, this.x = this.clientX = e.clientX, this.y = this.clientY = e.clientY, this.$pos = null, this.$inSelection = null, this.propagationStopped = !1, this.defaultPrevented = !1;
+},
+CLASS: function(e) {
+var t = V[e + " "];
+return t || (t = new RegExp("(^|" + ee + ")" + e + "(" + ee + "|$)")) && V(e, function(e) {
+return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "");
+});
+},
+ATTR: function(e, n, i) {
+return function(r) {
+var o = t.attr(r, e);
+return null == o ? "!=" === n : !n || (o += "", "=" === n ? o === i : "!=" === n ? o !== i : "^=" === n ? i && 0 === o.indexOf(i) : "*=" === n ? i && o.indexOf(i) > -1 : "$=" === n ? i && o.slice(-i.length) === i : "~=" === n ? (" " + o.replace(re, " ") + " ").indexOf(i) > -1 : "|=" === n && (o === i || o.slice(0, i.length + 1) === i + "-"));
};
-(function() {
-this.stopPropagation = function() {
-i.stopPropagation(this.domEvent), this.propagationStopped = !0;
-}, this.preventDefault = function() {
-i.preventDefault(this.domEvent), this.defaultPrevented = !0;
-}, this.stop = function() {
-this.stopPropagation(), this.preventDefault();
-}, this.getDocumentPosition = function() {
-return this.$pos ? this.$pos : (this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY), this.$pos);
-}, this.inSelection = function() {
-if (null !== this.$inSelection) return this.$inSelection;
-var e = this.editor.getSelectionRange();
-if (e.isEmpty()) this.$inSelection = !1; else {
-var t = this.getDocumentPosition();
-this.$inSelection = e.contains(t.row, t.column);
+},
+CHILD: function(e, t, n, i, r) {
+var o = "nth" !== e.slice(0, 3), a = "last" !== e.slice(-4), s = "of-type" === t;
+return 1 === i && 0 === r ? function(e) {
+return !!e.parentNode;
+} : function(t, n, l) {
+var c, u, d, h, f, p, g = o !== a ? "nextSibling" : "previousSibling", m = t.parentNode, v = s && t.nodeName.toLowerCase(), b = !l && !s, y = !1;
+if (m) {
+if (o) {
+for (;g; ) {
+for (h = t; h = h[g]; ) if (s ? h.nodeName.toLowerCase() === v : 1 === h.nodeType) return !1;
+p = g = "only" === e && !p && "nextSibling";
+}
+return !0;
+}
+if (p = [ a ? m.firstChild : m.lastChild ], a && b) {
+for (y = (f = (c = (u = (d = (h = m)[N] || (h[N] = {}))[h.uniqueID] || (d[h.uniqueID] = {}))[e] || [])[0] === j && c[1]) && c[2], h = f && m.childNodes[f]; h = ++f && h && h[g] || (y = f = 0) || p.pop(); ) if (1 === h.nodeType && ++y && h === t) {
+u[e] = [ j, f, y ];
+break;
+}
+} else if (b && (y = f = (c = (u = (d = (h = t)[N] || (h[N] = {}))[h.uniqueID] || (d[h.uniqueID] = {}))[e] || [])[0] === j && c[1]), !1 === y) for (;(h = ++f && h && h[g] || (y = f = 0) || p.pop()) && ((s ? h.nodeName.toLowerCase() !== v : 1 !== h.nodeType) || !++y || (b && ((u = (d = h[N] || (h[N] = {}))[h.uniqueID] || (d[h.uniqueID] = {}))[e] = [ j, y ]), h !== t)); ) ;
+return (y -= r) === i || y % i == 0 && y / i >= 0;
}
-return this.$inSelection;
-}, this.getButton = function() {
-return i.getButton(this.domEvent);
-}, this.getShiftKey = function() {
-return this.domEvent.shiftKey;
-}, this.getAccelKey = r.isMac ? function() {
-return this.domEvent.metaKey;
-} : function() {
-return this.domEvent.ctrlKey;
};
-}).call(o.prototype);
-}), ace.define("ace/mouse/dragdrop_handler", [ "require", "exports", "module", "ace/lib/dom", "ace/lib/event", "ace/lib/useragent" ], function(e, t, n) {
-"use strict";
-function i(e) {
-function t(e, t) {
-var n = Date.now(), i = !t || e.row != t.row, o = !t || e.column != t.column;
-!k || i || o ? (m.$blockScrolling += 1, m.moveCursorToPosition(e), m.$blockScrolling -= 1, k = n, T = {
-x: y,
-y: w
-}) : r(T.x, T.y, y, w) > u ? k = null : n - k >= c && (m.renderer.scrollCursorIntoView(), k = null);
-}
-function n(e, t) {
-var n = Date.now(), i = m.renderer.layerConfig.lineHeight, r = m.renderer.layerConfig.characterWidth, o = m.renderer.scroller.getBoundingClientRect(), a = {
-x: {
-left: y - o.left,
-right: o.right - y
},
-y: {
-top: w - o.top,
-bottom: o.bottom - w
+PSEUDO: function(e, n) {
+var r, o = _.pseudos[e] || _.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e);
+return o[N] ? o(n) : o.length > 1 ? (r = [ e, e, "", n ], _.setFilters.hasOwnProperty(e.toLowerCase()) ? i(function(e, t) {
+for (var i, r = o(e, n), a = r.length; a--; ) e[i = Z(e, r[a])] = !(t[i] = r[a]);
+}) : function(e) {
+return o(e, 0, r);
+}) : o;
}
-}, s = Math.min(a.x.left, a.x.right), c = Math.min(a.y.top, a.y.bottom), u = {
-row: e.row,
-column: e.column
+},
+pseudos: {
+not: i(function(e) {
+var t = [], n = [], r = $(e.replace(oe, "$1"));
+return r[N] ? i(function(e, t, n, i) {
+for (var o, a = r(e, null, i, []), s = e.length; s--; ) (o = a[s]) && (e[s] = !(t[s] = o));
+}) : function(e, i, o) {
+return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop();
};
-s / r <= 2 && (u.column += a.x.left < a.x.right ? -3 : 2), c / i <= 1 && (u.row += a.y.top < a.y.bottom ? -1 : 1);
-var d = e.row != u.row, h = e.column != u.column, f = !t || e.row != t.row;
-d || h && !f ? A ? n - A >= l && m.renderer.scrollCursorIntoView(u) : A = n : A = null;
-}
-function i() {
-var e = C;
-t(C = m.renderer.screenToTextCoordinates(y, w), e), n(C, e);
-}
-function d() {
-x = m.selection.toOrientedRange(), b = m.session.addMarker(x, "ace_selection", m.getSelectionStyle()), m.clearSelection(), m.isFocused() && m.renderer.$cursorLayer.setBlinking(!1), clearInterval(_), i(), _ = setInterval(i, 20), E = 0, a.addListener(document, "mousemove", f);
-}
-function h() {
-clearInterval(_), m.session.removeMarker(b), b = null, m.$blockScrolling += 1, m.selection.fromOrientedRange(x), m.$blockScrolling -= 1, m.isFocused() && !$ && m.renderer.$cursorLayer.setBlinking(!m.getReadOnly()), x = null, C = null, E = 0, A = null, k = null, a.removeListener(document, "mousemove", f);
-}
-function f() {
-null == F && (F = setTimeout(function() {
-null != F && b && h();
-}, 20));
-}
-function p(e) {
-var t = e.types;
-return !t || Array.prototype.some.call(t, function(e) {
-return "text/plain" == e || "Text" == e;
-});
+}),
+has: i(function(e) {
+return function(n) {
+return t(e, n).length > 0;
+};
+}),
+contains: i(function(e) {
+return e = e.replace(ve, be), function(t) {
+return (t.textContent || t.innerText || x(t)).indexOf(e) > -1;
+};
+}),
+lang: i(function(e) {
+return ue.test(e || "") || t.error("unsupported lang: " + e), e = e.replace(ve, be).toLowerCase(), function(t) {
+var n;
+do {
+if (n = I ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-");
+} while ((t = t.parentNode) && 1 === t.nodeType);
+return !1;
+};
+}),
+target: function(t) {
+var n = e.location && e.location.hash;
+return n && n.slice(1) === t.id;
+},
+root: function(e) {
+return e === M;
+},
+focus: function(e) {
+return e === F.activeElement && (!F.hasFocus || F.hasFocus()) && !!(e.type || e.href || ~e.tabIndex);
+},
+enabled: s(!1),
+disabled: s(!0),
+checked: function(e) {
+var t = e.nodeName.toLowerCase();
+return "input" === t && !!e.checked || "option" === t && !!e.selected;
+},
+selected: function(e) {
+return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected;
+},
+empty: function(e) {
+for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1;
+return !0;
+},
+parent: function(e) {
+return !_.pseudos.empty(e);
+},
+header: function(e) {
+return fe.test(e.nodeName);
+},
+input: function(e) {
+return he.test(e.nodeName);
+},
+button: function(e) {
+var t = e.nodeName.toLowerCase();
+return "input" === t && "button" === e.type || "button" === t;
+},
+text: function(e) {
+var t;
+return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase());
+},
+first: l(function() {
+return [ 0 ];
+}),
+last: l(function(e, t) {
+return [ t - 1 ];
+}),
+eq: l(function(e, t, n) {
+return [ n < 0 ? n + t : n ];
+}),
+even: l(function(e, t) {
+for (var n = 0; n < t; n += 2) e.push(n);
+return e;
+}),
+odd: l(function(e, t) {
+for (var n = 1; n < t; n += 2) e.push(n);
+return e;
+}),
+lt: l(function(e, t, n) {
+for (var i = n < 0 ? n + t : n; --i >= 0; ) e.push(i);
+return e;
+}),
+gt: l(function(e, t, n) {
+for (var i = n < 0 ? n + t : n; ++i < t; ) e.push(i);
+return e;
+})
}
-function g(e) {
-var t = [ "copy", "copymove", "all", "uninitialized" ], n = [ "move", "copymove", "linkmove", "all", "uninitialized" ], i = s.isMac ? e.altKey : e.ctrlKey, r = "uninitialized";
-try {
-r = e.dataTransfer.effectAllowed.toLowerCase();
-} catch (e) {}
-var o = "none";
-return i && t.indexOf(r) >= 0 ? o = "copy" : n.indexOf(r) >= 0 ? o = "move" : t.indexOf(r) >= 0 && (o = "copy"), o;
+}).pseudos.nth = _.pseudos.eq;
+for (y in {
+radio: !0,
+checkbox: !0,
+file: !0,
+password: !0,
+image: !0
+}) _.pseudos[y] = function(e) {
+return function(t) {
+return "input" === t.nodeName.toLowerCase() && t.type === e;
+};
+}(y);
+for (y in {
+submit: !0,
+reset: !0
+}) _.pseudos[y] = function(e) {
+return function(t) {
+var n = t.nodeName.toLowerCase();
+return ("input" === n || "button" === n) && t.type === e;
+};
+}(y);
+return u.prototype = _.filters = _.pseudos, _.setFilters = new u(), S = t.tokenize = function(e, n) {
+var i, r, o, a, s, l, c, u = U[e + " "];
+if (u) return n ? 0 : u.slice(0);
+for (s = e, l = [], c = _.preFilter; s; ) {
+i && !(r = ae.exec(s)) || (r && (s = s.slice(r[0].length) || s), l.push(o = [])), i = !1, (r = se.exec(s)) && (i = r.shift(), o.push({
+value: i,
+type: r[0].replace(oe, " ")
+}), s = s.slice(i.length));
+for (a in _.filter) !(r = de[a].exec(s)) || c[a] && !(r = c[a](r)) || (i = r.shift(), o.push({
+value: i,
+type: a,
+matches: r
+}), s = s.slice(i.length));
+if (!i) break;
}
-var m = e.editor, v = o.createElement("img");
-v.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", s.isOpera && (v.style.cssText = "width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"), [ "dragWait", "dragWaitEnd", "startDrag", "dragReadyEnd", "onMouseDrag" ].forEach(function(t) {
-e[t] = this[t];
-}, this), m.addEventListener("mousedown", this.onMouseDown.bind(e));
-var b, y, w, _, x, C, S, $, A, k, T, D = m.container, E = 0;
-this.onDragStart = function(e) {
-if (this.cancelDrag || !D.draggable) {
-var t = this;
-return setTimeout(function() {
-t.startSelect(), t.captureMouse(e);
-}, 0), e.preventDefault();
+return n ? s.length : s ? t.error(e) : U(e, l).slice(0);
+}, $ = t.compile = function(e, t) {
+var n, i = [], r = [], o = z[e + " "];
+if (!o) {
+for (t || (t = S(e)), n = t.length; n--; ) (o = v(t[n]))[N] ? i.push(o) : r.push(o);
+(o = z(e, b(r, i))).selector = e;
}
-x = m.getSelectionRange();
-var n = e.dataTransfer;
-n.effectAllowed = m.getReadOnly() ? "copy" : "copyMove", s.isOpera && (m.container.appendChild(v), v.scrollTop = 0), n.setDragImage && n.setDragImage(v, 0, 0), s.isOpera && m.container.removeChild(v), n.clearData(), n.setData("Text", m.session.getTextRange()), $ = !0, this.setState("drag");
-}, this.onDragEnd = function(e) {
-if (D.draggable = !1, $ = !1, this.setState(null), !m.getReadOnly()) {
-var t = e.dataTransfer.dropEffect;
-!S && "move" == t && m.session.remove(m.getSelectionRange()), m.renderer.$cursorLayer.setBlinking(!0);
+return o;
+}, A = t.select = function(e, t, n, i) {
+var r, o, a, s, l, u = "function" == typeof e && e, h = !i && S(e = u.selector || e);
+if (n = n || [], 1 === h.length) {
+if ((o = h[0] = h[0].slice(0)).length > 2 && "ID" === (a = o[0]).type && 9 === t.nodeType && I && _.relative[o[1].type]) {
+if (!(t = (_.find.ID(a.matches[0].replace(ve, be), t) || [])[0])) return n;
+u && (t = t.parentNode), e = e.slice(o.shift().value.length);
}
-this.editor.unsetStyle("ace_dragging"), this.editor.renderer.setCursorStyle("");
-}, this.onDragEnter = function(e) {
-if (!m.getReadOnly() && p(e.dataTransfer)) return y = e.clientX, w = e.clientY, b || d(), E++, e.dataTransfer.dropEffect = S = g(e), a.preventDefault(e);
-}, this.onDragOver = function(e) {
-if (!m.getReadOnly() && p(e.dataTransfer)) return y = e.clientX, w = e.clientY, b || (d(), E++), null !== F && (F = null), e.dataTransfer.dropEffect = S = g(e), a.preventDefault(e);
-}, this.onDragLeave = function(e) {
-if (--E <= 0 && b) return h(), S = null, a.preventDefault(e);
-}, this.onDrop = function(e) {
-if (C) {
-var t = e.dataTransfer;
-if ($) switch (S) {
-case "move":
-x = x.contains(C.row, C.column) ? {
-start: C,
-end: C
-} : m.moveText(x, C);
+for (r = de.needsContext.test(e) ? 0 : o.length; r-- && (a = o[r], !_.relative[s = a.type]); ) if ((l = _.find[s]) && (i = l(a.matches[0].replace(ve, be), me.test(o[0].type) && c(t.parentNode) || t))) {
+if (o.splice(r, 1), !(e = i.length && d(o))) return X.apply(n, i), n;
break;
-
-case "copy":
-x = m.moveText(x, C, !0);
-} else {
-var n = t.getData("Text");
-x = {
-start: C,
-end: m.session.insert(C, n)
-}, m.focus(), S = null;
-}
-return h(), a.preventDefault(e);
-}
-}, a.addListener(D, "dragstart", this.onDragStart.bind(e)), a.addListener(D, "dragend", this.onDragEnd.bind(e)), a.addListener(D, "dragenter", this.onDragEnter.bind(e)), a.addListener(D, "dragover", this.onDragOver.bind(e)), a.addListener(D, "dragleave", this.onDragLeave.bind(e)), a.addListener(D, "drop", this.onDrop.bind(e));
-var F = null;
-}
-function r(e, t, n, i) {
-return Math.sqrt(Math.pow(n - e, 2) + Math.pow(i - t, 2));
-}
-var o = e("../lib/dom"), a = e("../lib/event"), s = e("../lib/useragent"), l = 200, c = 200, u = 5;
-(function() {
-this.dragWait = function() {
-Date.now() - this.mousedownEvent.time > this.editor.getDragDelay() && this.startDrag();
-}, this.dragWaitEnd = function() {
-this.editor.container.draggable = !1, this.startSelect(this.mousedownEvent.getDocumentPosition()), this.selectEnd();
-}, this.dragReadyEnd = function(e) {
-this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()), this.editor.unsetStyle("ace_dragging"), this.editor.renderer.setCursorStyle(""), this.dragWaitEnd();
-}, this.startDrag = function() {
-this.cancelDrag = !1;
-var e = this.editor;
-e.container.draggable = !0, e.renderer.$cursorLayer.setBlinking(!1), e.setStyle("ace_dragging");
-var t = s.isWin ? "default" : "move";
-e.renderer.setCursorStyle(t), this.setState("dragReady");
-}, this.onMouseDrag = function(e) {
-var t = this.editor.container;
-if (s.isIE && "dragReady" == this.state && (n = r(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y)) > 3 && t.dragDrop(), "dragWait" === this.state) {
-var n = r(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);
-n > 0 && (t.draggable = !1, this.startSelect(this.mousedownEvent.getDocumentPosition()));
-}
-}, this.onMouseDown = function(e) {
-if (this.$dragEnabled) {
-this.mousedownEvent = e;
-var t = this.editor, n = e.inSelection(), i = e.getButton();
-if (1 === (e.domEvent.detail || 1) && 0 === i && n) {
-if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey())) return;
-this.mousedownEvent.time = Date.now();
-var r = e.domEvent.target || e.domEvent.srcElement;
-"unselectable" in r && (r.unselectable = "on"), t.getDragDelay() ? (s.isWebKit && (this.cancelDrag = !0, t.container.draggable = !0), this.setState("dragWait")) : this.startDrag(), this.captureMouse(e, this.onMouseDrag.bind(this)), e.defaultPrevented = !0;
}
}
-};
-}).call(i.prototype), t.DragdropHandler = i;
-}), ace.define("ace/lib/net", [ "require", "exports", "module", "ace/lib/dom" ], function(e, t, n) {
-"use strict";
-var i = e("./dom");
-t.get = function(e, t) {
-var n = new XMLHttpRequest();
-n.open("GET", e, !0), n.onreadystatechange = function() {
-4 === n.readyState && t(n.responseText);
-}, n.send(null);
-}, t.loadScript = function(e, t) {
-var n = i.getDocumentHead(), r = document.createElement("script");
-r.src = e, n.appendChild(r), r.onload = r.onreadystatechange = function(e, n) {
-!n && r.readyState && "loaded" != r.readyState && "complete" != r.readyState || (r = r.onload = r.onreadystatechange = null, n || t());
-};
-}, t.qualifyURL = function(e) {
-var t = document.createElement("a");
-return t.href = e, t.href;
-};
-}), ace.define("ace/lib/event_emitter", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-var i = {}, r = function() {
-this.propagationStopped = !0;
-}, o = function() {
-this.defaultPrevented = !0;
-};
-i._emit = i._dispatchEvent = function(e, t) {
-this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});
-var n = this._eventRegistry[e] || [], i = this._defaultHandlers[e];
-if (n.length || i) {
-"object" == typeof t && t || (t = {}), t.type || (t.type = e), t.stopPropagation || (t.stopPropagation = r), t.preventDefault || (t.preventDefault = o), n = n.slice();
-for (var a = 0; a < n.length && (n[a](t, this), !t.propagationStopped); a++) ;
-return i && !t.defaultPrevented ? i(t, this) : void 0;
+return (u || $(e, h))(i, t, !I, n, !t || me.test(e) && c(t.parentNode) || t), n;
+}, w.sortStable = N.split("").sort(W).join("") === N, w.detectDuplicates = !!D, E(), w.sortDetached = r(function(e) {
+return 1 & e.compareDocumentPosition(F.createElement("fieldset"));
+}), r(function(e) {
+return e.innerHTML = "", "#" === e.firstChild.getAttribute("href");
+}) || o("type|href|height|width", function(e, t, n) {
+if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2);
+}), w.attributes && r(function(e) {
+return e.innerHTML = "", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value");
+}) || o("value", function(e, t, n) {
+if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue;
+}), r(function(e) {
+return null == e.getAttribute("disabled");
+}) || o(J, function(e, t, n) {
+var i;
+if (!n) return !0 === e[t] ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null;
+}), t;
+}(e);
+fe.find = be, fe.expr = be.selectors, fe.expr[":"] = fe.expr.pseudos, fe.uniqueSort = fe.unique = be.uniqueSort, fe.text = be.getText, fe.isXMLDoc = be.isXML, fe.contains = be.contains, fe.escapeSelector = be.escape;
+var ye = function(e, t, n) {
+for (var i = [], r = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; ) if (1 === e.nodeType) {
+if (r && fe(e).is(n)) break;
+i.push(e);
}
-}, i._signal = function(e, t) {
-var n = (this._eventRegistry || {})[e];
-if (n) {
-n = n.slice();
-for (var i = 0; i < n.length; i++) n[i](t, this);
+return i;
+}, we = function(e, t) {
+for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
+return n;
+}, _e = fe.expr.match.needsContext, xe = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i, Ce = /^.[^:#\[\.,]*$/;
+fe.filter = function(e, t, n) {
+var i = t[0];
+return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? fe.find.matchesSelector(i, e) ? [ i ] : [] : fe.find.matches(e, fe.grep(t, function(e) {
+return 1 === e.nodeType;
+}));
+}, fe.fn.extend({
+find: function(e) {
+var t, n, i = this.length, r = this;
+if ("string" != typeof e) return this.pushStack(fe(e).filter(function() {
+for (t = 0; t < i; t++) if (fe.contains(r[t], this)) return !0;
+}));
+for (n = this.pushStack([]), t = 0; t < i; t++) fe.find(e, r[t], n);
+return i > 1 ? fe.uniqueSort(n) : n;
+},
+filter: function(e) {
+return this.pushStack(o(this, e || [], !1));
+},
+not: function(e) {
+return this.pushStack(o(this, e || [], !0));
+},
+is: function(e) {
+return !!o(this, "string" == typeof e && _e.test(e) ? fe(e) : e || [], !1).length;
}
-}, i.once = function(e, t) {
-var n = this;
-t && this.addEventListener(e, function i() {
-n.removeEventListener(e, i), t.apply(null, arguments);
});
-}, i.setDefaultHandler = function(e, t) {
-var n = this._defaultHandlers;
-if (n || (n = this._defaultHandlers = {
-_disabled_: {}
-}), n[e]) {
-var i = n[e], r = n._disabled_[e];
-r || (n._disabled_[e] = r = []), r.push(i);
-var o = r.indexOf(t);
--1 != o && r.splice(o, 1);
-}
-n[e] = t;
-}, i.removeDefaultHandler = function(e, t) {
-var n = this._defaultHandlers;
-if (n) {
-var i = n._disabled_[e];
-if (n[e] == t) {
-n[e];
-i && this.setDefaultHandler(e, i.pop());
-} else if (i) {
-var r = i.indexOf(t);
--1 != r && i.splice(r, 1);
-}
-}
-}, i.on = i.addEventListener = function(e, t, n) {
-this._eventRegistry = this._eventRegistry || {};
-var i = this._eventRegistry[e];
-return i || (i = this._eventRegistry[e] = []), -1 == i.indexOf(t) && i[n ? "unshift" : "push"](t), t;
-}, i.off = i.removeListener = i.removeEventListener = function(e, t) {
-this._eventRegistry = this._eventRegistry || {};
-var n = this._eventRegistry[e];
-if (n) {
-var i = n.indexOf(t);
--1 !== i && n.splice(i, 1);
+var Se, $e = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
+(fe.fn.init = function(e, t, n) {
+var i, r;
+if (!e) return this;
+if (n = n || Se, "string" == typeof e) {
+if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [ null, e, null ] : $e.exec(e)) || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
+if (i[1]) {
+if (t = t instanceof fe ? t[0] : t, fe.merge(this, fe.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : te, !0)), xe.test(i[1]) && fe.isPlainObject(t)) for (i in t) fe.isFunction(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
+return this;
}
-}, i.removeAllListeners = function(e) {
-this._eventRegistry && (this._eventRegistry[e] = []);
-}, t.EventEmitter = i;
-}), ace.define("ace/lib/app_config", [ "require", "exports", "module", "ace/lib/oop", "ace/lib/event_emitter" ], function(e, t, n) {
-"no use strict";
-function i(e) {
-"undefined" != typeof console && console.warn && console.warn.apply(console, arguments);
+return (r = te.getElementById(i[2])) && (this[0] = r, this.length = 1), this;
}
-function r(e, t) {
-var n = new Error(e);
-n.data = t, "object" == typeof console && console.error && console.error(n), setTimeout(function() {
-throw n;
+return e.nodeType ? (this[0] = e, this.length = 1, this) : fe.isFunction(e) ? void 0 !== n.ready ? n.ready(e) : e(fe) : fe.makeArray(e, this);
+}).prototype = fe.fn, Se = fe(te);
+var Ae = /^(?:parents|prev(?:Until|All))/, ke = {
+children: !0,
+contents: !0,
+next: !0,
+prev: !0
+};
+fe.fn.extend({
+has: function(e) {
+var t = fe(e, this), n = t.length;
+return this.filter(function() {
+for (var e = 0; e < n; e++) if (fe.contains(this, t[e])) return !0;
});
+},
+closest: function(e, t) {
+var n, i = 0, r = this.length, o = [], a = "string" != typeof e && fe(e);
+if (!_e.test(e)) for (;i < r; i++) for (n = this[i]; n && n !== t; n = n.parentNode) if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && fe.find.matchesSelector(n, e))) {
+o.push(n);
+break;
}
-var o = e("./oop"), a = e("./event_emitter").EventEmitter, s = {
-setOptions: function(e) {
-Object.keys(e).forEach(function(t) {
-this.setOption(t, e[t]);
-}, this);
+return this.pushStack(o.length > 1 ? fe.uniqueSort(o) : o);
},
-getOptions: function(e) {
-var t = {};
-return e ? Array.isArray(e) || (t = e, e = Object.keys(t)) : e = Object.keys(this.$options), e.forEach(function(e) {
-t[e] = this.getOption(e);
-}, this), t;
+index: function(e) {
+return e ? "string" == typeof e ? ae.call(fe(e), this[0]) : ae.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
},
-setOption: function(e, t) {
-if (this["$" + e] !== t) {
-var n = this.$options[e];
-return n ? n.forwardTo ? this[n.forwardTo] && this[n.forwardTo].setOption(e, t) : (n.handlesSet || (this["$" + e] = t), void (n && n.set && n.set.call(this, t))) : i('misspelled option "' + e + '"');
+add: function(e, t) {
+return this.pushStack(fe.uniqueSort(fe.merge(this.get(), fe(e, t))));
+},
+addBack: function(e) {
+return this.add(null == e ? this.prevObject : this.prevObject.filter(e));
}
+}), fe.each({
+parent: function(e) {
+var t = e.parentNode;
+return t && 11 !== t.nodeType ? t : null;
},
-getOption: function(e) {
-var t = this.$options[e];
-return t ? t.forwardTo ? this[t.forwardTo] && this[t.forwardTo].getOption(e) : t && t.get ? t.get.call(this) : this["$" + e] : i('misspelled option "' + e + '"');
+parents: function(e) {
+return ye(e, "parentNode");
+},
+parentsUntil: function(e, t, n) {
+return ye(e, "parentNode", n);
+},
+next: function(e) {
+return a(e, "nextSibling");
+},
+prev: function(e) {
+return a(e, "previousSibling");
+},
+nextAll: function(e) {
+return ye(e, "nextSibling");
+},
+prevAll: function(e) {
+return ye(e, "previousSibling");
+},
+nextUntil: function(e, t, n) {
+return ye(e, "nextSibling", n);
+},
+prevUntil: function(e, t, n) {
+return ye(e, "previousSibling", n);
+},
+siblings: function(e) {
+return we((e.parentNode || {}).firstChild, e);
+},
+children: function(e) {
+return we(e.firstChild);
+},
+contents: function(e) {
+return r(e, "iframe") ? e.contentDocument : (r(e, "template") && (e = e.content || e), fe.merge([], e.childNodes));
}
-}, l = function() {
-this.$defaultOptions = {};
-};
-(function() {
-o.implement(this, a), this.defineOptions = function(e, t, n) {
-return e.$options || (this.$defaultOptions[t] = e.$options = {}), Object.keys(n).forEach(function(t) {
-var i = n[t];
-"string" == typeof i && (i = {
-forwardTo: i
-}), i.name || (i.name = t), e.$options[i.name] = i, "initialValue" in i && (e["$" + i.name] = i.initialValue);
-}), o.implement(e, s), this;
-}, this.resetOptions = function(e) {
-Object.keys(e.$options).forEach(function(t) {
-var n = e.$options[t];
-"value" in n && e.setOption(t, n.value);
+}, function(e, t) {
+fe.fn[e] = function(n, i) {
+var r = fe.map(this, t, n);
+return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (r = fe.filter(i, r)), this.length > 1 && (ke[e] || fe.uniqueSort(r), Ae.test(e) && r.reverse()), this.pushStack(r);
+};
});
-}, this.setDefaultValue = function(e, t, n) {
-var i = this.$defaultOptions[e] || (this.$defaultOptions[e] = {});
-i[t] && (i.forwardTo ? this.setDefaultValue(i.forwardTo, t, n) : i[t].value = n);
-}, this.setDefaultValues = function(e, t) {
-Object.keys(t).forEach(function(n) {
-this.setDefaultValue(e, n, t[n]);
-}, this);
-}, this.warn = i, this.reportError = r;
-}).call(l.prototype), t.AppConfig = l;
-}), ace.define("ace/config", [ "require", "exports", "module", "ace/lib/lang", "ace/lib/oop", "ace/lib/net", "ace/lib/app_config" ], function(e, t, n) {
-"no use strict";
-function i(e) {
-return e.replace(/-(.)/g, function(e, t) {
-return t.toUpperCase();
+var Te = /[^\x20\t\r\n\f]+/g;
+fe.Callbacks = function(e) {
+e = "string" == typeof e ? s(e) : fe.extend({}, e);
+var t, n, i, r, o = [], a = [], l = -1, c = function() {
+for (r = r || e.once, i = t = !0; a.length; l = -1) for (n = a.shift(); ++l < o.length; ) !1 === o[l].apply(n[0], n[1]) && e.stopOnFalse && (l = o.length, n = !1);
+e.memory || (n = !1), t = !1, r && (o = n ? [] : "");
+}, u = {
+add: function() {
+return o && (n && !t && (l = o.length - 1, a.push(n)), function t(n) {
+fe.each(n, function(n, i) {
+fe.isFunction(i) ? e.unique && u.has(i) || o.push(i) : i && i.length && "string" !== fe.type(i) && t(i);
});
+}(arguments), n && !t && c()), this;
+},
+remove: function() {
+return fe.each(arguments, function(e, t) {
+for (var n; (n = fe.inArray(t, o, n)) > -1; ) o.splice(n, 1), n <= l && l--;
+}), this;
+},
+has: function(e) {
+return e ? fe.inArray(e, o) > -1 : o.length > 0;
+},
+empty: function() {
+return o && (o = []), this;
+},
+disable: function() {
+return r = a = [], o = n = "", this;
+},
+disabled: function() {
+return !o;
+},
+lock: function() {
+return r = a = [], n || t || (o = n = ""), this;
+},
+locked: function() {
+return !!r;
+},
+fireWith: function(e, n) {
+return r || (n = [ e, (n = n || []).slice ? n.slice() : n ], a.push(n), t || c()), this;
+},
+fire: function() {
+return u.fireWith(this, arguments), this;
+},
+fired: function() {
+return !!i;
}
-var r = e("./lib/lang"), o = (e("./lib/oop"), e("./lib/net")), a = e("./lib/app_config").AppConfig;
-n.exports = t = new a();
-var s = function() {
-return this || "undefined" != typeof window && window;
-}(), l = {
-packaged: !1,
-workerPath: null,
-modePath: null,
-themePath: null,
-basePath: "",
-suffix: ".js",
-$moduleUrls: {}
};
-t.get = function(e) {
-if (!l.hasOwnProperty(e)) throw new Error("Unknown config key: " + e);
-return l[e];
-}, t.set = function(e, t) {
-if (!l.hasOwnProperty(e)) throw new Error("Unknown config key: " + e);
-l[e] = t;
-}, t.all = function() {
-return r.copyObject(l);
-}, t.moduleUrl = function(e, t) {
-if (l.$moduleUrls[e]) return l.$moduleUrls[e];
-var n = e.split("/"), i = "snippets" == (t = t || n[n.length - 2] || "") ? "/" : "-", r = n[n.length - 1];
-if ("worker" == t && "-" == i) {
-var o = new RegExp("^" + t + "[\\-_]|[\\-_]" + t + "$", "g");
-r = r.replace(o, "");
-}
-(!r || r == t) && n.length > 1 && (r = n[n.length - 2]);
-var a = l[t + "Path"];
-return null == a ? a = l.basePath : "/" == i && (t = i = ""), a && "/" != a.slice(-1) && (a += "/"), a + t + i + r + this.get("suffix");
-}, t.setModuleUrl = function(e, t) {
-return l.$moduleUrls[e] = t;
-}, t.$loading = {}, t.loadModule = function(n, i) {
-var r, a;
-Array.isArray(n) && (a = n[0], n = n[1]);
-try {
-r = e(n);
-} catch (e) {}
-if (r && !t.$loading[n]) return i && i(r);
-if (t.$loading[n] || (t.$loading[n] = []), t.$loading[n].push(i), !(t.$loading[n].length > 1)) {
-var s = function() {
-e([ n ], function(e) {
-t._emit("load.module", {
-name: n,
-module: e
-});
-var i = t.$loading[n];
-t.$loading[n] = null, i.forEach(function(t) {
-t && t(e);
-});
+return u;
+}, fe.extend({
+Deferred: function(t) {
+var n = [ [ "notify", "progress", fe.Callbacks("memory"), fe.Callbacks("memory"), 2 ], [ "resolve", "done", fe.Callbacks("once memory"), fe.Callbacks("once memory"), 0, "resolved" ], [ "reject", "fail", fe.Callbacks("once memory"), fe.Callbacks("once memory"), 1, "rejected" ] ], i = "pending", r = {
+state: function() {
+return i;
+},
+always: function() {
+return o.done(arguments).fail(arguments), this;
+},
+catch: function(e) {
+return r.then(null, e);
+},
+pipe: function() {
+var e = arguments;
+return fe.Deferred(function(t) {
+fe.each(n, function(n, i) {
+var r = fe.isFunction(e[i[4]]) && e[i[4]];
+o[i[1]](function() {
+var e = r && r.apply(this, arguments);
+e && fe.isFunction(e.promise) ? e.promise().progress(t.notify).done(t.resolve).fail(t.reject) : t[i[0] + "With"](this, r ? [ e ] : arguments);
});
-};
-if (!t.get("packaged")) return s();
-o.loadScript(t.moduleUrl(n, a), s);
-}
-}, t.init = function(r) {
-if (s && s.document) {
-l.packaged = r || e.packaged || n.packaged || s.define && define.packaged;
-for (var o = {}, a = "", c = document.currentScript || document._currentScript, u = (c && c.ownerDocument || document).getElementsByTagName("script"), d = 0; d < u.length; d++) {
-var h = u[d], f = h.src || h.getAttribute("src");
-if (f) {
-for (var p = h.attributes, g = 0, m = p.length; g < m; g++) {
-var v = p[g];
-0 === v.name.indexOf("data-ace-") && (o[i(v.name.replace(/^data-ace-/, ""))] = v.value);
+}), e = null;
+}).promise();
+},
+then: function(t, i, r) {
+function o(t, n, i, r) {
+return function() {
+var s = this, u = arguments, d = function() {
+var e, d;
+if (!(t < a)) {
+if ((e = i.apply(s, u)) === n.promise()) throw new TypeError("Thenable self-resolution");
+d = e && ("object" == typeof e || "function" == typeof e) && e.then, fe.isFunction(d) ? r ? d.call(e, o(a, n, l, r), o(a, n, c, r)) : (a++, d.call(e, o(a, n, l, r), o(a, n, c, r), o(a, n, l, n.notifyWith))) : (i !== l && (s = void 0, u = [ e ]), (r || n.resolveWith)(s, u));
}
-var b = f.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);
-b && (a = b[1]);
+}, h = r ? d : function() {
+try {
+d();
+} catch (e) {
+fe.Deferred.exceptionHook && fe.Deferred.exceptionHook(e, h.stackTrace), t + 1 >= a && (i !== c && (s = void 0, u = [ e ]), n.rejectWith(s, u));
}
+};
+t ? h() : (fe.Deferred.getStackHook && (h.stackTrace = fe.Deferred.getStackHook()), e.setTimeout(h));
+};
}
-a && (o.base = o.base || a, o.packaged = !0), o.basePath = o.base, o.workerPath = o.workerPath || o.base, o.modePath = o.modePath || o.base, o.themePath = o.themePath || o.base, delete o.base;
-for (var y in o) void 0 !== o[y] && t.set(y, o[y]);
+var a = 0;
+return fe.Deferred(function(e) {
+n[0][3].add(o(0, e, fe.isFunction(r) ? r : l, e.notifyWith)), n[1][3].add(o(0, e, fe.isFunction(t) ? t : l)), n[2][3].add(o(0, e, fe.isFunction(i) ? i : c));
+}).promise();
+},
+promise: function(e) {
+return null != e ? fe.extend(e, r) : r;
}
+}, o = {};
+return fe.each(n, function(e, t) {
+var a = t[2], s = t[5];
+r[t[1]] = a.add, s && a.add(function() {
+i = s;
+}, n[3 - e][2].disable, n[0][2].lock), a.add(t[3].fire), o[t[0]] = function() {
+return o[t[0] + "With"](this === o ? void 0 : this, arguments), this;
+}, o[t[0] + "With"] = a.fireWith;
+}), r.promise(o), t && t.call(o, o), o;
+},
+when: function(e) {
+var t = arguments.length, n = t, i = Array(n), r = ie.call(arguments), o = fe.Deferred(), a = function(e) {
+return function(n) {
+i[e] = this, r[e] = arguments.length > 1 ? ie.call(arguments) : n, --t || o.resolveWith(i, r);
};
-}), ace.define("ace/mouse/mouse_handler", [ "require", "exports", "module", "ace/lib/event", "ace/lib/useragent", "ace/mouse/default_handlers", "ace/mouse/default_gutter_handler", "ace/mouse/mouse_event", "ace/mouse/dragdrop_handler", "ace/config" ], function(e, t, n) {
-"use strict";
-var i = e("../lib/event"), r = e("../lib/useragent"), o = e("./default_handlers").DefaultHandlers, a = e("./default_gutter_handler").GutterHandler, s = e("./mouse_event").MouseEvent, l = e("./dragdrop_handler").DragdropHandler, c = e("../config"), u = function(e) {
-var t = this;
-this.editor = e, new o(this), new a(this), new l(this);
-var n = function(t) {
-(!document.hasFocus || !document.hasFocus() || !e.isFocused() && document.activeElement == (e.textInput && e.textInput.getElement())) && window.focus(), e.focus();
-}, s = e.renderer.getMouseEventTarget();
-i.addListener(s, "click", this.onMouseEvent.bind(this, "click")), i.addListener(s, "mousemove", this.onMouseMove.bind(this, "mousemove")), i.addMultiMouseDownListener([ s, e.renderer.scrollBarV && e.renderer.scrollBarV.inner, e.renderer.scrollBarH && e.renderer.scrollBarH.inner, e.textInput && e.textInput.getElement() ].filter(Boolean), [ 400, 300, 250 ], this, "onMouseEvent"), i.addMouseWheelListener(e.container, this.onMouseWheel.bind(this, "mousewheel")), i.addTouchMoveListener(e.container, this.onTouchMove.bind(this, "touchmove"));
-var c = e.renderer.$gutter;
-i.addListener(c, "mousedown", this.onMouseEvent.bind(this, "guttermousedown")), i.addListener(c, "click", this.onMouseEvent.bind(this, "gutterclick")), i.addListener(c, "dblclick", this.onMouseEvent.bind(this, "gutterdblclick")), i.addListener(c, "mousemove", this.onMouseEvent.bind(this, "guttermousemove")), i.addListener(s, "mousedown", n), i.addListener(c, "mousedown", n), r.isIE && e.renderer.scrollBarV && (i.addListener(e.renderer.scrollBarV.element, "mousedown", n), i.addListener(e.renderer.scrollBarH.element, "mousedown", n)), e.on("mousemove", function(n) {
-if (!t.state && !t.$dragDelay && t.$dragEnabled) {
-var i = e.renderer.screenToTextCoordinates(n.x, n.y), r = e.session.selection.getRange(), o = e.renderer;
-!r.isEmpty() && r.insideStart(i.row, i.column) ? o.setCursorStyle("default") : o.setCursorStyle("");
+};
+if (t <= 1 && (u(e, o.done(a(n)).resolve, o.reject, !t), "pending" === o.state() || fe.isFunction(r[n] && r[n].then))) return o.then();
+for (;n--; ) u(r[n], a(n), o.reject);
+return o.promise();
}
});
-};
-(function() {
-this.onMouseEvent = function(e, t) {
-this.editor._emit(e, new s(t, this.editor));
-}, this.onMouseMove = function(e, t) {
-var n = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;
-n && n.length && this.editor._emit(e, new s(t, this.editor));
-}, this.onMouseWheel = function(e, t) {
-var n = new s(t, this.editor);
-n.speed = 2 * this.$scrollSpeed, n.wheelX = t.wheelX, n.wheelY = t.wheelY, this.editor._emit(e, n);
-}, this.onTouchMove = function(e, t) {
-var n = new s(t, this.editor);
-n.speed = 1, n.wheelX = t.wheelX, n.wheelY = t.wheelY, this.editor._emit(e, n);
-}, this.setState = function(e) {
-this.state = e;
-}, this.captureMouse = function(e, t) {
-this.x = e.x, this.y = e.y, this.isMousePressed = !0;
-var n = this.editor.renderer;
-n.$keepTextAreaAtCursor && (n.$keepTextAreaAtCursor = null);
-var o = this, a = function(e) {
-if (e) return r.isWebKit && !e.which && o.releaseMouse ? o.releaseMouse() : (o.x = e.clientX, o.y = e.clientY, t && t(e), o.mouseEvent = new s(e, o.editor), void (o.$mouseMoved = !0));
-}, l = function(e) {
-clearInterval(u), c(), o[o.state + "End"] && o[o.state + "End"](e), o.state = "", null == n.$keepTextAreaAtCursor && (n.$keepTextAreaAtCursor = !0, n.$moveTextAreaToCursor()), o.isMousePressed = !1, o.$onCaptureMouseMove = o.releaseMouse = null, e && o.onMouseEvent("mouseup", e);
-}, c = function() {
-o[o.state] && o[o.state](), o.$mouseMoved = !1;
-};
-if (r.isOldIE && "dblclick" == e.domEvent.type) return setTimeout(function() {
-l(e);
+var De = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+fe.Deferred.exceptionHook = function(t, n) {
+e.console && e.console.warn && t && De.test(t.name) && e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n);
+}, fe.readyException = function(t) {
+e.setTimeout(function() {
+throw t;
});
-o.$onCaptureMouseMove = a, o.releaseMouse = i.capture(this.editor.container, a, l);
-var u = setInterval(c, 20);
-}, this.releaseMouse = null, this.cancelContextMenu = function() {
-var e = function(t) {
-t && t.domEvent && "contextmenu" != t.domEvent.type || (this.editor.off("nativecontextmenu", e), t && t.domEvent && i.stopEvent(t.domEvent));
-}.bind(this);
-setTimeout(e, 10), this.editor.on("nativecontextmenu", e);
};
-}).call(u.prototype), c.defineOptions(u.prototype, "mouseHandler", {
-scrollSpeed: {
-initialValue: 2
+var Ee = fe.Deferred();
+fe.fn.ready = function(e) {
+return Ee.then(e).catch(function(e) {
+fe.readyException(e);
+}), this;
+}, fe.extend({
+isReady: !1,
+readyWait: 1,
+ready: function(e) {
+(!0 === e ? --fe.readyWait : fe.isReady) || (fe.isReady = !0, !0 !== e && --fe.readyWait > 0 || Ee.resolveWith(te, [ fe ]));
+}
+}), fe.ready.then = Ee.then, "complete" === te.readyState || "loading" !== te.readyState && !te.documentElement.doScroll ? e.setTimeout(fe.ready) : (te.addEventListener("DOMContentLoaded", d), e.addEventListener("load", d));
+var Fe = function(e, t, n, i, r, o, a) {
+var s = 0, l = e.length, c = null == n;
+if ("object" === fe.type(n)) {
+r = !0;
+for (s in n) Fe(e, t, s, n[s], !0, o, a);
+} else if (void 0 !== i && (r = !0, fe.isFunction(i) || (a = !0), c && (a ? (t.call(e, i), t = null) : (c = t, t = function(e, t, n) {
+return c.call(fe(e), n);
+})), t)) for (;s < l; s++) t(e[s], n, a ? i : i.call(e[s], s, t(e[s], n)));
+return r ? e : c ? t.call(e) : l ? t(e[0], n) : o;
+}, Me = function(e) {
+return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType;
+};
+h.uid = 1, h.prototype = {
+cache: function(e) {
+var t = e[this.expando];
+return t || (t = {}, Me(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
+value: t,
+configurable: !0
+}))), t;
},
-dragDelay: {
-initialValue: r.isMac ? 150 : 0
+set: function(e, t, n) {
+var i, r = this.cache(e);
+if ("string" == typeof t) r[fe.camelCase(t)] = n; else for (i in t) r[fe.camelCase(i)] = t[i];
+return r;
},
-dragEnabled: {
-initialValue: !0
+get: function(e, t) {
+return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][fe.camelCase(t)];
},
-focusTimout: {
-initialValue: 0
+access: function(e, t, n) {
+return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t);
},
-tooltipFollowsMouse: {
-initialValue: !0
-}
-}), t.MouseHandler = u;
-}), ace.define("ace/mouse/fold_handler", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-t.FoldHandler = function(e) {
-e.on("click", function(t) {
-var n = t.getDocumentPosition(), i = e.session, r = i.getFoldAt(n.row, n.column, 1);
-r && (t.getAccelKey() ? i.removeFold(r) : i.expandFold(r), t.stop());
-}), e.on("gutterclick", function(t) {
-if ("foldWidgets" == e.renderer.$gutterLayer.getRegion(t)) {
-var n = t.getDocumentPosition().row, i = e.session;
-i.foldWidgets && i.foldWidgets[n] && e.session.onFoldWidgetClick(n, t), e.isFocused() || e.focus(), t.stop();
-}
-}), e.on("gutterdblclick", function(t) {
-if ("foldWidgets" == e.renderer.$gutterLayer.getRegion(t)) {
-var n = t.getDocumentPosition().row, i = e.session, r = i.getParentFoldRangeData(n, !0), o = r.range || r.firstRange;
-if (o) {
-n = o.start.row;
-var a = i.getFoldAt(n, i.getLine(n).length, 1);
-a ? i.removeFold(a) : (i.addFold("...", o), e.renderer.scrollCursorIntoView({
-row: o.start.row,
-column: 0
-}));
-}
-t.stop();
+remove: function(e, t) {
+var n, i = e[this.expando];
+if (void 0 !== i) {
+if (void 0 !== t) {
+n = (t = Array.isArray(t) ? t.map(fe.camelCase) : (t = fe.camelCase(t)) in i ? [ t ] : t.match(Te) || []).length;
+for (;n--; ) delete i[t[n]];
}
-});
-};
-}), ace.define("ace/keyboard/keybinding", [ "require", "exports", "module", "ace/lib/keys", "ace/lib/event" ], function(e, t, n) {
-"use strict";
-var i = e("../lib/keys"), r = e("../lib/event"), o = function(e) {
-this.$editor = e, this.$data = {
-editor: e
-}, this.$handlers = [], this.setDefaultHandler(e.commands);
-};
-(function() {
-this.setDefaultHandler = function(e) {
-this.removeKeyboardHandler(this.$defaultHandler), this.$defaultHandler = e, this.addKeyboardHandler(e, 0);
-}, this.setKeyboardHandler = function(e) {
-var t = this.$handlers;
-if (t[t.length - 1] != e) {
-for (;t[t.length - 1] && t[t.length - 1] != this.$defaultHandler; ) this.removeKeyboardHandler(t[t.length - 1]);
-this.addKeyboardHandler(e, 1);
+(void 0 === t || fe.isEmptyObject(i)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]);
}
-}, this.addKeyboardHandler = function(e, t) {
-if (e) {
-"function" == typeof e && !e.handleKeyboard && (e.handleKeyboard = e);
-var n = this.$handlers.indexOf(e);
--1 != n && this.$handlers.splice(n, 1), void 0 == t ? this.$handlers.push(e) : this.$handlers.splice(t, 0, e), -1 == n && e.attach && e.attach(this.$editor);
+},
+hasData: function(e) {
+var t = e[this.expando];
+return void 0 !== t && !fe.isEmptyObject(t);
}
-}, this.removeKeyboardHandler = function(e) {
-var t = this.$handlers.indexOf(e);
-return -1 != t && (this.$handlers.splice(t, 1), e.detach && e.detach(this.$editor), !0);
-}, this.getKeyboardHandler = function() {
-return this.$handlers[this.$handlers.length - 1];
-}, this.getStatusText = function() {
-var e = this.$data, t = e.editor;
-return this.$handlers.map(function(n) {
-return n.getStatusText && n.getStatusText(t, e) || "";
-}).filter(Boolean).join(" ");
-}, this.$callKeyboardHandlers = function(e, t, n, i) {
-for (var o, a = !1, s = this.$editor.commands, l = this.$handlers.length; l-- && !((o = this.$handlers[l].handleKeyboard(this.$data, e, t, n, i)) && o.command && ((a = "null" == o.command || s.exec(o.command, this.$editor, o.args, i)) && i && -1 != e && 1 != o.passEvent && 1 != o.command.passEvent && r.stopEvent(i), a)); ) ;
-return !a && -1 == e && (o = {
-command: "insertstring"
-}, a = s.exec("insertstring", this.$editor, t)), a && this.$editor._signal && this.$editor._signal("keyboardActivity", o), a;
-}, this.onCommandKey = function(e, t, n) {
-var r = i.keyCodeToString(n);
-this.$callKeyboardHandlers(t, r, n, e);
-}, this.onTextInput = function(e) {
-this.$callKeyboardHandlers(-1, e);
};
-}).call(o.prototype), t.KeyBinding = o;
-}), ace.define("ace/lib/bidiutil", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-function i(e, t, n, i) {
-var r = s ? p : f, g = null, m = null, v = null, b = 0, y = null, w = -1, C = null, $ = null, A = [];
-if (!i) for (C = 0, i = []; C < n; C++) i[C] = a(e[C]);
-for (l = s, c = !1, u = !1, d = !1, h = !1, $ = 0; $ < n; $++) {
-if (g = b, A[$] = m = o(e, i, A, $), b = r[g][m], y = 240 & b, b &= 15, t[$] = v = r[b][5], y > 0) if (16 == y) {
-for (C = w; C < $; C++) t[C] = 1;
-w = -1;
-} else w = -1;
-if (r[b][6]) -1 == w && (w = $); else if (w > -1) {
-for (C = w; C < $; C++) t[C] = v;
-w = -1;
+var Ie = new h(), Pe = new h(), Le = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, Oe = /[A-Z]/g;
+fe.extend({
+hasData: function(e) {
+return Pe.hasData(e) || Ie.hasData(e);
+},
+data: function(e, t, n) {
+return Pe.access(e, t, n);
+},
+removeData: function(e, t) {
+Pe.remove(e, t);
+},
+_data: function(e, t, n) {
+return Ie.access(e, t, n);
+},
+_removeData: function(e, t) {
+Ie.remove(e, t);
}
-i[$] == _ && (t[$] = 0), l |= v;
+}), fe.fn.extend({
+data: function(e, t) {
+var n, i, r, o = this[0], a = o && o.attributes;
+if (void 0 === e) {
+if (this.length && (r = Pe.get(o), 1 === o.nodeType && !Ie.get(o, "hasDataAttrs"))) {
+for (n = a.length; n--; ) a[n] && 0 === (i = a[n].name).indexOf("data-") && (i = fe.camelCase(i.slice(5)), p(o, i, r[i]));
+Ie.set(o, "hasDataAttrs", !0);
}
-if (h) for (C = 0; C < n; C++) if (i[C] == x) {
-t[C] = s;
-for (var k = C - 1; k >= 0 && i[k] == S; k--) t[k] = s;
+return r;
}
+return "object" == typeof e ? this.each(function() {
+Pe.set(this, e);
+}) : Fe(this, function(t) {
+var n;
+if (o && void 0 === t) {
+if (void 0 !== (n = Pe.get(o, e))) return n;
+if (void 0 !== (n = p(o, e))) return n;
+} else this.each(function() {
+Pe.set(this, e, t);
+});
+}, null, t, arguments.length > 1, null, !0);
+},
+removeData: function(e) {
+return this.each(function() {
+Pe.remove(this, e);
+});
}
-function r(e, t, n) {
-if (!(l < e)) if (1 != e || s != g || d) for (var i, r, o, a, c = n.length, u = 0; u < c; ) {
-if (t[u] >= e) {
-for (i = u + 1; i < c && t[i] >= e; ) i++;
-for (r = u, o = i - 1; r < o; r++, o--) a = n[r], n[r] = n[o], n[o] = a;
-u = i;
+}), fe.extend({
+queue: function(e, t, n) {
+var i;
+if (e) return t = (t || "fx") + "queue", i = Ie.get(e, t), n && (!i || Array.isArray(n) ? i = Ie.access(e, t, fe.makeArray(n)) : i.push(n)), i || [];
+},
+dequeue: function(e, t) {
+t = t || "fx";
+var n = fe.queue(e, t), i = n.length, r = n.shift(), o = fe._queueHooks(e, t);
+"inprogress" === r && (r = n.shift(), i--), r && ("fx" === t && n.unshift("inprogress"), delete o.stop, r.call(e, function() {
+fe.dequeue(e, t);
+}, o)), !i && o && o.empty.fire();
+},
+_queueHooks: function(e, t) {
+var n = t + "queueHooks";
+return Ie.get(e, n) || Ie.access(e, n, {
+empty: fe.Callbacks("once memory").add(function() {
+Ie.remove(e, [ t + "queue", n ]);
+})
+});
}
-u++;
-} else n.reverse();
+}), fe.fn.extend({
+queue: function(e, t) {
+var n = 2;
+return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? fe.queue(this[0], e) : void 0 === t ? this : this.each(function() {
+var n = fe.queue(this, e, t);
+fe._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && fe.dequeue(this, e);
+});
+},
+dequeue: function(e) {
+return this.each(function() {
+fe.dequeue(this, e);
+});
+},
+clearQueue: function(e) {
+return this.queue(e || "fx", []);
+},
+promise: function(e, t) {
+var n, i = 1, r = fe.Deferred(), o = this, a = this.length, s = function() {
+--i || r.resolveWith(o, [ o ]);
+};
+for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--; ) (n = Ie.get(o[a], e + "queueHooks")) && n.empty && (i++, n.empty.add(s));
+return s(), r.promise(t);
}
-function o(e, t, n, i) {
-var r, o, a, l, f = t[i];
-switch (f) {
-case m:
-case v:
-c = !1;
-
-case w:
-case y:
-return f;
-
-case b:
-return c ? y : b;
-
-case C:
-return c = !0, u = !0, v;
-
-case S:
-return w;
-
-case $:
-return i < 1 || i + 1 >= t.length || (r = n[i - 1]) != b && r != y || (o = t[i + 1]) != b && o != y ? w : (c && (o = y), o == r ? o : w);
-
-case A:
-return (r = i > 0 ? n[i - 1] : _) == b && i + 1 < t.length && t[i + 1] == b ? b : w;
-
-case k:
-if (i > 0 && n[i - 1] == b) return b;
-if (c) return w;
-for (l = i + 1, a = t.length; l < a && t[l] == k; ) l++;
-return l < a && t[l] == b ? b : w;
-
-case T:
-for (a = t.length, l = i + 1; l < a && t[l] == T; ) l++;
-if (l < a) {
-var p = e[i], g = p >= 1425 && p <= 2303 || 64286 == p;
-if (r = t[l], g && (r == v || r == C)) return v;
-}
-return i < 1 || (r = t[i - 1]) == _ ? w : n[i - 1];
-
-case _:
-return c = !1, d = !0, s;
-
-case x:
-return h = !0, w;
-
-case D:
-case E:
-case M:
-case I:
-case F:
-c = !1;
-
-case P:
-return w;
-}
-}
-function a(e) {
-var t = e.charCodeAt(0), n = t >> 8;
-return 0 == n ? t > 191 ? m : L[t] : 5 == n ? /[\u0591-\u05f4]/.test(e) ? v : m : 6 == n ? /[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e) ? T : /[\u0660-\u0669\u066b-\u066c]/.test(e) ? y : 1642 == t ? k : /[\u06f0-\u06f9]/.test(e) ? b : C : 32 == n && t <= 8287 ? O[255 & t] : 254 == n && t >= 65136 ? C : w;
+});
+var Re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, Ne = new RegExp("^(?:([+-])=|)(" + Re + ")([a-z%]*)$", "i"), Be = [ "Top", "Right", "Bottom", "Left" ], je = function(e, t) {
+return "none" === (e = t || e).style.display || "" === e.style.display && fe.contains(e.ownerDocument, e) && "none" === fe.css(e, "display");
+}, He = function(e, t, n, i) {
+var r, o, a = {};
+for (o in t) a[o] = e.style[o], e.style[o] = t[o];
+r = n.apply(e, i || []);
+for (o in t) e.style[o] = a[o];
+return r;
+}, Ve = {};
+fe.fn.extend({
+show: function() {
+return v(this, !0);
+},
+hide: function() {
+return v(this);
+},
+toggle: function(e) {
+return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
+je(this) ? fe(this).show() : fe(this).hide();
+});
}
-var s = 0, l = 0, c = !1, u = !1, d = !1, h = !1, f = [ [ 0, 3, 0, 1, 0, 0, 0 ], [ 0, 3, 0, 1, 2, 2, 0 ], [ 0, 3, 0, 17, 2, 0, 1 ], [ 0, 3, 5, 5, 4, 1, 0 ], [ 0, 3, 21, 21, 4, 0, 1 ], [ 0, 3, 5, 5, 4, 2, 0 ] ], p = [ [ 2, 0, 1, 1, 0, 1, 0 ], [ 2, 0, 1, 1, 0, 2, 0 ], [ 2, 0, 2, 1, 3, 2, 0 ], [ 2, 0, 2, 33, 3, 1, 1 ] ], g = 1, m = 0, v = 1, b = 2, y = 3, w = 4, _ = 5, x = 6, C = 7, S = 8, $ = 9, A = 10, k = 11, T = 12, D = 13, E = 14, F = 15, M = 16, I = 17, P = 18, L = [ P, P, P, P, P, P, P, P, P, x, _, x, S, _, P, P, P, P, P, P, P, P, P, P, P, P, P, P, _, _, _, x, S, w, w, k, k, k, w, w, w, w, w, A, $, A, $, $, b, b, b, b, b, b, b, b, b, b, $, w, w, w, w, w, w, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, w, w, w, w, w, w, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, m, w, w, w, w, P, P, P, P, P, P, _, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, $, w, k, k, k, k, w, w, w, w, m, w, w, P, w, w, k, k, b, b, w, m, w, w, w, b, m, w, w, w, w, w ], O = [ S, S, S, S, S, S, S, S, S, S, S, P, P, P, m, v, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, S, _, D, E, F, M, I, $, k, k, k, k, k, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, $, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, S ];
-t.L = m, t.R = v, t.EN = b, t.ON_R = 3, t.AN = 4, t.R_H = 5, t.B = 6, t.DOT = "·", t.doBidiReorder = function(e, n, o) {
-if (e.length < 2) return {};
-var a = e.split(""), l = new Array(a.length), c = new Array(a.length), u = [];
-s = o ? g : 0, i(a, u, a.length, n);
-for (d = 0; d < l.length; l[d] = d, d++) ;
-r(2, u, l), r(1, u, l);
-for (d = 0; d < l.length - 1; d++) n[d] === y ? u[d] = t.AN : u[d] === v && (n[d] > C && n[d] < D || n[d] === w || n[d] === P) ? u[d] = t.ON_R : d > 0 && "ل" === a[d - 1] && /\u0622|\u0623|\u0625|\u0627/.test(a[d]) && (u[d - 1] = u[d] = t.R_H, d++);
-a[a.length - 1] === t.DOT && (u[a.length - 1] = t.B);
-for (var d = 0; d < l.length; d++) c[d] = u[l[d]];
-return {
-logicalFromVisual: l,
-bidiLevels: c
-};
-}, t.hasBidiCharacters = function(e, t) {
-for (var n = !1, i = 0; i < e.length; i++) t[i] = a(e.charAt(i)), !n && (t[i] == v || t[i] == C) && (n = !0);
-return n;
-}, t.getVisualFromLogicalIdx = function(e, t) {
-for (var n = 0; n < t.logicalFromVisual.length; n++) if (t.logicalFromVisual[n] == e) return n;
-return 0;
-};
-}), ace.define("ace/bidihandler", [ "require", "exports", "module", "ace/lib/bidiutil", "ace/lib/lang", "ace/lib/useragent" ], function(e, t, n) {
-"use strict";
-var i = e("./lib/bidiutil"), r = e("./lib/lang"), o = e("./lib/useragent"), a = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/, s = function(e) {
-this.session = e, this.bidiMap = {}, this.currentRow = null, this.bidiUtil = i, this.charWidths = [], this.EOL = "¬", this.showInvisibles = !0, this.isRtlDir = !1, this.line = "", this.wrapIndent = 0, this.isLastRow = !1, this.EOF = "¶", this.seenBidi = !1;
+});
+var Ue = /^(?:checkbox|radio)$/i, ze = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, We = /^$|\/(?:java|ecma)script/i, qe = {
+option: [ 1, "" ],
+thead: [ 1, "" ],
+col: [ 2, "" ],
+tr: [ 2, "" ],
+td: [ 3, "" ],
+_default: [ 0, "", "" ]
};
-(function() {
-this.isBidiRow = function(e, t, n) {
-return !!this.seenBidi && (e !== this.currentRow && (this.currentRow = e, this.updateRowLine(t, n), this.updateBidiMap()), this.bidiMap.bidiLevels);
-}, this.onChange = function(e) {
-this.seenBidi ? this.currentRow = null : "insert" == e.action && a.test(e.lines.join("\n")) && (this.seenBidi = !0, this.currentRow = null);
-}, this.getDocumentRow = function() {
-var e = 0, t = this.session.$screenRowCache;
-if (t.length) {
-var n = this.session.$getRowCacheIndex(t, this.currentRow);
-n >= 0 && (e = this.session.$docRowCache[n]);
+qe.optgroup = qe.option, qe.tbody = qe.tfoot = qe.colgroup = qe.caption = qe.thead, qe.th = qe.td;
+var Ge = /<|?\w+;/;
+!function() {
+var e = te.createDocumentFragment().appendChild(te.createElement("div")), t = te.createElement("input");
+t.setAttribute("type", "radio"), t.setAttribute("checked", "checked"), t.setAttribute("name", "t"), e.appendChild(t), he.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, e.innerHTML = "", he.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue;
+}();
+var Ye = te.documentElement, Ke = /^key/, Xe = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Qe = /^([^.]*)(?:\.(.+)|)/;
+fe.event = {
+global: {},
+add: function(e, t, n, i, r) {
+var o, a, s, l, c, u, d, h, f, p, g, m = Ie.get(e);
+if (m) for (n.handler && (n = (o = n).handler, r = o.selector), r && fe.find.matchesSelector(Ye, r), n.guid || (n.guid = fe.guid++), (l = m.events) || (l = m.events = {}), (a = m.handle) || (a = m.handle = function(t) {
+return void 0 !== fe && fe.event.triggered !== t.type ? fe.event.dispatch.apply(e, arguments) : void 0;
+}), c = (t = (t || "").match(Te) || [ "" ]).length; c--; ) f = g = (s = Qe.exec(t[c]) || [])[1], p = (s[2] || "").split(".").sort(), f && (d = fe.event.special[f] || {}, f = (r ? d.delegateType : d.bindType) || f, d = fe.event.special[f] || {}, u = fe.extend({
+type: f,
+origType: g,
+data: i,
+handler: n,
+guid: n.guid,
+selector: r,
+needsContext: r && fe.expr.match.needsContext.test(r),
+namespace: p.join(".")
+}, o), (h = l[f]) || ((h = l[f] = []).delegateCount = 0, d.setup && !1 !== d.setup.call(e, i, p, a) || e.addEventListener && e.addEventListener(f, a)), d.add && (d.add.call(e, u), u.handler.guid || (u.handler.guid = n.guid)), r ? h.splice(h.delegateCount++, 0, u) : h.push(u), fe.event.global[f] = !0);
+},
+remove: function(e, t, n, i, r) {
+var o, a, s, l, c, u, d, h, f, p, g, m = Ie.hasData(e) && Ie.get(e);
+if (m && (l = m.events)) {
+for (c = (t = (t || "").match(Te) || [ "" ]).length; c--; ) if (s = Qe.exec(t[c]) || [], f = g = s[1], p = (s[2] || "").split(".").sort(), f) {
+for (d = fe.event.special[f] || {}, h = l[f = (i ? d.delegateType : d.bindType) || f] || [], s = s[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = h.length; o--; ) u = h[o], !r && g !== u.origType || n && n.guid !== u.guid || s && !s.test(u.namespace) || i && i !== u.selector && ("**" !== i || !u.selector) || (h.splice(o, 1), u.selector && h.delegateCount--, d.remove && d.remove.call(e, u));
+a && !h.length && (d.teardown && !1 !== d.teardown.call(e, p, m.handle) || fe.removeEvent(e, f, m.handle), delete l[f]);
+} else for (f in l) fe.event.remove(e, f + t[c], n, i, !0);
+fe.isEmptyObject(l) && Ie.remove(e, "handle events");
}
-return e;
-}, this.getSplitIndex = function() {
-var e = 0, t = this.session.$screenRowCache;
-if (t.length) for (var n, i = this.session.$getRowCacheIndex(t, this.currentRow); this.currentRow - e > 0 && (n = this.session.$getRowCacheIndex(t, this.currentRow - e - 1)) === i; ) i = n, e++;
-return e;
-}, this.updateRowLine = function(e, t) {
-if (void 0 === e && (e = this.getDocumentRow()), this.wrapIndent = 0, this.isLastRow = e === this.session.getLength() - 1, this.line = this.session.getLine(e), this.session.$useWrapMode) {
-var n = this.session.$wrapData[e];
-n && (void 0 === t && (t = this.getSplitIndex()), t > 0 && n.length ? (this.wrapIndent = n.indent, this.line = t < n.length ? this.line.substring(n[t - 1], n[n.length - 1]) : this.line.substring(n[n.length - 1])) : this.line = this.line.substring(0, n[t]));
+},
+dispatch: function(e) {
+var t, n, i, r, o, a, s = fe.event.fix(e), l = new Array(arguments.length), c = (Ie.get(this, "events") || {})[s.type] || [], u = fe.event.special[s.type] || {};
+for (l[0] = s, t = 1; t < arguments.length; t++) l[t] = arguments[t];
+if (s.delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, s)) {
+for (a = fe.event.handlers.call(this, s, c), t = 0; (r = a[t++]) && !s.isPropagationStopped(); ) for (s.currentTarget = r.elem, n = 0; (o = r.handlers[n++]) && !s.isImmediatePropagationStopped(); ) s.rnamespace && !s.rnamespace.test(o.namespace) || (s.handleObj = o, s.data = o.data, void 0 !== (i = ((fe.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, l)) && !1 === (s.result = i) && (s.preventDefault(), s.stopPropagation()));
+return u.postDispatch && u.postDispatch.call(this, s), s.result;
}
-var o, a = this.session, s = 0;
-this.line = this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g, function(e, t) {
-return "\t" === e || a.isFullWidth(e.charCodeAt(0)) ? (o = "\t" === e ? a.getScreenTabSize(t + s) : 2, s += o - 1, r.stringRepeat(i.DOT, o)) : e;
+},
+handlers: function(e, t) {
+var n, i, r, o, a, s = [], l = t.delegateCount, c = e.target;
+if (l && c.nodeType && !("click" === e.type && e.button >= 1)) for (;c !== this; c = c.parentNode || this) if (1 === c.nodeType && ("click" !== e.type || !0 !== c.disabled)) {
+for (o = [], a = {}, n = 0; n < l; n++) void 0 === a[r = (i = t[n]).selector + " "] && (a[r] = i.needsContext ? fe(r, this).index(c) > -1 : fe.find(r, this, null, [ c ]).length), a[r] && o.push(i);
+o.length && s.push({
+elem: c,
+handlers: o
});
-}, this.updateBidiMap = function() {
-var e = [], t = this.isLastRow ? this.EOF : this.EOL, n = this.line + (this.showInvisibles ? t : i.DOT);
-i.hasBidiCharacters(n, e) ? this.bidiMap = i.doBidiReorder(n, e, this.isRtlDir) : this.bidiMap = {};
-}, this.markAsDirty = function() {
-this.currentRow = null;
-}, this.updateCharacterWidths = function(e) {
-if (this.seenBidi && this.characterWidth !== e.$characterSize.width) {
-var t = this.characterWidth = e.$characterSize.width, n = e.$measureCharWidth("ה");
-this.charWidths[i.L] = this.charWidths[i.EN] = this.charWidths[i.ON_R] = t, this.charWidths[i.R] = this.charWidths[i.AN] = n, this.charWidths[i.R_H] = o.isChrome ? n : .45 * n, this.charWidths[i.B] = 0, this.currentRow = null;
-}
-}, this.getShowInvisibles = function() {
-return this.showInvisibles;
-}, this.setShowInvisibles = function(e) {
-this.showInvisibles = e, this.currentRow = null;
-}, this.setEolChar = function(e) {
-this.EOL = e;
-}, this.setTextDir = function(e) {
-this.isRtlDir = e;
-}, this.getPosLeft = function(e) {
-e -= this.wrapIndent;
-var t = i.getVisualFromLogicalIdx(e > 0 ? e - 1 : 0, this.bidiMap), n = this.bidiMap.bidiLevels, r = 0;
-0 === e && n[t] % 2 != 0 && t++;
-for (var o = 0; o < t; o++) r += this.charWidths[n[o]];
-return 0 !== e && n[t] % 2 == 0 && (r += this.charWidths[n[t]]), this.wrapIndent && (r += this.wrapIndent * this.charWidths[i.L]), r;
-}, this.getSelections = function(e, t) {
-for (var n, r, o = this.bidiMap, a = o.bidiLevels, s = this.wrapIndent * this.charWidths[i.L], l = [], c = Math.min(e, t) - this.wrapIndent, u = Math.max(e, t) - this.wrapIndent, d = !1, h = !1, f = 0, p = 0; p < a.length; p++) r = o.logicalFromVisual[p], n = a[p], (d = r >= c && r < u) && !h ? f = s : !d && h && l.push({
-left: f,
-width: s - f
-}), s += this.charWidths[n], h = d;
-return d && p === a.length && l.push({
-left: f,
-width: s - f
-}), l;
-}, this.offsetToCol = function(e) {
-var t = 0, e = Math.max(e, 0), n = 0, r = 0, o = this.bidiMap.bidiLevels, a = this.charWidths[o[r]];
-for (this.wrapIndent && (e -= this.wrapIndent * this.charWidths[i.L]); e > n + a / 2; ) {
-if (n += a, r === o.length - 1) {
-a = 0;
-break;
-}
-a = this.charWidths[o[++r]];
}
-return r > 0 && o[r - 1] % 2 != 0 && o[r] % 2 == 0 ? (e < n && r--, t = this.bidiMap.logicalFromVisual[r]) : r > 0 && o[r - 1] % 2 == 0 && o[r] % 2 != 0 ? t = 1 + (e > n ? this.bidiMap.logicalFromVisual[r] : this.bidiMap.logicalFromVisual[r - 1]) : this.isRtlDir && r === o.length - 1 && 0 === a && o[r - 1] % 2 == 0 || !this.isRtlDir && 0 === r && o[r] % 2 != 0 ? t = 1 + this.bidiMap.logicalFromVisual[r] : (r > 0 && o[r - 1] % 2 != 0 && 0 !== a && r--, t = this.bidiMap.logicalFromVisual[r]), t + this.wrapIndent;
-};
-}).call(s.prototype), t.BidiHandler = s;
-}), ace.define("ace/range", [ "require", "exports", "module" ], function(e, t, n) {
-"use strict";
-var i = function(e, t, n, i) {
-this.start = {
-row: e,
-column: t
-}, this.end = {
-row: n,
-column: i
-};
-};
-(function() {
-this.isEqual = function(e) {
-return this.start.row === e.start.row && this.end.row === e.end.row && this.start.column === e.start.column && this.end.column === e.end.column;
-}, this.toString = function() {
-return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]";
-}, this.contains = function(e, t) {
-return 0 == this.compare(e, t);
-}, this.compareRange = function(e) {
-var t, n = e.end, i = e.start;
-return 1 == (t = this.compare(n.row, n.column)) ? 1 == (t = this.compare(i.row, i.column)) ? 2 : 0 == t ? 1 : 0 : -1 == t ? -2 : -1 == (t = this.compare(i.row, i.column)) ? -1 : 1 == t ? 42 : 0;
-}, this.comparePoint = function(e) {
-return this.compare(e.row, e.column);
-}, this.containsRange = function(e) {
-return 0 == this.comparePoint(e.start) && 0 == this.comparePoint(e.end);
-}, this.intersects = function(e) {
-var t = this.compareRange(e);
-return -1 == t || 0 == t || 1 == t;
-}, this.isEnd = function(e, t) {
-return this.end.row == e && this.end.column == t;
-}, this.isStart = function(e, t) {
-return this.start.row == e && this.start.column == t;
-}, this.setStart = function(e, t) {
-"object" == typeof e ? (this.start.column = e.column, this.start.row = e.row) : (this.start.row = e, this.start.column = t);
-}, this.setEnd = function(e, t) {
-"object" == typeof e ? (this.end.column = e.column, this.end.row = e.row) : (this.end.row = e, this.end.column = t);
-}, this.inside = function(e, t) {
-return 0 == this.compare(e, t) && (!this.isEnd(e, t) && !this.isStart(e, t));
-}, this.insideStart = function(e, t) {
-return 0 == this.compare(e, t) && !this.isEnd(e, t);
-}, this.insideEnd = function(e, t) {
-return 0 == this.compare(e, t) && !this.isStart(e, t);
-}, this.compare = function(e, t) {
-return this.isMultiLine() || e !== this.start.row ? e < this.start.row ? -1 : e > this.end.row ? 1 : this.start.row === e ? t >= this.start.column ? 0 : -1 : this.end.row === e ? t <= this.end.column ? 0 : 1 : 0 : t < this.start.column ? -1 : t > this.end.column ? 1 : 0;
-}, this.compareStart = function(e, t) {
-return this.start.row == e && this.start.column == t ? -1 : this.compare(e, t);
-}, this.compareEnd = function(e, t) {
-return this.end.row == e && this.end.column == t ? 1 : this.compare(e, t);
-}, this.compareInside = function(e, t) {
-return this.end.row == e && this.end.column == t ? 1 : this.start.row == e && this.start.column == t ? -1 : this.compare(e, t);
-}, this.clipRows = function(e, t) {
-if (this.end.row > t) n = {
-row: t + 1,
-column: 0
-}; else if (this.end.row < e) var n = {
-row: e,
-column: 0
-};
-if (this.start.row > t) r = {
-row: t + 1,
-column: 0
-}; else if (this.start.row < e) var r = {
-row: e,
-column: 0
-};
-return i.fromPoints(r || this.start, n || this.end);
-}, this.extend = function(e, t) {
-var n = this.compare(e, t);
-if (0 == n) return this;
-if (-1 == n) var r = {
-row: e,
-column: t
-}; else var o = {
-row: e,
-column: t
-};
-return i.fromPoints(r || this.start, o || this.end);
-}, this.isEmpty = function() {
-return this.start.row === this.end.row && this.start.column === this.end.column;
-}, this.isMultiLine = function() {
-return this.start.row !== this.end.row;
-}, this.clone = function() {
-return i.fromPoints(this.start, this.end);
-}, this.collapseRows = function() {
-return 0 == this.end.column ? new i(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0) : new i(this.start.row, 0, this.end.row, 0);
-}, this.toScreenRange = function(e) {
-var t = e.documentToScreenPosition(this.start), n = e.documentToScreenPosition(this.end);
-return new i(t.row, t.column, n.row, n.column);
-}, this.moveBy = function(e, t) {
-this.start.row += e, this.start.column += t, this.end.row += e, this.end.column += t;
-};
-}).call(i.prototype), i.fromPoints = function(e, t) {
-return new i(e.row, e.column, t.row, t.column);
-}, i.comparePoints = function(e, t) {
-return e.row - t.row || e.column - t.column;
-}, i.comparePoints = function(e, t) {
-return e.row - t.row || e.column - t.column;
-}, t.Range = i;
-}), ace.define("ace/selection", [ "require", "exports", "module", "ace/lib/oop", "ace/lib/lang", "ace/lib/event_emitter", "ace/range" ], function(e, t, n) {
-"use strict";
-var i = e("./lib/oop"), r = e("./lib/lang"), o = e("./lib/event_emitter").EventEmitter, a = e("./range").Range, s = function(e) {
-this.session = e, this.doc = e.getDocument(), this.clearSelection(), this.lead = this.selectionLead = this.doc.createAnchor(0, 0), this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);
-var t = this;
-this.lead.on("change", function(e) {
-t._emit("changeCursor"), t.$isEmpty || t._emit("changeSelection"), !t.$keepDesiredColumnOnChange && e.old.column != e.value.column && (t.$desiredColumn = null);
-}), this.selectionAnchor.on("change", function() {
-t.$isEmpty || t._emit("changeSelection");
-});
-};
-(function() {
-i.implement(this, o), this.isEmpty = function() {
-return this.$isEmpty || this.anchor.row == this.lead.row && this.anchor.column == this.lead.column;
-}, this.isMultiLine = function() {
-return !this.isEmpty() && this.getRange().isMultiLine();
-}, this.getCursor = function() {
-return this.lead.getPosition();
-}, this.setSelectionAnchor = function(e, t) {
-this.anchor.setPosition(e, t), this.$isEmpty && (this.$isEmpty = !1, this._emit("changeSelection"));
-}, this.getSelectionAnchor = function() {
-return this.$isEmpty ? this.getSelectionLead() : this.anchor.getPosition();
-}, this.getSelectionLead = function() {
-return this.lead.getPosition();
-}, this.shiftSelection = function(e) {
-if (this.$isEmpty) this.moveCursorTo(this.lead.row, this.lead.column + e); else {
-var t = this.getSelectionAnchor(), n = this.getSelectionLead(), i = this.isBackwards();
-(!i || 0 !== t.column) && this.setSelectionAnchor(t.row, t.column + e), (i || 0 !== n.column) && this.$moveSelection(function() {
-this.moveCursorTo(n.row, n.column + e);
+return c = this, l < t.length && s.push({
+elem: c,
+handlers: t.slice(l)
+}), s;
+},
+addProp: function(e, t) {
+Object.defineProperty(fe.Event.prototype, e, {
+enumerable: !0,
+configurable: !0,
+get: fe.isFunction(t) ? function() {
+if (this.originalEvent) return t(this.originalEvent);
+} : function() {
+if (this.originalEvent) return this.originalEvent[e];
+},
+set: function(t) {
+Object.defineProperty(this, e, {
+enumerable: !0,
+configurable: !0,
+writable: !0,
+value: t
});
}
-}, this.isBackwards = function() {
-var e = this.anchor, t = this.lead;
-return e.row > t.row || e.row == t.row && e.column > t.column;
-}, this.getRange = function() {
-var e = this.anchor, t = this.lead;
-return this.isEmpty() ? a.fromPoints(t, t) : this.isBackwards() ? a.fromPoints(t, e) : a.fromPoints(e, t);
-}, this.clearSelection = function() {
-this.$isEmpty || (this.$isEmpty = !0, this._emit("changeSelection"));
-}, this.selectAll = function() {
-var e = this.doc.getLength() - 1;
-this.setSelectionAnchor(0, 0), this.moveCursorTo(e, this.doc.getLine(e).length);
-}, this.setRange = this.setSelectionRange = function(e, t) {
-t ? (this.setSelectionAnchor(e.end.row, e.end.column), this.selectTo(e.start.row, e.start.column)) : (this.setSelectionAnchor(e.start.row, e.start.column), this.selectTo(e.end.row, e.end.column)), this.getRange().isEmpty() && (this.$isEmpty = !0), this.$desiredColumn = null;
-}, this.$moveSelection = function(e) {
-var t = this.lead;
-this.$isEmpty && this.setSelectionAnchor(t.row, t.column), e.call(this);
-}, this.selectTo = function(e, t) {
-this.$moveSelection(function() {
-this.moveCursorTo(e, t);
-});
-}, this.selectToPosition = function(e) {
-this.$moveSelection(function() {
-this.moveCursorToPosition(e);
});
-}, this.moveTo = function(e, t) {
-this.clearSelection(), this.moveCursorTo(e, t);
-}, this.moveToPosition = function(e) {
-this.clearSelection(), this.moveCursorToPosition(e);
-}, this.selectUp = function() {
-this.$moveSelection(this.moveCursorUp);
-}, this.selectDown = function() {
-this.$moveSelection(this.moveCursorDown);
-}, this.selectRight = function() {
-this.$moveSelection(this.moveCursorRight);
-}, this.selectLeft = function() {
-this.$moveSelection(this.moveCursorLeft);
-}, this.selectLineStart = function() {
-this.$moveSelection(this.moveCursorLineStart);
-}, this.selectLineEnd = function() {
-this.$moveSelection(this.moveCursorLineEnd);
-}, this.selectFileEnd = function() {
-this.$moveSelection(this.moveCursorFileEnd);
-}, this.selectFileStart = function() {
-this.$moveSelection(this.moveCursorFileStart);
-}, this.selectWordRight = function() {
-this.$moveSelection(this.moveCursorWordRight);
-}, this.selectWordLeft = function() {
-this.$moveSelection(this.moveCursorWordLeft);
-}, this.getWordRange = function(e, t) {
-if (void 0 === t) {
-var n = e || this.lead;
-e = n.row, t = n.column;
+},
+fix: function(e) {
+return e[fe.expando] ? e : new fe.Event(e);
+},
+special: {
+load: {
+noBubble: !0
+},
+focus: {
+trigger: function() {
+if (this !== C() && this.focus) return this.focus(), !1;
+},
+delegateType: "focusin"
+},
+blur: {
+trigger: function() {
+if (this === C() && this.blur) return this.blur(), !1;
+},
+delegateType: "focusout"
+},
+click: {
+trigger: function() {
+if ("checkbox" === this.type && this.click && r(this, "input")) return this.click(), !1;
+},
+_default: function(e) {
+return r(e.target, "a");
}
-return this.session.getWordRange(e, t);
-}, this.selectWord = function() {
-this.setSelectionRange(this.getWordRange());
-}, this.selectAWord = function() {
-var e = this.getCursor(), t = this.session.getAWordRange(e.row, e.column);
-this.setSelectionRange(t);
-}, this.getLineRange = function(e, t) {
-var n, i = "number" == typeof e ? e : this.lead.row, r = this.session.getFoldLine(i);
-return r ? (i = r.start.row, n = r.end.row) : n = i, !0 === t ? new a(i, 0, n, this.session.getLine(n).length) : new a(i, 0, n + 1, 0);
-}, this.selectLine = function() {
-this.setSelectionRange(this.getLineRange());
-}, this.moveCursorUp = function() {
-this.moveCursorBy(-1, 0);
-}, this.moveCursorDown = function() {
-this.moveCursorBy(1, 0);
-}, this.wouldMoveIntoSoftTab = function(e, t, n) {
-var i = e.column, r = e.column + t;
-return n < 0 && (i = e.column - t, r = e.column), this.session.isTabStop(e) && this.doc.getLine(e.row).slice(i, r).split(" ").length - 1 == t;
-}, this.moveCursorLeft = function() {
-var e, t = this.lead.getPosition();
-if (e = this.session.getFoldAt(t.row, t.column, -1)) this.moveCursorTo(e.start.row, e.start.column); else if (0 === t.column) t.row > 0 && this.moveCursorTo(t.row - 1, this.doc.getLine(t.row - 1).length); else {
-var n = this.session.getTabSize();
-this.wouldMoveIntoSoftTab(t, n, -1) && !this.session.getNavigateWithinSoftTabs() ? this.moveCursorBy(0, -n) : this.moveCursorBy(0, -1);
+},
+beforeunload: {
+postDispatch: function(e) {
+void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result);
}
-}, this.moveCursorRight = function() {
-var e, t = this.lead.getPosition();
-if (e = this.session.getFoldAt(t.row, t.column, 1)) this.moveCursorTo(e.end.row, e.end.column); else if (this.lead.column == this.doc.getLine(this.lead.row).length) this.lead.row < this.doc.getLength() - 1 && this.moveCursorTo(this.lead.row + 1, 0); else {
-var n = this.session.getTabSize(), t = this.lead;
-this.wouldMoveIntoSoftTab(t, n, 1) && !this.session.getNavigateWithinSoftTabs() ? this.moveCursorBy(0, n) : this.moveCursorBy(0, 1);
}
-}, this.moveCursorLineStart = function() {
-var e = this.lead.row, t = this.lead.column, n = this.session.documentToScreenRow(e, t), i = this.session.screenToDocumentPosition(n, 0), r = this.session.getDisplayLine(e, null, i.row, i.column).match(/^\s*/);
-r[0].length != t && !this.session.$useEmacsStyleLineStart && (i.column += r[0].length), this.moveCursorToPosition(i);
-}, this.moveCursorLineEnd = function() {
-var e = this.lead, t = this.session.getDocumentLastRowColumnPosition(e.row, e.column);
-if (this.lead.column == t.column) {
-var n = this.session.getLine(t.row);
-if (t.column == n.length) {
-var i = n.search(/\s+$/);
-i > 0 && (t.column = i);
}
+}, fe.removeEvent = function(e, t, n) {
+e.removeEventListener && e.removeEventListener(t, n);
+}, fe.Event = function(e, t) {
+if (!(this instanceof fe.Event)) return new fe.Event(e, t);
+e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? _ : x, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && fe.extend(this, t), this.timeStamp = e && e.timeStamp || fe.now(), this[fe.expando] = !0;
+}, fe.Event.prototype = {
+constructor: fe.Event,
+isDefaultPrevented: x,
+isPropagationStopped: x,
+isImmediatePropagationStopped: x,
+isSimulated: !1,
+preventDefault: function() {
+var e = this.originalEvent;
+this.isDefaultPrevented = _, e && !this.isSimulated && e.preventDefault();
+},
+stopPropagation: function() {
+var e = this.originalEvent;
+this.isPropagationStopped = _, e && !this.isSimulated && e.stopPropagation();
+},
+stopImmediatePropagation: function() {
+var e = this.originalEvent;
+this.isImmediatePropagationStopped = _, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation();
}
-this.moveCursorTo(t.row, t.column);
-}, this.moveCursorFileEnd = function() {
-var e = this.doc.getLength() - 1, t = this.doc.getLine(e).length;
-this.moveCursorTo(e, t);
-}, this.moveCursorFileStart = function() {
-this.moveCursorTo(0, 0);
-}, this.moveCursorLongWordRight = function() {
-var e = this.lead.row, t = this.lead.column, n = this.doc.getLine(e), i = n.substring(t);
-this.session.nonTokenRe.lastIndex = 0, this.session.tokenRe.lastIndex = 0;
-var r = this.session.getFoldAt(e, t, 1);
-if (r) this.moveCursorTo(r.end.row, r.end.column); else {
-if (this.session.nonTokenRe.exec(i) && (t += this.session.nonTokenRe.lastIndex, this.session.nonTokenRe.lastIndex = 0, i = n.substring(t)), t >= n.length) return this.moveCursorTo(e, n.length), this.moveCursorRight(), void (e < this.doc.getLength() - 1 && this.moveCursorWordRight());
-this.session.tokenRe.exec(i) && (t += this.session.tokenRe.lastIndex, this.session.tokenRe.lastIndex = 0), this.moveCursorTo(e, t);
-}
-}, this.moveCursorLongWordLeft = function() {
-var e, t = this.lead.row, n = this.lead.column;
-if (e = this.session.getFoldAt(t, n, -1)) this.moveCursorTo(e.start.row, e.start.column); else {
-var i = this.session.getFoldStringAt(t, n, -1);
-null == i && (i = this.doc.getLine(t).substring(0, n));
-var o = r.stringReverse(i);
-if (this.session.nonTokenRe.lastIndex = 0, this.session.tokenRe.lastIndex = 0, this.session.nonTokenRe.exec(o) && (n -= this.session.nonTokenRe.lastIndex, o = o.slice(this.session.nonTokenRe.lastIndex), this.session.nonTokenRe.lastIndex = 0), n <= 0) return this.moveCursorTo(t, 0), this.moveCursorLeft(), void (t > 0 && this.moveCursorWordLeft());
-this.session.tokenRe.exec(o) && (n -= this.session.tokenRe.lastIndex, this.session.tokenRe.lastIndex = 0), this.moveCursorTo(t, n);
-}
-}, this.$shortWordEndIndex = function(e) {
-var t, n = 0, i = /\s/, r = this.session.tokenRe;
-if (r.lastIndex = 0, this.session.tokenRe.exec(e)) n = this.session.tokenRe.lastIndex; else {
-for (;(t = e[n]) && i.test(t); ) n++;
-if (n < 1) for (r.lastIndex = 0; (t = e[n]) && !r.test(t); ) if (r.lastIndex = 0, n++, i.test(t)) {
-if (n > 2) {
-n--;
-break;
-}
-for (;(t = e[n]) && i.test(t); ) n++;
-if (n > 2) break;
-}
-}
-return r.lastIndex = 0, n;
-}, this.moveCursorShortWordRight = function() {
-var e = this.lead.row, t = this.lead.column, n = this.doc.getLine(e), i = n.substring(t), r = this.session.getFoldAt(e, t, 1);
-if (r) return this.moveCursorTo(r.end.row, r.end.column);
-if (t == n.length) {
-var o = this.doc.getLength();
-do {
-e++, i = this.doc.getLine(e);
-} while (e < o && /^\s*$/.test(i));
-/^\s+/.test(i) || (i = ""), t = 0;
-}
-var a = this.$shortWordEndIndex(i);
-this.moveCursorTo(e, t + a);
-}, this.moveCursorShortWordLeft = function() {
-var e, t = this.lead.row, n = this.lead.column;
-if (e = this.session.getFoldAt(t, n, -1)) return this.moveCursorTo(e.start.row, e.start.column);
-var i = this.session.getLine(t).substring(0, n);
-if (0 === n) {
-do {
-t--, i = this.doc.getLine(t);
-} while (t > 0 && /^\s*$/.test(i));
-n = i.length, /\s+$/.test(i) || (i = "");
+}, fe.each({
+altKey: !0,
+bubbles: !0,
+cancelable: !0,
+changedTouches: !0,
+ctrlKey: !0,
+detail: !0,
+eventPhase: !0,
+metaKey: !0,
+pageX: !0,
+pageY: !0,
+shiftKey: !0,
+view: !0,
+char: !0,
+charCode: !0,
+key: !0,
+keyCode: !0,
+button: !0,
+buttons: !0,
+clientX: !0,
+clientY: !0,
+offsetX: !0,
+offsetY: !0,
+pointerId: !0,
+pointerType: !0,
+screenX: !0,
+screenY: !0,
+targetTouches: !0,
+toElement: !0,
+touches: !0,
+which: function(e) {
+var t = e.button;
+return null == e.which && Ke.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Xe.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which;
}
-var o = r.stringReverse(i), a = this.$shortWordEndIndex(o);
-return this.moveCursorTo(t, n - a);
-}, this.moveCursorWordRight = function() {
-this.session.$selectLongWords ? this.moveCursorLongWordRight() : this.moveCursorShortWordRight();
-}, this.moveCursorWordLeft = function() {
-this.session.$selectLongWords ? this.moveCursorLongWordLeft() : this.moveCursorShortWordLeft();
-}, this.moveCursorBy = function(e, t) {
-var n, i = this.session.documentToScreenPosition(this.lead.row, this.lead.column);
-0 === t && (0 !== e && (this.session.$bidiHandler.isBidiRow(i.row, this.lead.row) ? (n = this.session.$bidiHandler.getPosLeft(i.column), i.column = Math.round(n / this.session.$bidiHandler.charWidths[0])) : n = i.column * this.session.$bidiHandler.charWidths[0]), this.$desiredColumn ? i.column = this.$desiredColumn : this.$desiredColumn = i.column);
-var r = this.session.screenToDocumentPosition(i.row + e, i.column, n);
-0 !== e && 0 === t && r.row === this.lead.row && r.column === this.lead.column && this.session.lineWidgets && this.session.lineWidgets[r.row] && (r.row > 0 || e > 0) && r.row++, this.moveCursorTo(r.row, r.column + t, 0 === t);
-}, this.moveCursorToPosition = function(e) {
-this.moveCursorTo(e.row, e.column);
-}, this.moveCursorTo = function(e, t, n) {
-var i = this.session.getFoldAt(e, t, 1);
-i && (e = i.start.row, t = i.start.column), this.$keepDesiredColumnOnChange = !0;
-var r = this.session.getLine(e);
-/[\uDC00-\uDFFF]/.test(r.charAt(t)) && r.charAt(t - 1) && (this.lead.row == e && this.lead.column == t + 1 ? t -= 1 : t += 1), this.lead.setPosition(e, t), this.$keepDesiredColumnOnChange = !1, n || (this.$desiredColumn = null);
-}, this.moveCursorToScreen = function(e, t, n) {
-var i = this.session.screenToDocumentPosition(e, t);
-this.moveCursorTo(i.row, i.column, n);
-}, this.detach = function() {
-this.lead.detach(), this.anchor.detach(), this.session = this.doc = null;
-}, this.fromOrientedRange = function(e) {
-this.setSelectionRange(e, e.cursor == e.start), this.$desiredColumn = e.desiredColumn || this.$desiredColumn;
-}, this.toOrientedRange = function(e) {
-var t = this.getRange();
-return e ? (e.start.column = t.start.column, e.start.row = t.start.row, e.end.column = t.end.column, e.end.row = t.end.row) : e = t, e.cursor = this.isBackwards() ? e.start : e.end, e.desiredColumn = this.$desiredColumn, e;
-}, this.getRangeOfMovements = function(e) {
-var t = this.getCursor();
-try {
-e(this);
-var n = this.getCursor();
-return a.fromPoints(t, n);
-} catch (e) {
-return a.fromPoints(t, t);
-} finally {
-this.moveCursorToPosition(t);
+}, fe.event.addProp), fe.each({
+mouseenter: "mouseover",
+mouseleave: "mouseout",
+pointerenter: "pointerover",
+pointerleave: "pointerout"
+}, function(e, t) {
+fe.event.special[e] = {
+delegateType: t,
+bindType: t,
+handle: function(e) {
+var n, i = this, r = e.relatedTarget, o = e.handleObj;
+return r && (r === i || fe.contains(i, r)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n;
}
-}, this.toJSON = function() {
-if (this.rangeCount) var e = this.ranges.map(function(e) {
-var t = e.clone();
-return t.isBackwards = e.cursor == e.start, t;
-}); else (e = this.getRange()).isBackwards = this.isBackwards();
-return e;
-}, this.fromJSON = function(e) {
-if (void 0 == e.start) {
-if (this.rangeList) {
-this.toSingleRange(e[0]);
-for (var t = e.length; t--; ) {
-var n = a.fromPoints(e[t].start, e[t].end);
-e[t].isBackwards && (n.cursor = n.start), this.addRange(n, !0);
+};
+}), fe.fn.extend({
+on: function(e, t, n, i) {
+return S(this, e, t, n, i);
+},
+one: function(e, t, n, i) {
+return S(this, e, t, n, i, 1);
+},
+off: function(e, t, n) {
+var i, r;
+if (e && e.preventDefault && e.handleObj) return i = e.handleObj, fe(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
+if ("object" == typeof e) {
+for (r in e) this.off(r, t, e[r]);
+return this;
}
-return;
+return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = x), this.each(function() {
+fe.event.remove(this, e, n, t);
+});
}
-e = e[0];
+});
+var Ze = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, Je = /