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 = /\s*$/g; +fe.extend({ +htmlPrefilter: function(e) { +return e.replace(Ze, "<$1>"); +}, +clone: function(e, t, n) { +var i, r, o, a, s = e.cloneNode(!0), l = fe.contains(e.ownerDocument, e); +if (!(he.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || fe.isXMLDoc(e))) for (a = b(s), i = 0, r = (o = b(e)).length; i < r; i++) D(o[i], a[i]); +if (t) if (n) for (o = o || b(e), a = a || b(s), i = 0, r = o.length; i < r; i++) T(o[i], a[i]); else T(e, s); +return (a = b(s, "script")).length > 0 && y(a, !l && b(e, "script")), s; +}, +cleanData: function(e) { +for (var t, n, i, r = fe.event.special, o = 0; void 0 !== (n = e[o]); o++) if (Me(n)) { +if (t = n[Ie.expando]) { +if (t.events) for (i in t.events) r[i] ? fe.event.remove(n, i) : fe.removeEvent(n, i, t.handle); +n[Ie.expando] = void 0; } -this.rangeList && this.toSingleRange(e), this.setSelectionRange(e, e.isBackwards); -}, this.isEqual = function(e) { -if ((e.length || this.rangeCount) && e.length != this.rangeCount) return !1; -if (!e.length || !this.ranges) return this.getRange().isEqual(e); -for (var t = this.ranges.length; t--; ) if (!this.ranges[t].isEqual(e[t])) return !1; -return !0; -}; -}).call(s.prototype), t.Selection = s; -}), ace.define("ace/tokenizer", [ "require", "exports", "module", "ace/config" ], function(e, t, n) { -"use strict"; -var i = e("./config"), r = 2e3, o = function(e) { -this.states = e, this.regExps = {}, this.matchMappings = {}; -for (var t in this.states) { -for (var n = this.states[t], i = [], r = 0, o = this.matchMappings[t] = { -defaultToken: "text" -}, a = "g", s = [], l = 0; l < n.length; l++) { -var c = n[l]; -if (c.defaultToken && (o.defaultToken = c.defaultToken), c.caseInsensitive && (a = "gi"), null != c.regex) { -c.regex instanceof RegExp && (c.regex = c.regex.toString().slice(1, -1)); -var u = c.regex, d = new RegExp("(?:(" + u + ")|(.))").exec("a").length - 2; -Array.isArray(c.token) ? 1 == c.token.length || 1 == d ? c.token = c.token[0] : d - 1 != c.token.length ? (this.reportError("number of classes and regexp groups doesn't match", { -rule: c, -groupCount: d - 1 -}), c.token = c.token[0]) : (c.tokenArray = c.token, c.token = null, c.onMatch = this.$arrayTokens) : "function" == typeof c.token && !c.onMatch && (c.onMatch = d > 1 ? this.$applyToken : c.token), d > 1 && (/\\\d/.test(c.regex) ? u = c.regex.replace(/\\([0-9]+)/g, function(e, t) { -return "\\" + (parseInt(t, 10) + r + 1); -}) : (d = 1, u = this.removeCapturingGroups(c.regex)), !c.splitRegex && "string" != typeof c.token && s.push(c)), o[r] = l, r += d, i.push(u), c.onMatch || (c.onMatch = null); +n[Pe.expando] && (n[Pe.expando] = void 0); } } -i.length || (o[0] = 0, i.push("$")), s.forEach(function(e) { -e.splitRegex = this.createSplitterRegexp(e.regex, a); -}, this), this.regExps[t] = new RegExp("(" + i.join(")|(") + ")|($)", a); +}), fe.fn.extend({ +detach: function(e) { +return F(this, e, !0); +}, +remove: function(e) { +return F(this, e); +}, +text: function(e) { +return Fe(this, function(e) { +return void 0 === e ? fe.text(this) : this.empty().each(function() { +1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e); +}); +}, null, e, arguments.length); +}, +append: function() { +return E(this, arguments, function(e) { +1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || $(this, e).appendChild(e); +}); +}, +prepend: function() { +return E(this, arguments, function(e) { +if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { +var t = $(this, e); +t.insertBefore(e, t.firstChild); } -}; -(function() { -this.$setMaxTokenCount = function(e) { -r = 0 | e; -}, this.$applyToken = function(e) { -var t = this.splitRegex.exec(e).slice(1), n = this.token.apply(this, t); -if ("string" == typeof n) return [ { -type: n, -value: e -} ]; -for (var i = [], r = 0, o = n.length; r < o; r++) t[r] && (i[i.length] = { -type: n[r], -value: t[r] }); -return i; -}, this.$arrayTokens = function(e) { -if (!e) return []; -var t = this.splitRegex.exec(e); -if (!t) return "text"; -for (var n = [], i = this.tokenArray, r = 0, o = i.length; r < o; r++) t[r + 1] && (n[n.length] = { -type: i[r], -value: t[r + 1] +}, +before: function() { +return E(this, arguments, function(e) { +this.parentNode && this.parentNode.insertBefore(e, this); }); -return n; -}, this.removeCapturingGroups = function(e) { -return e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g, function(e, t) { -return t ? "(?:" : e; +}, +after: function() { +return E(this, arguments, function(e) { +this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); }); -}, this.createSplitterRegexp = function(e, t) { -if (-1 != e.indexOf("(?=")) { -var n = 0, i = !1, r = {}; -e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g, function(e, t, o, a, s, l) { -return i ? i = "]" != s : s ? i = !0 : a ? (n == r.stack && (r.end = l + 1, r.stack = -1), n--) : o && (n++, 1 != o.length && (r.stack = n, r.start = l)), e; -}), null != r.end && /^\)*$/.test(e.substr(r.end)) && (e = e.substring(0, r.start) + e.substr(r.end)); -} -return "^" != e.charAt(0) && (e = "^" + e), "$" != e.charAt(e.length - 1) && (e += "$"), new RegExp(e, (t || "").replace("g", "")); -}, this.getLineTokens = function(e, t) { -if (t && "string" != typeof t) "#tmp" === (t = (n = t.slice(0))[0]) && (n.shift(), t = n.shift()); else var n = []; -var i = t || "start", o = this.states[i]; -o || (i = "start", o = this.states[i]); -var a = this.matchMappings[i], s = this.regExps[i]; -s.lastIndex = 0; -for (var l, c = [], u = 0, d = 0, h = { -type: null, -value: "" -}; l = s.exec(e); ) { -var f = a.defaultToken, p = null, g = l[0], m = s.lastIndex; -if (m - g.length > u) { -var v = e.substring(u, m - g.length); -h.type == f ? h.value += v : (h.type && c.push(h), h = { -type: f, -value: v +}, +empty: function() { +for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (fe.cleanData(b(e, !1)), e.textContent = ""); +return this; +}, +clone: function(e, t) { +return e = null != e && e, t = null == t ? e : t, this.map(function() { +return fe.clone(this, e, t); }); +}, +html: function(e) { +return Fe(this, function(e) { +var t = this[0] || {}, n = 0, i = this.length; +if (void 0 === e && 1 === t.nodeType) return t.innerHTML; +if ("string" == typeof e && !Je.test(e) && !qe[(ze.exec(e) || [ "", "" ])[1].toLowerCase()]) { +e = fe.htmlPrefilter(e); +try { +for (;n < i; n++) 1 === (t = this[n] || {}).nodeType && (fe.cleanData(b(t, !1)), t.innerHTML = e); +t = 0; +} catch (e) {} } -for (b = 0; b < l.length - 2; b++) if (void 0 !== l[b + 1]) { -f = (p = o[a[b]]).onMatch ? p.onMatch(g, i, n, e) : p.token, p.next && (i = "string" == typeof p.next ? p.next : p.next(i, n), (o = this.states[i]) || (this.reportError("state doesn't exist", i), i = "start", o = this.states[i]), a = this.matchMappings[i], u = m, s = this.regExps[i], s.lastIndex = m), p.consumeLineEnd && (u = m); -break; +t && this.empty().append(e); +}, null, e, arguments.length); +}, +replaceWith: function() { +var e = []; +return E(this, arguments, function(t) { +var n = this.parentNode; +fe.inArray(this, e) < 0 && (fe.cleanData(b(this)), n && n.replaceChild(t, this)); +}, e); } -if (g) if ("string" == typeof f) p && !1 === p.merge || h.type !== f ? (h.type && c.push(h), h = { -type: f, -value: g -}) : h.value += g; else if (f) { -h.type && c.push(h), h = { -type: null, -value: "" +}), fe.each({ +appendTo: "append", +prependTo: "prepend", +insertBefore: "before", +insertAfter: "after", +replaceAll: "replaceWith" +}, function(e, t) { +fe.fn[e] = function(e) { +for (var n, i = [], r = fe(e), o = r.length - 1, a = 0; a <= o; a++) n = a === o ? this : this.clone(!0), fe(r[a])[t](n), oe.apply(i, n.get()); +return this.pushStack(i); }; -for (var b = 0; b < f.length; b++) c.push(f[b]); -} -if (u == e.length) break; -if (u = m, d++ > r) { -for (d > 2 * e.length && this.reportError("infinite loop with in ace tokenizer", { -startState: t, -line: e -}); u < e.length; ) h.type && c.push(h), h = { -value: e.substring(u, u += 2e3), -type: "overflow" +}); +var it = /^margin/, rt = new RegExp("^(" + Re + ")(?!px)[a-z%]+$", "i"), ot = function(t) { +var n = t.ownerDocument.defaultView; +return n && n.opener || (n = e), n.getComputedStyle(t); }; -i = "start", n = []; -break; +!function() { +function t() { +if (s) { +s.style.cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", s.innerHTML = "", Ye.appendChild(a); +var t = e.getComputedStyle(s); +n = "1%" !== t.top, o = "2px" === t.marginLeft, i = "4px" === t.width, s.style.marginRight = "50%", r = "4px" === t.marginRight, Ye.removeChild(a), s = null; } } -return h.type && c.push(h), n.length > 1 && n[0] !== i && n.unshift("#tmp", i), { -tokens: c, -state: n.length ? n : i -}; -}, this.reportError = i.reportError; -}).call(o.prototype), t.Tokenizer = o; -}), ace.define("ace/mode/text_highlight_rules", [ "require", "exports", "module", "ace/lib/lang" ], function(e, t, n) { -"use strict"; -var i = e("../lib/lang"), r = function() { -this.$rules = { -start: [ { -token: "empty_line", -regex: "^$" -}, { -defaultToken: "text" -} ] -}; -}; -(function() { -this.addRules = function(e, t) { -if (t) for (var n in e) { -for (var i = e[n], r = 0; r < i.length; r++) { -var o = i[r]; -(o.next || o.onMatch) && ("string" == typeof o.next && 0 !== o.next.indexOf(t) && (o.next = t + o.next), o.nextState && 0 !== o.nextState.indexOf(t) && (o.nextState = t + o.nextState)); +var n, i, r, o, a = te.createElement("div"), s = te.createElement("div"); +s.style && (s.style.backgroundClip = "content-box", s.cloneNode(!0).style.backgroundClip = "", he.clearCloneStyle = "content-box" === s.style.backgroundClip, a.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", a.appendChild(s), fe.extend(he, { +pixelPosition: function() { +return t(), n; +}, +boxSizingReliable: function() { +return t(), i; +}, +pixelMarginRight: function() { +return t(), r; +}, +reliableMarginLeft: function() { +return t(), o; } -this.$rules[t + n] = i; -} else for (var n in e) this.$rules[n] = e[n]; -}, this.getRules = function() { -return this.$rules; -}, this.embedRules = function(e, t, n, r, o) { -var a = "function" == typeof e ? new e().getRules() : e; -if (r) for (c = 0; c < r.length; c++) r[c] = t + r[c]; else { -r = []; -for (var s in a) r.push(t + s); +})); +}(); +var at = /^(none|table(?!-c[ea]).+)/, st = /^--/, lt = { +position: "absolute", +visibility: "hidden", +display: "block" +}, ct = { +letterSpacing: "0", +fontWeight: "400" +}, ut = [ "Webkit", "Moz", "ms" ], dt = te.createElement("div").style; +fe.extend({ +cssHooks: { +opacity: { +get: function(e, t) { +if (t) { +var n = M(e, "opacity"); +return "" === n ? "1" : n; } -if (this.addRules(a, t), n) for (var l = Array.prototype[o ? "push" : "unshift"], c = 0; c < r.length; c++) l.apply(this.$rules[r[c]], i.deepCopy(n)); -this.$embeds || (this.$embeds = []), this.$embeds.push(t); -}, this.getEmbeds = function() { -return this.$embeds; -}; -var e = function(e, t) { -return ("start" != e || t.length) && t.unshift(this.nextState, e), this.nextState; -}, t = function(e, t) { -return t.shift(), t.shift() || "start"; -}; -this.normalizeRules = function() { -function n(o) { -var a = r[o]; -a.processed = !0; -for (var s = 0; s < a.length; s++) { -var l = a[s], c = null; -Array.isArray(l) && (c = l, l = {}), !l.regex && l.start && (l.regex = l.start, l.next || (l.next = []), l.next.push({ -defaultToken: l.token -}, { -token: l.token + ".end", -regex: l.end || l.start, -next: "pop" -}), l.token = l.token + ".start", l.push = !0); -var u = l.next || l.push; -if (u && Array.isArray(u)) { -var d = l.stateName; -d || ("string" != typeof (d = l.token) && (d = d[0] || ""), r[d] && (d += i++)), r[d] = u, l.next = d, n(d); -} else "pop" == u && (l.next = t); -if (l.push && (l.nextState = l.next || l.push, l.next = e, delete l.push), l.rules) for (var h in l.rules) r[h] ? r[h].push && r[h].push.apply(r[h], l.rules[h]) : r[h] = l.rules[h]; -var f = "string" == typeof l ? l : l.include; -if (f && (c = Array.isArray(f) ? f.map(function(e) { -return r[e]; -}) : r[f]), c) { -var p = [ s, 1 ].concat(c); -l.noEscape && (p = p.filter(function(e) { -return !e.next; -})), a.splice.apply(a, p), s--; } -l.keywordMap && (l.token = this.createKeywordMapper(l.keywordMap, l.defaultToken || "text", l.caseInsensitive), delete l.defaultToken); } +}, +cssNumber: { +animationIterationCount: !0, +columnCount: !0, +fillOpacity: !0, +flexGrow: !0, +flexShrink: !0, +fontWeight: !0, +lineHeight: !0, +opacity: !0, +order: !0, +orphans: !0, +widows: !0, +zIndex: !0, +zoom: !0 +}, +cssProps: { +float: "cssFloat" +}, +style: function(e, t, n, i) { +if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { +var r, o, a, s = fe.camelCase(t), l = st.test(t), c = e.style; +if (l || (t = L(s)), a = fe.cssHooks[t] || fe.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (r = a.get(e, !1, i)) ? r : c[t]; +"string" == (o = typeof n) && (r = Ne.exec(n)) && r[1] && (n = g(e, t, r), o = "number"), null != n && n === n && ("number" === o && (n += r && r[3] || (fe.cssNumber[s] ? "" : "px")), he.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (c[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, i)) || (l ? c.setProperty(t, n) : c[t] = n)); +} +}, +css: function(e, t, n, i) { +var r, o, a, s = fe.camelCase(t); +return st.test(t) || (t = L(s)), (a = fe.cssHooks[t] || fe.cssHooks[s]) && "get" in a && (r = a.get(e, !0, n)), void 0 === r && (r = M(e, t, i)), "normal" === r && t in ct && (r = ct[t]), "" === n || n ? (o = parseFloat(r), !0 === n || isFinite(o) ? o || 0 : r) : r; +} +}), fe.each([ "height", "width" ], function(e, t) { +fe.cssHooks[t] = { +get: function(e, n, i) { +if (n) return !at.test(fe.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? N(e, t, i) : He(e, lt, function() { +return N(e, t, i); +}); +}, +set: function(e, n, i) { +var r, o = i && ot(e), a = i && R(e, t, i, "border-box" === fe.css(e, "boxSizing", !1, o), o); +return a && (r = Ne.exec(n)) && "px" !== (r[3] || "px") && (e.style[t] = n, n = fe.css(e, t)), O(0, n, a); } -var i = 0, r = this.$rules; -Object.keys(r).forEach(n, this); -}, this.createKeywordMapper = function(e, t, n, i) { -var r = Object.create(null); -return Object.keys(e).forEach(function(t) { -var o = e[t]; -n && (o = o.toLowerCase()); -for (var a = o.split(i || "|"), s = a.length; s--; ) r[a[s]] = t; -}), Object.getPrototypeOf(r) && (r.__proto__ = null), this.$keywordList = Object.keys(r), e = null, n ? function(e) { -return r[e.toLowerCase()] || t; -} : function(e) { -return r[e] || t; }; -}, this.getKeywords = function() { -return this.$keywords; -}; -}).call(r.prototype), t.TextHighlightRules = r; -}), ace.define("ace/mode/behaviour", [ "require", "exports", "module" ], function(e, t, n) { -"use strict"; -var i = function() { -this.$behaviours = {}; -}; -(function() { -this.add = function(e, t, n) { -switch (void 0) { -case this.$behaviours: -this.$behaviours = {}; - -case this.$behaviours[e]: -this.$behaviours[e] = {}; +}), fe.cssHooks.marginLeft = I(he.reliableMarginLeft, function(e, t) { +if (t) return (parseFloat(M(e, "marginLeft")) || e.getBoundingClientRect().left - He(e, { +marginLeft: 0 +}, function() { +return e.getBoundingClientRect().left; +})) + "px"; +}), fe.each({ +margin: "", +padding: "", +border: "Width" +}, function(e, t) { +fe.cssHooks[e + t] = { +expand: function(n) { +for (var i = 0, r = {}, o = "string" == typeof n ? n.split(" ") : [ n ]; i < 4; i++) r[e + Be[i] + t] = o[i] || o[i - 2] || o[0]; +return r; } -this.$behaviours[e][t] = n; -}, this.addBehaviours = function(e) { -for (var t in e) for (var n in e[t]) this.add(t, n, e[t][n]); -}, this.remove = function(e) { -this.$behaviours && this.$behaviours[e] && delete this.$behaviours[e]; -}, this.inherit = function(e, t) { -if ("function" == typeof e) n = new e().getBehaviours(t); else var n = e.getBehaviours(t); -this.addBehaviours(n); -}, this.getBehaviours = function(e) { -if (!e) return this.$behaviours; -for (var t = {}, n = 0; n < e.length; n++) this.$behaviours[e[n]] && (t[e[n]] = this.$behaviours[e[n]]); -return t; -}; -}).call(i.prototype), t.Behaviour = i; -}), ace.define("ace/token_iterator", [ "require", "exports", "module", "ace/range" ], function(e, t, n) { -"use strict"; -var i = e("./range").Range, r = function(e, t, n) { -this.$session = e, this.$row = t, this.$rowTokens = e.getTokens(t); -var i = e.getTokenAt(t, n); -this.$tokenIndex = i ? i.index : -1; -}; -(function() { -this.stepBackward = function() { -for (this.$tokenIndex -= 1; this.$tokenIndex < 0; ) { -if (this.$row -= 1, this.$row < 0) return this.$row = 0, null; -this.$rowTokens = this.$session.getTokens(this.$row), this.$tokenIndex = this.$rowTokens.length - 1; +}, it.test(e) || (fe.cssHooks[e + t].set = O); +}), fe.fn.extend({ +css: function(e, t) { +return Fe(this, function(e, t, n) { +var i, r, o = {}, a = 0; +if (Array.isArray(t)) { +for (i = ot(e), r = t.length; a < r; a++) o[t[a]] = fe.css(e, t[a], !1, i); +return o; } -return this.$rowTokens[this.$tokenIndex]; -}, this.stepForward = function() { -this.$tokenIndex += 1; -for (var e; this.$tokenIndex >= this.$rowTokens.length; ) { -if (this.$row += 1, e || (e = this.$session.getLength()), this.$row >= e) return this.$row = e - 1, null; -this.$rowTokens = this.$session.getTokens(this.$row), this.$tokenIndex = 0; +return void 0 !== n ? fe.style(e, t, n) : fe.css(e, t); +}, e, t, arguments.length > 1); } -return this.$rowTokens[this.$tokenIndex]; -}, this.getCurrentToken = function() { -return this.$rowTokens[this.$tokenIndex]; -}, this.getCurrentTokenRow = function() { -return this.$row; -}, this.getCurrentTokenColumn = function() { -var e = this.$rowTokens, t = this.$tokenIndex, n = e[t].start; -if (void 0 !== n) return n; -for (n = 0; t > 0; ) t -= 1, n += e[t].value.length; -return n; -}, this.getCurrentTokenPosition = function() { -return { -row: this.$row, -column: this.getCurrentTokenColumn() -}; -}, this.getCurrentTokenRange = function() { -var e = this.$rowTokens[this.$tokenIndex], t = this.getCurrentTokenColumn(); -return new i(this.$row, t, this.$row, t + e.value.length); +}), fe.Tween = B, B.prototype = { +constructor: B, +init: function(e, t, n, i, r, o) { +this.elem = e, this.prop = n, this.easing = r || fe.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = o || (fe.cssNumber[n] ? "" : "px"); +}, +cur: function() { +var e = B.propHooks[this.prop]; +return e && e.get ? e.get(this) : B.propHooks._default.get(this); +}, +run: function(e) { +var t, n = B.propHooks[this.prop]; +return this.options.duration ? this.pos = t = fe.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : B.propHooks._default.set(this), this; +} +}, B.prototype.init.prototype = B.prototype, B.propHooks = { +_default: { +get: function(e) { +var t; +return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = fe.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0; +}, +set: function(e) { +fe.fx.step[e.prop] ? fe.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[fe.cssProps[e.prop]] && !fe.cssHooks[e.prop] ? e.elem[e.prop] = e.now : fe.style(e.elem, e.prop, e.now + e.unit); +} +} +}, B.propHooks.scrollTop = B.propHooks.scrollLeft = { +set: function(e) { +e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); +} +}, fe.easing = { +linear: function(e) { +return e; +}, +swing: function(e) { +return .5 - Math.cos(e * Math.PI) / 2; +}, +_default: "swing" +}, fe.fx = B.prototype.init, fe.fx.step = {}; +var ht, ft, pt = /^(?:toggle|show|hide)$/, gt = /queueHooks$/; +fe.Animation = fe.extend(W, { +tweeners: { +"*": [ function(e, t) { +var n = this.createTween(e, t); +return g(n.elem, e, Ne.exec(t), n), n; +} ] +}, +tweener: function(e, t) { +fe.isFunction(e) ? (t = e, e = [ "*" ]) : e = e.match(Te); +for (var n, i = 0, r = e.length; i < r; i++) n = e[i], W.tweeners[n] = W.tweeners[n] || [], W.tweeners[n].unshift(t); +}, +prefilters: [ function(e, t, n) { +var i, r, o, a, s, l, c, u, d = "width" in t || "height" in t, h = this, f = {}, p = e.style, g = e.nodeType && je(e), m = Ie.get(e, "fxshow"); +n.queue || (null == (a = fe._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() { +a.unqueued || s(); +}), a.unqueued++, h.always(function() { +h.always(function() { +a.unqueued--, fe.queue(e, "fx").length || a.empty.fire(); +}); +})); +for (i in t) if (r = t[i], pt.test(r)) { +if (delete t[i], o = o || "toggle" === r, r === (g ? "hide" : "show")) { +if ("show" !== r || !m || void 0 === m[i]) continue; +g = !0; +} +f[i] = m && m[i] || fe.style(e, i); +} +if ((l = !fe.isEmptyObject(t)) || !fe.isEmptyObject(f)) { +d && 1 === e.nodeType && (n.overflow = [ p.overflow, p.overflowX, p.overflowY ], null == (c = m && m.display) && (c = Ie.get(e, "display")), "none" === (u = fe.css(e, "display")) && (c ? u = c : (v([ e ], !0), c = e.style.display || c, u = fe.css(e, "display"), v([ e ]))), ("inline" === u || "inline-block" === u && null != c) && "none" === fe.css(e, "float") && (l || (h.done(function() { +p.display = c; +}), null == c && (u = p.display, c = "none" === u ? "" : u)), p.display = "inline-block")), n.overflow && (p.overflow = "hidden", h.always(function() { +p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]; +})), l = !1; +for (i in f) l || (m ? "hidden" in m && (g = m.hidden) : m = Ie.access(e, "fxshow", { +display: c +}), o && (m.hidden = !g), g && v([ e ], !0), h.done(function() { +g || v([ e ]), Ie.remove(e, "fxshow"); +for (i in f) fe.style(e, i, f[i]); +})), l = U(g ? m[i] : 0, i, h), i in m || (m[i] = l.start, g && (l.end = l.start, l.start = 0)); +} +} ], +prefilter: function(e, t) { +t ? W.prefilters.unshift(e) : W.prefilters.push(e); +} +}), fe.speed = function(e, t, n) { +var i = e && "object" == typeof e ? fe.extend({}, e) : { +complete: n || !n && t || fe.isFunction(e) && e, +duration: e, +easing: n && t || t && !fe.isFunction(t) && t }; -}).call(r.prototype), t.TokenIterator = r; -}), ace.define("ace/mode/behaviour/cstyle", [ "require", "exports", "module", "ace/lib/oop", "ace/mode/behaviour", "ace/token_iterator", "ace/lib/lang" ], function(e, t, n) { -"use strict"; -var i, r = e("../../lib/oop"), o = e("../behaviour").Behaviour, a = e("../../token_iterator").TokenIterator, s = e("../../lib/lang"), l = [ "text", "paren.rparen", "punctuation.operator" ], c = [ "text", "paren.rparen", "punctuation.operator", "comment" ], u = {}, d = { -'"': '"', -"'": "'" -}, h = function(e) { -var t = -1; -if (e.multiSelect && (t = e.selection.index, u.rangeCount != e.multiSelect.rangeCount && (u = { -rangeCount: e.multiSelect.rangeCount -})), u[t]) return i = u[t]; -i = u[t] = { -autoInsertedBrackets: 0, -autoInsertedRow: -1, -autoInsertedLineEnd: "", -maybeInsertedBrackets: 0, -maybeInsertedRow: -1, -maybeInsertedLineStart: "", -maybeInsertedLineEnd: "" +return fe.fx.off ? i.duration = 0 : "number" != typeof i.duration && (i.duration in fe.fx.speeds ? i.duration = fe.fx.speeds[i.duration] : i.duration = fe.fx.speeds._default), null != i.queue && !0 !== i.queue || (i.queue = "fx"), i.old = i.complete, i.complete = function() { +fe.isFunction(i.old) && i.old.call(this), i.queue && fe.dequeue(this, i.queue); +}, i; +}, fe.fn.extend({ +fadeTo: function(e, t, n, i) { +return this.filter(je).css("opacity", 0).show().end().animate({ +opacity: t +}, e, n, i); +}, +animate: function(e, t, n, i) { +var r = fe.isEmptyObject(e), o = fe.speed(t, n, i), a = function() { +var t = W(this, fe.extend({}, e), o); +(r || Ie.get(this, "finish")) && t.stop(!0); }; -}, f = function(e, t, n, i) { -var r = e.end.row - e.start.row; -return { -text: n + t + i, -selection: [ 0, e.start.column + 1, r, e.end.column + (r ? 0 : 1) ] +return a.finish = a, r || !1 === o.queue ? this.each(a) : this.queue(o.queue, a); +}, +stop: function(e, t, n) { +var i = function(e) { +var t = e.stop; +delete e.stop, t(n); }; -}, p = function(e) { -this.add("braces", "insertion", function(t, n, r, o, a) { -var l = r.getCursorPosition(), c = o.doc.getLine(l.row); -if ("{" == a) { -h(r); -var u = r.getSelectionRange(), d = o.doc.getTextRange(u); -if ("" !== d && "{" !== d && r.getWrapBehavioursEnabled()) return f(u, d, "{", "}"); -if (p.isSaneInsertion(r, o)) return /[\]\}\)]/.test(c[l.column]) || r.inMultiSelectMode || e && e.braces ? (p.recordAutoInsert(r, o, "}"), { -text: "{}", -selection: [ 1, 1 ] -}) : (p.recordMaybeInsert(r, o, "{"), { -text: "{", -selection: [ 1, 1 ] +return "string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function() { +var t = !0, r = null != e && e + "queueHooks", o = fe.timers, a = Ie.get(this); +if (r) a[r] && a[r].stop && i(a[r]); else for (r in a) a[r] && a[r].stop && gt.test(r) && i(a[r]); +for (r = o.length; r--; ) o[r].elem !== this || null != e && o[r].queue !== e || (o[r].anim.stop(n), t = !1, o.splice(r, 1)); +!t && n || fe.dequeue(this, e); }); -} else if ("}" == a) { -if (h(r), "}" == (m = c.substring(l.column, l.column + 1)) && null !== o.$findOpeningBracket("}", { -column: l.column + 1, -row: l.row -}) && p.isAutoInsertedClosing(l, c, a)) return p.popAutoInsertedClosing(), { -text: "", -selection: [ 1, 1 ] +}, +finish: function(e) { +return !1 !== e && (e = e || "fx"), this.each(function() { +var t, n = Ie.get(this), i = n[e + "queue"], r = n[e + "queueHooks"], o = fe.timers, a = i ? i.length : 0; +for (n.finish = !0, fe.queue(this, e, []), r && r.stop && r.stop.call(this, !0), t = o.length; t--; ) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); +for (t = 0; t < a; t++) i[t] && i[t].finish && i[t].finish.call(this); +delete n.finish; +}); +} +}), fe.each([ "toggle", "show", "hide" ], function(e, t) { +var n = fe.fn[t]; +fe.fn[t] = function(e, i, r) { +return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(V(t, !0), e, i, r); }; -} else { -if ("\n" == a || "\r\n" == a) { -h(r); -var g = ""; -p.isMaybeInsertedClosing(l, c) && (g = s.stringRepeat("}", i.maybeInsertedBrackets), p.clearMaybeInsertedClosing()); -var m = c.substring(l.column, l.column + 1); -if ("}" === m) { -var v = o.findMatchingBracket({ -row: l.row, -column: l.column + 1 -}, "}"); -if (!v) return null; -b = this.$getIndent(o.getLine(v.row)); -} else { -if (!g) return void p.clearMaybeInsertedClosing(); -var b = this.$getIndent(c); +}), fe.each({ +slideDown: V("show"), +slideUp: V("hide"), +slideToggle: V("toggle"), +fadeIn: { +opacity: "show" +}, +fadeOut: { +opacity: "hide" +}, +fadeToggle: { +opacity: "toggle" } -var y = b + o.getTabString(); -return { -text: "\n" + y + "\n" + b + g, -selection: [ 1, y.length, 1, y.length ] +}, function(e, t) { +fe.fn[e] = function(e, n, i) { +return this.animate(t, e, n, i); +}; +}), fe.timers = [], fe.fx.tick = function() { +var e, t = 0, n = fe.timers; +for (ht = fe.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); +n.length || fe.fx.stop(), ht = void 0; +}, fe.fx.timer = function(e) { +fe.timers.push(e), fe.fx.start(); +}, fe.fx.interval = 13, fe.fx.start = function() { +ft || (ft = !0, j()); +}, fe.fx.stop = function() { +ft = null; +}, fe.fx.speeds = { +slow: 600, +fast: 200, +_default: 400 +}, fe.fn.delay = function(t, n) { +return t = fe.fx ? fe.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function(n, i) { +var r = e.setTimeout(n, t); +i.stop = function() { +e.clearTimeout(r); }; +}); +}, function() { +var e = te.createElement("input"), t = te.createElement("select").appendChild(te.createElement("option")); +e.type = "checkbox", he.checkOn = "" !== e.value, he.optSelected = t.selected, (e = te.createElement("input")).value = "t", e.type = "radio", he.radioValue = "t" === e.value; +}(); +var mt, vt = fe.expr.attrHandle; +fe.fn.extend({ +attr: function(e, t) { +return Fe(this, fe.attr, e, t, arguments.length > 1); +}, +removeAttr: function(e) { +return this.each(function() { +fe.removeAttr(this, e); +}); } -p.clearMaybeInsertedClosing(); +}), fe.extend({ +attr: function(e, t, n) { +var i, r, o = e.nodeType; +if (3 !== o && 8 !== o && 2 !== o) return void 0 === e.getAttribute ? fe.prop(e, t, n) : (1 === o && fe.isXMLDoc(e) || (r = fe.attrHooks[t.toLowerCase()] || (fe.expr.match.bool.test(t) ? mt : void 0)), void 0 !== n ? null === n ? void fe.removeAttr(e, t) : r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""), n) : r && "get" in r && null !== (i = r.get(e, t)) ? i : null == (i = fe.find.attr(e, t)) ? void 0 : i); +}, +attrHooks: { +type: { +set: function(e, t) { +if (!he.radioValue && "radio" === t && r(e, "input")) { +var n = e.value; +return e.setAttribute("type", t), n && (e.value = n), t; } -}), this.add("braces", "deletion", function(e, t, n, r, o) { -var a = r.doc.getTextRange(o); -if (!o.isMultiLine() && "{" == a) { -if (h(n), "}" == r.doc.getLine(o.start.row).substring(o.end.column, o.end.column + 1)) return o.end.column++, o; -i.maybeInsertedBrackets--; } -}), this.add("parens", "insertion", function(e, t, n, i, r) { -if ("(" == r) { -h(n); -var o = n.getSelectionRange(), a = i.doc.getTextRange(o); -if ("" !== a && n.getWrapBehavioursEnabled()) return f(o, a, "(", ")"); -if (p.isSaneInsertion(n, i)) return p.recordAutoInsert(n, i, ")"), { -text: "()", -selection: [ 1, 1 ] -}; -} else if (")" == r) { -h(n); -var s = n.getCursorPosition(), l = i.doc.getLine(s.row); -if (")" == l.substring(s.column, s.column + 1) && null !== i.$findOpeningBracket(")", { -column: s.column + 1, -row: s.row -}) && p.isAutoInsertedClosing(s, l, r)) return p.popAutoInsertedClosing(), { -text: "", -selection: [ 1, 1 ] -}; } -}), this.add("parens", "deletion", function(e, t, n, i, r) { -var o = i.doc.getTextRange(r); -if (!r.isMultiLine() && "(" == o && (h(n), ")" == i.doc.getLine(r.start.row).substring(r.start.column + 1, r.start.column + 2))) return r.end.column++, r; -}), this.add("brackets", "insertion", function(e, t, n, i, r) { -if ("[" == r) { -h(n); -var o = n.getSelectionRange(), a = i.doc.getTextRange(o); -if ("" !== a && n.getWrapBehavioursEnabled()) return f(o, a, "[", "]"); -if (p.isSaneInsertion(n, i)) return p.recordAutoInsert(n, i, "]"), { -text: "[]", -selection: [ 1, 1 ] -}; -} else if ("]" == r) { -h(n); -var s = n.getCursorPosition(), l = i.doc.getLine(s.row); -if ("]" == l.substring(s.column, s.column + 1) && null !== i.$findOpeningBracket("]", { -column: s.column + 1, -row: s.row -}) && p.isAutoInsertedClosing(s, l, r)) return p.popAutoInsertedClosing(), { -text: "", -selection: [ 1, 1 ] -}; +}, +removeAttr: function(e, t) { +var n, i = 0, r = t && t.match(Te); +if (r && 1 === e.nodeType) for (;n = r[i++]; ) e.removeAttribute(n); } -}), this.add("brackets", "deletion", function(e, t, n, i, r) { -var o = i.doc.getTextRange(r); -if (!r.isMultiLine() && "[" == o && (h(n), "]" == i.doc.getLine(r.start.row).substring(r.start.column + 1, r.start.column + 2))) return r.end.column++, r; -}), this.add("string_dquotes", "insertion", function(e, t, n, i, r) { -var o = i.$mode.$quotes || d; -if (1 == r.length && o[r]) { -if (this.lineCommentStart && -1 != this.lineCommentStart.indexOf(r)) return; -h(n); -var a = r, s = n.getSelectionRange(), l = i.doc.getTextRange(s); -if ("" !== l && (1 != l.length || !o[l]) && n.getWrapBehavioursEnabled()) return f(s, l, a, a); -if (!l) { -var c = n.getCursorPosition(), u = i.doc.getLine(c.row), p = u.substring(c.column - 1, c.column), g = u.substring(c.column, c.column + 1), m = i.getTokenAt(c.row, c.column), v = i.getTokenAt(c.row, c.column + 1); -if ("\\" == p && m && /escape/.test(m.type)) return null; -var b, y = m && /string|escape/.test(m.type), w = !v || /string|escape/.test(v.type); -if (g == a) (b = y !== w) && /string\.end/.test(v.type) && (b = !1); else { -if (y && !w) return null; -if (y && w) return null; -var _ = i.$mode.tokenRe; -_.lastIndex = 0; -var x = _.test(p); -_.lastIndex = 0; -var C = _.test(p); -if (x || C) return null; -if (g && !/[\s;,.})\]\\]/.test(g)) return null; -b = !0; +}), mt = { +set: function(e, t, n) { +return !1 === t ? fe.removeAttr(e, n) : e.setAttribute(n, n), n; } -return { -text: b ? a + a : "", -selection: [ 1, 1 ] +}, fe.each(fe.expr.match.bool.source.match(/\w+/g), function(e, t) { +var n = vt[t] || fe.find.attr; +vt[t] = function(e, t, i) { +var r, o, a = t.toLowerCase(); +return i || (o = vt[a], vt[a] = r, r = null != n(e, t, i) ? a : null, vt[a] = o), r; }; +}); +var bt = /^(?:input|select|textarea|button)$/i, yt = /^(?:a|area)$/i; +fe.fn.extend({ +prop: function(e, t) { +return Fe(this, fe.prop, e, t, arguments.length > 1); +}, +removeProp: function(e) { +return this.each(function() { +delete this[fe.propFix[e] || e]; +}); } +}), fe.extend({ +prop: function(e, t, n) { +var i, r, o = e.nodeType; +if (3 !== o && 8 !== o && 2 !== o) return 1 === o && fe.isXMLDoc(e) || (t = fe.propFix[t] || t, r = fe.propHooks[t]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : e[t] = n : r && "get" in r && null !== (i = r.get(e, t)) ? i : e[t]; +}, +propHooks: { +tabIndex: { +get: function(e) { +var t = fe.find.attr(e, "tabindex"); +return t ? parseInt(t, 10) : bt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1; } -}), this.add("string_dquotes", "deletion", function(e, t, n, i, r) { -var o = i.doc.getTextRange(r); -if (!r.isMultiLine() && ('"' == o || "'" == o) && (h(n), i.doc.getLine(r.start.row).substring(r.start.column + 1, r.start.column + 2) == o)) return r.end.column++, r; +} +}, +propFix: { +for: "htmlFor", +class: "className" +} +}), he.optSelected || (fe.propHooks.selected = { +get: function(e) { +var t = e.parentNode; +return t && t.parentNode && t.parentNode.selectedIndex, null; +}, +set: function(e) { +var t = e.parentNode; +t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); +} +}), fe.each([ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable" ], function() { +fe.propFix[this.toLowerCase()] = this; +}), fe.fn.extend({ +addClass: function(e) { +var t, n, i, r, o, a, s, l = 0; +if (fe.isFunction(e)) return this.each(function(t) { +fe(this).addClass(e.call(this, t, G(this))); }); -}; -p.isSaneInsertion = function(e, t) { -var n = e.getCursorPosition(), i = new a(t, n.row, n.column); -if (!this.$matchTokenType(i.getCurrentToken() || "text", l)) { -var r = new a(t, n.row, n.column + 1); -if (!this.$matchTokenType(r.getCurrentToken() || "text", l)) return !1; +if ("string" == typeof e && e) for (t = e.match(Te) || []; n = this[l++]; ) if (r = G(n), i = 1 === n.nodeType && " " + q(r) + " ") { +for (a = 0; o = t[a++]; ) i.indexOf(" " + o + " ") < 0 && (i += o + " "); +r !== (s = q(i)) && n.setAttribute("class", s); } -return i.stepForward(), i.getCurrentTokenRow() !== n.row || this.$matchTokenType(i.getCurrentToken() || "text", c); -}, p.$matchTokenType = function(e, t) { -return t.indexOf(e.type || e) > -1; -}, p.recordAutoInsert = function(e, t, n) { -var r = e.getCursorPosition(), o = t.doc.getLine(r.row); -this.isAutoInsertedClosing(r, o, i.autoInsertedLineEnd[0]) || (i.autoInsertedBrackets = 0), i.autoInsertedRow = r.row, i.autoInsertedLineEnd = n + o.substr(r.column), i.autoInsertedBrackets++; -}, p.recordMaybeInsert = function(e, t, n) { -var r = e.getCursorPosition(), o = t.doc.getLine(r.row); -this.isMaybeInsertedClosing(r, o) || (i.maybeInsertedBrackets = 0), i.maybeInsertedRow = r.row, i.maybeInsertedLineStart = o.substr(0, r.column) + n, i.maybeInsertedLineEnd = o.substr(r.column), i.maybeInsertedBrackets++; -}, p.isAutoInsertedClosing = function(e, t, n) { -return i.autoInsertedBrackets > 0 && e.row === i.autoInsertedRow && n === i.autoInsertedLineEnd[0] && t.substr(e.column) === i.autoInsertedLineEnd; -}, p.isMaybeInsertedClosing = function(e, t) { -return i.maybeInsertedBrackets > 0 && e.row === i.maybeInsertedRow && t.substr(e.column) === i.maybeInsertedLineEnd && t.substr(0, e.column) == i.maybeInsertedLineStart; -}, p.popAutoInsertedClosing = function() { -i.autoInsertedLineEnd = i.autoInsertedLineEnd.substr(1), i.autoInsertedBrackets--; -}, p.clearMaybeInsertedClosing = function() { -i && (i.maybeInsertedBrackets = 0, i.maybeInsertedRow = -1); -}, r.inherits(p, o), t.CstyleBehaviour = p; -}), ace.define("ace/unicode", [ "require", "exports", "module" ], function(e, t, n) { -"use strict"; -t.packages = {}, function(e) { -var n = /\w{4}/g; -for (var i in e) t.packages[i] = e[i].replace(n, "\\u$&"); -}({ -L: "0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC", -Ll: "0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A", -Lu: "0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A", -Lt: "01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC", -Lm: "02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F", -Lo: "01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC", -M: "0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26", -Mn: "0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26", -Mc: "0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC", -Me: "0488048906DE20DD-20E020E2-20E4A670-A672", -N: "0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19", -Nd: "0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19", -Nl: "16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF", -No: "00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835", -P: "0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65", -Pd: "002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D", -Ps: "0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62", -Pe: "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63", -Pi: "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20", -Pf: "00BB2019201D203A2E032E052E0A2E0D2E1D2E21", -Pc: "005F203F20402054FE33FE34FE4D-FE4FFF3F", -Po: "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65", -S: "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD", -Sm: "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC", -Sc: "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6", -Sk: "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3", -So: "00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD", -Z: "002000A01680180E2000-200A20282029202F205F3000", -Zs: "002000A01680180E2000-200A202F205F3000", -Zl: "2028", -Zp: "2029", -C: "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF", -Cc: "0000-001F007F-009F", -Cf: "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB", -Co: "E000-F8FF", -Cs: "D800-DFFF", -Cn: "03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF" +return this; +}, +removeClass: function(e) { +var t, n, i, r, o, a, s, l = 0; +if (fe.isFunction(e)) return this.each(function(t) { +fe(this).removeClass(e.call(this, t, G(this))); }); -}), ace.define("ace/mode/text", [ "require", "exports", "module", "ace/tokenizer", "ace/mode/text_highlight_rules", "ace/mode/behaviour/cstyle", "ace/unicode", "ace/lib/lang", "ace/token_iterator", "ace/range" ], function(e, t, n) { -"use strict"; -var i = e("../tokenizer").Tokenizer, r = e("./text_highlight_rules").TextHighlightRules, o = e("./behaviour/cstyle").CstyleBehaviour, a = e("../unicode"), s = e("../lib/lang"), l = e("../token_iterator").TokenIterator, c = e("../range").Range, u = function() { -this.HighlightRules = r; -}; -(function() { -this.$defaultBehaviour = new o(), this.tokenRe = new RegExp("^[" + a.packages.L + a.packages.Mn + a.packages.Mc + a.packages.Nd + a.packages.Pc + "\\$_]+", "g"), this.nonTokenRe = new RegExp("^(?:[^" + a.packages.L + a.packages.Mn + a.packages.Mc + a.packages.Nd + a.packages.Pc + "\\$_]|\\s])+", "g"), this.getTokenizer = function() { -return this.$tokenizer || (this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig), this.$tokenizer = new i(this.$highlightRules.getRules())), this.$tokenizer; -}, this.lineCommentStart = "", this.blockComment = "", this.toggleCommentLines = function(e, t, n, i) { -function r(e) { -for (var t = n; t <= i; t++) e(o.getLine(t), t); -} -var o = t.doc, a = !0, l = !0, c = 1 / 0, u = t.getTabSize(), d = !1; -if (this.lineCommentStart) { -if (Array.isArray(this.lineCommentStart)) var h = this.lineCommentStart.map(s.escapeRegExp).join("|"), f = this.lineCommentStart[0]; else var h = s.escapeRegExp(this.lineCommentStart), f = this.lineCommentStart; -h = new RegExp("^(\\s*)(?:" + h + ") ?"), d = t.getUseSoftTabs(); -var p = function(e, t) { -var n = e.match(h); -if (n) { -var i = n[1].length, r = n[0].length; -!b(e, i, r) && " " == n[0][r - 1] && r--, o.removeInLine(t, i, r); -} -}, g = f + " ", m = function(e, t) { -a && !/\S/.test(e) || (b(e, c, c) ? o.insertInLine({ -row: t, -column: c -}, g) : o.insertInLine({ -row: t, -column: c -}, f)); -}, v = function(e, t) { -return h.test(e); -}, b = function(e, t, n) { -for (i = 0; t-- && " " == e.charAt(t); ) i++; -if (i % u != 0) return !1; -for (var i = 0; " " == e.charAt(n++); ) i++; -return u > 2 ? i % u != u - 1 : i % u == 0; -}; -} else { -if (!this.blockComment) return !1; -var f = this.blockComment.start, y = this.blockComment.end, h = new RegExp("^(\\s*)(?:" + s.escapeRegExp(f) + ")"), w = new RegExp("(?:" + s.escapeRegExp(y) + ")\\s*$"), m = function(e, t) { -v(e, t) || a && !/\S/.test(e) || (o.insertInLine({ -row: t, -column: e.length -}, y), o.insertInLine({ -row: t, -column: c -}, f)); -}, p = function(e, t) { -var n; -(n = e.match(w)) && o.removeInLine(t, e.length - n[0].length, e.length), (n = e.match(h)) && o.removeInLine(t, n[1].length, n[0].length); -}, v = function(e, n) { -if (h.test(e)) return !0; -for (var i = t.getTokens(n), r = 0; r < i.length; r++) if ("comment" === i[r].type) return !0; -}; -} -var _ = 1 / 0; -r(function(e, t) { -var n = e.search(/\S/); --1 !== n ? (n < c && (c = n), l && !v(e, t) && (l = !1)) : _ > e.length && (_ = e.length); -}), c == 1 / 0 && (c = _, a = !1, l = !1), d && c % u != 0 && (c = Math.floor(c / u) * u), r(l ? p : m); -}, this.toggleBlockComment = function(e, t, n, i) { -var r = this.blockComment; -if (r) { -!r.start && r[0] && (r = r[0]); -var o, a, s = new l(t, i.row, i.column), u = s.getCurrentToken(), d = (t.selection, t.selection.toOrientedRange()); -if (u && /comment/.test(u.type)) { -for (var h, f; u && /comment/.test(u.type); ) { -if (-1 != (m = u.value.indexOf(r.start))) { -var p = s.getCurrentTokenRow(), g = s.getCurrentTokenColumn() + m; -h = new c(p, g, p, g + r.start.length); -break; -} -u = s.stepBackward(); +if (!arguments.length) return this.attr("class", ""); +if ("string" == typeof e && e) for (t = e.match(Te) || []; n = this[l++]; ) if (r = G(n), i = 1 === n.nodeType && " " + q(r) + " ") { +for (a = 0; o = t[a++]; ) for (;i.indexOf(" " + o + " ") > -1; ) i = i.replace(" " + o + " ", " "); +r !== (s = q(i)) && n.setAttribute("class", s); } -for (u = (s = new l(t, i.row, i.column)).getCurrentToken(); u && /comment/.test(u.type); ) { -var m = u.value.indexOf(r.end); -if (-1 != m) { -var p = s.getCurrentTokenRow(), g = s.getCurrentTokenColumn() + m; -f = new c(p, g, p, g + r.end.length); -break; +return this; +}, +toggleClass: function(e, t) { +var n = typeof e; +return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : fe.isFunction(e) ? this.each(function(n) { +fe(this).toggleClass(e.call(this, n, G(this), t), t); +}) : this.each(function() { +var t, i, r, o; +if ("string" === n) for (i = 0, r = fe(this), o = e.match(Te) || []; t = o[i++]; ) r.hasClass(t) ? r.removeClass(t) : r.addClass(t); else void 0 !== e && "boolean" !== n || ((t = G(this)) && Ie.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : Ie.get(this, "__className__") || "")); +}); +}, +hasClass: function(e) { +var t, n, i = 0; +for (t = " " + e + " "; n = this[i++]; ) if (1 === n.nodeType && (" " + q(G(n)) + " ").indexOf(t) > -1) return !0; +return !1; } -u = s.stepForward(); +}); +var wt = /\r/g; +fe.fn.extend({ +val: function(e) { +var t, n, i, r = this[0]; +{ +if (arguments.length) return i = fe.isFunction(e), this.each(function(n) { +var r; +1 === this.nodeType && (null == (r = i ? e.call(this, n, fe(this).val()) : e) ? r = "" : "number" == typeof r ? r += "" : Array.isArray(r) && (r = fe.map(r, function(e) { +return null == e ? "" : e + ""; +})), (t = fe.valHooks[this.type] || fe.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, r, "value") || (this.value = r)); +}); +if (r) return (t = fe.valHooks[r.type] || fe.valHooks[r.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(r, "value")) ? n : "string" == typeof (n = r.value) ? n.replace(wt, "") : null == n ? "" : n; } -f && t.remove(f), h && (t.remove(h), o = h.start.row, a = -r.start.length); -} else a = r.start.length, o = n.start.row, t.insert(n.end, r.end), t.insert(n.start, r.start); -d.start.row == o && (d.start.column += a), d.end.row == o && (d.end.column += a), t.selection.fromOrientedRange(d); } -}, this.getNextLineIndent = function(e, t, n) { -return this.$getIndent(t); -}, this.checkOutdent = function(e, t, n) { -return !1; -}, this.autoOutdent = function(e, t, n) {}, this.$getIndent = function(e) { -return e.match(/^\s*/)[0]; -}, this.createWorker = function(e) { -return null; -}, this.createModeDelegates = function(e) { -this.$embeds = [], this.$modes = {}; -for (var t in e) e[t] && (this.$embeds.push(t), this.$modes[t] = new e[t]()); -for (var n = [ "toggleBlockComment", "toggleCommentLines", "getNextLineIndent", "checkOutdent", "autoOutdent", "transformAction", "getCompletions" ], t = 0; t < n.length; t++) !function(e) { -var i = n[t], r = e[i]; -e[n[t]] = function() { -return this.$delegator(i, arguments, r); -}; -}(this); -}, this.$delegator = function(e, t, n) { -var i = t[0]; -"string" != typeof i && (i = i[0]); -for (var r = 0; r < this.$embeds.length; r++) if (this.$modes[this.$embeds[r]]) { -var o = i.split(this.$embeds[r]); -if (!o[0] && o[1]) { -t[0] = o[1]; -var a = this.$modes[this.$embeds[r]]; -return a[e].apply(a, t); +}), fe.extend({ +valHooks: { +option: { +get: function(e) { +var t = fe.find.attr(e, "value"); +return null != t ? t : q(fe.text(e)); } +}, +select: { +get: function(e) { +var t, n, i, o = e.options, a = e.selectedIndex, s = "select-one" === e.type, l = s ? null : [], c = s ? a + 1 : o.length; +for (i = a < 0 ? c : s ? a : 0; i < c; i++) if (((n = o[i]).selected || i === a) && !n.disabled && (!n.parentNode.disabled || !r(n.parentNode, "optgroup"))) { +if (t = fe(n).val(), s) return t; +l.push(t); } -var s = n.apply(this, t); -return n ? s : void 0; -}, this.transformAction = function(e, t, n, i, r) { -if (this.$behaviour) { -var o = this.$behaviour.getBehaviours(); -for (var a in o) if (o[a][t]) { -var s = o[a][t].apply(this, arguments); -if (s) return s; +return l; +}, +set: function(e, t) { +for (var n, i, r = e.options, o = fe.makeArray(t), a = r.length; a--; ) ((i = r[a]).selected = fe.inArray(fe.valHooks.option.get(i), o) > -1) && (n = !0); +return n || (e.selectedIndex = -1), o; } } -}, this.getKeywords = function(e) { -if (!this.completionKeywords) { -var t = this.$tokenizer.rules, n = []; -for (var i in t) for (var r = t[i], o = 0, a = r.length; o < a; o++) if ("string" == typeof r[o].token) /keyword|support|storage/.test(r[o].token) && n.push(r[o].regex); else if ("object" == typeof r[o].token) for (var s = 0, l = r[o].token.length; s < l; s++) if (/keyword|support|storage/.test(r[o].token[s])) { -i = r[o].regex.match(/\(.+?\)/g)[s]; -n.push(i.substr(1, i.length - 2)); } -this.completionKeywords = n; +}), fe.each([ "radio", "checkbox" ], function() { +fe.valHooks[this] = { +set: function(e, t) { +if (Array.isArray(t)) return e.checked = fe.inArray(fe(e).val(), t) > -1; } -return e ? n.concat(this.$keywordList || []) : this.$keywordList; -}, this.$createKeywordList = function() { -return this.$highlightRules || this.getTokenizer(), this.$keywordList = this.$highlightRules.$keywordList || []; -}, this.getCompletions = function(e, t, n, i) { -return (this.$keywordList || this.$createKeywordList()).map(function(e) { -return { -name: e, -value: e, -score: 0, -meta: "keyword" -}; +}, he.checkOn || (fe.valHooks[this].get = function(e) { +return null === e.getAttribute("value") ? "on" : e.value; }); -}, this.$id = "ace/mode/text"; -}).call(u.prototype), t.Mode = u; -}), ace.define("ace/apply_delta", [ "require", "exports", "module" ], function(e, t, n) { -"use strict"; -function i(e, t) { -throw console.log("Invalid Delta:", e), "Invalid Delta: " + t; +}); +var _t = /^(?:focusinfocus|focusoutblur)$/; +fe.extend(fe.event, { +trigger: function(t, n, i, r) { +var o, a, s, l, c, u, d, h = [ i || te ], f = ce.call(t, "type") ? t.type : t, p = ce.call(t, "namespace") ? t.namespace.split(".") : []; +if (a = s = i = i || te, 3 !== i.nodeType && 8 !== i.nodeType && !_t.test(f + fe.event.triggered) && (f.indexOf(".") > -1 && (f = (p = f.split(".")).shift(), p.sort()), c = f.indexOf(":") < 0 && "on" + f, t = t[fe.expando] ? t : new fe.Event(f, "object" == typeof t && t), t.isTrigger = r ? 2 : 3, t.namespace = p.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [ t ] : fe.makeArray(n, [ t ]), d = fe.event.special[f] || {}, r || !d.trigger || !1 !== d.trigger.apply(i, n))) { +if (!r && !d.noBubble && !fe.isWindow(i)) { +for (l = d.delegateType || f, _t.test(l + f) || (a = a.parentNode); a; a = a.parentNode) h.push(a), s = a; +s === (i.ownerDocument || te) && h.push(s.defaultView || s.parentWindow || e); } -function r(e, t) { -return t.row >= 0 && t.row < e.length && t.column >= 0 && t.column <= e[t.row].length; +for (o = 0; (a = h[o++]) && !t.isPropagationStopped(); ) t.type = o > 1 ? l : d.bindType || f, (u = (Ie.get(a, "events") || {})[t.type] && Ie.get(a, "handle")) && u.apply(a, n), (u = c && a[c]) && u.apply && Me(a) && (t.result = u.apply(a, n), !1 === t.result && t.preventDefault()); +return t.type = f, r || t.isDefaultPrevented() || d._default && !1 !== d._default.apply(h.pop(), n) || !Me(i) || c && fe.isFunction(i[f]) && !fe.isWindow(i) && ((s = i[c]) && (i[c] = null), fe.event.triggered = f, i[f](), fe.event.triggered = void 0, s && (i[c] = s)), t.result; } -t.applyDelta = function(e, t, n) { -var i = t.start.row, r = t.start.column, o = e[i] || ""; -switch (t.action) { -case "insert": -if (1 === t.lines.length) e[i] = o.substring(0, r) + t.lines[0] + o.substring(r); else { -var a = [ i, 1 ].concat(t.lines); -e.splice.apply(e, a), e[i] = o.substring(0, r) + e[i], e[i + t.lines.length - 1] += o.substring(r); +}, +simulate: function(e, t, n) { +var i = fe.extend(new fe.Event(), n, { +type: e, +isSimulated: !0 +}); +fe.event.trigger(i, null, t); } -break; - -case "remove": -var s = t.end.column, l = t.end.row; -i === l ? e[i] = o.substring(0, r) + o.substring(s) : e.splice(i, l - i + 1, o.substring(0, r) + e[l].substring(s)); +}), fe.fn.extend({ +trigger: function(e, t) { +return this.each(function() { +fe.event.trigger(e, t, this); +}); +}, +triggerHandler: function(e, t) { +var n = this[0]; +if (n) return fe.event.trigger(e, t, n, !0); } +}), fe.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, t) { +fe.fn[t] = function(e, n) { +return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t); }; -}), ace.define("ace/anchor", [ "require", "exports", "module", "ace/lib/oop", "ace/lib/event_emitter" ], function(e, t, n) { -"use strict"; -var i = e("./lib/oop"), r = e("./lib/event_emitter").EventEmitter, o = t.Anchor = function(e, t, n) { -this.$onChange = this.onChange.bind(this), this.attach(e), void 0 === n ? this.setPosition(t.row, t.column) : this.setPosition(t, n); -}; -(function() { -function e(e, t, n) { -var i = n ? e.column <= t.column : e.column < t.column; -return e.row < t.row || e.row == t.row && i; +}), fe.fn.extend({ +hover: function(e, t) { +return this.mouseenter(e).mouseleave(t || e); } -function t(t, n, i) { -var r = "insert" == t.action, o = (r ? 1 : -1) * (t.end.row - t.start.row), a = (r ? 1 : -1) * (t.end.column - t.start.column), s = t.start, l = r ? s : t.end; -return e(n, s, i) ? { -row: n.row, -column: n.column -} : e(l, n, !i) ? { -row: n.row + o, -column: n.column + (n.row == l.row ? a : 0) -} : { -row: s.row, -column: s.column +}), he.focusin = "onfocusin" in e, he.focusin || fe.each({ +focus: "focusin", +blur: "focusout" +}, function(e, t) { +var n = function(e) { +fe.event.simulate(t, e.target, fe.event.fix(e)); }; +fe.event.special[t] = { +setup: function() { +var i = this.ownerDocument || this, r = Ie.access(i, t); +r || i.addEventListener(e, n, !0), Ie.access(i, t, (r || 0) + 1); +}, +teardown: function() { +var i = this.ownerDocument || this, r = Ie.access(i, t) - 1; +r ? Ie.access(i, t, r) : (i.removeEventListener(e, n, !0), Ie.remove(i, t)); } -i.implement(this, r), this.getPosition = function() { -return this.$clipPositionToDocument(this.row, this.column); -}, this.getDocument = function() { -return this.document; -}, this.$insertRight = !1, this.onChange = function(e) { -if (!(e.start.row == e.end.row && e.start.row != this.row || e.start.row > this.row)) { -var n = t(e, { -row: this.row, -column: this.column -}, this.$insertRight); -this.setPosition(n.row, n.column, !0); -} -}, this.setPosition = function(e, t, n) { -var i; -if (i = n ? { -row: e, -column: t -} : this.$clipPositionToDocument(e, t), this.row != i.row || this.column != i.column) { -var r = { -row: this.row, -column: this.column }; -this.row = i.row, this.column = i.column, this._signal("change", { -old: r, -value: i }); +var xt = e.location, Ct = fe.now(), St = /\?/; +fe.parseXML = function(t) { +var n; +if (!t || "string" != typeof t) return null; +try { +n = new e.DOMParser().parseFromString(t, "text/xml"); +} catch (e) { +n = void 0; } -}, this.detach = function() { -this.document.removeEventListener("change", this.$onChange); -}, this.attach = function(e) { -this.document = e || this.document, this.document.on("change", this.$onChange); -}, this.$clipPositionToDocument = function(e, t) { -var n = {}; -return e >= this.document.getLength() ? (n.row = Math.max(0, this.document.getLength() - 1), n.column = this.document.getLine(n.row).length) : e < 0 ? (n.row = 0, n.column = 0) : (n.row = e, n.column = Math.min(this.document.getLine(n.row).length, Math.max(0, t))), t < 0 && (n.column = 0), n; -}; -}).call(o.prototype); -}), ace.define("ace/document", [ "require", "exports", "module", "ace/lib/oop", "ace/apply_delta", "ace/lib/event_emitter", "ace/range", "ace/anchor" ], function(e, t, n) { -"use strict"; -var i = e("./lib/oop"), r = e("./apply_delta").applyDelta, o = e("./lib/event_emitter").EventEmitter, a = e("./range").Range, s = e("./anchor").Anchor, l = function(e) { -this.$lines = [ "" ], 0 === e.length ? this.$lines = [ "" ] : Array.isArray(e) ? this.insertMergedLines({ -row: 0, -column: 0 -}, e) : this.insert({ -row: 0, -column: 0 -}, e); -}; -(function() { -i.implement(this, o), this.setValue = function(e) { -var t = this.getLength() - 1; -this.remove(new a(0, 0, t, this.getLine(t).length)), this.insert({ -row: 0, -column: 0 -}, e); -}, this.getValue = function() { -return this.getAllLines().join(this.getNewLineCharacter()); -}, this.createAnchor = function(e, t) { -return new s(this, e, t); -}, 0 === "aaa".split(/a/).length ? this.$split = function(e) { -return e.replace(/\r\n|\r/g, "\n").split("\n"); -} : this.$split = function(e) { -return e.split(/\r\n|\r|\n/); -}, this.$detectNewLine = function(e) { -var t = e.match(/^.*?(\r\n|\r|\n)/m); -this.$autoNewLine = t ? t[1] : "\n", this._signal("changeNewLineMode"); -}, this.getNewLineCharacter = function() { -switch (this.$newLineMode) { -case "windows": -return "\r\n"; - -case "unix": -return "\n"; - -default: -return this.$autoNewLine || "\n"; -} -}, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function(e) { -this.$newLineMode !== e && (this.$newLineMode = e, this._signal("changeNewLineMode")); -}, this.getNewLineMode = function() { -return this.$newLineMode; -}, this.isNewLine = function(e) { -return "\r\n" == e || "\r" == e || "\n" == e; -}, this.getLine = function(e) { -return this.$lines[e] || ""; -}, this.getLines = function(e, t) { -return this.$lines.slice(e, t + 1); -}, this.getAllLines = function() { -return this.getLines(0, this.getLength()); -}, this.getLength = function() { -return this.$lines.length; -}, this.getTextRange = function(e) { -return this.getLinesForRange(e).join(this.getNewLineCharacter()); -}, this.getLinesForRange = function(e) { -var t; -if (e.start.row === e.end.row) t = [ this.getLine(e.start.row).substring(e.start.column, e.end.column) ]; else { -(t = this.getLines(e.start.row, e.end.row))[0] = (t[0] || "").substring(e.start.column); -var n = t.length - 1; -e.end.row - e.start.row == n && (t[n] = t[n].substring(0, e.end.column)); -} -return t; -}, this.insertLines = function(e, t) { -return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(e, t); -}, this.removeLines = function(e, t) { -return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(e, t); -}, this.insertNewLine = function(e) { -return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."), this.insertMergedLines(e, [ "", "" ]); -}, this.insert = function(e, t) { -return this.getLength() <= 1 && this.$detectNewLine(t), this.insertMergedLines(e, this.$split(t)); -}, this.insertInLine = function(e, t) { -var n = this.clippedPos(e.row, e.column), i = this.pos(e.row, e.column + t.length); -return this.applyDelta({ -start: n, -end: i, -action: "insert", -lines: [ t ] -}, !0), this.clonePos(i); -}, this.clippedPos = function(e, t) { -var n = this.getLength(); -void 0 === e ? e = n : e < 0 ? e = 0 : e >= n && (e = n - 1, t = void 0); -var i = this.getLine(e); -return void 0 == t && (t = i.length), t = Math.min(Math.max(t, 0), i.length), { -row: e, -column: t +return n && !n.getElementsByTagName("parsererror").length || fe.error("Invalid XML: " + t), n; }; -}, this.clonePos = function(e) { -return { -row: e.row, -column: e.column +var $t = /\[\]$/, At = /\r?\n/g, kt = /^(?:submit|button|image|reset|file)$/i, Tt = /^(?:input|select|textarea|keygen)/i; +fe.param = function(e, t) { +var n, i = [], r = function(e, t) { +var n = fe.isFunction(t) ? t() : t; +i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); }; -}, this.pos = function(e, t) { +if (Array.isArray(e) || e.jquery && !fe.isPlainObject(e)) fe.each(e, function() { +r(this.name, this.value); +}); else for (n in e) Y(n, e[n], t, r); +return i.join("&"); +}, fe.fn.extend({ +serialize: function() { +return fe.param(this.serializeArray()); +}, +serializeArray: function() { +return this.map(function() { +var e = fe.prop(this, "elements"); +return e ? fe.makeArray(e) : this; +}).filter(function() { +var e = this.type; +return this.name && !fe(this).is(":disabled") && Tt.test(this.nodeName) && !kt.test(e) && (this.checked || !Ue.test(e)); +}).map(function(e, t) { +var n = fe(this).val(); +return null == n ? null : Array.isArray(n) ? fe.map(n, function(e) { return { -row: e, -column: t +name: t.name, +value: e.replace(At, "\r\n") }; -}, this.$clipPosition = function(e) { -var t = this.getLength(); -return e.row >= t ? (e.row = Math.max(0, t - 1), e.column = this.getLine(t - 1).length) : (e.row = Math.max(0, e.row), e.column = Math.min(Math.max(e.column, 0), this.getLine(e.row).length)), e; -}, this.insertFullLines = function(e, t) { -var n = 0; -(e = Math.min(Math.max(e, 0), this.getLength())) < this.getLength() ? (t = t.concat([ "" ]), n = 0) : (t = [ "" ].concat(t), e--, n = this.$lines[e].length), this.insertMergedLines({ -row: e, -column: n -}, t); -}, this.insertMergedLines = function(e, t) { -var n = this.clippedPos(e.row, e.column), i = { -row: n.row + t.length - 1, -column: (1 == t.length ? n.column : 0) + t[t.length - 1].length +}) : { +name: t.name, +value: n.replace(At, "\r\n") }; -return this.applyDelta({ -start: n, -end: i, -action: "insert", -lines: t -}), this.clonePos(i); -}, this.remove = function(e) { -var t = this.clippedPos(e.start.row, e.start.column), n = this.clippedPos(e.end.row, e.end.column); -return this.applyDelta({ -start: t, -end: n, -action: "remove", -lines: this.getLinesForRange({ -start: t, -end: n -}) -}), this.clonePos(t); -}, this.removeInLine = function(e, t, n) { -var i = this.clippedPos(e, t), r = this.clippedPos(e, n); -return this.applyDelta({ -start: i, -end: r, -action: "remove", -lines: this.getLinesForRange({ -start: i, -end: r -}) -}, !0), this.clonePos(i); -}, this.removeFullLines = function(e, t) { -e = Math.min(Math.max(0, e), this.getLength() - 1); -var n = (t = Math.min(Math.max(0, t), this.getLength() - 1)) == this.getLength() - 1 && e > 0, i = t < this.getLength() - 1, r = n ? e - 1 : e, o = n ? this.getLine(r).length : 0, s = i ? t + 1 : t, l = i ? 0 : this.getLine(s).length, c = new a(r, o, s, l), u = this.$lines.slice(e, t + 1); -return this.applyDelta({ -start: c.start, -end: c.end, -action: "remove", -lines: this.getLinesForRange(c) -}), u; -}, this.removeNewLine = function(e) { -e < this.getLength() - 1 && e >= 0 && this.applyDelta({ -start: this.pos(e, this.getLine(e).length), -end: this.pos(e + 1, 0), -action: "remove", -lines: [ "", "" ] +}).get(); +} }); -}, this.replace = function(e, t) { -if (e instanceof a || (e = a.fromPoints(e.start, e.end)), 0 === t.length && e.isEmpty()) return e.start; -if (t == this.getTextRange(e)) return e.end; -this.remove(e); -return t ? this.insert(e.start, t) : e.start; -}, this.applyDeltas = function(e) { -for (var t = 0; t < e.length; t++) this.applyDelta(e[t]); -}, this.revertDeltas = function(e) { -for (var t = e.length - 1; t >= 0; t--) this.revertDelta(e[t]); -}, this.applyDelta = function(e, t) { -var n = "insert" == e.action; -(n ? e.lines.length <= 1 && !e.lines[0] : !a.comparePoints(e.start, e.end)) || (n && e.lines.length > 2e4 && this.$splitAndapplyLargeDelta(e, 2e4), r(this.$lines, e, t), this._signal("change", e)); -}, this.$splitAndapplyLargeDelta = function(e, t) { -for (var n = e.lines, i = n.length, r = e.start.row, o = e.start.column, a = 0, s = 0; ;) { -a = s, s += t - 1; -var l = n.slice(a, s); -if (s > i) { -e.lines = l, e.start.row = r + a, e.start.column = o; -break; +var Dt = /%20/g, Et = /#.*$/, Ft = /([?&])_=[^&]*/, Mt = /^(.*?):[ \t]*([^\r\n]*)$/gm, It = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Pt = /^(?:GET|HEAD)$/, Lt = /^\/\//, Ot = {}, Rt = {}, Nt = "*/".concat("*"), Bt = te.createElement("a"); +Bt.href = xt.href, fe.extend({ +active: 0, +lastModified: {}, +etag: {}, +ajaxSettings: { +url: xt.href, +type: "GET", +isLocal: It.test(xt.protocol), +global: !0, +processData: !0, +async: !0, +contentType: "application/x-www-form-urlencoded; charset=UTF-8", +accepts: { +"*": Nt, +text: "text/plain", +html: "text/html", +xml: "application/xml, text/xml", +json: "application/json, text/javascript" +}, +contents: { +xml: /\bxml\b/, +html: /\bhtml/, +json: /\bjson\b/ +}, +responseFields: { +xml: "responseXML", +text: "responseText", +json: "responseJSON" +}, +converters: { +"* text": String, +"text html": !0, +"text json": JSON.parse, +"text xml": fe.parseXML +}, +flatOptions: { +url: !0, +context: !0 } -l.push(""), this.applyDelta({ -start: this.pos(r + a, o), -end: this.pos(r + s, o = 0), -action: e.action, -lines: l -}, !0); +}, +ajaxSetup: function(e, t) { +return t ? Q(Q(e, fe.ajaxSettings), t) : Q(fe.ajaxSettings, e); +}, +ajaxPrefilter: K(Ot), +ajaxTransport: K(Rt), +ajax: function(t, n) { +function i(t, n, i, s) { +var c, h, f, w, _, x = n; +u || (u = !0, l && e.clearTimeout(l), r = void 0, a = s || "", C.readyState = t > 0 ? 4 : 0, c = t >= 200 && t < 300 || 304 === t, i && (w = Z(p, C, i)), w = J(p, w, C, c), c ? (p.ifModified && ((_ = C.getResponseHeader("Last-Modified")) && (fe.lastModified[o] = _), (_ = C.getResponseHeader("etag")) && (fe.etag[o] = _)), 204 === t || "HEAD" === p.type ? x = "nocontent" : 304 === t ? x = "notmodified" : (x = w.state, h = w.data, c = !(f = w.error))) : (f = x, !t && x || (x = "error", t < 0 && (t = 0))), C.status = t, C.statusText = (n || x) + "", c ? v.resolveWith(g, [ h, x, C ]) : v.rejectWith(g, [ C, x, f ]), C.statusCode(y), y = void 0, d && m.trigger(c ? "ajaxSuccess" : "ajaxError", [ C, p, c ? h : f ]), b.fireWith(g, [ C, x ]), d && (m.trigger("ajaxComplete", [ C, p ]), --fe.active || fe.event.trigger("ajaxStop"))); +} +"object" == typeof t && (n = t, t = void 0), n = n || {}; +var r, o, a, s, l, c, u, d, h, f, p = fe.ajaxSetup({}, n), g = p.context || p, m = p.context && (g.nodeType || g.jquery) ? fe(g) : fe.event, v = fe.Deferred(), b = fe.Callbacks("once memory"), y = p.statusCode || {}, w = {}, _ = {}, x = "canceled", C = { +readyState: 0, +getResponseHeader: function(e) { +var t; +if (u) { +if (!s) for (s = {}; t = Mt.exec(a); ) s[t[1].toLowerCase()] = t[2]; +t = s[e.toLowerCase()]; +} +return null == t ? null : t; +}, +getAllResponseHeaders: function() { +return u ? a : null; +}, +setRequestHeader: function(e, t) { +return null == u && (e = _[e.toLowerCase()] = _[e.toLowerCase()] || e, w[e] = t), this; +}, +overrideMimeType: function(e) { +return null == u && (p.mimeType = e), this; +}, +statusCode: function(e) { +var t; +if (e) if (u) C.always(e[C.status]); else for (t in e) y[t] = [ y[t], e[t] ]; +return this; +}, +abort: function(e) { +var t = e || x; +return r && r.abort(t), i(0, t), this; } -}, this.revertDelta = function(e) { -this.applyDelta({ -start: this.clonePos(e.start), -end: this.clonePos(e.end), -action: "insert" == e.action ? "remove" : "insert", -lines: e.lines.slice() -}); -}, this.indexToPosition = function(e, t) { -for (var n = this.$lines || this.getAllLines(), i = this.getNewLineCharacter().length, r = t || 0, o = n.length; r < o; r++) if ((e -= n[r].length + i) < 0) return { -row: r, -column: e + n[r].length + i -}; -return { -row: o - 1, -column: n[o - 1].length -}; -}, this.positionToIndex = function(e, t) { -for (var n = this.$lines || this.getAllLines(), i = this.getNewLineCharacter().length, r = 0, o = Math.min(e.row, n.length), a = t || 0; a < o; ++a) r += n[a].length + i; -return r + e.column; }; -}).call(l.prototype), t.Document = l; -}), ace.define("ace/background_tokenizer", [ "require", "exports", "module", "ace/lib/oop", "ace/lib/event_emitter" ], function(e, t, n) { -"use strict"; -var i = e("./lib/oop"), r = e("./lib/event_emitter").EventEmitter, o = function(e, t) { -this.running = !1, this.lines = [], this.states = [], this.currentLine = 0, this.tokenizer = e; -var n = this; -this.$worker = function() { -if (n.running) { -for (var e = new Date(), t = n.currentLine, i = -1, r = n.doc, o = t; n.lines[t]; ) t++; -var a = r.getLength(), s = 0; -for (n.running = !1; t < a; ) { -n.$tokenizeRow(t), i = t; -do { -t++; -} while (n.lines[t]); -if (++s % 5 == 0 && new Date() - e > 20) { -n.running = setTimeout(n.$worker, 20); -break; +if (v.promise(C), p.url = ((t || p.url || xt.href) + "").replace(Lt, xt.protocol + "//"), p.type = n.method || n.type || p.method || p.type, p.dataTypes = (p.dataType || "*").toLowerCase().match(Te) || [ "" ], null == p.crossDomain) { +c = te.createElement("a"); +try { +c.href = p.url, c.href = c.href, p.crossDomain = Bt.protocol + "//" + Bt.host != c.protocol + "//" + c.host; +} catch (e) { +p.crossDomain = !0; } } -n.currentLine = t, -1 == i && (i = t), o <= i && n.fireUpdateEvent(o, i); +if (p.data && p.processData && "string" != typeof p.data && (p.data = fe.param(p.data, p.traditional)), X(Ot, p, n, C), u) return C; +(d = fe.event && p.global) && 0 == fe.active++ && fe.event.trigger("ajaxStart"), p.type = p.type.toUpperCase(), p.hasContent = !Pt.test(p.type), o = p.url.replace(Et, ""), p.hasContent ? p.data && p.processData && 0 === (p.contentType || "").indexOf("application/x-www-form-urlencoded") && (p.data = p.data.replace(Dt, "+")) : (f = p.url.slice(o.length), p.data && (o += (St.test(o) ? "&" : "?") + p.data, delete p.data), !1 === p.cache && (o = o.replace(Ft, "$1"), f = (St.test(o) ? "&" : "?") + "_=" + Ct++ + f), p.url = o + f), p.ifModified && (fe.lastModified[o] && C.setRequestHeader("If-Modified-Since", fe.lastModified[o]), fe.etag[o] && C.setRequestHeader("If-None-Match", fe.etag[o])), (p.data && p.hasContent && !1 !== p.contentType || n.contentType) && C.setRequestHeader("Content-Type", p.contentType), C.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Nt + "; q=0.01" : "") : p.accepts["*"]); +for (h in p.headers) C.setRequestHeader(h, p.headers[h]); +if (p.beforeSend && (!1 === p.beforeSend.call(g, C, p) || u)) return C.abort(); +if (x = "abort", b.add(p.complete), C.done(p.success), C.fail(p.error), r = X(Rt, p, n, C)) { +if (C.readyState = 1, d && m.trigger("ajaxSend", [ C, p ]), u) return C; +p.async && p.timeout > 0 && (l = e.setTimeout(function() { +C.abort("timeout"); +}, p.timeout)); +try { +u = !1, r.send(w, i); +} catch (e) { +if (u) throw e; +i(-1, e); } +} else i(-1, "No Transport"); +return C; +}, +getJSON: function(e, t, n) { +return fe.get(e, t, n, "json"); +}, +getScript: function(e, t) { +return fe.get(e, void 0, t, "script"); +} +}), fe.each([ "get", "post" ], function(e, t) { +fe[t] = function(e, n, i, r) { +return fe.isFunction(n) && (r = r || i, i = n, n = void 0), fe.ajax(fe.extend({ +url: e, +type: t, +dataType: r, +data: n, +success: i +}, fe.isPlainObject(e) && e)); }; -}; -(function() { -i.implement(this, r), this.setTokenizer = function(e) { -this.tokenizer = e, this.lines = [], this.states = [], this.start(0); -}, this.setDocument = function(e) { -this.doc = e, this.lines = [], this.states = [], this.stop(); -}, this.fireUpdateEvent = function(e, t) { -var n = { -first: e, -last: t -}; -this._signal("update", { -data: n +}), fe._evalUrl = function(e) { +return fe.ajax({ +url: e, +type: "GET", +dataType: "script", +cache: !0, +async: !1, +global: !1, +throws: !0 }); -}, this.start = function(e) { -this.currentLine = Math.min(e || 0, this.currentLine, this.doc.getLength()), this.lines.splice(this.currentLine, this.lines.length), this.states.splice(this.currentLine, this.states.length), this.stop(), this.running = setTimeout(this.$worker, 700); -}, this.scheduleStart = function() { -this.running || (this.running = setTimeout(this.$worker, 700)); -}, this.$updateOnChange = function(e) { -var t = e.start.row, n = e.end.row - t; -if (0 === n) this.lines[t] = null; else if ("remove" == e.action) this.lines.splice(t, n + 1, null), this.states.splice(t, n + 1, null); else { -var i = Array(n + 1); -i.unshift(t, 1), this.lines.splice.apply(this.lines, i), this.states.splice.apply(this.states, i); +}, fe.fn.extend({ +wrapAll: function(e) { +var t; +return this[0] && (fe.isFunction(e) && (e = e.call(this[0])), t = fe(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() { +for (var e = this; e.firstElementChild; ) e = e.firstElementChild; +return e; +}).append(this)), this; +}, +wrapInner: function(e) { +return fe.isFunction(e) ? this.each(function(t) { +fe(this).wrapInner(e.call(this, t)); +}) : this.each(function() { +var t = fe(this), n = t.contents(); +n.length ? n.wrapAll(e) : t.append(e); +}); +}, +wrap: function(e) { +var t = fe.isFunction(e); +return this.each(function(n) { +fe(this).wrapAll(t ? e.call(this, n) : e); +}); +}, +unwrap: function(e) { +return this.parent(e).not("body").each(function() { +fe(this).replaceWith(this.childNodes); +}), this; } -this.currentLine = Math.min(t, this.currentLine, this.doc.getLength()), this.stop(); -}, this.stop = function() { -this.running && clearTimeout(this.running), this.running = !1; -}, this.getTokens = function(e) { -return this.lines[e] || this.$tokenizeRow(e); -}, this.getState = function(e) { -return this.currentLine == e && this.$tokenizeRow(e), this.states[e] || "start"; -}, this.$tokenizeRow = function(e) { -var t = this.doc.getLine(e), n = this.states[e - 1], i = this.tokenizer.getLineTokens(t, n, e); -return this.states[e] + "" != i.state + "" ? (this.states[e] = i.state, this.lines[e + 1] = null, this.currentLine > e + 1 && (this.currentLine = e + 1)) : this.currentLine == e && (this.currentLine = e + 1), this.lines[e] = i.tokens; +}), fe.expr.pseudos.hidden = function(e) { +return !fe.expr.pseudos.visible(e); +}, fe.expr.pseudos.visible = function(e) { +return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); +}, fe.ajaxSettings.xhr = function() { +try { +return new e.XMLHttpRequest(); +} catch (e) {} }; -}).call(o.prototype), t.BackgroundTokenizer = o; -}), ace.define("ace/search_highlight", [ "require", "exports", "module", "ace/lib/lang", "ace/lib/oop", "ace/range" ], function(e, t, n) { -"use strict"; -var i = e("./lib/lang"), r = (e("./lib/oop"), e("./range").Range), o = function(e, t, n) { -this.setRegexp(e), this.clazz = t, this.type = n || "text"; +var jt = { +0: 200, +1223: 204 +}, Ht = fe.ajaxSettings.xhr(); +he.cors = !!Ht && "withCredentials" in Ht, he.ajax = Ht = !!Ht, fe.ajaxTransport(function(t) { +var n, i; +if (he.cors || Ht && !t.crossDomain) return { +send: function(r, o) { +var a, s = t.xhr(); +if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields) for (a in t.xhrFields) s[a] = t.xhrFields[a]; +t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || r["X-Requested-With"] || (r["X-Requested-With"] = "XMLHttpRequest"); +for (a in r) s.setRequestHeader(a, r[a]); +n = function(e) { +return function() { +n && (n = i = s.onload = s.onerror = s.onabort = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(jt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? { +binary: s.response +} : { +text: s.responseText +}, s.getAllResponseHeaders())); }; -(function() { -this.MAX_RANGES = 500, this.setRegexp = function(e) { -this.regExp + "" != e + "" && (this.regExp = e, this.cache = []); -}, this.update = function(e, t, n, o) { -if (this.regExp) for (var a = o.firstRow, s = o.lastRow, l = a; l <= s; l++) { -var c = this.cache[l]; -null == c && ((c = i.getMatchOffsets(n.getLine(l), this.regExp)).length > this.MAX_RANGES && (c = c.slice(0, this.MAX_RANGES)), c = c.map(function(e) { -return new r(l, e.offset, l, e.offset + e.length); -}), this.cache[l] = c.length ? c : ""); -for (var u = c.length; u--; ) t.drawSingleLineMarker(e, c[u].toScreenRange(n), this.clazz, o); +}, s.onload = n(), i = s.onerror = n("error"), void 0 !== s.onabort ? s.onabort = i : s.onreadystatechange = function() { +4 === s.readyState && e.setTimeout(function() { +n && i(); +}); +}, n = n("abort"); +try { +s.send(t.hasContent && t.data || null); +} catch (e) { +if (n) throw e; +} +}, +abort: function() { +n && n(); } }; -}).call(o.prototype), t.SearchHighlight = o; -}), ace.define("ace/edit_session/fold_line", [ "require", "exports", "module", "ace/range" ], function(e, t, n) { -"use strict"; -function i(e, t) { -this.foldData = e, Array.isArray(t) ? this.folds = t : t = this.folds = [ t ]; -var n = t[t.length - 1]; -this.range = new r(t[0].start.row, t[0].start.column, n.end.row, n.end.column), this.start = this.range.start, this.end = this.range.end, this.folds.forEach(function(e) { -e.setFoldLine(this); -}, this); +}), fe.ajaxPrefilter(function(e) { +e.crossDomain && (e.contents.script = !1); +}), fe.ajaxSetup({ +accepts: { +script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" +}, +contents: { +script: /\b(?:java|ecma)script\b/ +}, +converters: { +"text script": function(e) { +return fe.globalEval(e), e; } -var r = e("../range").Range; -(function() { -this.shiftRow = function(e) { -this.start.row += e, this.end.row += e, this.folds.forEach(function(t) { -t.start.row += e, t.end.row += e; -}); -}, this.addFold = function(e) { -if (e.sameRow) { -if (e.start.row < this.startRow || e.endRow > this.endRow) throw new Error("Can't add a fold to this FoldLine as it has no connection"); -this.folds.push(e), this.folds.sort(function(e, t) { -return -e.range.compareEnd(t.start.row, t.start.column); -}), this.range.compareEnd(e.start.row, e.start.column) > 0 ? (this.end.row = e.end.row, this.end.column = e.end.column) : this.range.compareStart(e.end.row, e.end.column) < 0 && (this.start.row = e.start.row, this.start.column = e.start.column); -} else if (e.start.row == this.end.row) this.folds.push(e), this.end.row = e.end.row, this.end.column = e.end.column; else { -if (e.end.row != this.start.row) throw new Error("Trying to add fold to FoldRow that doesn't have a matching row"); -this.folds.unshift(e), this.start.row = e.start.row, this.start.column = e.start.column; } -e.foldLine = this; -}, this.containsRow = function(e) { -return e >= this.start.row && e <= this.end.row; -}, this.walk = function(e, t, n) { -var i, r, o, a = 0, s = this.folds, l = !0; -null == t && (t = this.end.row, n = this.end.column); -for (var c = 0; c < s.length; c++) { -if (i = s[c], -1 == (r = i.range.compareStart(t, n))) return void e(null, t, n, a, l); -if (o = e(null, i.start.row, i.start.column, a, l), (o = !o && e(i.placeholder, i.start.row, i.start.column, a)) || 0 === r) return; -l = !i.sameRow, a = i.end.column; +}), fe.ajaxPrefilter("script", function(e) { +void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); +}), fe.ajaxTransport("script", function(e) { +if (e.crossDomain) { +var t, n; +return { +send: function(i, r) { +t = fe("