PageSourceSearch

https://informatika.sk/web/sk/app/public/core/js/components.js

js informatika.sk collected 2026-09-28 05:59:01 UTC 2,194,615 bytes, 21,428 lines download raw bytes

1if (typeof hyperix == "object") {
2  hyperix.extension("loadIndicator", {
3    elementId: "page-load-indicator",
4    update: function(requestState) {
5      if (requestState.background) {
6        // Skip background indicator update in background event //
7        return;
8      }
9      
10      var element = document.getElementById(this.elementId);
11      element.classList.remove("initialization");
12  
13      var progress = (requestState.uploadProgress + requestState.downloadProgress) / 2;
14  
15      element.style.width = (progress * 100) + "%";
16  
17      if (progress >= 1) {
18        setTimeout(this.reset.bind(this), 10);
19      }
20    },
21    reset: function() {
22//      hyperix.log("Reseting indicator");
23      var element = document.getElementById(this.elementId);
24  
25      element.classList.add("initialization");
26      element.style.width = "0%";
27    }
28  });
29}
30
31
32!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):e.moment=a()}(this,function(){"use strict";var e,n;function l(){return e.apply(null,arguments)}function _(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function m(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function M(e,a){var t,s=[];for(t=0;t<e.length;++t)s.push(a(e[t],t));return s}function h(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function L(e,a){for(var t in a)h(a,t)&&(e[t]=a[t]);return h(a,"toString")&&(e.toString=a.toString),h(a,"valueOf")&&(e.valueOf=a.valueOf),e}function c(e,a,t,s){return Sa(e,a,t,s,!0).utc()}function Y(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function y(e){if(null==e._isValid){var a=Y(e),t=n.call(a.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&a.overflow<0&&!a.empty&&!a.invalidMonth&&!a.invalidWeekday&&!a.weekdayMismatch&&!a.nullInput&&!a.invalidFormat&&!a.userInvalidated&&(!a.meridiem||a.meridiem&&t);if(e._strict&&(s=s&&0===a.charsLeftOver&&0===a.unusedTokens.length&&void 0===a.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function f(e){var a=c(NaN);return null!=e?L(Y(a),e):Y(a).userInvalidated=!0,a}n=Array.prototype.some?Array.prototype.some:function(e){for(var a=Object(this),t=a.length>>>0,s=0;s<t;s++)if(s in a&&e.call(this,a[s],s,a))return!0;return!1};var d=l.momentProperties=[];function k(e,a){var t,s,n;if(o(a._isAMomentObject)||(e._isAMomentObject=a._isAMomentObject),o(a._i)||(e._i=a._i),o(a._f)||(e._f=a._f),o(a._l)||(e._l=a._l),o(a._strict)||(e._strict=a._strict),o(a._tzm)||(e._tzm=a._tzm),o(a._isUTC)||(e._isUTC=a._isUTC),o(a._offset)||(e._offset=a._offset),o(a._pf)||(e._pf=Y(a)),o(a._locale)||(e._locale=a._locale),0<d.length)for(t=0;t<d.length;t++)o(n=a[s=d[t]])||(e[s]=n);return e}var a=!1;function p(e){k(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===a&&(a=!0,l.updateOffset(this),a=!1)}function D(e){return e instanceof p||null!=e&&null!=e._isAMomentObject}function T(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function g(e){var a=+e,t=0;return 0!==a&&isFinite(a)&&(t=T(a)),t}function r(e,a,t){var s,n=Math.min(e.length,a.length),d=Math.abs(e.length-a.length),r=0;for(s=0;s<n;s++)(t&&e[s]!==a[s]||!t&&g(e[s])!==g(a[s]))&&r++;return r+d}function w(e){!1===l.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function t(n,d){var r=!0;return L(function(){if(null!=l.deprecationHandler&&l.deprecationHandler(null,n),r){for(var e,a=[],t=0;t<arguments.length;t++){if(e="","object"==typeof arguments[t]){for(var s in e+="\n["+t+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[t];a.push(e)}w(n+"\nArguments: "+Array.prototype.slice.call(a).join("")+"\n"+(new Error).stack),r=!1}return d.apply(this,arguments)},d)}var s,v={};function S(e,a){null!=l.deprecationHandler&&l.deprecationHandler(e,a),v[e]||(w(a),v[e]=!0)}function H(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function b(e,a){var t,s=L({},e);for(t in a)h(a,t)&&(i(e[t])&&i(a[t])?(s[t]={},L(s[t],e[t]),L(s[t],a[t])):null!=a[t]?s[t]=a[t]:delete s[t]);for(t in e)h(e,t)&&!h(a,t)&&i(e[t])&&(s[t]=L({},s[t]));return s}function j(e){null!=e&&this.set(e)}l.suppressDeprecationWarnings=!1,l.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var a,t=[];for(a in e)h(e,a)&&t.push(a);return t};var x={};function O(e,a){var t=e.toLowerCase();x[t]=x[t+"s"]=x[a]=e}function P(e){return"string"==typeof e?x[e]||x[e.toLowerCase()]:void 0}function W(e){var a,t,s={};for(t in e)h(e,t)&&(a=P(t))&&(s[a]=e[t]);return s}var A={};function E(e,a){A[e]=a}function F(e,a,t){var s=""+Math.abs(e),n=a-s.length;return(0<=e?t?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+s}var z=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}
vendor: 47,396 bytes, line 32
32|x|X|zz?|ZZ?|.)/g,J=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,N={},R={};function C(e,a,t,s){var n=s;"string"==typeof s&&(n=function(){return this[s]()}),e&&(R[e]=n),a&&(R[a[0]]=function(){return F(n.apply(this,arguments),a[1],a[2])}),t&&(R[t]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function I(e,a){return e.isValid()?(a=U(a,e.localeData()),N[a]=N[a]||function(s){var e,n,a,d=s.match(z);for(e=0,n=d.length;e<n;e++)R[d[e]]?d[e]=R[d[e]]:d[e]=(a=d[e]).match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"");return function(e){var a,t="";for(a=0;a<n;a++)t+=H(d[a])?d[a].call(e,s):d[a];return t}}(a),N[a](e)):e.localeData().invalidDate()}function U(e,a){var t=5;function s(e){return a.longDateFormat(e)||e}for(J.lastIndex=0;0<=t&&J.test(e);)e=e.replace(J,s),J.lastIndex=0,t-=1;return e}var G=/\d/,V=/\d\d/,K=/\d{3}/,Z=/\d{4}/,$=/[+-]?\d{6}/,B=/\d\d?/,q=/\d\d\d\d?/,Q=/\d\d\d\d\d\d?/,X=/\d{1,3}/,ee=/\d{1,4}/,ae=/[+-]?\d{1,6}/,te=/\d+/,se=/[+-]?\d+/,ne=/Z|[+-]\d\d:?\d\d/gi,de=/Z|[+-]\d\d(?::?\d\d)?/gi,re=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,_e={};function ie(e,t,s){_e[e]=H(t)?t:function(e,a){return e&&s?s:t}}function oe(e,a){return h(_e,e)?_e[e](a._strict,a._locale):new RegExp(me(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,a,t,s,n){return a||t||s||n})))}function me(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ue={};function le(e,t){var a,s=t;for("string"==typeof e&&(e=[e]),m(t)&&(s=function(e,a){a[t]=g(e)}),a=0;a<e.length;a++)ue[e[a]]=s}function Me(e,n){le(e,function(e,a,t,s){t._w=t._w||{},n(e,t._w,t,s)})}var he=0,Le=1,ce=2,Ye=3,ye=4,fe=5,ke=6,pe=7,De=8;function Te(e){return ge(e)?366:365}function ge(e){return e%4==0&&e%100!=0||e%400==0}C("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),C(0,["YY",2],0,function(){return this.year()%100}),C(0,["YYYY",4],0,"year"),C(0,["YYYYY",5],0,"year"),C(0,["YYYYYY",6,!0],0,"year"),O("year","y"),E("year",1),ie("Y",se),ie("YY",B,V),ie("YYYY",ee,Z),ie("YYYYY",ae,$),ie("YYYYYY",ae,$),le(["YYYYY","YYYYYY"],he),le("YYYY",function(e,a){a[he]=2===e.length?l.parseTwoDigitYear(e):g(e)}),le("YY",function(e,a){a[he]=l.parseTwoDigitYear(e)}),le("Y",function(e,a){a[he]=parseInt(e,10)}),l.parseTwoDigitYear=function(e){return g(e)+(68<g(e)?1900:2e3)};var we,ve=Se("FullYear",!0);function Se(a,t){return function(e){return null!=e?(be(this,a,e),l.updateOffset(this,t),this):He(this,a)}}function He(e,a){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+a]():NaN}function be(e,a,t){e.isValid()&&!isNaN(t)&&("FullYear"===a&&ge(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+a](t,e.month(),je(t,e.month())):e._d["set"+(e._isUTC?"UTC":"")+a](t))}function je(e,a){if(isNaN(e)||isNaN(a))return NaN;var t,s=(a%(t=12)+t)%t;return e+=(a-s)/12,1===s?ge(e)?29:28:31-s%7%2}we=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var a;for(a=0;a<this.length;++a)if(this[a]===e)return a;return-1},C("M",["MM",2],"Mo",function(){return this.month()+1}),C("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),C("MMMM",0,0,function(e){return this.localeData().months(this,e)}),O("month","M"),E("month",8),ie("M",B),ie("MM",B,V),ie("MMM",function(e,a){return a.monthsShortRegex(e)}),ie("MMMM",function(e,a){return a.monthsRegex(e)}),le(["M","MM"],function(e,a){a[Le]=g(e)-1}),le(["MMM","MMMM"],function(e,a,t,s){var n=t._locale.monthsParse(e,s,t._strict);null!=n?a[Le]=n:Y(t).invalidMonth=e});var xe=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Oe="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var Pe="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function We(e,a){var t;if(!e.isValid())return e;if("string"==typeof a)if(/^\d+$/.test(a))a=g(a);else if(!m(a=e.localeData().monthsParse(a)))return e;return t=Math.min(e.date(),je(e.year(),a)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](a,t),e}function Ae(e){return null!=e?(We(this,e),l.updateOffset(this,!0),this):He(this,"Month")}var Ee=re;var Fe=re;function ze(){function e(e,a){return a.length-e.length}var a,t,s=[],n=[],d=[];for(a=0;a<12;a++)t=c([2e3,a]),s.push(this.monthsShort(t,"")),n.push(this.months(t,"")),d.push(this.months(t,"")),d.push(this.monthsShort(t,""));for(s.sort(e),n.sort(e),d.sort(e),a=0;a<12;a++)s[a]=me(s[a]),n[a]=me(n[a]);for(a=0;a<24;a++)d[a]=me(d[a]);this._monthsRegex=new RegExp("^("+d.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Je(e){var a;if(e<100&&0<=e){var t=Array.prototype.slice.call(arguments);t[0]=e+400,a=new Date(Date.UTC.apply(null,t)),isFinite(a.getUTCFullYear())&&a.setUTCFullYear(e)}else a=new Date(Date.UTC.apply(null,arguments));return a}function Ne(e,a,t){var s=7+a-t;return-((7+Je(e,0,s).getUTCDay()-a)%7)+s-1}function Re(e,a,t,s,n){var d,r,_=1+7*(a-1)+(7+t-s)%7+Ne(e,s,n);return r=_<=0?Te(d=e-1)+_:_>Te(e)?(d=e+1,_-Te(e)):(d=e,_),{year:d,dayOfYear:r}}function Ce(e,a,t){var s,n,d=Ne(e.year(),a,t),r=Math.floor((e.dayOfYear()-d-1)/7)+1;return r<1?s=r+Ie(n=e.year()-1,a,t):r>Ie(e.year(),a,t)?(s=r-Ie(e.year(),a,t),n=e.year()+1):(n=e.year(),s=r),{week:s,year:n}}function Ie(e,a,t){var s=Ne(e,a,t),n=Ne(e+1,a,t);return(Te(e)-s+n)/7}C("w",["ww",2],"wo","week"),C("W",["WW",2],"Wo","isoWeek"),O("week","w"),O("isoWeek","W"),E("week",5),E("isoWeek",5),ie("w",B),ie("ww",B,V),ie("W",B),ie("WW",B,V),Me(["w","ww","W","WW"],function(e,a,t,s){a[s.substr(0,1)]=g(e)});function Ue(e,a){return e.slice(a,7).concat(e.slice(0,a))}C("d",0,"do","day"),C("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),C("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),C("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),C("e",0,0,"weekday"),C("E",0,0,"isoWeekday"),O("day","d"),O("weekday","e"),O("isoWeekday","E"),E("day",11),E("weekday",11),E("isoWeekday",11),ie("d",B),ie("e",B),ie("E",B),ie("dd",function(e,a){return a.weekdaysMinRegex(e)}),ie("ddd",function(e,a){return a.weekdaysShortRegex(e)}),ie("dddd",function(e,a){return a.weekdaysRegex(e)}),Me(["dd","ddd","dddd"],function(e,a,t,s){var n=t._locale.weekdaysParse(e,s,t._strict);null!=n?a.d=n:Y(t).invalidWeekday=e}),Me(["d","e","E"],function(e,a,t,s){a[s]=g(e)});var Ge="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ve="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Ke="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var Ze=re;var $e=re;var Be=re;function qe(){function e(e,a){return a.length-e.length}var a,t,s,n,d,r=[],_=[],i=[],o=[];for(a=0;a<7;a++)t=c([2e3,1]).day(a),s=this.weekdaysMin(t,""),n=this.weekdaysShort(t,""),d=this.weekdays(t,""),r.push(s),_.push(n),i.push(d),o.push(s),o.push(n),o.push(d);for(r.sort(e),_.sort(e),i.sort(e),o.sort(e),a=0;a<7;a++)_[a]=me(_[a]),i[a]=me(i[a]),o[a]=me(o[a]);this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+_.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,a){C(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function ea(e,a){return a._meridiemParse}C("H",["HH",2],0,"hour"),C("h",["hh",2],0,Qe),C("k",["kk",2],0,function(){return this.hours()||24}),C("hmm",0,0,function(){return""+Qe.apply(this)+F(this.minutes(),2)}),C("hmmss",0,0,function(){return""+Qe.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)}),C("Hmm",0,0,function(){return""+this.hours()+F(this.minutes(),2)}),C("Hmmss",0,0,function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),O("hour","h"),E("hour",13),ie("a",ea),ie("A",ea),ie("H",B),ie("h",B),ie("k",B),ie("HH",B,V),ie("hh",B,V),ie("kk",B,V),ie("hmm",q),ie("hmmss",Q),ie("Hmm",q),ie("Hmmss",Q),le(["H","HH"],Ye),le(["k","kk"],function(e,a,t){var s=g(e);a[Ye]=24===s?0:s}),le(["a","A"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),le(["h","hh"],function(e,a,t){a[Ye]=g(e),Y(t).bigHour=!0}),le("hmm",function(e,a,t){var s=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s)),Y(t).bigHour=!0}),le("hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s,2)),a[fe]=g(e.substr(n)),Y(t).bigHour=!0}),le("Hmm",function(e,a,t){var s=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s))}),le("Hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s,2)),a[fe]=g(e.substr(n))});var aa,ta=Se("Hours",!0),sa={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Oe,monthsShort:Pe,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Ke,weekdaysShort:Ve,meridiemParse:/[ap]\.?m?\.?/i},na={},da={};function ra(e){return e?e.toLowerCase().replace("_","-"):e}function _a(e){var a=null;if(!na[e]&&"undefined"!=typeof module&&module&&module.exports)try{a=aa._abbr,require("./locale/"+e),ia(a)}catch(e){}return na[e]}function ia(e,a){var t;return e&&((t=o(a)?ma(e):oa(e,a))?aa=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),aa._abbr}function oa(e,a){if(null===a)return delete na[e],null;var t,s=sa;if(a.abbr=e,null!=na[e])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=na[e]._config;else if(null!=a.parentLocale)if(null!=na[a.parentLocale])s=na[a.parentLocale]._config;else{if(null==(t=_a(a.parentLocale)))return da[a.parentLocale]||(da[a.parentLocale]=[]),da[a.parentLocale].push({name:e,config:a}),null;s=t._config}return na[e]=new j(b(s,a)),da[e]&&da[e].forEach(function(e){oa(e.name,e.config)}),ia(e),na[e]}function ma(e){var a;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return aa;if(!_(e)){if(a=_a(e))return a;e=[e]}return function(e){for(var a,t,s,n,d=0;d<e.length;){for(a=(n=ra(e[d]).split("-")).length,t=(t=ra(e[d+1]))?t.split("-"):null;0<a;){if(s=_a(n.slice(0,a).join("-")))return s;if(t&&t.length>=a&&r(n,t,!0)>=a-1)break;a--}d++}return aa}(e)}function ua(e){var a,t=e._a;return t&&-2===Y(e).overflow&&(a=t[Le]<0||11<t[Le]?Le:t[ce]<1||t[ce]>je(t[he],t[Le])?ce:t[Ye]<0||24<t[Ye]||24===t[Ye]&&(0!==t[ye]||0!==t[fe]||0!==t[ke])?Ye:t[ye]<0||59<t[ye]?ye:t[fe]<0||59<t[fe]?fe:t[ke]<0||999<t[ke]?ke:-1,Y(e)._overflowDayOfYear&&(a<he||ce<a)&&(a=ce),Y(e)._overflowWeeks&&-1===a&&(a=pe),Y(e)._overflowWeekday&&-1===a&&(a=De),Y(e).overflow=a),e}function la(e,a,t){return null!=e?e:null!=a?a:t}function Ma(e){var a,t,s,n,d,r=[];if(!e._d){var _,i;for(_=e,i=new Date(l.now()),s=_._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()],e._w&&null==e._a[ce]&&null==e._a[Le]&&function(e){var a,t,s,n,d,r,_,i;if(null!=(a=e._w).GG||null!=a.W||null!=a.E)d=1,r=4,t=la(a.GG,e._a[he],Ce(Ha(),1,4).year),s=la(a.W,1),((n=la(a.E,1))<1||7<n)&&(i=!0);else{d=e._locale._week.dow,r=e._locale._week.doy;var o=Ce(Ha(),d,r);t=la(a.gg,e._a[he],o.year),s=la(a.w,o.week),null!=a.d?((n=a.d)<0||6<n)&&(i=!0):null!=a.e?(n=a.e+d,(a.e<0||6<a.e)&&(i=!0)):n=d}s<1||s>Ie(t,d,r)?Y(e)._overflowWeeks=!0:null!=i?Y(e)._overflowWeekday=!0:(_=Re(t,s,n,d,r),e._a[he]=_.year,e._dayOfYear=_.dayOfYear)}(e),null!=e._dayOfYear&&(d=la(e._a[he],s[he]),(e._dayOfYear>Te(d)||0===e._dayOfYear)&&(Y(e)._overflowDayOfYear=!0),t=Je(d,0,e._dayOfYear),e._a[Le]=t.getUTCMonth(),e._a[ce]=t.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=r[a]=s[a];for(;a<7;a++)e._a[a]=r[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[Ye]&&0===e._a[ye]&&0===e._a[fe]&&0===e._a[ke]&&(e._nextDay=!0,e._a[Ye]=0),e._d=(e._useUTC?Je:function(e,a,t,s,n,d,r){var _;return e<100&&0<=e?(_=new Date(e+400,a,t,s,n,d,r),isFinite(_.getFullYear())&&_.setFullYear(e)):_=new Date(e,a,t,s,n,d,r),_}).apply(null,r),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Ye]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(Y(e).weekdayMismatch=!0)}}var ha=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,La=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ca=/Z|[+-]\d\d(?::?\d\d)?/,Ya=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ya=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],fa=/^\/?Date\((\-?\d+)/i;function ka(e){var a,t,s,n,d,r,_=e._i,i=ha.exec(_)||La.exec(_);if(i){for(Y(e).iso=!0,a=0,t=Ya.length;a<t;a++)if(Ya[a][1].exec(i[1])){n=Ya[a][0],s=!1!==Ya[a][2];break}if(null==n)return void(e._isValid=!1);if(i[3]){for(a=0,t=ya.length;a<t;a++)if(ya[a][1].exec(i[3])){d=(i[2]||" ")+ya[a][0];break}if(null==d)return void(e._isValid=!1)}if(!s&&null!=d)return void(e._isValid=!1);if(i[4]){if(!ca.exec(i[4]))return void(e._isValid=!1);r="Z"}e._f=n+(d||"")+(r||""),wa(e)}else e._isValid=!1}var pa=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Da(e,a,t,s,n,d){var r=[function(e){var a=parseInt(e,10);{if(a<=49)return 2e3+a;if(a<=999)return 1900+a}return a}(e),Pe.indexOf(a),parseInt(t,10),parseInt(s,10),parseInt(n,10)];return d&&r.push(parseInt(d,10)),r}var Ta={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ga(e){var a,t,s,n=pa.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(n){var d=Da(n[4],n[3],n[2],n[5],n[6],n[7]);if(a=n[1],t=d,s=e,a&&Ve.indexOf(a)!==new Date(t[0],t[1],t[2]).getDay()&&(Y(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=d,e._tzm=function(e,a,t){if(e)return Ta[e];if(a)return 0;var s=parseInt(t,10),n=s%100;return(s-n)/100*60+n}(n[8],n[9],n[10]),e._d=Je.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),Y(e).rfc2822=!0}else e._isValid=!1}function wa(e){if(e._f!==l.ISO_8601)if(e._f!==l.RFC_2822){e._a=[],Y(e).empty=!0;var a,t,s,n,d,r,_,i,o=""+e._i,m=o.length,u=0;for(s=U(e._f,e._locale).match(z)||[],a=0;a<s.length;a++)n=s[a],(t=(o.match(oe(n,e))||[])[0])&&(0<(d=o.substr(0,o.indexOf(t))).length&&Y(e).unusedInput.push(d),o=o.slice(o.indexOf(t)+t.length),u+=t.length),R[n]?(t?Y(e).empty=!1:Y(e).unusedTokens.push(n),r=n,i=e,null!=(_=t)&&h(ue,r)&&ue[r](_,i._a,i,r)):e._strict&&!t&&Y(e).unusedTokens.push(n);Y(e).charsLeftOver=m-u,0<o.length&&Y(e).unusedInput.push(o),e._a[Ye]<=12&&!0===Y(e).bigHour&&0<e._a[Ye]&&(Y(e).bigHour=void 0),Y(e).parsedDateParts=e._a.slice(0),Y(e).meridiem=e._meridiem,e._a[Ye]=function(e,a,t){var s;if(null==t)return a;return null!=e.meridiemHour?e.meridiemHour(a,t):(null!=e.isPM&&((s=e.isPM(t))&&a<12&&(a+=12),s||12!==a||(a=0)),a)}(e._locale,e._a[Ye],e._meridiem),Ma(e),ua(e)}else ga(e);else ka(e)}function va(e){var a,t,s,n,d=e._i,r=e._f;return e._locale=e._locale||ma(e._l),null===d||void 0===r&&""===d?f({nullInput:!0}):("string"==typeof d&&(e._i=d=e._locale.preparse(d)),D(d)?new p(ua(d)):(u(d)?e._d=d:_(r)?function(e){var a,t,s,n,d;if(0===e._f.length)return Y(e).invalidFormat=!0,e._d=new Date(NaN);for(n=0;n<e._f.length;n++)d=0,a=k({},e),null!=e._useUTC&&(a._useUTC=e._useUTC),a._f=e._f[n],wa(a),y(a)&&(d+=Y(a).charsLeftOver,d+=10*Y(a).unusedTokens.length,Y(a).score=d,(null==s||d<s)&&(s=d,t=a));L(e,t||a)}(e):r?wa(e):o(t=(a=e)._i)?a._d=new Date(l.now()):u(t)?a._d=new Date(t.valueOf()):"string"==typeof t?(s=a,null===(n=fa.exec(s._i))?(ka(s),!1===s._isValid&&(delete s._isValid,ga(s),!1===s._isValid&&(delete s._isValid,l.createFromInputFallback(s)))):s._d=new Date(+n[1])):_(t)?(a._a=M(t.slice(0),function(e){return parseInt(e,10)}),Ma(a)):i(t)?function(e){if(!e._d){var a=W(e._i);e._a=M([a.year,a.month,a.day||a.date,a.hour,a.minute,a.second,a.millisecond],function(e){return e&&parseInt(e,10)}),Ma(e)}}(a):m(t)?a._d=new Date(t):l.createFromInputFallback(a),y(e)||(e._d=null),e))}function Sa(e,a,t,s,n){var d,r={};return!0!==t&&!1!==t||(s=t,t=void 0),(i(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var a;for(a in e)if(e.hasOwnProperty(a))return!1;return!0}(e)||_(e)&&0===e.length)&&(e=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=n,r._l=t,r._i=e,r._f=a,r._strict=s,(d=new p(ua(va(r))))._nextDay&&(d.add(1,"d"),d._nextDay=void 0),d}function Ha(e,a,t,s){return Sa(e,a,t,s,!1)}l.createFromInputFallback=t("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),l.ISO_8601=function(){},l.RFC_2822=function(){};var ba=t("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Ha.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:f()}),ja=t("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Ha.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:f()});function xa(e,a){var t,s;if(1===a.length&&_(a[0])&&(a=a[0]),!a.length)return Ha();for(t=a[0],s=1;s<a.length;++s)a[s].isValid()&&!a[s][e](t)||(t=a[s]);return t}var Oa=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Pa(e){var a=W(e),t=a.year||0,s=a.quarter||0,n=a.month||0,d=a.week||a.isoWeek||0,r=a.day||0,_=a.hour||0,i=a.minute||0,o=a.second||0,m=a.millisecond||0;this._isValid=function(e){for(var a in e)if(-1===we.call(Oa,a)||null!=e[a]&&isNaN(e[a]))return!1;for(var t=!1,s=0;s<Oa.length;++s)if(e[Oa[s]]){if(t)return!1;parseFloat(e[Oa[s]])!==g(e[Oa[s]])&&(t=!0)}return!0}(a),this._milliseconds=+m+1e3*o+6e4*i+1e3*_*60*60,this._days=+r+7*d,this._months=+n+3*s+12*t,this._data={},this._locale=ma(),this._bubble()}function Wa(e){return e instanceof Pa}function Aa(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ea(e,t){C(e,0,0,function(){var e=this.utcOffset(),a="+";return e<0&&(e=-e,a="-"),a+F(~~(e/60),2)+t+F(~~e%60,2)})}Ea("Z",":"),Ea("ZZ",""),ie("Z",de),ie("ZZ",de),le(["Z","ZZ"],function(e,a,t){t._useUTC=!0,t._tzm=za(de,e)});var Fa=/([\+\-]|\d\d)/gi;function za(e,a){var t=(a||"").match(e);if(null===t)return null;var s=((t[t.length-1]||[])+"").match(Fa)||["-",0,0],n=60*s[1]+g(s[2]);return 0===n?0:"+"===s[0]?n:-n}function Ja(e,a){var t,s;return a._isUTC?(t=a.clone(),s=(D(e)||u(e)?e.valueOf():Ha(e).valueOf())-t.valueOf(),t._d.setTime(t._d.valueOf()+s),l.updateOffset(t,!1),t):Ha(e).local()}function Na(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Ra(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}l.updateOffset=function(){};var Ca=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ia=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ua(e,a){var t,s,n,d=e,r=null;return Wa(e)?d={ms:e._milliseconds,d:e._days,M:e._months}:m(e)?(d={},a?d[a]=e:d.milliseconds=e):(r=Ca.exec(e))?(t="-"===r[1]?-1:1,d={y:0,d:g(r[ce])*t,h:g(r[Ye])*t,m:g(r[ye])*t,s:g(r[fe])*t,ms:g(Aa(1e3*r[ke]))*t}):(r=Ia.exec(e))?(t="-"===r[1]?-1:1,d={y:Ga(r[2],t),M:Ga(r[3],t),w:Ga(r[4],t),d:Ga(r[5],t),h:Ga(r[6],t),m:Ga(r[7],t),s:Ga(r[8],t)}):null==d?d={}:"object"==typeof d&&("from"in d||"to"in d)&&(n=function(e,a){var t;if(!e.isValid()||!a.isValid())return{milliseconds:0,months:0};a=Ja(a,e),e.isBefore(a)?t=Va(e,a):((t=Va(a,e)).milliseconds=-t.milliseconds,t.months=-t.months);return t}(Ha(d.from),Ha(d.to)),(d={}).ms=n.milliseconds,d.M=n.months),s=new Pa(d),Wa(e)&&h(e,"_locale")&&(s._locale=e._locale),s}function Ga(e,a){var t=e&&parseFloat(e.replace(",","."));return(isNaN(t)?0:t)*a}function Va(e,a){var t={};return t.months=a.month()-e.month()+12*(a.year()-e.year()),e.clone().add(t.months,"M").isAfter(a)&&--t.months,t.milliseconds=+a-+e.clone().add(t.months,"M"),t}function Ka(s,n){return function(e,a){var t;return null===a||isNaN(+a)||(S(n,"moment()."+n+"(period, number) is deprecated. Please use moment()."+n+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),t=e,e=a,a=t),Za(this,Ua(e="string"==typeof e?+e:e,a),s),this}}function Za(e,a,t,s){var n=a._milliseconds,d=Aa(a._days),r=Aa(a._months);e.isValid()&&(s=null==s||s,r&&We(e,He(e,"Month")+r*t),d&&be(e,"Date",He(e,"Date")+d*t),n&&e._d.setTime(e._d.valueOf()+n*t),s&&l.updateOffset(e,d||r))}Ua.fn=Pa.prototype,Ua.invalid=function(){return Ua(NaN)};var $a=Ka(1,"add"),Ba=Ka(-1,"subtract");function qa(e,a){var t=12*(a.year()-e.year())+(a.month()-e.month()),s=e.clone().add(t,"months");return-(t+(a-s<0?(a-s)/(s-e.clone().add(t-1,"months")):(a-s)/(e.clone().add(t+1,"months")-s)))||0}function Qa(e){var a;return void 0===e?this._locale._abbr:(null!=(a=ma(e))&&(this._locale=a),this)}l.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",l.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xa=t("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function et(){return this._locale}var at=126227808e5;function tt(e,a){return(e%a+a)%a}function st(e,a,t){return e<100&&0<=e?new Date(e+400,a,t)-at:new Date(e,a,t).valueOf()}function nt(e,a,t){return e<100&&0<=e?Date.UTC(e+400,a,t)-at:Date.UTC(e,a,t)}function dt(e,a){C(0,[e,e.length],0,a)}function rt(e,a,t,s,n){var d;return null==e?Ce(this,s,n).year:((d=Ie(e,s,n))<a&&(a=d),function(e,a,t,s,n){var d=Re(e,a,t,s,n),r=Je(d.year,0,d.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}.call(this,e,a,t,s,n))}C(0,["gg",2],0,function(){return this.weekYear()%100}),C(0,["GG",2],0,function(){return this.isoWeekYear()%100}),dt("gggg","weekYear"),dt("ggggg","weekYear"),dt("GGGG","isoWeekYear"),dt("GGGGG","isoWeekYear"),O("weekYear","gg"),O("isoWeekYear","GG"),E("weekYear",1),E("isoWeekYear",1),ie("G",se),ie("g",se),ie("GG",B,V),ie("gg",B,V),ie("GGGG",ee,Z),ie("gggg",ee,Z),ie("GGGGG",ae,$),ie("ggggg",ae,$),Me(["gggg","ggggg","GGGG","GGGGG"],function(e,a,t,s){a[s.substr(0,2)]=g(e)}),Me(["gg","GG"],function(e,a,t,s){a[s]=l.parseTwoDigitYear(e)}),C("Q",0,"Qo","quarter"),O("quarter","Q"),E("quarter",7),ie("Q",G),le("Q",function(e,a){a[Le]=3*(g(e)-1)}),C("D",["DD",2],"Do","date"),O("date","D"),E("date",9),ie("D",B),ie("DD",B,V),ie("Do",function(e,a){return e?a._dayOfMonthOrdinalParse||a._ordinalParse:a._dayOfMonthOrdinalParseLenient}),le(["D","DD"],ce),le("Do",function(e,a){a[ce]=g(e.match(B)[0])});var _t=Se("Date",!0);C("DDD",["DDDD",3],"DDDo","dayOfYear"),O("dayOfYear","DDD"),E("dayOfYear",4),ie("DDD",X),ie("DDDD",K),le(["DDD","DDDD"],function(e,a,t){t._dayOfYear=g(e)}),C("m",["mm",2],0,"minute"),O("minute","m"),E("minute",14),ie("m",B),ie("mm",B,V),le(["m","mm"],ye);var it=Se("Minutes",!1);C("s",["ss",2],0,"second"),O("second","s"),E("second",15),ie("s",B),ie("ss",B,V),le(["s","ss"],fe);var ot,mt=Se("Seconds",!1);for(C("S",0,0,function(){return~~(this.millisecond()/100)}),C(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),C(0,["SSS",3],0,"millisecond"),C(0,["SSSS",4],0,function(){return 10*this.millisecond()}),C(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),C(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),C(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),C(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),C(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),O("millisecond","ms"),E("millisecond",16),ie("S",X,G),ie("SS",X,V),ie("SSS",X,K),ot="SSSS";ot.length<=9;ot+="S")ie(ot,te);function ut(e,a){a[ke]=g(1e3*("0."+e))}for(ot="S";ot.length<=9;ot+="S")le(ot,ut);var lt=Se("Milliseconds",!1);C("z",0,0,"zoneAbbr"),C("zz",0,0,"zoneName");var Mt=p.prototype;function ht(e){return e}Mt.add=$a,Mt.calendar=function(e,a){var t=e||Ha(),s=Ja(t,this).startOf("day"),n=l.calendarFormat(this,s)||"sameElse",d=a&&(H(a[n])?a[n].call(this,t):a[n]);return this.format(d||this.localeData().calendar(n,this,Ha(t)))},Mt.clone=function(){return new p(this)},Mt.diff=function(e,a,t){var s,n,d;if(!this.isValid())return NaN;if(!(s=Ja(e,this)).isValid())return NaN;switch(n=6e4*(s.utcOffset()-this.utcOffset()),a=P(a)){case"year":d=qa(this,s)/12;break;case"month":d=qa(this,s);break;case"quarter":d=qa(this,s)/3;break;case"second":d=(this-s)/1e3;break;case"minute":d=(this-s)/6e4;break;case"hour":d=(this-s)/36e5;break;case"day":d=(this-s-n)/864e5;break;case"week":d=(this-s-n)/6048e5;break;default:d=this-s}return t?d:T(d)},Mt.endOf=function(e){var a;if(void 0===(e=P(e))||"millisecond"===e||!this.isValid())return this;var t=this._isUTC?nt:st;switch(e){case"year":a=t(this.year()+1,0,1)-1;break;case"quarter":a=t(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":a=t(this.year(),this.month()+1,1)-1;break;case"week":a=t(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":a=t(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":a=t(this.year(),this.month(),this.date()+1)-1;break;case"hour":a=this._d.valueOf(),a+=36e5-tt(a+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":a=this._d.valueOf(),a+=6e4-tt(a,6e4)-1;break;case"second":a=this._d.valueOf(),a+=1e3-tt(a,1e3)-1;break}return this._d.setTime(a),l.updateOffset(this,!0),this},Mt.format=function(e){e||(e=this.isUtc()?l.defaultFormatUtc:l.defaultFormat);var a=I(this,e);return this.localeData().postformat(a)},Mt.from=function(e,a){return this.isValid()&&(D(e)&&e.isValid()||Ha(e).isValid())?Ua({to:this,from:e}).locale(this.locale()).humanize(!a):this.localeData().invalidDate()},Mt.fromNow=function(e){return this.from(Ha(),e)},Mt.to=function(e,a){return this.isValid()&&(D(e)&&e.isValid()||Ha(e).isValid())?Ua({from:this,to:e}).locale(this.locale()).humanize(!a):this.localeData().invalidDate()},Mt.toNow=function(e){return this.to(Ha(),e)},Mt.get=function(e){return H(this[e=P(e)])?this[e]():this},Mt.invalidAt=function(){return Y(this).overflow},Mt.isAfter=function(e,a){var t=D(e)?e:Ha(e);return!(!this.isValid()||!t.isValid())&&("millisecond"===(a=P(a)||"millisecond")?this.valueOf()>t.valueOf():t.valueOf()<this.clone().startOf(a).valueOf())},Mt.isBefore=function(e,a){var t=D(e)?e:Ha(e);return!(!this.isValid()||!t.isValid())&&("millisecond"===(a=P(a)||"millisecond")?this.valueOf()<t.valueOf():this.clone().endOf(a).valueOf()<t.valueOf())},Mt.isBetween=function(e,a,t,s){var n=D(e)?e:Ha(e),d=D(a)?a:Ha(a);return!!(this.isValid()&&n.isValid()&&d.isValid())&&("("===(s=s||"()")[0]?this.isAfter(n,t):!this.isBefore(n,t))&&(")"===s[1]?this.isBefore(d,t):!this.isAfter(d,t))},Mt.isSame=function(e,a){var t,s=D(e)?e:Ha(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(a=P(a)||"millisecond")?this.valueOf()===s.valueOf():(t=s.valueOf(),this.clone().startOf(a).valueOf()<=t&&t<=this.clone().endOf(a).valueOf()))},Mt.isSameOrAfter=function(e,a){return this.isSame(e,a)||this.isAfter(e,a)},Mt.isSameOrBefore=function(e,a){return this.isSame(e,a)||this.isBefore(e,a)},Mt.isValid=function(){return y(this)},Mt.lang=Xa,Mt.locale=Qa,Mt.localeData=et,Mt.max=ja,Mt.min=ba,Mt.parsingFlags=function(){return L({},Y(this))},Mt.set=function(e,a){if("object"==typeof e)for(var t=function(e){var a=[];for(var t in e)a.push({unit:t,priority:A[t]});return a.sort(function(e,a){return e.priority-a.priority}),a}(e=W(e)),s=0;s<t.length;s++)this[t[s].unit](e[t[s].unit]);else if(H(this[e=P(e)]))return this[e](a);return this},Mt.startOf=function(e){var a;if(void 0===(e=P(e))||"millisecond"===e||!this.isValid())return this;var t=this._isUTC?nt:st;switch(e){case"year":a=t(this.year(),0,1);break;case"quarter":a=t(this.year(),this.month()-this.month()%3,1);break;case"month":a=t(this.year(),this.month(),1);break;case"week":a=t(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":a=t(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":a=t(this.year(),this.month(),this.date());break;case"hour":a=this._d.valueOf(),a-=tt(a+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":a=this._d.valueOf(),a-=tt(a,6e4);break;case"second":a=this._d.valueOf(),a-=tt(a,1e3);break}return this._d.setTime(a),l.updateOffset(this,!0),this},Mt.subtract=Ba,Mt.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},Mt.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},Mt.toDate=function(){return new Date(this.valueOf())},Mt.toISOString=function(e){if(!this.isValid())return null;var a=!0!==e,t=a?this.clone().utc():this;return t.year()<0||9999<t.year()?I(t,a?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):H(Date.prototype.toISOString)?a?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",I(t,"Z")):I(t,a?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Mt.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",a="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z");var t="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=a+'[")]';return this.format(t+s+"-MM-DD[T]HH:mm:ss.SSS"+n)},Mt.toJSON=function(){return this.isValid()?this.toISOString():null},Mt.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Mt.unix=function(){return Math.floor(this.valueOf()/1e3)},Mt.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Mt.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Mt.year=ve,Mt.isLeapYear=function(){return ge(this.year())},Mt.weekYear=function(e){return rt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Mt.isoWeekYear=function(e){return rt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},Mt.quarter=Mt.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},Mt.month=Ae,Mt.daysInMonth=function(){return je(this.year(),this.month())},Mt.week=Mt.weeks=function(e){var a=this.localeData().week(this);return null==e?a:this.add(7*(e-a),"d")},Mt.isoWeek=Mt.isoWeeks=function(e){var a=Ce(this,1,4).week;return null==e?a:this.add(7*(e-a),"d")},Mt.weeksInYear=function(){var e=this.localeData()._week;return Ie(this.year(),e.dow,e.doy)},Mt.isoWeeksInYear=function(){return Ie(this.year(),1,4)},Mt.date=_t,Mt.day=Mt.days=function(e){if(!this.isValid())return null!=e?this:NaN;var a,t,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(a=e,t=this.localeData(),e="string"!=typeof a?a:isNaN(a)?"number"==typeof(a=t.weekdaysParse(a))?a:null:parseInt(a,10),this.add(e-s,"d")):s},Mt.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var a=(this.day()+7-this.localeData()._week.dow)%7;return null==e?a:this.add(e-a,"d")},Mt.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var a,t,s=(a=e,t=this.localeData(),"string"==typeof a?t.weekdaysParse(a)%7||7:isNaN(a)?null:a);return this.day(this.day()%7?s:s-7)},Mt.dayOfYear=function(e){var a=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?a:this.add(e-a,"d")},Mt.hour=Mt.hours=ta,Mt.minute=Mt.minutes=it,Mt.second=Mt.seconds=mt,Mt.millisecond=Mt.milliseconds=lt,Mt.utcOffset=function(e,a,t){var s,n=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?n:Na(this);if("string"==typeof e){if(null===(e=za(de,e)))return this}else Math.abs(e)<16&&!t&&(e*=60);return!this._isUTC&&a&&(s=Na(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),n!==e&&(!a||this._changeInProgress?Za(this,Ua(e-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,l.updateOffset(this,!0),this._changeInProgress=null)),this},Mt.utc=function(e){return this.utcOffset(0,e)},Mt.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Na(this),"m")),this},Mt.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=za(ne,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},Mt.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Ha(e).utcOffset():0,(this.utcOffset()-e)%60==0)},Mt.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Mt.isLocal=function(){return!!this.isValid()&&!this._isUTC},Mt.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Mt.isUtc=Ra,Mt.isUTC=Ra,Mt.zoneAbbr=function(){return this._isUTC?"UTC":""},Mt.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Mt.dates=t("dates accessor is deprecated. Use date instead.",_t),Mt.months=t("months accessor is deprecated. Use month instead",Ae),Mt.years=t("years accessor is deprecated. Use year instead",ve),Mt.zone=t("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,a){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,a),this):-this.utcOffset()}),Mt.isDSTShifted=t("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(k(e,this),(e=va(e))._a){var a=e._isUTC?c(e._a):Ha(e._a);this._isDSTShifted=this.isValid()&&0<r(e._a,a.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var Lt=j.prototype;function ct(e,a,t,s){var n=ma(),d=c().set(s,a);return n[t](d,e)}function Yt(e,a,t){if(m(e)&&(a=e,e=void 0),e=e||"",null!=a)return ct(e,a,t,"month");var s,n=[];for(s=0;s<12;s++)n[s]=ct(e,s,t,"month");return n}function yt(e,a,t,s){a=("boolean"==typeof e?m(a)&&(t=a,a=void 0):(a=e,e=!1,m(t=a)&&(t=a,a=void 0)),a||"");var n,d=ma(),r=e?d._week.dow:0;if(null!=t)return ct(a,(t+r)%7,s,"day");var _=[];for(n=0;n<7;n++)_[n]=ct(a,(n+r)%7,s,"day");return _}Lt.calendar=function(e,a,t){var s=this._calendar[e]||this._calendar.sameElse;return H(s)?s.call(a,t):s},Lt.longDateFormat=function(e){var a=this._longDateFormat[e],t=this._longDateFormat[e.toUpperCase()];return a||!t?a:(this._longDateFormat[e]=t.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},Lt.invalidDate=function(){return this._invalidDate},Lt.ordinal=function(e){return this._ordinal.replace("%d",e)},Lt.preparse=ht,Lt.postformat=ht,Lt.relativeTime=function(e,a,t,s){var n=this._relativeTime[t];return H(n)?n(e,a,t,s):n.replace(/%d/i,e)},Lt.pastFuture=function(e,a){var t=this._relativeTime[0<e?"future":"past"];return H(t)?t(a):t.replace(/%s/i,a)},Lt.set=function(e){var a,t;for(t in e)H(a=e[t])?this[t]=a:this["_"+t]=a;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Lt.months=function(e,a){return e?_(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||xe).test(a)?"format":"standalone"][e.month()]:_(this._months)?this._months:this._months.standalone},Lt.monthsShort=function(e,a){return e?_(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[xe.test(a)?"format":"standalone"][e.month()]:_(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Lt.monthsParse=function(e,a,t){var s,n,d;if(this._monthsParseExact)return function(e,a,t){var s,n,d,r=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)d=c([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(d,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(d,"").toLocaleLowerCase();return t?"MMM"===a?-1!==(n=we.call(this._shortMonthsParse,r))?n:null:-1!==(n=we.call(this._longMonthsParse,r))?n:null:"MMM"===a?-1!==(n=we.call(this._shortMonthsParse,r))?n:-1!==(n=we.call(this._longMonthsParse,r))?n:null:-1!==(n=we.call(this._longMonthsParse,r))?n:-1!==(n=we.call(this._shortMonthsParse,r))?n:null}.call(this,e,a,t);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(n=c([2e3,s]),t&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),t||this._monthsParse[s]||(d="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[s]=new RegExp(d.replace(".",""),"i")),t&&"MMMM"===a&&this._longMonthsParse[s].test(e))return s;if(t&&"MMM"===a&&this._shortMonthsParse[s].test(e))return s;if(!t&&this._monthsParse[s].test(e))return s}},Lt.monthsRegex=function(e){return this._monthsParseExact?(h(this,"_monthsRegex")||ze.call(this),e?this._monthsStrictRegex:this._monthsRegex):(h(this,"_monthsRegex")||(this._monthsRegex=Fe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},Lt.monthsShortRegex=function(e){return this._monthsParseExact?(h(this,"_monthsRegex")||ze.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(h(this,"_monthsShortRegex")||(this._monthsShortRegex=Ee),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},Lt.week=function(e){return Ce(e,this._week.dow,this._week.doy).week},Lt.firstDayOfYear=function(){return this._week.doy},Lt.firstDayOfWeek=function(){return this._week.dow},Lt.weekdays=function(e,a){var t=_(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(a)?"format":"standalone"];return!0===e?Ue(t,this._week.dow):e?t[e.day()]:t},Lt.weekdaysMin=function(e){return!0===e?Ue(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},Lt.weekdaysShort=function(e){return!0===e?Ue(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},Lt.weekdaysParse=function(e,a,t){var s,n,d;if(this._weekdaysParseExact)return function(e,a,t){var s,n,d,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)d=c([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(d,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(d,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(d,"").toLocaleLowerCase();return t?"dddd"===a?-1!==(n=we.call(this._weekdaysParse,r))?n:null:"ddd"===a?-1!==(n=we.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:"dddd"===a?-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._shortWeekdaysParse,r))?n:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:"ddd"===a?-1!==(n=we.call(this._shortWeekdaysParse,r))?n:-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._minWeekdaysParse,r))?n:null:-1!==(n=we.call(this._minWeekdaysParse,r))?n:-1!==(n=we.call(this._weekdaysParse,r))?n:-1!==(n=we.call(this._shortWeekdaysParse,r))?n:null}.call(this,e,a,t);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(n=c([2e3,1]).day(s),t&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(d="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[s]=new RegExp(d.replace(".",""),"i")),t&&"dddd"===a&&this._fullWeekdaysParse[s].test(e))return s;if(t&&"ddd"===a&&this._shortWeekdaysParse[s].test(e))return s;if(t&&"dd"===a&&this._minWeekdaysParse[s].test(e))return s;if(!t&&this._weekdaysParse[s].test(e))return s}},Lt.weekdaysRegex=function(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=Ze),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},Lt.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=$e),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Lt.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Be),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Lt.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},Lt.meridiem=function(e,a,t){return 11<e?t?"pm":"PM":t?"am":"AM"},ia("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var a=e%10;return e+(1===g(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")}}),l.lang=t("moment.lang is deprecated. Use moment.locale instead.",ia),l.langData=t("moment.langData is deprecated. Use moment.localeData instead.",ma);var ft=Math.abs;function kt(e,a,t,s){var n=Ua(a,t);return e._milliseconds+=s*n._milliseconds,e._days+=s*n._days,e._months+=s*n._months,e._bubble()}function pt(e){return e<0?Math.floor(e):Math.ceil(e)}function Dt(e){return 4800*e/146097}function Tt(e){return 146097*e/4800}function gt(e){return function(){return this.as(e)}}var wt=gt("ms"),vt=gt("s"),St=gt("m"),Ht=gt("h"),bt=gt("d"),jt=gt("w"),xt=gt("M"),Ot=gt("Q"),Pt=gt("y");function Wt(e){return function(){return this.isValid()?this._data[e]:NaN}}var At=Wt("milliseconds"),Et=Wt("seconds"),Ft=Wt("minutes"),zt=Wt("hours"),Jt=Wt("days"),Nt=Wt("months"),Rt=Wt("years");var Ct=Math.round,It={ss:44,s:45,m:45,h:22,d:26,M:11};var Ut=Math.abs;function Gt(e){return(0<e)-(e<0)||+e}function Vt(){if(!this.isValid())return this.localeData().invalidDate();var e,a,t=Ut(this._milliseconds)/1e3,s=Ut(this._days),n=Ut(this._months);a=T((e=T(t/60))/60),t%=60,e%=60;var d=T(n/12),r=n%=12,_=s,i=a,o=e,m=t?t.toFixed(3).replace(/\.?0+$/,""):"",u=this.asSeconds();if(!u)return"P0D";var l=u<0?"-":"",M=Gt(this._months)!==Gt(u)?"-":"",h=Gt(this._days)!==Gt(u)?"-":"",L=Gt(this._milliseconds)!==Gt(u)?"-":"";return l+"P"+(d?M+d+"Y":"")+(r?M+r+"M":"")+(_?h+_+"D":"")+(i||o||m?"T":"")+(i?L+i+"H":"")+(o?L+o+"M":"")+(m?L+m+"S":"")}var Kt=Pa.prototype;Kt.isValid=function(){return this._isValid},Kt.abs=function(){var e=this._data;return this._milliseconds=ft(this._milliseconds),this._days=ft(this._days),this._months=ft(this._months),e.milliseconds=ft(e.milliseconds),e.seconds=ft(e.seconds),e.minutes=ft(e.minutes),e.hours=ft(e.hours),e.months=ft(e.months),e.years=ft(e.years),this},Kt.add=function(e,a){return kt(this,e,a,1)},Kt.subtract=function(e,a){return kt(this,e,a,-1)},Kt.as=function(e){if(!this.isValid())return NaN;var a,t,s=this._milliseconds;if("month"===(e=P(e))||"quarter"===e||"year"===e)switch(a=this._days+s/864e5,t=this._months+Dt(a),e){case"month":return t;case"quarter":return t/3;case"year":return t/12}else switch(a=this._days+Math.round(Tt(this._months)),e){case"week":return a/7+s/6048e5;case"day":return a+s/864e5;case"hour":return 24*a+s/36e5;case"minute":return 1440*a+s/6e4;case"second":return 86400*a+s/1e3;case"millisecond":return Math.floor(864e5*a)+s;default:throw new Error("Unknown unit "+e)}},Kt.asMilliseconds=wt,Kt.asSeconds=vt,Kt.asMinutes=St,Kt.asHours=Ht,Kt.asDays=bt,Kt.asWeeks=jt,Kt.asMonths=xt,Kt.asQuarters=Ot,Kt.asYears=Pt,Kt.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},Kt._bubble=function(){var e,a,t,s,n,d=this._milliseconds,r=this._days,_=this._months,i=this._data;return 0<=d&&0<=r&&0<=_||d<=0&&r<=0&&_<=0||(d+=864e5*pt(Tt(_)+r),_=r=0),i.milliseconds=d%1e3,e=T(d/1e3),i.seconds=e%60,a=T(e/60),i.minutes=a%60,t=T(a/60),i.hours=t%24,_+=n=T(Dt(r+=T(t/24))),r-=pt(Tt(n)),s=T(_/12),_%=12,i.days=r,i.months=_,i.years=s,this},Kt.clone=function(){return Ua(this)},Kt.get=function(e){return e=P(e),this.isValid()?this[e+"s"]():NaN},Kt.milliseconds=At,Kt.seconds=Et,Kt.minutes=Ft,Kt.hours=zt,Kt.days=Jt,Kt.weeks=function(){return T(this.days()/7)},Kt.months=Nt,Kt.years=Rt,Kt.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var a,t,s,n,d,r,_,i,o,m,u,l=this.localeData(),M=(t=!e,s=l,n=Ua(a=this).abs(),d=Ct(n.as("s")),r=Ct(n.as("m")),_=Ct(n.as("h")),i=Ct(n.as("d")),o=Ct(n.as("M")),m=Ct(n.as("y")),(u=d<=It.ss&&["s",d]||d<It.s&&["ss",d]||r<=1&&["m"]||r<It.m&&["mm",r]||_<=1&&["h"]||_<It.h&&["hh",_]||i<=1&&["d"]||i<It.d&&["dd",i]||o<=1&&["M"]||o<It.M&&["MM",o]||m<=1&&["y"]||["yy",m])[2]=t,u[3]=0<+a,u[4]=s,function(e,a,t,s,n){return n.relativeTime(a||1,!!t,e,s)}.apply(null,u));return e&&(M=l.pastFuture(+this,M)),l.postformat(M)},Kt.toISOString=Vt,Kt.toString=Vt,Kt.toJSON=Vt,Kt.locale=Qa,Kt.localeData=et,Kt.toIsoString=t("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Vt),Kt.lang=Xa,C("X",0,0,"unix"),C("x",0,0,"valueOf"),ie("x",se),ie("X",/[+-]?\d+(\.\d{1,3})?/),le("X",function(e,a,t){t._d=new Date(1e3*parseFloat(e,10))}),le("x",function(e,a,t){t._d=new Date(g(e))}),l.version="2.24.0",e=Ha,l.fn=Mt,l.min=function(){return xa("isBefore",[].slice.call(arguments,0))},l.max=function(){return xa("isAfter",[].slice.call(arguments,0))},l.now=function(){return Date.now?Date.now():+new Date},l.utc=c,l.unix=function(e){return Ha(1e3*e)},l.months=function(e,a){return Yt(e,a,"months")}
vendor: 16,384 bytes, line 32
32,l.isDate=u,l.locale=ia,l.invalid=f,l.duration=Ua,l.isMoment=D,l.weekdays=function(e,a,t){return yt(e,a,t,"weekdays")},l.parseZone=function(){return Ha.apply(null,arguments).parseZone()},l.localeData=ma,l.isDuration=Wa,l.monthsShort=function(e,a){return Yt(e,a,"monthsShort")},l.weekdaysMin=function(e,a,t){return yt(e,a,t,"weekdaysMin")},l.defineLocale=oa,l.updateLocale=function(e,a){if(null!=a){var t,s,n=sa;null!=(s=_a(e))&&(n=s._config),(t=new j(a=b(n,a))).parentLocale=na[e],na[e]=t,ia(e)}else null!=na[e]&&(null!=na[e].parentLocale?na[e]=na[e].parentLocale:null!=na[e]&&delete na[e]);return na[e]},l.locales=function(){return s(na)},l.weekdaysShort=function(e,a,t){return yt(e,a,t,"weekdaysShort")},l.normalizeUnits=P,l.relativeTimeRounding=function(e){return void 0===e?Ct:"function"==typeof e&&(Ct=e,!0)},l.relativeTimeThreshold=function(e,a){return void 0!==It[e]&&(void 0===a?It[e]:(It[e]=a,"s"===e&&(It.ss=a-1),!0))},l.calendarFormat=function(e,a){var t=e.diff(a,"days",!0);return t<-6?"sameElse":t<-1?"lastWeek":t<0?"lastDay":t<1?"sameDay":t<2?"nextDay":t<7?"nextWeek":"sameElse"},l.prototype=Mt,l.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},l.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,a,t){return e<12?t?"vm":"VM":t?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),l.defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}}),l.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}});var Zt={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},$t=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},Bt={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},qt=function(r){return function(e,a,t,s){var n=$t(e),d=Bt[r][$t(e)];return 2===n&&(d=d[a?0:1]),d.replace(/%d/i,e)}},Qt=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];l.defineLocale("ar-ly",{months:Qt,monthsShort:Qt,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:qt("s"),ss:qt("s"),m:qt("m"),mm:qt("m"),h:qt("h"),hh:qt("h"),d:qt("d"),dd:qt("d"),M:qt("M"),MM:qt("M"),y:qt("y"),yy:qt("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Zt[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}}),l.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:6,doy:12}});var Xt={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},es={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};l.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u062
327\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return es[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Xt[e]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}}),l.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}});var as={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},ts={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},ss=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},ns={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},ds=function(r){return function(e,a,t,s){var n=ss(e),d=ns[r][ss(e)];return 2===n&&(d=d[a?0:1]),d.replace(/%d/i,e)}},rs=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];l.defineLocale("ar",{months:rs,monthsShort:rs,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:ds("s"),ss:ds("s"),m:ds("m"),mm:ds("m"),h:ds("h"),hh:ds("h"),d:ds("d"),dd:ds("d"),M:ds("M"),MM:ds("M"),y:ds("y"),yy:ds("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return ts[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return as[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}});var _s={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};function is(e,a,t){var s,n;return"m"===t?a?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===t?a?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":e+" "+(s=+e,n={ss:a?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:a?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:a?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[t].split("_"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}l.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u
320259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,a,t){return e<4?"gec\u0259":e<12?"s\u0259h\u0259r":e<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-\u0131nc\u0131";var a=e%10;return e+(_s[a]||_s[e%100-a]||_s[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".
vendor: 7,195 bytes, line 32
32split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:is,mm:is,h:is,hh:is,d:"\u0434\u0437\u0435\u043d\u044c",dd:is,M:"\u043c\u0435\u0441\u044f\u0446",MM:is,y:"\u0433\u043e\u0434",yy:is},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?"\u043d\u043e\u0447\u044b":e<12?"\u0440\u0430\u043d\u0456\u0446\u044b":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-\u044b":e+"-\u0456";case"D":return e+"-\u0433\u0430";default:return e}},week:{dow:1,doy:7}}),l.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-\u0435\u0432":0===t?e+"-\u0435\u043d":10<t&&t<20?e+"-\u0442\u0438":1===a?e+"-\u0432\u0438":2===a?e+"-\u0440\u0438":7===a||8===a?e+"-\u043c\u0438":e+"-\u0442\u0438"},week:{dow:1,doy:7}}),l.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});var os={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},ms={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};l.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u
3209ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return ms[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return os[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u09b0\u09be\u09a4"===a&&4<=e||"\u09a6\u09c1\u09aa\u09c1\u09b0"===a&&e<5||"\u09ac\u09bf\u0995\u09be\u09b2"===a?e+12:e},meridiem:function(e,a,t){return e<4?"\u09b0\u09be\u09a4":e<10?"\u09b8\u0995\u09be\u09b2":e<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}});var us={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},ls={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};function Ms(e,a,t){var s,n,d;return e+" "+(s={mm:"munutenn",MM:"miz",dd:"devezh"}[t],2!==e?s:void 0!==(d={m:"v",b:"v",d:"z"})[(n=s).charAt(0)]?d[n.charAt(0)]+n.substring(1):n)}function hs(e,a,t){var s=e+" ";switch(t){case"ss":return s+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return a?"jedna minuta":"jedne minute";case"mm":return s+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return s+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return s+=1===e?"dan":"dana";case"MM":return s+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return s+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}l.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f
3262\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(e){return ls[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return us[e]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===a&&4<=e||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===a&&e<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===a?e+12:e},meridiem:function(e,a,t){return e<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":e<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":e<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":e<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}}),l.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:Ms,h:"un eur",hh:"%d eur",d:"un devezh",dd:Ms,M:"ur miz",MM:Ms,y:"ur bloaz",yy:function(e){switch(function e(a){return 9<a?e(a%10):a}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(e){return e+(1===e?"a\xf1":"vet")},week:{dow:1,doy:4}}),l.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:hs,m:hs,mm:hs,h:hs,hh:hs,d:"dan",dd:hs,M:"mjesec",MM:hs,y:"godinu",yy:hs},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),l.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%
32d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(e,a){var t=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"\xe8";return"w"!==a&&"W"!==a||(t="a"),e+t},week:{dow:1,doy:4}});var Ls="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),cs="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_"),Ys=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],ys=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function fs(e){return 1<e&&e<5&&1!=~~(e/10)}function ks(e,a,t,s){var n=e+" ";switch(t){case"s":return a||s?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return a||s?n+(fs(e)?"sekundy":"sekund"):n+"sekundami";break;case"m":return a?"minuta":s?"minutu":"minutou";case"mm":return a||s?n+(fs(e)?"minuty":"minut"):n+"minutami";break;case"h":return a?"hodina":s?"hodinu":"hodinou";case"hh":return a||s?n+(fs(e)?"hodiny":"hodin"):n+"hodinami";break;case"d":return a||s?"den":"dnem";case"dd":return a||s?n+(fs(e)?"dny":"dn\xed"):n+"dny";break;case"M":return a||s?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return a||s?n+(fs(e)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):n+"m\u011bs\xedci";break;case"y":return a||s?"rok":"rokem";case"yy":return a||s?n+(fs(e)?"roky":"let"):n+"lety";break}}function ps(e,a,t,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?n[t][0]:n[t][1]}function Ds(e,a,t,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?n[t][0]:n[t][1]}function Ts(e,a,t,s){var n={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?n[t][0]:n[t][1]}l.defineLocale("cs",{months:Ls,monthsShort:cs,monthsRegex:ys,monthsShortRegex:ys,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:Ys,longMonthsParse:Ys,shortMonthsParse:Ys,weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:ks,ss:ks,m:ks,mm:ks,h:ks,hh:ks,d:ks,dd:ks,M:ks,MM:ks,y:ks,yy:ks},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(e){return e+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(e)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}}
vendor: 7,820 bytes, line 32
32),l.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var a="";return 20<e?a=40===e||50===e||60===e||80===e||100===e?"fed":"ain":0<e&&(a=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+a},week:{dow:1,doy:4}}),l.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:ps,mm:"%d Minuten",h:ps,hh:"%d Stunden",d:ps,dd:ps,M:ps,MM:ps,y:ps,yy:ps},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Ds,mm:"%d Minuten",h:Ds,hh:"%d Stunden",d:Ds,dd:Ds,M:Ds,MM:Ds,y:Ds,yy:Ds},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Ts,mm:"%d Minuten",h:Ts,hh:"%d Stunden",d:Ts,dd:Ts,M:Ts,MM:Ts,y:Ts,yy:Ts},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var gs=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],ws=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];l.defineLocale("dv",{months:gs,monthsShort:gs,weekdays:ws,weekdaysShort:ws,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(e){return"\u0789\u078a"===e},meridiem:function(e,a,t){return e<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:7,doy:12}}
vendor: 5,625 bytes, line 32
32),l.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(e,a){return e?"string"==typeof a&&/D/.test(a.substring(0,a.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(e,a,t){return 11<e?t?"\u03bc\u03bc":"\u039c\u039c":t?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(e){return"\u03bc"===(e+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT";default:return"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,a){var t=this._calendarEl[e],s=a&&a.hours();return H(t)&&(t=t.apply(a)),t.replace("{}",s%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}}),l.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LT
32S:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")}}),l.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")}}),l.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LT
32S:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,a,t){return 11<e?t?"p.t.m.":"P.T.M.":t?"a.t.m."
vendor: 4,370 bytes, line 32
32:"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}});var vs="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ss="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Hs=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],bs=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;l.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Ss[e.month()]:vs[e.month()]:vs},monthsRegex:bs,monthsShortRegex:bs,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Hs,longMonthsParse:Hs,shortMonthsParse:Hs,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}});var js="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),xs="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Os=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Ps=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;l.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?xs[e.month()]:js[e.month()]:js},monthsRegex:Ps,monthsShortRegex:Ps,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Os,longMonthsParse:Os,shortMonthsParse:Os,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%
32d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}});var Ws="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),As="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Es=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Fs=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;function zs(e,a,t,s){var n={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[e+" minuti",e+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[e+" tunni",e+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[e+" kuu",e+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[e+" aasta",e+" aastat"]};return a?n[t][2]?n[t][2]:n[t][1]:s?n[t][0]:n[t][1]}l.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?As[e.month()]:Ws[e.month()]:Ws},monthsRegex:Fs,monthsShortRegex:Fs,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Es,longMonthsParse:Es,shortMonthsParse:Es,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:zs,ss:zs,m:zs,mm:zs,h:zs,hh:zs,d:zs,dd:"%d p\xe4eva",M:zs,MM:zs,y:zs,yy:zs},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Js={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},Ns={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};l.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(e){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e)},meridiem:function(e,a,t){return e<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"}
vendor: 11,687 bytes, line 32
32,relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/[\u06f0-\u06f9]/g,function(e){return Ns[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Js[e]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}});var Rs="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),Cs=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",Rs[7],Rs[8],Rs[9]];function Is(e,a,t,s){var n,d,r="";switch(t){case"s":return s?"muutaman sekunnin":"muutama sekunti";case"ss":return s?"sekunnin":"sekuntia";case"m":return s?"minuutin":"minuutti";case"mm":r=s?"minuutin":"minuuttia";break;case"h":return s?"tunnin":"tunti";case"hh":r=s?"tunnin":"tuntia";break;case"d":return s?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":r=s?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return s?"kuukauden":"kuukausi";case"MM":r=s?"kuukauden":"kuukautta";break;case"y":return s?"vuoden":"vuosi";case"yy":r=s?"vuoden":"vuotta";break}return d=s,r=((n=e)<10?d?Cs[n]:Rs[n]:n)+" "+r}l.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:Is,ss:Is,m:Is,mm:Is,h:Is,hh:Is,d:Is,dd:Is,M:Is,MM:Is,y:Is,yy:Is},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0ur",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,a){switch(a){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}}),l.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,a){switch(a){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}}),l.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,a){switch(a){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}});var Us="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),Gs="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");l.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Gs[e.month()]:Us[e.month()]:Us},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});l.defineLocale("ga",{months:["Ean\xe1ir","Feabhra","M\xe1rta","Aibre\xe1n","Bealtaine","M\xe9itheamh","I\xfail","L\xfanasa","Me\xe1n F\xf3mhair","Deaireadh F\xf3mhair","Samhain","Nollaig"],monthsShort:["Ean\xe1","Feab","M\xe1rt","Aibr","Beal","M\xe9it","I\xfail","L\xfana","Me\xe1n","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["D\xe9 Domhnaigh","D\xe9 Luain","D\xe9 M\xe1irt","D\xe9 C\xe9adaoin","D\xe9ardaoin","D\xe9 hAoine","D\xe9 Satharn"],weekdaysShort:["Dom","Lua","M\xe1i","C\xe9a","D\xe9a","hAo","Sat"],weekdaysMin:["Do","Lu","M\xe1","Ce","D\xe9","hA","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Am\xe1rach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inn\xe9 aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s \xf3 shin",s:"c\xfapla soicind",ss:"%d soicind",m:"n\xf3im\xe9ad",mm:"%d n\xf3im\xe9ad",h:"uair an chloig",hh:"%d uair an chloig",d:"l\xe1",dd:"%d l\xe1",M:"m\xed",MM:"%d m\xed",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}});function Vs(e,a,t,s){var n={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voranim",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return a?n[t][0]:n[t][1]}l.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),l.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".
vendor: 4,942 bytes, line 32
32split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:Vs,ss:Vs,m:Vs,mm:Vs,h:Vs,hh:Vs,d:Vs,dd:Vs,M:Vs,MM:Vs,y:Vs,yy:Vs},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,a){switch(a){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,a){return 12===e&&(e=0),"rati"===a?e<4?e:e+12:"sokalli"===a?e:"donparam"===a?12<e?e:e+12:"sanje"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}});var Ks={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},Zs={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};l.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%
32d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(e){return e.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(e){return Zs[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Ks[e]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0ab0\u0abe\u0aa4"===a?e<4?e:e+12:"\u0ab8\u0ab5\u0abe\u0ab0"===a?e:"\u0aac\u0aaa\u0acb\u0ab0"===a?10<=e?e:e+12:"\u0ab8\u0abe\u0a82\u0a9c"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0ab0\u0abe\u0aa4":e<10?"\u0ab8\u0ab5\u0abe\u0ab0":e<17?"\u0aac\u0aaa\u0acb\u0ab0":e<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}}),l.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u
3205d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(e){return 2===e?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":e+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(e){return 2===e?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":e+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(e){return 2===e?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":e+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(e){return 2===e?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":e%10==0&&10!==e?e+" \u05e9\u05e0\u05d4":e+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(e){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(e)},meridiem:function(e,a,t){return e<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":e<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":e<12?t?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":e<18?t?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}});var $s={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},Bs={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function qs(e,a,t){var s=e+" ";switch(t){case"ss":return s+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return a?"jedna minuta":"jedne minute";case"mm":return s+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return s+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return s+=1===e?"dan":"dana";case"MM":return s+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return s+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}l.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u
320932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return Bs[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return $s[e]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0930\u093e\u0924"===a?e<4?e:e+12:"\u0938\u0941\u092c\u0939"===a?e:"\u0926\u094b\u092a\u0939\u0930"===a?10<=e?e:e+12:"\u0936\u093e\u092e"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0930\u093e\u0924":e<10?"\u0938\u0941\u092c\u0939":e<17?"\u0926\u094b\u092a\u0939\u0930":e<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}}),l.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:qs,m:qs,mm:qs,h:qs,hh:qs,d:"dan",dd:qs,M:"mjesec",MM:qs,y:"godinu",yy:qs},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Qs="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function Xs(e,a,t,s){var n=e;switch(t){case"s":return s||a?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return n+(s||a)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(s||a?" perc":" perce");case"mm":return n+(s||a?" perc":" perce");case"h":return"egy"+(s||a?" \xf3ra":" \xf3r\xe1ja");case"hh":return n+(s||a?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(s||a?" nap":" napja");case"dd":return n+(s||a?" nap":" napja");case"M":return"egy"+(s||a?" h\xf3nap":" h\xf3napja");case"MM":return n+(s||a?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(s||a?" \xe9v":" \xe9ve");case"yy":return n+(s||a?" \xe9v":" \xe9ve")}return""}function en(e){return(e?"":"[m\xfalt] ")+"["+Qs[this.day()]+"] LT[-kor]"}function an(e){return e%100==11||e%10!=1}function tn(e,a,t,s){var n=e+" ";switch(t){case"s":return a||s?"nokkrar sek\xfandur":"nokkrum sek\xfandum";
vendor: 8,896 bytes, line 32
32case"ss":return an(e)?n+(a||s?"sek\xfandur":"sek\xfandum"):n+"sek\xfanda";case"m":return a?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return an(e)?n+(a||s?"m\xedn\xfatur":"m\xedn\xfatum"):a?n+"m\xedn\xfata":n+"m\xedn\xfatu";case"hh":return an(e)?n+(a||s?"klukkustundir":"klukkustundum"):n+"klukkustund";case"d":return a?"dagur":s?"dag":"degi";case"dd":return an(e)?a?n+"dagar":n+(s?"daga":"d\xf6gum"):a?n+"dagur":n+(s?"dag":"degi");case"M":return a?"m\xe1nu\xf0ur":s?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return an(e)?a?n+"m\xe1nu\xf0ir":n+(s?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):a?n+"m\xe1nu\xf0ur":n+(s?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return a||s?"\xe1r":"\xe1ri";case"yy":return an(e)?n+(a||s?"\xe1r":"\xe1rum"):n+(a||s?"\xe1r":"\xe1ri")}}l.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,a,t){return e<12?!0===t?"de":"DE":!0===t?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return en.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return en.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:Xs,ss:Xs,m:Xs,mm:Xs,h:Xs,hh:Xs,d:Xs,dd:Xs,M:Xs,MM:Xs,y:Xs,yy:Xs},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(e){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(e)},meridiem:function(e){return e<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":e<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":e<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(e,a){switch(a){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-\u056b\u0576":e+"-\u0580\u0564";default:return e}},week:{dow:1,doy:7}}),l.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"siang"===a?11<=e?e:e+12:"sore"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),l.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:tn,ss:tn,m:tn,mm:tn,h:"klukkustund",hh:tn,d:tn,dd:tn,M:tn,MM:tn,y:tn,yy:tn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%
32d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("ja",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(e){return"\u5348\u5f8c"===e},meridiem:function(e,a,t){return e<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(e){return e.week()<this.week()?"[\u6765\u9031]dddd LT":"dddd LT"},lastDay:"[\u6628\u65e5] LT",lastWeek:function(e){return this.week()<e.week()?"[\u5148\u9031]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\u65e5";default:return e}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",ss:"%d\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}}),l.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,a){return 12===e&&(e=0),"enjing"===a?e:"siyang"===a?11<=e?e:e+12:"sonten"===a||"ndalu"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}
vendor: 8,244 bytes, line 32
32),l.defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(e)?e.replace(/\u10d8$/,"\u10e8\u10d8"):e+"\u10e8\u10d8"},past:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(e)?e.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(e)?e.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(e){return 0===e?e:1===e?e+"-\u10da\u10d8":e<20||e<=100&&e%20==0||e%100==0?"\u10db\u10d4-"+e:e+"-\u10d4"},week:{dow:1,doy:7}});var sn={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};l.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(e){return e+(sn[e]||sn[e%10]||sn[100<=e?100:null])},week:{dow:1,doy:7}});var nn={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},dn={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};l.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u
3217a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(e){return"\u179b\u17d2\u1784\u17b6\u1785"===e},meridiem:function(e,a,t){return e<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(e){return e.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(e){return dn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return nn[e]})},week:{dow:1,doy:4}});
vendor: 9,767 bytes, line 32
32var rn={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},_n={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};l.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(e){return e.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(e){return _n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return rn[e]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===a?e<4?e:e+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===a?e:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===a?10<=e?e:e+12:"\u0cb8\u0c82\u0c9c\u0cc6"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":e<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":e<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":e<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(e){return e+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}}),l.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\uc77c";case"M":return e+"\uc6d4";case"w":case"W":return e+"\uc8fc";default:return e}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(e){return"\uc624\ud6c4"===e},meridiem:function(e,a,t){return e<12?"\uc624\uc804":"\uc624\ud6c4"}});var on={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},mn={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},un=["\u06a9\u0627\u0646\u0648\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0634\u0648\u0628\u0627\u062a","\u0626\u0627\u0632\u0627\u0631","\u0646\u06cc\u0633\u0627\u0646","\u0626\u0627\u06cc\u0627\u0631","\u062d\u0648\u0632\u06d5\u06cc\u0631\u0627\u0646","\u062a\u06d5\u0645\u0645\u0648\u0632","\u0626\u0627\u0628","\u0626\u06d5\u06cc\u0644\u0648\u0648\u0644","\u062a\u0634\u0631\u06cc\u0646\u06cc \u06cc\u06d5\u0643\u06d5\u0645","\u062a\u0634\u0631\u06cc\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0643\u0627\u0646\u0648\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645"];l.defineLocale("ku",{months:un,monthsShort:un,weekdays:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u062f\u0648\u0648\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0633\u06ce\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysShort:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645_\u062f\u0648\u0648\u0634\u0647\u200c\u0645_\u0633\u06ce\u0634\u0647\u200c\u0645_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u0647_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(e){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e)},meridiem:function(e,a,t){return e<12?"\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc":"\u0626\u06ce\u0648\u0627\u0631\u0647\u200c"},calendar:{sameDay:"[\u0626\u0647\u200c\u0645\u0631\u06c6 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextDay:"[\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastDay:"[\u062f\u0648\u06ce\u0646\u06ce \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",sameElse:"L"},relativeTime:{future:"\u0644\u0647\u200c %s",past:"%s",s:"\u0686\u0647\u200c\u0646\u062f \u0686\u0631\u0643\u0647\u200c\u06cc\u0647\u200c\u0643",ss:"\u0686\u0631\u0643\u0647\u200c %d",m:"\u06cc\u0647\u200c\u0643 \u062e\u0648\u0644\u0647\u200c\u0643",mm:"%d \u062e\u0648\u0644\u0647\u200c\u0643",h:"\u06cc\u0647\u200c\u0643 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",hh:"%d \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",d:"\u06cc\u0647\u200c\u0643 \u0695\u06c6\u0698",dd:"%d \u0695\u06c6\u0698",M:"\u06cc\u0647\u200c\u0643 \u0645\u0627\u0646\u06af",MM:"%d \u0645\u0627\u0646\u06af",y:"\u06cc\u0647\u200c\u0643 \u0633\u0627\u06b5",yy:"%d \u0633\u0627\u06b5"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return mn[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return on[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}});var ln={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};function Mn(e,a,t,s){var n={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return a?n[t][0]:n[t][1]}function hn(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;
32if(e<10)return 4<=e&&e<=7;if(e<100){var a=e%10;return hn(0===a?e/10:a)}if(e<1e4){for(;10<=e;)e/=10;return hn(e)}return hn(e/=1e3)}l.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u044d\u044d \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u04e9\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(e){return e+(ln[e]||ln[e%10]||ln[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return hn(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return hn(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:Mn,mm:"%d Minutten",h:Mn,hh:"%d Stonnen",d:Mn,dd:"%d Deeg",M:Mn,MM:"%d M\xe9int",y:Mn,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(e){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===e},meridiem:function(e,a,t){return e<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%
32d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(e){return"\u0e97\u0eb5\u0ec8"+e}});var Ln={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function cn(e,a,t,s){return a?yn(t)[0]:s?yn(t)[1]:yn(t)[2]}function Yn(e){return e%10==0||10<e&&e<20}function yn(e){return Ln[e].split("_")}function fn(e,a,t,s){var n=e+" ";return 1===e?n+cn(0,a,t[0],s):a?n+(Yn(e)?yn(t)[1]:yn(t)[0]):s?n+yn(t)[1]:n+(Yn(e)?yn(t)[1]:yn(t)[2])}l.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function(e,a,t,s){return a?"kelios sekund\u0117s":s?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:fn,m:cn,mm:fn,h:cn,hh:fn,d:cn,dd:fn,M:cn,MM:fn,y:cn,yy:fn},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});var kn={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function pn(e,a,t){return t?a%10==1&&a%100!=11?e[2]:e[3]:a%10==1&&a%100!=11?e[0]:e[1]}function Dn(e,a,t){return e+" "+pn(kn[t],e,a)}function Tn(e,a,t){return pn(kn[t],e,a)}l.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function(e,a){return a?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:Dn,m:Tn,mm:Dn,h:Tn,hh:Dn,d:Tn,dd:Dn,M:Tn,MM:Dn,y:Tn,yy:Dn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var gn={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=gn.words[t];return 1===t.length?a?s[0]:s[1]:e+" "+gn.correctGrammaticalCase(e,s)}};function wn(e,a,t,s){switch(t){case"s":return a?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return e+(a?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return e+(a?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return e+(a?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return e+(a?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return e+(a?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return e+(a?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return e}}l.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:gn.translate,m:gn.translate,mm:gn.translate,h:gn.translate,hh:gn.translate,d:"dan",dd:gn.translate,M:"mjesec",MM:gn.translate,y:"godinu",yy:gn.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),l.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%
32d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-\u0435\u0432":0===t?e+"-\u0435\u043d":10<t&&t<20?e+"-\u0442\u0438":1===a?e+"-\u0432\u0438":2===a?e+"-\u0440\u0438":7===a||8===a?e+"-\u043c\u0438":e+"-\u0442\u0438"},week:{dow:1,doy:7}}),l.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%
32d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===a&&4<=e||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===a||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===a?e+12:e},meridiem:function(e,a,t){return e<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":e<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":e<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":e<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}}),l.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(e){return"\u04ae\u0425"===e},meridiem:function(e,a,t){return e<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:wn,ss:wn,m:wn,mm:wn,h:wn,hh:wn,d:wn,dd:wn,M:wn,MM:wn,y:wn,yy:wn},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+" \u04e9\u0434\u04e9\u0440";default:return e}}});var vn={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},Sn={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function Hn(e,a,t,s){var n="";if(a)switch(t){case"s":n="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":n="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":n="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":n="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":n="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":n="%d \u0924\u093e\u0938";break;case"d":n="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":n="%d \u0926\u093f\u0935\u0938";break;case"M":n="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":n="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":n="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":n="%d \u0935\u0930\u094d\u0937\u0947";break}else switch(t){case"s":n="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":n="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":n="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":n="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":n="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":n="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":n="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":n="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":n="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":n="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":n="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":n="%d \u0935\u0930\u094d\u0937\u093e\u0902";break}return n.replace(/%d/i,e)}l.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:Hn,ss:Hn,m:Hn,mm:Hn,h:Hn,hh:Hn,d:Hn,dd:Hn,M:Hn,MM:Hn,y:Hn,yy:Hn},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return Sn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return vn[e]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===a?e<4?e:e+12:"\u0938\u0915\u093e\u0933\u0940"===a?e:"\u0926\u0941\u092a\u093e\u0930\u0940"===a?10<=e?e:e+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0930\u093e\u0924\u094d\u0930\u0940":e<10?"\u0938\u0915\u093e\u0933\u0940":e<17?"\u0926\u0941\u092a\u093e\u0930\u0940":e<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}}),l.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?11<=e?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),l.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?11<=e?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),l.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}});var bn={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},jn={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};l.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u
321010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(e){return e.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(e){return jn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return bn[e]})},week:{dow:1,doy:4}}),l.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var xn={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},On={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};l.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return On[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return xn[e]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0930\u093e\u0924\u093f"===a?e<4?e:e+12:"\u092c\u093f\u0939\u093e\u0928"===a?e:"\u0926\u093f\u0909\u0901\u0938\u094b"===a?10<=e?e:e+12:"\u0938\u093e\u0901\u091d"===a?e+12:void 0},meridiem:function(e,a,t){return e<3?"\u0930\u093e\u0924\u093f":e<12?"\u092c\u093f\u0939\u093e\u0928":e<16?"\u0926\u093f\u0909\u0901\u0938\u094b":e<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}});var Pn="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Wn="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),An=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],En=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;l.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?Wn[e.month()]:Pn[e.month()]:Pn},monthsRegex:En,monthsShortRegex:En,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:An,longMonthsParse:An,shortMonthsParse:An,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});var Fn="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),zn="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Jn=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Nn=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;l.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,a){return e?/-MMM-/.test(a)?zn[e.month()]:Fn[e.month()]:Fn}
vendor: 4,301 bytes, line 32
32,monthsRegex:Nn,monthsShortRegex:Nn,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Jn,longMonthsParse:Jn,shortMonthsParse:Jn,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),l.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Rn={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},Cn={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};l.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"}
32,relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(e){return e.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(e){return Cn[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Rn[e]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0a30\u0a3e\u0a24"===a?e<4?e:e+12:"\u0a38\u0a35\u0a47\u0a30"===a?e:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===a?10<=e?e:e+12:"\u0a38\u0a3c\u0a3e\u0a2e"===a?e+12:void 0}
32,meridiem:function(e,a,t){return e<4?"\u0a30\u0a3e\u0a24":e<10?"\u0a38\u0a35\u0a47\u0a30":e<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":e<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}});var In="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),Un="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function Gn(e){return e%10<5&&1<e%10&&~~(e/10)%10!=1}function Vn(e,a,t){var s=e+" ";switch(t){case"ss":return s+(Gn(e)?"sekundy":"sekund");case"m":return a?"minuta":"minut\u0119";case"mm":return s+(Gn(e)?"minuty":"minut");case"h":return a?"godzina":"godzin\u0119";case"hh":return s+(Gn(e)?"godziny":"godzin");case"MM":return s+(Gn(e)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return s+(Gn(e)?"lata":"lat")}}function Kn(e,a,t){var s=" ";return(20<=e%100||100<=e&&e%100==0)&&(s=" de "),e+s+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[t]}function Zn(e,a,t){var s,n;return"m"===t?a?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":e+" "+(s=+e,n={ss:a?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:a?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[t].split("_"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}l.defineLocale("pl",{months:function(e,a){return e?""===a?"("+Un[e.month()]+"|"+In[e.month()]+")":/D MMMM/.test(a)?Un[e.month()]:In[e.month()]:In},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:Vn,m:Vn,mm:Vn,h:Vn,hh:Vn,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:Vn,y:"rok",yy:Vn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%
32d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"}),l.defineLocale("pt",{months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}}),l.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:Kn,m:"un minut",mm:Kn,h:"o or\u0103",hh:Kn,d:"o zi",dd:Kn,M:"o lun\u0103",MM:Kn,y:"un an",yy:Kn},week:{dow:1,doy:7}});var $n=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];l.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:$n,longMonthsParse:$n,shortMonthsParse:$n,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u
vendor: 40,108 bytes, line 32
32043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:Zn,m:Zn,mm:Zn,h:"\u0447\u0430\u0441",hh:Zn,d:"\u0434\u0435\u043d\u044c",dd:Zn,M:"\u043c\u0435\u0441\u044f\u0446",MM:Zn,y:"\u0433\u043e\u0434",yy:Zn},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?"\u043d\u043e\u0447\u0438":e<12?"\u0443\u0442\u0440\u0430":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":return e+"-\u0439";case"D":return e+"-\u0433\u043e";case"w":case"W":return e+"-\u044f";default:return e}},week:{dow:1,doy:4}});var Bn=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],qn=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];l.defineLocale("sd",{months:Bn,monthsShort:Bn,weekdays:qn,weekdaysShort:qn,weekdaysMin:qn,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"\u0634\u0627\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:4}}),l.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(e){return e+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(e){return"\u0db4.\u0dc0."===e||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===e},meridiem:function(e,a,t){return 11<e?t?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":t?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}});var Qn="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),Xn="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function ed(e){return 1<e&&e<5}function ad(e,a,t,s){var n=e+" ";switch(t){case"s":return a||s?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return a||s?n+(ed(e)?"sekundy":"sek\xfand"):n+"sekundami";break;case"m":return a?"min\xfata":s?"min\xfatu":"min\xfatou";case"mm":return a||s?n+(ed(e)?"min\xfaty":"min\xfat"):n+"min\xfatami";break;case"h":return a?"hodina":s?"hodinu":"hodinou";case"hh":return a||s?n+(ed(e)?"hodiny":"hod\xedn"):n+"hodinami";break;case"d":return a||s?"de\u0148":"d\u0148om";case"dd":return a||s?n+(ed(e)?"dni":"dn\xed"):n+"d\u0148ami";break;case"M":return a||s?"mesiac":"mesiacom";case"MM":return a||s?n+(ed(e)?"mesiace":"mesiacov"):n+"mesiacmi";break;case"y":return a||s?"rok":"rokom";case"yy":return a||s?n+(ed(e)?"roky":"rokov"):n+"rokmi";break}}function td(e,a,t,s){var n=e+" ";switch(t){case"s":return a||s?"nekaj sekund":"nekaj sekundami";case"ss":return n+=1===e?a?"sekundo":"sekundi":2===e?a||s?"sekundi":"sekundah":e<5?a||s?"sekunde":"sekundah":"sekund";case"m":return a?"ena minuta":"eno minuto";case"mm":return n+=1===e?a?"minuta":"minuto":2===e?a||s?"minuti":"minutama":e<5?a||s?"minute":"minutami":a||s?"minut":"minutami";case"h":return a?"ena ura":"eno uro";case"hh":return n+=1===e?a?"ura":"uro":2===e?a||s?"uri":"urama":e<5?a||s?"ure":"urami":a||s?"ur":"urami";case"d":return a||s?"en dan":"enim dnem";case"dd":return n+=1===e?a||s?"dan":"dnem":2===e?a||s?"dni":"dnevoma":a||s?"dni":"dnevi";case"M":return a||s?"en mesec":"enim mesecem";case"MM":return n+=1===e?a||s?"mesec":"mesecem":2===e?a||s?"meseca":"mesecema":e<5?a||s?"mesece":"meseci":a||s?"mesecev":"meseci";case"y":return a||s?"eno leto":"enim letom";case"yy":return n+=1===e?a||s?"leto":"letom":2===e?a||s?"leti":"letoma":e<5?a||s?"leta":"leti":a||s?"let":"leti"}}l.defineLocale("sk",{months:Qn,monthsShort:Xn,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 4:case 5:return"[minul\xfd] dddd [o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:ad,ss:ad,m:ad,mm:ad,h:ad,hh:ad,d:ad,dd:ad,M:ad,MM:ad,y:ad,yy:ad},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:td,ss:td,m:td,mm:td,h:td,hh:td,d:td,dd:td,M:td,MM:td,y:td,yy:td},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),l.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,a,t){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var sd={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=sd.words[t];return 1===t.length?a?s[0]:s[1]:e+" "+sd.correctGrammaticalCase(e,s)}};l.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:sd.translate,m:sd.translate,mm:sd.translate,h:sd.translate,hh:sd.translate,d:"\u0434\u0430\u043d",dd:sd.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:sd.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:sd.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var nd={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:2<=e&&e<=4?a[1]:a[2]},translate:function(e,a,t){var s=nd.words[t];return 1===t.length?a?s[0]:s[1]:e+" "+nd.correctGrammaticalCase(e,s)}};l.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:nd.translate,m:nd.translate,mm:nd.translate,h:nd.translate,hh:nd.translate,d:"dan",dd:nd.translate,M:"mesec",MM:nd.translate,y:"godinu",yy:nd.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),l.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,a,t){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,a){return 12===e&&(e=0),"ekuseni"===a?e:"emini"===a?11<=e?e:e+12:"entsambama"===a||"ebusuku"===a?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}),l.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"e":1===a?"a":2===a?"a":"e")},week:{dow:1,doy:4}}),l.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}});var dd={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},rd={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};l.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(e){return e+"\u0bb5\u0ba4\u0bc1"},preparse:function(e){return e.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(e){return rd[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return dd[e]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(e,a,t){return e<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":e<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":e<10?" \u0b95\u0bbe\u0bb2\u0bc8":e<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":e<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":e<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(e,a){return 12===e&&(e=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===a?e<2?e:e+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===a||"\u0b95\u0bbe\u0bb2\u0bc8"===a?e:"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===a&&10<=e?e:e+12},week:{dow:0,doy:6}}),l.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===a?e<4?e:e+12:"\u0c09\u0c26\u0c2f\u0c02"===a?e:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===a?10<=e?e:e+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":e<10?"\u0c09\u0c26\u0c2f\u0c02":e<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":e<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}}),l.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}});var _d={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};l.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0448\u0430\u0431"===a?e<4?e:e+12:"\u0441\u0443\u0431\u04b3"===a?e:"\u0440\u04ef\u0437"===a?11<=e?e:e+12:"\u0431\u0435\u0433\u043e\u04b3"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"\u0448\u0430\u0431":e<11?"\u0441\u0443\u0431\u04b3":e<16?"\u0440\u04ef\u0437":e<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(e){return e+(_d[e]||_d[e%10]||_d[100<=e?100:null])},week:{dow:1,doy:7}}),l.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(e){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===e},meridiem:function(e,a,t){return e<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}}),l.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%
32d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});var id="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function od(e,a,t,s){var n=function(e){var a=Math.floor(e%1e3/100),t=Math.floor(e%100/10),s=e%10,n="";0<a&&(n+=id[a]+"vatlh");0<t&&(n+=(""!==n?" ":"")+id[t]+"maH");0<s&&(n+=(""!==n?" ":"")+id[s]);return""===n?"pagh":n}(e);switch(t){case"ss":return n+" lup";case"mm":return n+" tup";case"hh":return n+" rep";case"dd":return n+" jaj";case"MM":return n+" jar";case"yy":return n+" DIS"}}l.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var a=e;return a=-1!==e.indexOf("jaj")?a.slice(0,-3)+"leS":-1!==e.indexOf("jar")?a.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?a.slice(0,-3)+"nem":a+" pIq"},past:function(e){var a=e;return a=-1!==e.indexOf("jaj")?a.slice(0,-3)+"Hu\u2019":-1!==e.indexOf("jar")?a.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?a.slice(0,-3)+"ben":a+" ret"},s:"puS lup",ss:od,m:"wa\u2019 tup",mm:od,h:"wa\u2019 rep",hh:od,d:"wa\u2019 jaj",dd:od,M:"wa\u2019 jar",MM:od,y:"wa\u2019 DIS",yy:od},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var md={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};function ud(e,a,t,s){var n={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[e+" m\xeduts",e+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[e+" \xfeoras",e+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return s?n[t][0]:a?n[t][0]:n[t][1]}function ld(e,a,t){var s,n;return"m"===t?a?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===t?a?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":e+" "+(s=+e,n={ss:a?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:a?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:a?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[t].split("_"),s%10==1&&s%100!=11?n[0]:2<=s%10&&s%10<=4&&(s%100<10||20<=s%100)?n[1]:n[2])}
32function Md(e){return function(){return e+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}l.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(e,a){switch(a){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'\u0131nc\u0131";var t=e%10;return e+(md[t]||md[e%100-t]||md[100<=e?100:null])}},week:{dow:1,doy:7}}),l.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,a,t){return 11<e?t?"d'o":"D'O":t?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:ud,ss:ud,m:ud,mm:ud,h:ud,hh:ud,d:ud,dd:ud,M:ud,MM:ud,y:ud,yy:ud},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),l.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4
32wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}),l.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}}),l.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===a||"\u0633\u06d5\u06be\u06d5\u0631"===a||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===a?e:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===a||"\u0643\u06d5\u0686"===a?e+12:11<=e?e:e+12},meridiem:function(e,a,t){var s=100*e+a;return s<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":s<900?"\u0633\u06d5\u06be\u06d5\u0631":s<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":s<1230?"\u0686\u06c8\u0634":s<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%
32d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return e+"-\u06be\u06d5\u067e\u062a\u06d5";default:return e}},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:7}}),l.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function(e,a){var t={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return!0===e?t.nominative.slice(1,7).concat(t.nominative.slice(0,1)):e?t[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(a)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(a)?"genitive":"nominative"][e.day()]:t.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:Md("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:Md("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:Md("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:Md("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return Md("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return Md("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:ld,m:ld,mm:ld,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:ld,d:"\u0434\u0435\u043d\u044c",dd:ld,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:ld,y:"\u0440\u0456\u043a",yy:ld},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(e)},meridiem:function(e,a,t){return e<4?"\u043d\u043e\u0447\u0456":e<12?"\u0440\u0430\u043d\u043a\u0443":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e+"-\u0439";case"D":return e+"-\u0433\u043e";default:return e}},week:{dow:1,doy:7}});var hd=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],Ld=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u064
321\u062a\u06c1"];return l.defineLocale("ur",{months:hd,monthsShort:hd,weekdays:Ld,weekdaysShort:Ld,weekdaysMin:Ld,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"\u0634\u0627\u0645"===e},meridiem:function(e,a,t){return e<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:1,doy:4}}),l.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),l.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}}),l.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)}
vendor: 4,189 bytes, line 32
32,meridiem:function(e,a,t){return e<12?t?"sa":"SA":t?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n r\u1ed3i l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}}),l.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}}),l.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}
32/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}}),l.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u51cc\u6668"===a||"\u65e9\u4e0a"===a||"\u4e0a\u5348"===a?e:"\u4e0b\u5348"===a||"\u665a\u4e0a"===a?e+12:11<=e?e:e+12},meridiem:function(e,a,t){var s=100*e+a;return s<600?"\u51cc\u6668":s<900?"\u65e9\u4e0a":s<1130?"\u4e0a\u5348":s<1230?"\u4e2d\u5348":s<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u5468";default:return e}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}}),l.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u51cc\u6668"===a||"\u65e9\u4e0a"===a||"\u4e0a\u5348"===a?e:"\u4e2d\u5348"===a?11<=e?e:e+12:"\u4e0b\u5348"===a||"\u665a\u4e0a"===a?e+12:void 0},meridiem:function(e,a,t){var s=100*e+a;return s<600?"\u51cc\u6668":s<900?"\u65e9\u4e0a":s<1130?"\u4e0a\u5348":s<1230?"\u4e2d\u5348":s<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u9031";default:return e}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}}),l.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u51cc\u6668"===a||"\u65e9\u4e0a"===a||"\u4e0a\u5348"===a?e:"\u4e2d\u5348"===a?11<=e?e:e+12:"\u4e0b\u5348"===a||"\u665a\u4e0a"===a?e+12:void 0},meridiem:function(e,a,t){var s=100*e+a;return s<600?"\u51cc\u6668":s<900?"\u65e9\u4e0a":s<1130?"\u4e0a\u5348":s<1230?"\u4e2d\u5348":s<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"\u65e5";case"M":return e+"\u6708";case"w":case"W":return e+"\u9031";default:return e}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}}),l.locale("en"),l});
33
34// this loading routine is shamelessly copied from the "moment-duration-format" plugin
35// @see https://github.com/jsmreese/moment-duration-format
36(function loadMomentJS (root, factory) {
37  if (typeof define === 'function' && define.amd) {
38    // Detected AMD;
39    // will register as an anonymous module
40    define(['moment'], factory);
41  } else if (typeof exports === 'object') {
42    // Detected node.js;
43    // this does not work with strict CommonJS, but only CommonJS-like environments
44    // whicht support `module.exports`, like node.js does
45    try {
46      module.exports = factory(require('moment'));
47    } catch (ignore) {
48      // if `moment.js` is not available, leave the setup to the user;
49      // this is necessary if the user works with other plugins which will
50      // come with it's very own version of `moment.js` as a peer dependency
51      // @see https://github.com/icambron/twix.js/issues/102
52      module.exports = factory;
53    }
54  }
55
56  if (root) {
57    //working with globals;
58    root.momentJDateFormatParserSetup = root.moment ? factory(root.moment) : factory;
59  }
60})(this, function loadPlugin (moment) {
61  /**
62   * The internal **Java** date formats cache.
63   *
64   * @property javaDateFormats
65   * @type {Object}
66   */
67  var javaDateFormats = {};
68
69  /**
70   * The internal **moment.js** date formats cache.
71   *
72   * @property momentDateFormats
73   * @type {Object}
74   */
75  var momentDateFormats = {};
76
77  /**
78   * The format pattern mapping from Java format to momentjs.
79   *
80   * @property javaFormatMapping
81   * @type {Object}
82   */
83  var javaFormatMapping = {
84    d: 'D',
85    dd: 'DD',
86    y: 'YYYY',
87    yy: 'YY',
88    yyy: 'YYYY',
89    yyyy: 'YYYY',
90    a: 'a',
91    A: 'A',
92    M: 'M',
93    MM: 'MM',
94    MMM: 'MMM',
95    MMMM: 'MMMM',
96    h: 'h',
97    hh: 'hh',
98    H: 'H',
99    HH: 'HH',
100    m: 'm',
101    mm: 'mm',
102    s: 's',
103    ss: 'ss',
104    S: 'SSS',
105    SS: 'SSS',
106    SSS: 'SSS',
107    E: 'ddd',
108    EE: 'ddd',
109    EEE: 'ddd',
110    EEEE: 'dddd',
111    EEEEE: 'dddd',
112    EEEEEE: 'dddd',
113    D: 'DDD',
114    w: 'W',
115    ww: 'WW',
116    z: 'ZZ',
117    zzzz: 'Z',
118    Z: 'ZZ',
119    X: 'ZZ',
120    XX: 'ZZ',
121    XXX: 'Z',
122    u: 'E'
123  };
124
125  /**
126   * The format pattern mapping from Java format to moment.js.
127   *
128   * @property momentFormatMapping
129   * @type {Object}
130   */
131  var momentFormatMapping = {
132    D: 'd',
133    DD: 'dd',
134    YY: 'yy',
135    YYY: 'yyyy',
136    YYYY: 'yyyy',
137    a: 'a',
138    A: 'a',
139    M: 'M',
140    MM: 'MM',
141    MMM: 'MMM',
142    MMMM: 'MMMM',
143    h: 'h',
144    hh: 'hh',
145    H: 'H',
146    HH: 'HH',
147    m: 'm',
148    mm: 'mm',
149    s: 's',
150    ss: 'ss',
151    S: 'S',
152    SS: 'S',
153    SSS: 'S',
154    ddd: 'E',
155    dddd: 'EEEE',
156    DDD: 'D',
157    W: 'w',
158    WW: 'ww',
159    ZZ: 'z',
160    Z: 'XXX',
161    E: 'u'
162  };
163
164
165  /**
166   * Translates the java date format String to a momentjs format String.
167   *
168   * @function translateFormat
169   * @param {String}  formatString    The unmodified format string
170   * @param {Object}  mapping         The date format mapping object
171   * @returns {String}
172   */
173  var translateFormat = function (formatString, mapping) {
174    var len = formatString.length;
175    var i = 0;
176    var startIndex = -1;
177    var lastChar = null;
178    var currentChar = "";
179    var resultString = "";
180
181    for (; i < len; i++) {
182      currentChar = formatString.charAt(i);
183
184      if (lastChar === null || lastChar !== currentChar) {
185        // change detected
186        resultString = _appendMappedString(formatString, mapping, startIndex, i, resultString);
187
188        startIndex = i;
189      }
190
191      lastChar = currentChar;
192    }
193
194    return _appendMappedString(formatString, mapping, startIndex, i, resultString);
195  };
196
197  /**
198   * Checks if the substring is a mapped date format pattern and adds it to the result format String.
199   *
200   * @function _appendMappedString
201   * @param {String}  formatString    The unmodified format String.
202   * @param {Object}  mapping         The date format mapping Object.
203   * @param {Number}  startIndex      The begin index of the continuous format characters.
204   * @param {Number}  currentIndex    The last index of the continuous format characters.
205   * @param {String}  resultString    The result format String.
206   * @returns {String}
207   * @private
208   */
209  var _appendMappedString = function (formatString, mapping, startIndex, currentIndex, resultString) {
210    if (startIndex !== -1) {
211      var tempString = formatString.substring(startIndex, currentIndex);
212
213      // check if the temporary string has a known mapping
214      if (mapping[tempString]) {
215        tempString = mapping[tempString];
216      }
217
218      resultString += tempString;
219    }
220
221    return resultString;
222  };
223
224// init
225  function init (momentJS) {
226    if (!momentJS) {
227      throw new Error("Moment JDateFormatParser Plugin - Cannot find moment.js instance.");
228    }
229
230    // register as private function (good for testing purposes)
231    momentJS.fn.__translateJavaFormat = translateFormat;
232
233    /**
234     * Translates the momentjs format String to a java date format String.
235     *
236     * @function toJDFString
237     * @param {String}  formatString    The format String to be translated.
238     * @returns {String}
239     */
240    momentJS.fn.toMomentFormatString = function (formatString) {
241      if (!javaDateFormats[formatString]) {
242        var mapped = "";
243        var regexp = /[^']+|('[^']*')/g;
244        var part = '';
245
246        while ((part = regexp.exec(formatString))) {
247          part = part[0];
248
249          if (part.match(/'(.*?)'/)) {
250            mapped += "[" + part.substring(1, part.length - 1) + "]";
251          } else {
252            mapped += translateFormat(part, javaFormatMapping);
253          }
254        }
255
256        javaDateFormats[formatString] = mapped;
257      }
258
259      return javaDateFormats[formatString];
260    };
261
262    /**
263     * Format the moment with the given java date format String.
264     *
265     * @function formatWithJDF
266     * @param {String}  formatString    The format String to be translated.
267     * @returns {String}
268     */
269    momentJS.fn.formatWithJDF = function (formatString) {
270      return this.format(this.toMomentFormatString(formatString));
271    };
272
273    /**
274     * Translates the momentjs format string to a java date format string
275     *
276     * @function toJDFString
277     * @param {String}  formatString    The format String to be translated.
278     * @returns {String}
279     */
280    momentJS.fn.toJDFString = function (formatString) {
281      if (!momentDateFormats[formatString]) {
282        momentDateFormats[formatString] = translateFormat(formatString, momentFormatMapping);
283      }
284
285      return momentDateFormats[formatString];
286    };
287  }
288
289  // Initialize JDateFormatParser Plugin on the global moment instance.
290  init(moment);
291
292  // Return the init function so that the JDateFormatParser Plugin can be
293  // initialized on other moment instances.
294  return init;
295});
296
297!function(a){"use strict";if("function"==typeof define&&define.amd)define(["jquery","moment"],a);
vendor: 7,012 bytes, line 297
297else if("object"==typeof exports)module.exports=a(require("jquery"),require("moment"));else{if("undefined"==typeof jQuery)throw"bootstrap-datetimepicker requires jQuery to be loaded first";if("undefined"==typeof moment)throw"bootstrap-datetimepicker requires Moment.js to be loaded first";a(jQuery,moment)}}(function(a,b){"use strict";if(!b)throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");var c=function(c,d){var e,f,g,h,i,j,k,l={},m=!0,n=!1,o=!1,p=0,q=[{clsName:"days",navFnc:"M",navStep:1},{clsName:"months",navFnc:"y",navStep:1},{clsName:"years",navFnc:"y",navStep:10},{clsName:"decades",navFnc:"y",navStep:100}],r=["days","months","years","decades"],s=["top","bottom","auto"],t=["left","right","auto"],u=["default","top","bottom"],v={up:38,38:"up",down:40,40:"down",left:37,37:"left",right:39,39:"right",tab:9,9:"tab",escape:27,27:"escape",enter:13,13:"enter",pageUp:33,33:"pageUp",pageDown:34,34:"pageDown",shift:16,16:"shift",control:17,17:"control",space:32,32:"space",t:84,84:"t",delete:46,46:"delete"},w={},x=function(){return void 0!==b.tz&&void 0!==d.timeZone&&null!==d.timeZone&&""!==d.timeZone},y=function(a){var c;return c=void 0===a||null===a?b():b.isDate(a)||b.isMoment(a)?b(a):x()?b.tz(a,j,d.useStrict,d.timeZone):b(a,j,d.useStrict),x()&&c.tz(d.timeZone),c},z=function(a){if("string"!=typeof a||a.length>1)throw new TypeError("isEnabled expects a single character string parameter");switch(a){case"y":return i.indexOf("Y")!==-1;case"M":return i.indexOf("M")!==-1;case"d":return i.toLowerCase().indexOf("d")!==-1;case"h":case"H":return i.toLowerCase().indexOf("h")!==-1;case"m":return i.indexOf("m")!==-1;case"s":return i.indexOf("s")!==-1;default:return!1}},A=function(){return z("h")||z("m")||z("s")},B=function(){return z("y")||z("M")||z("d")},C=function(){var b=a("<thead>").append(a("<tr>").append(a("<th>").addClass("prev").attr("data-action","previous").append(a("<span>").addClass(d.icons.previous))).append(a("<th>").addClass("picker-switch").attr("data-action","pickerSwitch").attr("colspan",d.calendarWeeks?"6":"5")).append(a("<th>").addClass("next").attr("data-action","next").append(a("<span>").addClass(d.icons.next)))),c=a("<tbody>").append(a("<tr>").append(a("<td>").attr("colspan",d.calendarWeeks?"8":"7")));return[a("<div>").addClass("datepicker-days").append(a("<table>").addClass("table-condensed").append(b).append(a("<tbody>"))),a("<div>").addClass("datepicker-months").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-years").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-decades").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone()))]},D=function(){var b=a("<tr>"),c=a("<tr>"),e=a("<tr>");return z("h")&&(b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementHour}).addClass("btn").attr("data-action","incrementHours").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-hour").attr({"data-time-component":"hours",title:d.tooltips.pickHour}).attr("data-action","showHours"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementHour}).addClass("btn").attr("data-action","decrementHours").append(a("<span>").addClass(d.icons.down))))),z("m")&&(z("h")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementMinute}).addClass("btn").attr("data-action","incrementMinutes").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-minute").attr({"data-time-component":"minutes",title:d.tooltips.pickMinute}).attr("data-action","showMinutes"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementMinute}).addClass("btn").attr("data-action","decrementMinutes").append(a("<span>").addClass(d.icons.down))))),z("s")&&(z("m")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementSecond}).addClass("btn").attr("data-action","incrementSeconds").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-second").attr({"data-time-component":"seconds",title:d.tooltips.pickSecond}).attr("data-action","showSeconds"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementSecond}).addClass("btn").attr("data-action","decrementSeconds").append(a("<span>").addClass(d.icons.down))))),h||(b.append(a("<td>").addClass("separator")),c.append(a("<td>").append(a("<button>").addClass("btn btn-primary").attr({"data-action":"togglePeriod",tabindex:"-1",title:d.tooltips.togglePeriod}))),e.append(a("<td>").addClass("separator"))),a("<div>").addClass("timepicker-picker").append(a("<table>").addClass("table-condensed").append([b,c,e]))},E=function(){var b=a("<div>").addClass("timepicker-hours").append(a("<table>").addClass("table-condensed")),c=a("<div>").addClass("timepicker-minutes").append(a("<table>").addClass("table-condensed")),d=a("<div>").addClass("timepicker-seconds").append(a("<table>").addClass("table-condensed")),e=[D()];return z("h")&&e.push(b),z("m")&&e.push(c),z("s")&&e.push(d),e},F=function(){var b=[];return d.showTodayButton&&b.push(a("<td>").append(a("<a>").attr({"data-action":"today",title:d.tooltips.today}).append(a("<span>").addClass(d.icons.today)))),!d.sideBySide&&B()&&A()&&b.push(a("<td>").append(a("<a>").attr({"data-action":"togglePicker",title:d.tooltips.selectTime}).append(a("<span>").addClass(d.icons.time)))),d.showClear&&b.push(a("<td>").append(a("<a>").attr({"data-action":"clear",title:d.tooltips.clear}).append(a("<span>").addClass(d.icons.clear)))),d.showClose&&b.push(a("<td>").append(a("<a>").attr({"data-action":"close",title:d.tooltips.close}).append(a("<span>").addClass(d.icons.close)))),a("<table>").addClass("table-condensed").append(a("<tbody>").append(a("<tr>").append(b)))},G=function(){var b=a("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),c=a("<div>").addClass("datepicker").append(C()),e=a("<div>").addClass("timepicker").append(E()),f=a("<ul>").addClass("list-unstyled"),g=a("<li>").addClass("picker-switch"+(d.collapse?" accordion-toggle":"")).append(F());return d.inline&&b.removeClass("dropdown-menu"),h&&b.addClass("usetwentyfour"),z("s")&&!h&&b.addClass("wider"),d.sideBySide&&B()&&A()?(b.addClass("timepicker-sbs"),"top"===d.toolbarPlacement&&b.append(g),b.append(a("<div>").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))),"bottom"===d.toolbarPlacement&&b.append(g),b):("top"===d.toolbarPlacement&&f.append(g),B()&&f.append(a("<li>
297").addClass(d.collapse&&A()?"collapse in":"").append(c)),"default"===d.toolbarPlacement&&f.append(g),A()&&f.append(a("<li>").addClass(d.collapse&&B()?"collapse":"").append(e)),"bottom"===d.toolbarPlacement&&f.append(g),b.append(f))},H=function(){var b,e={};return b=c.is("input")||d.inline?c.data():c.find("input").data(),b.dateOptions&&b.dateOptions instanceof Object&&(e=a.extend(!0,e,b.dateOptions)),a.each(d,function(a){var c="date"+a.charAt(0).toUpperCase()+a.slice(1);void 0!==b[c]&&(e[a]=b[c])}),e},I=function(){var b,e=(n||c).position(),f=(n||c).offset(),g=d.widgetPositioning.vertical,h=d.widgetPositioning.horizontal;if(d.widgetParent)b=d.widgetParent.append(o);else if(c.is("input"))b=c.after(o).parent();else{if(d.inline)return void(b=c.append(o));b=c,c.children().first().after(o)}if("auto"===g&&(g=f.top+1.5*o.height()>=a(window).height()+a(window).scrollTop()&&o.height()+c.outerHeight()<f.top?"top":"bottom"),"auto"===h&&(h=b.width()<f.left+o.outerWidth()/2&&f.left+o.outerWidth()>a(window).width()?"right":"left"),"top"===g?o.addClass("top").removeClass("bottom"):o.addClass("bottom").removeClass("top"),"right"===h?o.addClass("pull-right"):o.removeClass("pull-right"),"static"===b.css("position")&&(b=b.parents().filter(function(){return"static"!==a(this).css("position")}).first()),0===b.length)throw new Error("datetimepicker component should be placed within a non-static positioned container");o.css({top:"top"===g?"auto":e.top+c.outerHeight(),bottom:"top"===g?b.outerHeight()-(b===c?0:e.top):"auto",left:"left"===h?b===c?0:e.left:"auto",right:"left"===h?"auto":b.outerWidth()-c.outerWidth()-(b===c?0:e.left)})},J=function(a){"dp.change"===a.type&&(a.date&&a.date.isSame(a.oldDate)||!a.date&&!a.oldDate)||c.trigger(a)},K=function(a){"y"===a&&(a="YYYY"),J({type:"dp.update",change:a,viewDate:f.clone()})},L=function(a){o&&(a&&(k=Math.max(p,Math.min(3,k+a))),o.find(".datepicker > div").hide().filter(".datepicker-"+q[k].clsName).show())},M=function(){var b=a("<tr>"),c=f.clone().startOf("w").startOf("d");for(d.calendarWeeks===!0&&b.append(a("<th>").addClass("cw").text("#"));c.isBefore(f.clone().endOf("w"));)b.append(a("<th>").addClass("dow").text(c.format("dd"))),c.add(1,"d");o.find(".datepicker-days thead").append(b)},N=function(a){return d.disabledDates[a.format("YYYY-MM-DD")]===!0},O=function(a){return d.enabledDates[a.format("YYYY-MM-DD")]===!0},P=function(a){return d.disabledHours[a.format("H")]===!0},Q=function(a){return d.enabledHours[a.format("H")]===!0},R=function(b,c){if(!b.isValid())return!1;if(d.disabledDates&&"d"===c&&N(b))return!1;if(d.enabledDates&&"d"===c&&!O(b))return!1;if(d.minDate&&b.isBefore(d.minDate,c))return!1;if(d.maxDate&&b.isAfter(d.maxDate,c))return!1;if(d.daysOfWeekDisabled&&"d"===c&&d.daysOfWeekDisabled.indexOf(b.day())!==-1)return!1;if(d.disabledHours&&("h"===c||"m"===c||"s"===c)&&P(b))return!1;if(d.enabledHours&&("h"===c||"m"===c||"s"===c)&&!Q(b))return!1;if(d.disabledTimeIntervals&&("h"===c||"m"===c||"s"===c)){var e=!1;if(a.each(d.disabledTimeIntervals,function(){if(b.isBetween(this[0],this[1]))return e=!0,!1}),e)return!1}return!0},S=function(){for(var b=[],c=f.clone().startOf("y").startOf("d");c.isSame(f,"y");)b.push(a("<span>").attr("data-action","selectMonth").addClass("month").text(c.format("MMM"))),c.add(1,"M");o.find(".datepicker-months td").empty().append(b)},T=function(){var b=o.find(".datepicker-months"),c=b.find("th"),g=b.find("tbody").find("span");c.eq(0).find("span").attr("title",d.tooltips.prevYear),c.eq(1).attr("title",d.tooltips.selectYear),c.eq(2).find("span").attr("title",d.tooltips.nextYear),b.find(".disabled").removeClass("disabled"),R(f.clone().subtract(1,"y"),"y")||c.eq(0).addClass("disabled"),c.eq(1).text(f.year()),R(f.clone().add(1,"y"),"y")||c.eq(2).addClass("disabled"),g.removeClass("active"),e.isSame(f,"y")&&!m&&g.eq(e.month()).addClass("active"),g.each(function(b){R(f.clone().month(b),"M")||a(this).addClass("disabled")})},U=function(){var a=o.find(".datepicker-years"),b=a.find("th"),c=f.clone().subtract(5,"y"),g=f.clone().add(6,"y"),h="";for(b.eq(0).find("span").attr("title",d.tooltips.prevDecade),b.eq(1).attr("title",d.tooltips.selectDecade),b.eq(2).find("span").attr("title",d.tooltips.nextDecade),a.find(".disabled").removeClass("disabled"),d.minDate&&d.minDate.isAfter(c,"y")&&b.eq(0).addClass("disabled"),b.eq(1).text(c.year()+"-"+g.year()),d.maxDate&&d.maxDate.isBefore(g,"y")&&b.eq(2).addClass("disabled");!c.isAfter(g,"y");)h+='<span data-action="selectYear" class="year'+(c.isSame(e,"y")&&!m?" active":"")+(R(c,"y")?"":" disabled")+'">'+c.year()+"</span>",c.add(1,"y");a.find("td").html(h)},V=function(){var a,c=o.find(".datepicker-decades"),g=c.find("th"),h=b({y:f.year()-f.year()%100-1}),i=h.clone().add(100,"y"),j=h.clone(),k=!1,l=!1,m="";for(g.eq(0).find("span").attr("title",d.tooltips.prevCentury),g.eq(2).find("span").attr("title",d.tooltips.nextCentury),c.find(".disabled").removeClass("disabled"),(h.isSame(b({y:1900}
vendor: 8,812 bytes, line 297
297))||d.minDate&&d.minDate.isAfter(h,"y"))&&g.eq(0).addClass("disabled"),g.eq(1).text(h.year()+"-"+i.year()),(h.isSame(b({y:2e3}))||d.maxDate&&d.maxDate.isBefore(i,"y"))&&g.eq(2).addClass("disabled");!h.isAfter(i,"y");)a=h.year()+12,k=d.minDate&&d.minDate.isAfter(h,"y")&&d.minDate.year()<=a,l=d.maxDate&&d.maxDate.isAfter(h,"y")&&d.maxDate.year()<=a,m+='<span data-action="selectDecade" class="decade'+(e.isAfter(h)&&e.year()<=a?" active":"")+(R(h,"y")||k||l?"":" disabled")+'" data-selection="'+(h.year()+6)+'">'+(h.year()+1)+" - "+(h.year()+12)+"</span>",h.add(12,"y");m+="<span></span><span></span><span></span>",c.find("td").html(m),g.eq(1).text(j.year()+1+"-"+h.year())},W=function(){var b,c,g,h=o.find(".datepicker-days"),i=h.find("th"),j=[],k=[];if(B()){for(i.eq(0).find("span").attr("title",d.tooltips.prevMonth),i.eq(1).attr("title",d.tooltips.selectMonth),i.eq(2).find("span").attr("title",d.tooltips.nextMonth),h.find(".disabled").removeClass("disabled"),i.eq(1).text(f.format(d.dayViewHeaderFormat)),R(f.clone().subtract(1,"M"),"M")||i.eq(0).addClass("disabled"),R(f.clone().add(1,"M"),"M")||i.eq(2).addClass("disabled"),b=f.clone().startOf("M").startOf("w").startOf("d"),g=0;g<42;g++)0===b.weekday()&&(c=a("<tr>"),d.calendarWeeks&&c.append('<td class="cw">'+b.week()+"</td>"),j.push(c)),k=["day"],b.isBefore(f,"M")&&k.push("old"),b.isAfter(f,"M")&&k.push("new"),b.isSame(e,"d")&&!m&&k.push("active"),R(b,"d")||k.push("disabled"),b.isSame(y(),"d")&&k.push("today"),0!==b.day()&&6!==b.day()||k.push("weekend"),J({type:"dp.classify",date:b,classNames:k}),c.append('<td data-action="selectDay" data-day="'+b.format("L")+'" class="'+k.join(" ")+'">'+b.date()+"</td>"),b.add(1,"d");h.find("tbody").empty().append(j),T(),U(),V()}},X=function(){var b=o.find(".timepicker-hours table"),c=f.clone().startOf("d"),d=[],e=a("<tr>");for(f.hour()>11&&!h&&c.hour(12);c.isSame(f,"d")&&(h||f.hour()<12&&c.hour()<12||f.hour()>11);)c.hour()%4===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectHour" class="hour'+(R(c,"h")?"":" disabled")+'">'+c.format(h?"HH":"hh")+"</td>"),c.add(1,"h");b.empty().append(d)},Y=function(){for(var b=o.find(".timepicker-minutes table"),c=f.clone().startOf("h"),e=[],g=a("<tr>"),h=1===d.stepping?5:d.stepping;f.isSame(c,"h");)c.minute()%(4*h)===0&&(g=a("<tr>"),e.push(g)),g.append('<td data-action="selectMinute" class="minute'+(R(c,"m")?"":" disabled")+'">'+c.format("mm")+"</td>"),c.add(h,"m");b.empty().append(e)},Z=function(){for(var b=o.find(".timepicker-seconds table"),c=f.clone().startOf("m"),d=[],e=a("<tr>");f.isSame(c,"m");)c.second()%20===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectSecond" class="second'+(R(c,"s")?"":" disabled")+'">'+c.format("ss")+"</td>"),c.add(5,"s");b.empty().append(d)},$=function(){var a,b,c=o.find(".timepicker span[data-time-component]");h||(a=o.find(".timepicker [data-action=togglePeriod]"),b=e.clone().add(e.hours()>=12?-12:12,"h"),a.text(e.format("A")),R(b,"h")?a.removeClass("disabled"):a.addClass("disabled")),c.filter("[data-time-component=hours]").text(e.format(h?"HH":"hh")),c.filter("[data-time-component=minutes]").text(e.format("mm")),c.filter("[data-time-component=seconds]").text(e.format("ss")),X(),Y(),Z()},_=function(){o&&(W(),$())},aa=function(a){var b=m?null:e;if(!a)return m=!0,g.val(""),c.data("date",""),J({type:"dp.change",date:!1,oldDate:b}),void _();if(a=a.clone().locale(d.locale),x()&&a.tz(d.timeZone),1!==d.stepping)for(a.minutes(Math.round(a.minutes()/d.stepping)*d.stepping).seconds(0);d.minDate&&a.isBefore(d.minDate);)a.add(d.stepping,"minutes");R(a)?(e=a,f=e.clone(),g.val(e.format(i)),c.data("date",e.format(i)),m=!1,_(),J({type:"dp.change",date:e.clone(),oldDate:b})):(d.keepInvalid?J({type:"dp.change",date:a,oldDate:b}):g.val(m?"":e.format(i)),J({type:"dp.error",date:a,oldDate:b}))},ba=function(){var b=!1;return o?(o.find(".collapse").each(function(){var c=a(this).data("collapse");return!c||!c.transitioning||(b=!0,!1)}),b?l:(n&&n.hasClass("btn")&&n.toggleClass("active"),o.hide(),a(window).off("resize",I),o.off("click","[data-action]"),o.off("mousedown",!1),o.remove(),o=!1,J({type:"dp.hide",date:e.clone()}),g.blur(),f=e.clone(),l)):l},ca=function(){aa(null)},da=function(a){return void 0===d.parseInputDate?(!b.isMoment(a)||a instanceof Date)&&(a=y(a)):a=d.parseInputDate(a),a},ea={next:function(){var a=q[k].navFnc;f.add(q[k].navStep,a),W(),K(a)},previous:function(){var a=q[k].navFnc;f.subtract(q[k].navStep,a),W(),K(a)},pickerSwitch:function(){L(1)},selectMonth:function(b){var c=a(b.target).closest("tbody").find("span").index(a(b.target));f.month(c),k===p?(aa(e.clone().year(f.year()).month(f.month())),d.inline||ba()):(L(-1),W()),K("M")},selectYear:function(b){var c=parseInt(a(b.target).text(),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDecade:function(b){var c=parseInt(a(b.target).data("selection"),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDay:function(b){var c=f.clone();a(b.target).is(".old")&&c.subtract(1,"M"),a(b.target).is(".new")&&c.add(1,"M"),aa(c.date(parseInt(a(b.target).text(),10))),A()||d.keepOpen||d.inline||ba()},incrementHours:function(){var a=e.clone().add(1,"h");R(a,"h")&&aa(a)},incrementMinutes:function(){var a=e.clone().add(d.stepping,"m");R(a,"m")&&aa(a)},incrementSeconds:function(){var a=e.clone().add(1,"s");R(a,"s")&&aa(a)},decrementHours:function(){var a=e.clone().subtract(1,"h");R(a,"h")&&aa(a)},decrementMinutes:function(){var a=e.clone().subtract(d.stepping,"m");R(a,"m")&&aa(a)},decrementSeconds:function(){var a=e.clone().subtract(1,"s");R(a,"s")&&aa(a)},togglePeriod:function(){aa(e.clone().add(e.hours()>=12?-12:12,"h"))},togglePicker:function(b){var c,e=a(b.target),f=e.closest("ul"),g=f.find(".in"),h=f.find(".collapse:not(.in)");if(g&&g.length){if(c=g.data("collapse"),c&&c.transitioning)return;g.collapse?(g.collapse("hide"),h.collapse("show")):(g.removeClass("in"),h.addClass("in")),e.is("span")?e.toggleClass(d.icons.time+" "+d.icons.date):e.find("span").toggleClass(d.icons.time+" "+d.icons.date)}},showPicker:function(){o.find(".timepicker > div:not(.timepicker-picker)").hide(),o.find(".timepicker .timepicker-picker").show()},showHours:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-hours").show()},showMinutes:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-seconds").show()},selectHour:function(b){var c=parseInt(a(b.target).text(),10);h||(e.hours()>=12?12!==c&&(c+=12):12===c&&(c=0)),aa(e.clone().hours(c)),ea.showPicker.call(l)},selectMinute:function(b){aa(e.clone().minutes(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},selectSecond:function(b){aa(e.clone().seconds(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},clear:ca,today:function(){var a=y();R(a,"d")&&aa(a)},close:ba},fa=function(b){return!a(b.currentTarget).is(".disabled")&&(ea[a(b.currentTarget).data("action")].apply(l,arguments),!1)},ga=function(){var b,c={year:function(a){return a.month(0).date(1).hours(0).seconds(0).minutes(0)},month:function(a){return a.date(1).hours(0).seconds(0).minutes(0)},day:function(a){return a.hours(0).seconds(0).minutes(0)},hour:function(a){return a.seconds(0).minutes(0)},minute:function(a){return a.seconds(0)}};return g.prop("disabled")||!d.ignoreReadonly&&g.prop("readonly")||o?l:(void 0!==g.val()&&0!==g.val().trim().length?aa(da(g.val().trim())):m&&d.useCurrent&&(d.inline||g.is("input")&&0===g.val().trim().length)&&(b=y(),"string"==typeof d.useCurrent&&(b=c[d.useCurrent](b)),aa(b)),o=G(),M(),S(),o.find(".timepicker-hours").hide(),o.find(".timepicker-minutes").hide(),o.find(".timepicker-seconds").hide(),_(),L(),a(window).on("resize",I),o.on("click","[data-action]",fa),o.on("mousedown",!1),n&&n.hasClass("btn")&&n.toggleClass("active"),I(),o.show(),d.focusOnShow&&!g.is(":focus")&&g.focus(),J({type:"dp.show"}),l)},ha=function(){return o?ba():ga()},ia=function(a){var b,c,e,f,g=null,h=[],i={},j=a.which,k="p";w[j]=k;for(b in w)w.hasOwnProperty(b)&&w[b]===k&&(h.push(b),parseInt(b,10)!==j&&(i[b]=!0));for(b in d.keyBinds)if(d.keyBinds.hasOwnProperty(b)&&"function"==typeof d.keyBinds[b]&&(e=b.split(" "),e.length===h.length&&v[j]===e[e.length-1])){for(f=!0,c=e.length-2;c>=0;c--)if(!(v[e[c]]in i)){f=!1;break}if(f){g=d.keyBinds[b];break}}g&&(g.call(l,o),a.stopPropagation(),a.preventDefault())},ja=function(a){w[a.which]="r",a.stopPropagation(),a.preventDefault()},ka=function(b){var c=a(b.target).val().trim(),d=c?da(c):null;return aa(d),b.stopImmediatePropagation(),!1},la=function(){g.on({change:ka,blur:d.debug?"":ba,keydown:ia,keyup:ja,focus:d.allowInputToggle?ga:""}
297),c.is("input")?g.on({focus:ga}):n&&(n.on("click",ha),n.on("mousedown",!1))},ma=function(){g.off({change:ka,blur:blur,keydown:ia,keyup:ja,focus:d.allowInputToggle?ba:""}),c.is("input")?g.off({focus:ga}):n&&(n.off("click",ha),n.off("mousedown",!1))},na=function(b){var c={};return a.each(b,function(){var a=da(this);a.isValid()&&(c[a.format("YYYY-MM-DD")]=!0)}),!!Object.keys(c).length&&c},oa=function(b){var c={};return a.each(b,function(){c[this]=!0}),!!Object.keys(c).length&&c},pa=function(){var a=d.format||"L LT";i=a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){var b=e.localeData().longDateFormat(a)||a;return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){return e.localeData().longDateFormat(a)||a})}),j=d.extraFormats?d.extraFormats.slice():[],j.indexOf(a)<0&&j.indexOf(i)<0&&j.push(i),h=i.toLowerCase().indexOf("a")<1&&i.replace(/\[.*?\]/g,"").indexOf("h")<1,z("y")&&(p=2),z("M")&&(p=1),z("d")&&(p=0),k=Math.max(p,k),m||aa(e)};if(l.destroy=function(){ba(),ma(),c.removeData("DateTimePicker"),c.removeData("date")},l.toggle=ha,l.show=ga,l.hide=ba,l.disable=function(){return ba(),n&&n.hasClass("btn")&&n.addClass("disabled"),g.prop("disabled",!0),l},l.enable=function(){return n&&n.hasClass("btn")&&n.removeClass("disabled"),g.prop("disabled",!1),l},l.ignoreReadonly=function(a){if(0===arguments.length)return d.ignoreReadonly;if("boolean"!=typeof a)throw new TypeError("ignoreReadonly () expects a boolean parameter");return d.ignoreReadonly=a,l},l.options=function(b){if(0===arguments.length)return a.extend(!0,{},d);if(!(b instanceof Object))throw new TypeError("options() options parameter should be an object");return a.extend(!0,d,b),a.each(d,function(a,b){if(void 0===l[a])throw new TypeError("option "+a+" is not recognized!");l[a](b)}),l},l.date=function(a){if(0===arguments.length)return m?null:e.clone();if(!(null===a||"string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]");return aa(null===a?null:da(a)),l},l.format=function(a){if(0===arguments.length)return d.format;if("string"!=typeof a&&("boolean"!=typeof a||a!==!1))throw new TypeError("format() expects a string or boolean:false parameter "+a);return d.format=a,i&&pa(),l},l.timeZone=function(a){if(0===arguments.length)return d.timeZone;if("string"!=typeof a)throw new TypeError("newZone() expects a string parameter");return d.timeZone=a,l},l.dayViewHeaderFormat=function(a){if(0===arguments.length)return d.dayViewHeaderFormat;if("string"!=typeof a)throw new TypeError("dayViewHeaderFormat() expects a string parameter");return d.dayViewHeaderFormat=a,l},l.extraFormats=function(a){if(0===arguments.length)return d.extraFormats;if(a!==!1&&!(a instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter");return d.extraFormats=a,j&&pa(),l},l.disabledDates=function(b){if(0===arguments.length)return d.disabledDates?a.extend({},d.disabledDates):d.disabledDates;if(!b)return d.disabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledDates() expects an array parameter");return d.disabledDates=na(b),d.enabledDates=!1,_(),l},l.enabledDates=function(b){if(0===arguments.length)return d.enabledDates?a.extend({},d.enabledDates):d.enabledDates;if(!b)return d.enabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledDates() expects an array parameter");return d.enabledDates=na(b),d.disabledDates=!1,_(),l},l.daysOfWeekDisabled=function(a){if(0===arguments.length)return d.daysOfWeekDisabled.splice(0);if("boolean"==typeof a&&!a)return d.daysOfWeekDisabled=!1,_(),l;if(!(a instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter");if(d.daysOfWeekDisabled=a.reduce(function(a,b){return b=parseInt(b,10),b>6||b<0||isNaN(b)?a:(a.indexOf(b)===-1&&a.push(b),a)},[]).sort(),d.useCurrent&&!d.keepInvalid){for(var b=0;!R(e,"d");){if(e.add(1,"d"),31===b)throw"Tried 31 times to find a valid date";b++}aa(e)}return _(),l},l.maxDate=function(a){if(0===arguments.length)return d.maxDate?d.maxDate.clone():d.maxDate;if("boolean"==typeof a&&a===!1)return d.maxDate=!1,_(),l;"string"==typeof a&&("now"!==a&&"moment"!==a||(a=y()));var b=da(a);if(!b.isValid())throw new TypeError("maxDate() Could not parse date parameter: "+a);if(d.minDate&&b.isBefore(d.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: "+b.format(i));return d.maxDate=b,d.useCurrent&&!d.keepInvalid&&e.isAfter(a)&&aa(d.maxDate),f.isAfter(b)&&(f=b.clone().subtract(d.stepping,"m")),_(),l}
vendor: 9,198 bytes, lines 297-298
297,l.minDate=function(a){if(0===arguments.length)return d.minDate?d.minDate.clone():d.minDate;if("boolean"==typeof a&&a===!1)return d.minDate=!1,_(),l;"string"==typeof a&&("now"!==a&&"moment"!==a||(a=y()));var b=da(a);if(!b.isValid())throw new TypeError("minDate() Could not parse date parameter: "+a);if(d.maxDate&&b.isAfter(d.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: "+b.format(i));return d.minDate=b,d.useCurrent&&!d.keepInvalid&&e.isBefore(a)&&aa(d.minDate),f.isBefore(b)&&(f=b.clone().add(d.stepping,"m")),_(),l},l.defaultDate=function(a){if(0===arguments.length)return d.defaultDate?d.defaultDate.clone():d.defaultDate;if(!a)return d.defaultDate=!1,l;"string"==typeof a&&(a="now"===a||"moment"===a?y():y(a));var b=da(a);if(!b.isValid())throw new TypeError("defaultDate() Could not parse date parameter: "+a);if(!R(b))throw new TypeError("defaultDate() date passed is invalid according to component setup validations");return d.defaultDate=b,(d.defaultDate&&d.inline||""===g.val().trim())&&aa(d.defaultDate),l},l.locale=function(a){if(0===arguments.length)return d.locale;if(!b.localeData(a))throw new TypeError("locale() locale "+a+" is not loaded from moment locales!");return d.locale=a,e.locale(d.locale),f.locale(d.locale),i&&pa(),o&&(ba(),ga()),l},l.stepping=function(a){return 0===arguments.length?d.stepping:(a=parseInt(a,10),(isNaN(a)||a<1)&&(a=1),d.stepping=a,l)},l.useCurrent=function(a){var b=["year","month","day","hour","minute"];if(0===arguments.length)return d.useCurrent;if("boolean"!=typeof a&&"string"!=typeof a)throw new TypeError("useCurrent() expects a boolean or string parameter");if("string"==typeof a&&b.indexOf(a.toLowerCase())===-1)throw new TypeError("useCurrent() expects a string parameter of "+b.join(", "));return d.useCurrent=a,l},l.collapse=function(a){if(0===arguments.length)return d.collapse;if("boolean"!=typeof a)throw new TypeError("collapse() expects a boolean parameter");return d.collapse===a?l:(d.collapse=a,o&&(ba(),ga()),l)},l.icons=function(b){if(0===arguments.length)return a.extend({},d.icons);if(!(b instanceof Object))throw new TypeError("icons() expects parameter to be an Object");return a.extend(d.icons,b),o&&(ba(),ga()),l},l.tooltips=function(b){if(0===arguments.length)return a.extend({},d.tooltips);if(!(b instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object");return a.extend(d.tooltips,b),o&&(ba(),ga()),l},l.useStrict=function(a){if(0===arguments.length)return d.useStrict;if("boolean"!=typeof a)throw new TypeError("useStrict() expects a boolean parameter");return d.useStrict=a,l},l.sideBySide=function(a){if(0===arguments.length)return d.sideBySide;if("boolean"!=typeof a)throw new TypeError("sideBySide() expects a boolean parameter");return d.sideBySide=a,o&&(ba(),ga()),l},l.viewMode=function(a){if(0===arguments.length)return d.viewMode;if("string"!=typeof a)throw new TypeError("viewMode() expects a string parameter");if(r.indexOf(a)===-1)throw new TypeError("viewMode() parameter must be one of ("+r.join(", ")+") value");return d.viewMode=a,k=Math.max(r.indexOf(a),p),L(),l},l.toolbarPlacement=function(a){if(0===arguments.length)return d.toolbarPlacement;if("string"!=typeof a)throw new TypeError("toolbarPlacement() expects a string parameter");if(u.indexOf(a)===-1)throw new TypeError("toolbarPlacement() parameter must be one of ("+u.join(", ")+") value");return d.toolbarPlacement=a,o&&(ba(),ga()),l},l.widgetPositioning=function(b){if(0===arguments.length)return a.extend({},d.widgetPositioning);if("[object Object]"!=={}.toString.call(b))throw new TypeError("widgetPositioning() expects an object variable");if(b.horizontal){if("string"!=typeof b.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string");if(b.horizontal=b.horizontal.toLowerCase(),t.indexOf(b.horizontal)===-1)throw new TypeError("widgetPositioning() expects horizontal parameter to be one of ("+t.join(", ")+")");d.widgetPositioning.horizontal=b.horizontal}if(b.vertical){if("string"!=typeof b.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string");if(b.vertical=b.vertical.toLowerCase(),s.indexOf(b.vertical)===-1)throw new TypeError("widgetPositioning() expects vertical parameter to be one of ("+s.join(", ")+")");d.widgetPositioning.vertical=b.vertical}return _(),l},l.calendarWeeks=function(a){if(0===arguments.length)return d.calendarWeeks;if("boolean"!=typeof a)throw new TypeError("calendarWeeks() expects parameter to be a boolean value");return d.calendarWeeks=a,_(),l},l.showTodayButton=function(a){if(0===arguments.length)return d.showTodayButton;if("boolean"!=typeof a)throw new TypeError("showTodayButton() expects a boolean parameter");return d.showTodayButton=a,o&&(ba(),ga()),l},l.showClear=function(a){if(0===arguments.length)return d.showClear;if("boolean"!=typeof a)throw new TypeError("showClear() expects a boolean parameter");return d.showClear=a,o&&(ba(),ga()),l},l.widgetParent=function(b){if(0===arguments.length)return d.widgetParent;if("string"==typeof b&&(b=a(b)),null!==b&&"string"!=typeof b&&!(b instanceof a))throw new TypeError("widgetParent() expects a string or a jQuery object parameter");return d.widgetParent=b,o&&(ba(),ga()),l},l.keepOpen=function(a){if(0===arguments.length)return d.keepOpen;if("boolean"!=typeof a)throw new TypeError("keepOpen() expects a boolean parameter");return d.keepOpen=a,l},l.focusOnShow=function(a){if(0===arguments.length)return d.focusOnShow;if("boolean"!=typeof a)throw new TypeError("focusOnShow() expects a boolean parameter");return d.focusOnShow=a,l},l.inline=function(a){if(0===arguments.length)return d.inline;if("boolean"!=typeof a)throw new TypeError("inline() expects a boolean parameter");return d.inline=a,l},l.clear=function(){return ca(),l},l.keyBinds=function(a){return 0===arguments.length?d.keyBinds:(d.keyBinds=a,l)},l.getMoment=function(a){return y(a)},l.debug=function(a){if("boolean"!=typeof a)throw new TypeError("debug() expects a boolean parameter");return d.debug=a,l},l.allowInputToggle=function(a){if(0===arguments.length)return d.allowInputToggle;if("boolean"!=typeof a)throw new TypeError("allowInputToggle() expects a boolean parameter");return d.allowInputToggle=a,l},l.showClose=function(a){if(0===arguments.length)return d.showClose;if("boolean"!=typeof a)throw new TypeError("showClose() expects a boolean parameter");return d.showClose=a,l},l.keepInvalid=function(a){if(0===arguments.length)return d.keepInvalid;if("boolean"!=typeof a)throw new TypeError("keepInvalid() expects a boolean parameter");
298return d.keepInvalid=a,l},l.datepickerInput=function(a){if(0===arguments.length)return d.datepickerInput;if("string"!=typeof a)throw new TypeError("datepickerInput() expects a string parameter");return d.datepickerInput=a,l},l.parseInputDate=function(a){if(0===arguments.length)return d.parseInputDate;if("function"!=typeof a)throw new TypeError("parseInputDate() sholud be as function");return d.parseInputDate=a,l},l.disabledTimeIntervals=function(b){if(0===arguments.length)return d.disabledTimeIntervals?a.extend({},d.disabledTimeIntervals):d.disabledTimeIntervals;if(!b)return d.disabledTimeIntervals=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter");return d.disabledTimeIntervals=b,_(),l},l.disabledHours=function(b){if(0===arguments.length)return d.disabledHours?a.extend({},d.disabledHours):d.disabledHours;if(!b)return d.disabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledHours() expects an array parameter");if(d.disabledHours=oa(b),d.enabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.enabledHours=function(b){if(0===arguments.length)return d.enabledHours?a.extend({},d.enabledHours):d.enabledHours;if(!b)return d.enabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledHours() expects an array parameter");if(d.enabledHours=oa(b),d.disabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.viewDate=function(a){if(0===arguments.length)return f.clone();if(!a)return f=e.clone(),l;if(!("string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");return f=da(a),K(),l},c.is("input"))g=c;else if(g=c.find(d.datepickerInput),0===g.length)g=c.find("input");else if(!g.is("input"))throw new Error('CSS class "'+d.datepickerInput+'" cannot be applied to non input element');if(c.hasClass("input-group")&&(n=0===c.find(".datepickerbutton").length?c.find(".input-group-addon"):c.find(".datepickerbutton")),!d.inline&&!g.is("input"))throw new Error("Could not initialize DateTimePicker without an input element");return e=y(),f=e.clone(),a.extend(!0,d,H()),l.options(d),pa(),la(),g.prop("disabled")&&l.disable(),g.is("input")&&0!==g.val().trim().length?aa(da(g.val().trim())):d.defaultDate&&void 0===g.attr("placeholder")&&aa(d.defaultDate),d.inline&&ga(),l};return a.fn.datetimepicker=function(b){b=b||{};
298var d,e=Array.prototype.slice.call(arguments,1),f=!0,g=["destroy","hide","show","toggle"];if("object"==typeof b)return this.each(function(){var d,e=a(this);e.data("DateTimePicker")||(d=a.extend(!0,{},a.fn.datetimepicker.defaults,b),e.data("DateTimePicker",c(e,d)))});if("string"==typeof b)return this.each(function(){var c=a(this),g=c.data("DateTimePicker");if(!g)throw new Error('bootstrap-datetimepicker("'+b+'") method was called on an element that is not using DateTimePicker');d=g[b].apply(g,e),f=d===g}),f||a.inArray(b,g)>-1?this:d;throw new TypeError("Invalid arguments for DateTimePicker: "+b)},a.fn.datetimepicker.defaults={timeZone:"",format:!1,dayViewHeaderFormat:"MMMM YYYY",extraFormats:!1,stepping:1,minDate:!1,maxDate:!1,useCurrent:!0,collapse:!0,locale:b.locale(),defaultDate:!1,disabledDates:!1,enabledDates:!1,icons:{time:"glyphicon glyphicon-time",date:"glyphicon glyphicon-calendar",up:"glyphicon glyphicon-chevron-up",down:"glyphicon glyphicon-chevron-down",previous:"glyphicon glyphicon-chevron-left",next:"glyphicon glyphicon-chevron-right",today:"glyphicon glyphicon-screenshot",clear:"glyphicon glyphicon-trash",close:"glyphicon glyphicon-remove"},tooltips:{today:"Go to today",clear:"Clear selection",close:"Close the picker",selectMonth:"Select Month",prevMonth:"Previous Month",nextMonth:"Next Month",selectYear:"Select Year",prevYear:"Previous Year",nextYear:"Next Year",selectDecade:"Select Decade",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevCentury:"Previous Century",nextCentury:"Next Century",pickHour:"Pick Hour",incrementHour:"Increment Hour",decrementHour:"Decrement Hour",pickMinute:"Pick Minute",incrementMinute:"Increment Minute",decrementMinute:"Decrement Minute",pickSecond:"Pick Second",incrementSecond:"Increment Second",decrementSecond:"Decrement Second",togglePeriod:"Toggle Period",selectTime:"Select Time"},useStrict:!1,sideBySide:!1,daysOfWeekDisabled:!1,calendarWeeks:!1,viewMode:"days",toolbarPlacement:"default",showTodayButton:!1,showClear:!1,showClose:!1,widgetPositioning:{horizontal:"auto",vertical:"auto"},widgetParent:null,ignoreReadonly:!1,keepOpen:!1,focusOnShow:!0,inline:!1,keepInvalid:!1,datepickerInput:".datepickerinput",keyBinds:{up:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(7,"d")):this.date(b.clone().add(this.stepping(),"m"))}},down:function(a){if(!a)return void this.show();var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(7,"d")):this.date(b.clone().subtract(this.stepping(),"m"))},"control up":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(1,"y")):this.date(b.clone().add(1,"h"))}},"control down":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(1,"y")):this.date(b.clone().subtract(1,"h"))}},left:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"d"))}},right:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"d"))}},pageUp:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"M"))}},pageDown:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"M"))}},enter:function(){this.hide()},escape:function(){this.hide()},"control space":function(a){a&&a.find(".timepicker").is(":visible")&&a.find('.btn[data-action="togglePeriod"]').click()},t:function(){this.date(this.getMoment())},delete:function(){this.clear()}},debug:!1,allowInputToggle:!1,disabledTimeIntervals:!1,disabledHours:!1,enabledHours:!1,viewDate:!1},a.fn.datetimepicker});
299
300$(document).ready(function() {
301	hyperix.registerLoadHandler(activateDatepicker);
302	hyperix.registerUnloadHandler(deactivateDatepicker);
303});
304
305function activateDatepicker() {
306//  console.log('Activating datepicker');
307  
308  $(".datetimepicker").each(function(key, item) {
309    let lFormat = $(item).attr("data-format");
310    let lLocale = $(item).attr("data-locale");
311    let lColor = $(item).attr("data-color");
312    let lClearLabel = $(item).attr("data-label-clear");
313    let lCloseLabel = $(item).attr("data-label-close");
314    let lValue = $(item).find("input").val();
315//    console.log(lFormat);
316    
317    if (!lFormat) {
318      console.warn("Warning: No format in datetime attribute");
319      lFormat = 'YYYY-MM-DD HH:mm';
320    }
321    
322    // Convertoanie formatu na moment.js //
323    lFormat = moment().toMomentFormatString(lFormat);
324//    console.log(lFormat);
325//    console.log(lValue);
326
327    // init datetimepicker
328    $(item).datetimepicker({
329      format: lFormat,
330      locale: (lLocale ? lLocale: 'en-en'),
331      date: (lValue ? moment(lValue) : null),
332      sideBySide: true,
333      showClear: true,
334      showClose: true,
335      allowInputToggle: true,
336      // inline: true,
337      toolbarPlacement: 'bottom',
338      icons: {
339				time:     'hx_btn_icon icon-calendar ' + lColor,
340				date:     'hx_btn_icon icon-calendar ' + lColor,
341				up:       'hx_btn_icon icon-time-up ' + lColor,
342        down:     'hx_btn_icon icon-time-down ' + lColor,
343        previous: 'hx_btn_icon icon-time-left ' + lColor,
344        next:     'hx_btn_icon icon-time-right ' + lColor,
345        today:    'hx_btn_icon icon-calendar ' + lColor,
346        clear:    'hx_btn_icon icon-clear  ' + lColor,
347        close:    'hx_btn_icon icon-delete ' + lColor
348      },
349    });
350    
351    // format buttons
352    $(item).on('dp.show', function (e) { 
353//      console.log('------ SHOW EVENT DATEPICKER -----');
354      let pickerSwitch = $(item).find('li.picker-switch');
355      let btnClass = 'btn btn-sm ' + lColor;
356      let buttonsHtml = $('<div class="col-6"><a data-action="clear" title="Clear selection" class="' + btnClass + '">' + lClearLabel + '</a></div>' +
357                          '<div class="col-6"><a data-action="close" title="Close the picker" class="' + btnClass + '">' + lCloseLabel + '</a></div>');
358      pickerSwitch.addClass('row');
359      pickerSwitch.find('table').remove();
360      pickerSwitch.html(buttonsHtml);
361      $(item).find('.picker-switch [data-action="clear"]').addClass('btn btn-sm').text(lClearLabel);
362      $(item).find('.picker-switch [data-action="close"]').addClass('btn btn-sm').text(lCloseLabel);
363    });
364  })
365};
366
367function deactivateDatepicker() {
368//  console.log('Dectivating datepicker');
369};
370
371
372(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE="",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),define("ace/lib/fixoldbrowsers",["require","exports","module"],function(e,t,n){"use strict";typeof Element!="undefined"&&!Element.prototype.remove&&Object.defineProperty(Element.prototype,"remove",{enumerable:!1,writable:!0,configurable:!0,value:function(){this.parentNode&&this.parentNode.removeChild(this)}})}),define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";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};var r=typeof navigator=="object"?navigator:{},i=(/mac|win|linux/i.exec(r.platform)||["other"])[0].toLowerCase(),s=r.userAgent||"",o=r.appName||"";t.isWin=i=="win",t.isMac=i=="mac",t.isLinux=i=="linux",t.isIE=o=="Microsoft Internet Explorer"||o.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(s.split(" Chrome/")[1])||undefined,t.isEdge=parseFloat(s.split(" Edge/")[1])||undefined,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function u(){var e=o;o=null,e&&e.forEach(function(e){a(e[0],e[1])})}function a(e,n,r){if(typeof document=="undefined")return;if(o)if(r)u();else if(r===!1)return o.push([e,n]);if(s)return;var i=r;if(!r||!r.getRootNode)i=document;else{i=r.getRootNode();if(!i||i==r)i=document}var a=i.ownerDocument||i;if(n&&t.hasCssString(n,i))return null;n&&(e+="\n/*# sourceURL=ace/css/"+n+" */");var f=t.createElement("style");f.appendChild(a.createTextNode(e)),n&&(f.id=n),i==a&&(i=t.getDocumentHead(a)),i.insertBefore(f,i.firstChild)}
372var r=e("./useragent"),i="http://www.w3.org/1999/xhtml";t.buildDom=function l(e,t,n){if(typeof e=="string"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e&&e.appendChild&&t&&t.appendChild(e),e;if(typeof e[0]!="string"||!e[0]){var i=[];for(var s=0;s<e.length;s++){var o=l(e[s],t,n);o&&i.push(o)}return i}var u=document.createElement(e[0]),a=e[1],f=1;a&&typeof a=="object"&&!Array.isArray(a)&&(f=2);for(var s=f;s<e.length;s++)l(e[s],u,n);return f==2&&Object.keys(a).forEach(function(e){var t=a[e];e==="class"?u.className=Array.isArray(t)?t.join(" "):t:typeof t=="function"||e=="value"||e[0]=="$"?u[e]=t:e==="ref"?n&&(n[t]=u):e==="style"?typeof t=="string"&&(u.style.cssText=t):t!=null&&u.setAttribute(e,t)}),t&&t.appendChild(u),u},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||i,e):document.createElement(e)},t.removeChildren=function(e){e.innerHTML=""},t.createTextNode=function(e,t){var n=t?t.ownerDocument:document;return n.createTextNode(e)},t.createFragment=function(e){var t=e?e.ownerDocument:document;return t.createDocumentFragment()},t.hasCssClass=function(e,t){var n=(e.className+"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(r=t.querySelectorAll("style"))while(n<r.length)if(r[n++].id===e)return!0};var s,o=[];t.useStrictCSP=function(e){s=e,e==0?u():o||(o=[])},t.importCssString=a,t.importCssStylsheet=function(e,n){t.buildDom(["link",{rel:"stylesheet",href:e}],t.getDocumentHead(n))},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 r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u},t.computedStyle=function(e,t){return window.getComputedStyle(e,"")||{}},t.setStyle=function(e,t,n){e[t]!==n&&(e[t]=n)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=r.isWin?typeof window!="undefined"&&window.devicePixelRatio>=1.5:!0,r.isChromeOS&&(t.HI_DPI=!1);if(typeof document!="undefined"){var f=document.createElement("div");t.HI_DPI&&f.style.transform!==undefined&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&typeof f.style.animationName!="undefined"&&(t.HAS_CSS_ANIMATION=!0),f=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),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}})},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)}}),define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta",91:"MetaLeft",92:"MetaRight",93:"ContextMenu"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8,control:1},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:"*"}},t,n;
372for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(){u=!1;try{document.createComment("").addEventListener("test",function(){},{get passive(){u={passive:!1}}})}catch(e){}}function f(){return u==undefined&&a(),u}function l(e,t,n){this.elem=e,this.type=t,this.callback=n}function d(e,t,n){var u=p(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(u|=8);if(s.altGr){if((3&u)==3)return;s.altGr=0}if(n===18||n===17){var a="location"in t?t.location:t.keyLocation;if(n===17&&a===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&u===3&&a===2){var f=t.timeStamp-o;f<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1);if(!u&&n===13){var a="location"in t?t.location:t.keyLocation;if(a===3){e(t,u,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&u&8){e(t,u,n);if(t.defaultPrevented)return;u&=-9}return!!u||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,u,n):!1}function v(){s=Object.create(null)}var r=e("./keys"),i=e("./useragent"),s=null,o=0,u;l.prototype.destroy=function(){h(this.elem,this.type,this.callback),this.elem=this.type=this.callback=undefined};var c=t.addListener=function(e,t,n,r){e.addEventListener(t,n,f()),r&&r.$toDestroy.push(new l(e,t,n))},h=t.removeListener=function(e,t,n){e.removeEventListener(t,n,f())};t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation&&e.stopPropagation()},t.preventDefault=function(e){e.preventDefault&&e.preventDefault()},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.button},t.capture=function(e,t,n){function i(e){t&&t(e),n&&n(e),h(r,"mousemove",t),h(r,"mouseup",i),h(r,"dragstart",i)}var r=e&&e.ownerDocument||document;return c(r,"mousemove",t),c(r,"mouseup",i),c(r,"dragstart",i),i},t.addMouseWheelListener=function(e,t,n){"onmousewheel"in e?c(e,"mousewheel",function(e){var n=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/n,e.wheelY=-e.wheelDeltaY/n):(e.wheelX=0,e.wheelY=-e.wheelDelta/n),t(e)},n):"onwheel"in e?c(e,"wheel",function(e){var n=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*n||0,e.wheelY=e.deltaY*n||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}t(e)},n):c(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),t(e)},n)},t.addMultiMouseDownListener=function(e,n,r,s,o){function p(e){t.getButton(e)!==0?u=0:e.detail>1?(u++,u>4&&(u=1)):u=1;if(i.isIE){var o=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-f)>5;if(!l||o)u=1;l&&clearTimeout(l),l=setTimeout(function(){l=null},n[u-1]||600),u==1&&(a=e.clientX,f=e.clientY)}e._clicks=u,r[s]("mousedown",e);if(u>4)u=0;else if(u>1)return r[s](h[u],e)}var u=0,a,f,l,h={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){c(e,"mousedown",p,o)})};var p=function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[p(e)]},t.addCommandKeyListener=function(e,n,r){if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;c(e,"keydown",function(e){o=e.keyCode},r),c(e,"keypress",function(e){return d(n,e,o)},r)}else{var u=null;c(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=d(n,e,e.keyCode);return u=e.defaultPrevented,t},r),c(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)},r),c(e,"keyup",function(e){s[e.keyCode]=null}
372,r),s||(v(),c(window,"focus",v))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+m++,i=function(s){s.data==r&&(t.stopPropagation(s),h(n,"message",i),e())};c(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window=="object"&&(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)}}),define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(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 this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},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){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0: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},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)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var 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(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||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 this.end.column==0?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=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]}
372,t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var 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,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/clipboard",["require","exports","module"],function(e,t,n){"use strict";var r;n.exports={lineMode:!1,pasteCancelled:function(){return r&&r>Date.now()-50?!0:r=!1},cancel:function(){r=Date.now()}}}),define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=e("../clipboard"),a=i.isChrome<18,f=i.isIE,l=i.isChrome>63,c=400,h=e("../lib/keys"),p=h.KEY_MODS,d=i.isIOS,v=d?/\s/:/\n/,m=i.isMobile,g=function(e,t){function X(){x=!0,n.blur(),n.focus(),x=!1}function $(e){e.keyCode==27&&n.value.length<n.selectionStart&&(b||(T=n.value),N=C=-1,O()),V()}function K(){clearTimeout(J),J=setTimeout(function(){E&&(n.style.cssText=E,E=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()},0)}function G(e,t,n){var r=null,i=!1;n.addEventListener("keydown",function(e){r&&clearTimeout(r),i=!0},!0),n.addEventListener("keyup",function(e){r=setTimeout(function(){i=!1},100)},!0);var s=function(e){if(document.activeElement!==n)return;if(i||b||t.$mouseHandler.isMousePressed)return;if(g)return;var r=n.selectionStart,s=n.selectionEnd,o=null,u=0;if(r==0)o=h.up;else if(r==1)o=h.home;else if(s>C&&T[s]=="\n")o=h.end;else if(r<N&&T[r-1]==" ")o=h.left,u=p.option;else if(r<N||r==N&&C!=N&&r==s)o=h.left;else if(s>C&&T.slice(0,s).split("\n").length>2)o=h.down;else if(s>C&&T[s-1]==" ")o=h.right,u=p.option;else if(s>C||s==C&&C!=N&&r==s)o=h.right;r!==s&&(u|=p.shift);if(o){var a=t.onCommandKey({},u,o);if(!a&&t.commands){o=h.keyCodeToString(o);var f=t.commands.findKeyCommand(u,o);f&&t.execCommand(f)}N=r,C=s,O("")}};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})}var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var g=!1,y=!1,b=!1,w=!1,E="";m||(n.style.fontSize="1px");var S=!1,x=!1,T="",N=0,C=0,k=0;try{var L=document.activeElement===n}catch(A){}r.addListener(n,"blur",function(e){if(x)return;t.onBlur(e),L=!1}
372,t),r.addListener(n,"focus",function(e){if(x)return;L=!0;if(i.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),i.isEdge?setTimeout(O):O()},t),this.$focusScroll=!1,this.focus=function(){if(E||l||this.$focusScroll=="browser")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var t=n.getBoundingClientRect().top!=0}catch(r){return}var i=[];if(t){var s=n.parentElement;while(s&&s.nodeType==1)i.push(s),s.setAttribute("ace_nocontext",!0),!s.parentElement&&s.getRootNode?s=s.getRootNode().host:s=s.parentElement}n.focus({preventScroll:!0}),t&&i.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return L},t.on("beforeEndOperation",function(){var e=t.curOp,r=e&&e.command&&e.command.name;if(r=="insertstring")return;var i=r&&(e.docChanged||e.selectionChanged);b&&i&&(T=n.value="",W()),O()});var O=d?function(e){if(!L||g&&!e||w)return;e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=T=r);var i=4,s=4+(e.length||(t.selection.isEmpty()?0:1));(N!=i||C!=s)&&n.setSelectionRange(i,s),N=i,C=s}:function(){if(b||w)return;if(!L&&!P)return;b=!0;var e=0,r=0,i="";if(t.session){var s=t.selection,o=s.getRange(),u=s.cursor.row;e=o.start.column,r=o.end.column,i=t.session.getLine(u);if(o.start.row!=u){var a=t.session.getLine(u-1);e=o.start.row<u-1?0:e,r+=a.length+1,i=a+"\n"+i}else if(o.end.row!=u){var f=t.session.getLine(u+1);r=o.end.row>u+1?f.length:r,r+=i.length+1,i=i+"\n"+f}else m&&u>0&&(i="\n"+i,r+=1,e+=1);i.length>c&&(e<c&&r<c?i=i.slice(0,c):(i="\n",e==r?e=r=0:(e=0,r=1)))}var l=i+"\n\n";l!=T&&(n.value=T=l,N=C=l.length),P&&(N=n.selectionStart,C=n.selectionEnd);if(C!=r||N!=e||n.selectionEnd!=C)try{n.setSelectionRange(e,r),N=e,C=r}catch(h){}b=!1};this.resetSelection=O,L&&t.onFocus();var M=function(e){return e.selectionStart===0&&e.selectionEnd>=T.length&&e.value===T&&T&&e.selectionEnd!==C},_=function(e){if(b)return;g?g=!1:M(n)?(t.selectAll(),O()):m&&n.selectionStart!=N&&O()},D=null;this.setInputHandler=function(e){D=e},this.getInputHandler=function(){return D};var P=!1,H=function(e,r){P&&(P=!1);if(y)return O(),e&&t.onPaste(e),y=!1,"";var s=n.selectionStart,o=n.selectionEnd,u=N,a=T.length-C,f=e,l=e.length-s,c=e.length-o,h=0;while(u>0&&T[h]==e[h])h++,u--;f=f.slice(h),h=1;while(a>0&&T.length-h>N-1&&T[T.length-h]==e[e.length-h])h++,a--;l-=h-1,c-=h-1;var p=f.length-h+1;p<0&&(u=-p,p=0),f=f.slice(0,p);if(!r&&!f&&!l&&!u&&!a&&!c)return"";w=!0;var d=!1;return i.isAndroid&&f==". "&&(f="  ",d=!0),f&&!u&&!a&&!l&&!c||S?t.onTextInput(f):t.onTextInput(f,{extendLeft:u,extendRight:a,restoreStart:l,restoreEnd:c}),w=!1,T=e,N=s,C=o,k=c,d?"\n":f},B=function(e){if(b)return z();if(e&&e.inputType){if(e.inputType=="historyUndo")return t.execCommand("undo");if(e.inputType=="historyRedo")return t.execCommand("redo")}var r=n.value,i=H(r,!0);(r.length>c+100||v.test(i)||m&&N<1&&N==C)&&O()},j=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||a)return;var i=f||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return j(e,t,!0)}},F=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);j(e,s)?(d&&(O(s),g=s,setTimeout(function(){g=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(g=!0,n.value=s,n.select(),setTimeout(function(){g=!1,O(),i?t.onCut():t.onCopy()}))},I=function(e){F(e,!0)},q=function(e){F(e,!1)},R=function(e){var s=j(e);if(u.pasteCancelled())return;typeof s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(O),r.preventDefault(e)):(n.value="",y=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t),t),r.addListener(n,"select",_,t),r.addListener(n,"input",B,t),r.addListener(n,"cut",I,t),r.addListener(n,"copy",q,t),r.addListener(n,"paste",R,t),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:q(e);break;case 86:R(e);break;case 88:I(e)}},t);var U=function(e){if(b||!t.onCompositionStart||t.$readOnly)return;b={};if(S)return;e.data&&(b.useTextareaForIME=!1),setTimeout(z,0),t._signal("compositionStart"),t.on("mousedown",X);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,b.markerRange=r,b.selectionStart=N,t.onCompositionStart(b),b.useTextareaForIME?(T=n.value="",N=0,C=0):(n.msGetInputContext&&(b.context=n.msGetInputContext()),n.getInputContext&&(b.context=n.getInputContext()))},z=function(){if(!b||!t.onCompositionUpdate||t.$readOnly)return;if(S)return X();if(b.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;H(e),b.markerRange&&(b.context&&(b.markerRange.start.column=b.selectionStart=b.context.compositionStartOffset),b.markerRange.end.column=b.markerRange.start.column+C-b.selectionStart+k)}},W=function(e){if(!t.onCompositionEnd||t.$readOnly)return;b=!1,t.onCompositionEnd(),t.off("mousedown",X),e&&B()},V=o.delayedCall(z,50).schedule.bind(null,null);r.addListener(n,"compositionstart",U,t),r.addListener(n,"compositionupdate",z,t),r.addListener(n,"keyup",$,t),r.addListener(n,"keydown",V,t),r.addListener(n,"compositionend",W,t),this.getElement=function(){return n}
372,this.setCommandMode=function(e){S=e,n.readOnly=!1},this.setReadOnly=function(e){S||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){},this.onContextMenu=function(e){P=!0,O(),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){E||(E=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+(i.isIE?"opacity:0.1;":"")+"text-indent: -"+(N+C)*t.renderer.characterWidth*.5+"px;";var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){s.translate(n,e.clientX-l-2,Math.min(e.clientY-f-2,c))};h(e);if(e.type!="mousedown")return;t.renderer.$isMousePressed=!0,clearTimeout(J),i.isWin&&r.capture(t.container,h,K)},this.onContextMenuClose=K;var J,Q=function(e){t.textInput.onContextMenu(e),K()};r.addListener(n,"mouseup",Q,t),r.addListener(n,"mousedown",function(e){e.preventDefault(),K()},t),r.addListener(t.renderer.scroller,"contextmenu",Q,t),r.addListener(n,"contextmenu",Q,t),d&&G(e,t,n)};t.TextInput=g,t.$setUserAgentForTests=function(e,t){m=e,d=t}}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function o(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));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function a(e,t){if(e.start.row==e.end.row)var 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)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent"),i=0,s=550;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,s=e.getButton();if(s!==0){var o=i.getSelectionRange(),u=o.isEmpty();(u||s==1)&&i.selection.moveToPosition(n),s==2&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!i.isFocused()){i.focus();if(this.$focusTimeout&&!this.$clickSelection&&!i.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;if(!this.mousedownEvent)return;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")},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=a(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),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=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.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 r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.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())return;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 n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,u=i?e.wheelY/i:n.vy;i<s&&(o=(o+n.vx)/2,u=(u+n.vy)/2);var a=Math.abs(o/u),f=!1;a>
372=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowed<s){var l=Math.abs(o)<=1.5*Math.abs(n.vx)&&Math.abs(u)<=1.5*Math.abs(n.vy);l?(f=!0,n.allowed=r):n.allowed=0}n.t=r,n.vx=o,n.vy=u;if(f)return t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(o.prototype),t.DefaultHandlers=o}),define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.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){this.getElement().textContent=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){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&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)}}).call(s.prototype),t.Tooltip=s}),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 u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.off("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)},t),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=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.prop
372agationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.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(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.moveCursorToPosition(e),S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.$resetCursorStyle(),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent="\u00a0";var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.on("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout(function(){t.container.removeChild(n)}),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e),t),i.addListener(c,"dragend",this.onDragEnd.bind(e),t),i.addListener(c,"dragenter",this.onDragEnter.bind(e),t),i.addListener(c,"dragover",this.onDragOver.bind(e),t),i.addListener(c,"dragleave",this.onDragLeave.bind(e),t),i.addListener(c,"drop",this.onDrop.bind(e),t);var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}
372var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(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)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent,i=e("../lib/event"),s=e("../lib/dom");t.addTouchListeners=function(e,t){function b(){var e=window.navigator&&window.navigator.clipboard,r=!1,i=function(){var n=t.getCopyText(),i=t.session.getUndoManager().hasUndo();y.replaceChild(s.buildDom(r?["span",!n&&["span",{"class":"ace_mobile-button",action:"selectall"},"Select All"],n&&["span",{"class":"ace_mobile-button",action:"copy"},"Copy"],n&&["span",{"class":"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{"class":"ace_mobile-button",action:"paste"},"Paste"],i&&["span",{"class":"ace_mobile-button",action:"undo"},"Undo"],["span",{"class":"ace_mobile-button",action:"find"},"Find"],["span",{"class":"ace_mobile-button",action:"openCommandPallete"},"Pallete"]]:["span"]),y.firstChild)},o=function(n){var s=n.target.getAttribute("action");if(s=="more"||!r)return r=!r,i();if(s=="paste")e.readText().then(function(e){t.execCommand(s,e)});else if(s){if(s=="cut"||s=="copy")e?e.writeText(t.getCopyText()):document.execCommand("copy");t.execCommand(s)}y.firstChild.style.display="none",r=!1,s!="openCommandPallete"&&t.focus()};y=s.buildDom(["div",{"class":"ace_mobile-menu",ontouchstart:function(e){n="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{"class":"ace_mobile-button",action:"more"},"..."]],t.container)}function w(){y||b();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.renderer.textToScreenCoordinates(0,0).pageX,i=t.renderer.scrollLeft,s=t.container.getBoundingClientRect();y.style.top=n.pageY-s.top-3+"px",n.pageX-s.left<s.width-70?(y.style.left="",y.style.right="10px"):(y.style.right="",y.style.left=r+i-s.left+"px"),y.style.display="",y.firstChild.style.display="none",t.on("input",E)}function E(e){y&&(y.style.display="none"),t.off("input",E)}function S(){l=null,clearTimeout(l);var e=t.selection.getRange(),r=e.contains(p.row,p.column);if(e.isEmpty()||!r)t.selection.moveToPosition(p),t.selection.selectWord();n="wait",w()}function x(){l=null,clearTimeout(l),t.selection.moveToPosition(p);var e=d>=2?t.selection.getLineRange(p.row):t.session.getBracketRange(p);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n="wait"}function T(){h+=60,c=setInterval(function(){h--<=0&&(clearInterval(c),c=null),Math.abs(v)<.01&&(v=0),Math.abs(m)<.01&&(m=0),h<20&&(v=.9*v),h<20&&(m=.9*m);var e=t.session.getScrollTop();t.renderer.scrollBy(10*v,10*m),e==t.session.getScrollTop()&&(h=0)},10)}var n="scroll",o,u,a,f,l,c,h=0,p,d=0,v=0,m=0,g,y;i.addListener(e,"contextmenu",function(e){if(!g)return;var n=t.textInput.getElement();n.focus()},t),i.addListener(e,"touchstart",function(e){var i=e.touches;if(l||i.length>1){clearTimeout(l),l=null,a=-1,n="zoom";return}g=t.$mouseHandler.isMousePressed=!0;var s=t.renderer.layerConfig.lineHeight,c=t.renderer.layerConfig.lineHeight,y=e.timeStamp;f=y;var b=i[0],w=b.clientX,E=b.clientY;Math.abs(o-w)+Math.abs(u-E)>s&&(a=-1),o=e.clientX=w,u=e.clientY=E,v=m=0;var T=new r(e,t);p=T.getDocumentPosition();if(y-a<500&&i.length==1&&!h)d++,e.preventDefault(),e.button=0,x();else{d=0;var N=t.selection.cursor,C=t.selection.isEmpty()?N:t.selection.anchor,k=t.renderer.$cursorLayer.getPixelPosition(N,!0),L=t.renderer.$cursorLayer.getPixelPosition(C,!0),A=t.renderer.scroller.getBoundingClientRect(),O=t.renderer.layerConfig.offset,M=t.renderer.scrollLeft,_=function(e,t){return e/=c,t=t/s-.75,e*e+t*t};
372if(e.clientX<A.left){n="zoom";return}var D=_(e.clientX-A.left-k.left+M,e.clientY-A.top-k.top+O),P=_(e.clientX-A.left-L.left+M,e.clientY-A.top-L.top+O);D<3.5&&P<3.5&&(n=D>P?"cursor":"anchor"),P<3.5?n="anchor":D<3.5?n="cursor":n="scroll",l=setTimeout(S,450)}a=y},t),i.addListener(e,"touchend",function(e){g=t.$mouseHandler.isMousePressed=!1,c&&clearInterval(c),n=="zoom"?(n="",h=0):l?(t.selection.moveToPosition(p),h=0,w()):n=="scroll"?(T(),E()):w(),clearTimeout(l),l=null},t),i.addListener(e,"touchmove",function(e){l&&(clearTimeout(l),l=null);var i=e.touches;if(i.length>1||n=="zoom")return;var s=i[0],a=o-s.clientX,c=u-s.clientY;if(n=="wait"){if(!(a*a+c*c>4))return e.preventDefault();n="cursor"}o=s.clientX,u=s.clientY,e.clientX=s.clientX,e.clientY=s.clientY;var h=e.timeStamp,p=h-f;f=h;if(n=="scroll"){var d=new r(e,t);d.speed=1,d.wheelX=a,d.wheelY=c,10*Math.abs(a)<Math.abs(c)&&(a=0),10*Math.abs(c)<Math.abs(a)&&(c=0),p!=0&&(v=a/p,m=c/p),t._emit("mousewheel",d),d.propagationStopped||(v=m=0)}else{var g=new r(e,t),y=g.getDocumentPosition();n=="cursor"?t.selection.moveCursorToPosition(y):n=="anchor"&&t.selection.setSelectionAnchor(y.row,y.column),t.renderer.scrollCursorIntoView(y),e.preventDefault()}},t)}}),define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;this.on(e,function r(){n.off(e,r),t.apply(null,arguments)});if(!t)return new Promise(function(e){t=e})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t)r&&this.setDefaultHandler(e,r.pop());else if(r){var i=r.indexOf(t);i!=-1&&r.splice(i,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){e||(this._eventRegistry=this._defaultHandlers=undefined),this._eventRegistry&&(this._eventRegistry[e]=undefined),this._defaultHandlers&&(this._defaultHandlers[e]=undefined)},t.EventEmitter=r}),define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};if(!e){var n=this.$options;e=Object.keys(n).filter(function(e){return!n[e].hidden})}else Array.isArray(e)||(t=e,e=Object.keys(t));return e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},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]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}
372),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.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)})},this.setDefaultValue=function(e,t,n){if(!e){for(e in this.$defaultOptions)if(this.$defaultOptions[e][t])break;if(!this.$defaultOptions[e][t])return!1}var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/dom","ace/lib/app_config"],function(e,t,n){"no use strict";function c(r){if(!a||!a.document)return;f.packaged=r||e.packaged||n.packaged||a.define&&define.packaged;var i={},s="",o=document.currentScript||document._currentScript,u=o&&o.ownerDocument||document,l=u.getElementsByTagName("script");for(var c=0;c<l.length;c++){var p=l[c],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[h(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function h(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/dom"),u=e("./lib/app_config").AppConfig;n.exports=t=new u;var a=function(){return this||typeof window!="undefined"&&window}(),f={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1,useStrictCSP:null};t.get=function(e){if(!f.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return f[e]},t.set=function(e,t){if(f.hasOwnProperty(e))f[e]=t;else if(this.setDefaultValue("",e,t)==0)throw new Error("Unknown config key: "+e);e=="useStrictCSP"&&o.useStrictCSP(t)},t.all=function(){return r.copyObject(f)},t.$modes={},t.moduleUrl=function(e,t){if(f.$moduleUrls[e])return f.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=f[t+"Path"];return o==null?o=f.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return f.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a),l()};var l=function(){!f.basePath&&!f.workerPath&&!f.modePath&&!f.themePath&&!Object.keys(f.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),l=function(){})};t.init=c,t.version="1.4.13"}),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/mouse/touch_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("./touch_handler").addTouchListeners,l=e("../config"),c=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click"),e),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove"),e),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(
372Boolean),[400,300,250],this,"onMouseEvent",e),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel"),e),f(e.container,e);var l=e.renderer.$gutter;r.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown"),e),r.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick"),e),r.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick"),e),r.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove"),e),r.addListener(u,"mousedown",n,e),r.addListener(l,"mousedown",n,e),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n,e),r.addListener(e.renderer.scrollBarH.element,"mousedown",n,e)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")},e)};(function(){this.onMouseEvent=function(e,t){if(!this.editor.session)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,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,s=this.editor.renderer;s.$isMousePressed=!0;var o=this,a=function(e){if(!e)return;if(i.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new u(e,o.editor),o.$mouseMoved=!0},f=function(e){n.off("beforeEndOperation",c),clearInterval(h),n.session&&l(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",o.isMousePressed=s.$isMousePressed=!1,s.$keepTextAreaAtCursor&&s.$moveTextAreaToCursor(),o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e),n.endOperation()},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){f(e)});var c=function(e){if(!o.releaseMouse)return;n.curOp.command.name&&n.curOp.selectionChanged&&(o[o.state+"End"]&&o[o.state+"End"](),o.state="",o.releaseMouse())};n.on("beforeEndOperation",c),n.startOperation({command:{name:"mouse"}}),o.$onCaptureMouseMove=a,o.releaseMouse=r.capture(this.editor.container,a,f);var h=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)},this.destroy=function(){this.releaseMouse&&this.releaseMouse()}}).call(c.prototype),l.defineOptions(c.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=c}),define("ace/mouse/fold_handler",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";function i(e){e.on("click",function(t){var n=t.getDocumentPosition(),i=e.session,s=i.getFoldAt(n.row,n.column,1);s&&(t.getAccelKey()?i.removeFold(s):i.expandFold(s),t.stop());var o=t.domEvent&&t.domEvent.target;o&&r.hasCssClass(o,"ace_inline_button")&&r.hasCssClass(o,"ace_toggle_wrap")&&(i.setOption("wrap",!i.getUseWrapMode()),e.renderer.scrollCursorIntoView())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}var r=e("../lib/dom");t.FoldHandler=i}),define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=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)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]}
372,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,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);return this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){return this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),define("ace/lib/bidiutil",["require","exports","module"],function(e,t,n){"use strict";function F(e,t,n,r){var i=s?d:p,c=null,h=null,v=null,m=0,g=null,y=null,b=-1,w=null,E=null,T=[];if(!r)for(w=0,r=[];w<n;w++)r[w]=R(e[w]);o=s,u=!1,a=!1,f=!1,l=!1;for(E=0;E<n;E++){c=m,T[E]=h=q(e,r,T,E),m=i[c][h],g=m&240,m&=15,t[E]=v=i[m][5];if(g>0)if(g==16){for(w=b;w<E;w++)t[w]=1;b=-1}else b=-1;y=i[m][6];if(y)b==-1&&(b=E);else if(b>-1){for(w=b;w<E;w++)t[w]=v;b=-1}r[E]==S&&(t[E]=0),o|=v}if(l)for(w=0;w<n;w++)if(r[w]==x){t[w]=s;for(var C=w-1;C>=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o<e)return;if(e==1&&s==m&&!f){n.reverse();return}var r=n.length,i=0,u,a,l,c;while(i<r){if(t[i]>=e){u=i+1;while(u<r&&t[u]>=e)u++;for(a=i,l=u-1;a<l;a++,l--)c=n[a],n[a]=n[l],n[l]=c;i=u}i++}}function q(e,t,n,r){var i=t[r],o,c,h,p;switch(i){case g:case y:u=!1;case E:case w:return i;case b:return u?w:b;case T:return u=!0,a=!0,y;case N:return E;case C:if(r<1||r+1>=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+1<t.length&&t[r+1]==b)return b;return E;case L:if(r>0&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p<h&&t[p]==L)p++;if(p<h&&t[p]==b)return b;return E;case A:h=t.length,p=r+1;while(p<h&&t[p]==A)p++;if(p<h){var d=e[r],v=d>=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[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]],d=[[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]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;f<o.length;o[f]=f,f++);I(2,a,o),I(1,a,o);for(var f=0;f<o.length-1;f++)n[f]===w?a[f]=t.AN:a[f]===y&&(n[f]>T&&n[f]<O||n[f]===E||n[f]===H)?a[f]=t.ON_R:f>0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B),i[0]==="\u202b"&&(a[0]=t.RLE);for(var f=0;f<o.length;f++)u[f]=a[o[f]];return{logicalFromVisual:o,bidiLevels:u}},t.hasBidiCharacters=function(e,t){var n=!1;for(var r=0;r<e.length;r++)t[r]=R(e.charAt(r)),!n&&(t[r]==y||t[r]==T||t[r]==w)&&(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}}),define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"],function(e,t,n){"use strict";var r=e("./lib/bidiutil"),i=e("./lib/lang"),s=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,o=function(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=r,this.charWidths=[],this.EOL="\u00ac",this.showInvisibles=!0,this.isRtlDir=!1,this.$isRtl=!1,this.line="",this.wrapIndent=0,this.EOF="\u00b6",this.RLE="\u202b",this.contentWidth=0,this.fontMetrics=null,this.rtlLineOffset=0,this.wrapOffset=0,this.isMoveLeftOperation=!1,this.seenBidi=s.test(e.getValue())};(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):!1},this.onChange=function(e){this.seenBidi?this.currentRow=null:e.action=="insert"&&s.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])}return e}
372,this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}else e=this.currentRow;return e},this.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,s=n?this.EOF:this.EOL;this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE;if(this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===undefined&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=t<o.length?this.line.substring(o[t-1],o[t]):this.line.substring(o[o.length-1])):this.line=this.line.substring(0,o[t])),t==o.length&&(this.line+=this.showInvisibles?s:r.DOT)}else this.line+=this.showInvisibles?s:r.DOT;var u=this.session,a=0,f;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(e,t){return e==="	"||u.isFullWidth(e.charCodeAt(0))?(f=e==="	"?u.getScreenTabSize(t+a):2,a+=f-1,i.stringRepeat(r.DOT,f)):e}),this.isRtlDir&&(this.fontMetrics.$main.textContent=this.line.charAt(this.line.length-1)==r.DOT?this.line.substr(0,this.line.length-1):this.line,this.rtlLineOffset=this.contentWidth-this.fontMetrics.$main.getBoundingClientRect().width)},this.updateBidiMap=function(){var e=[];r.hasBidiCharacters(this.line,e)||this.isRtlDir?this.bidiMap=r.doBidiReorder(this.line,e,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(e){if(this.characterWidth===e.$characterSize.width)return;this.fontMetrics=e;var t=this.characterWidth=e.$characterSize.width,n=e.$measureCharWidth("\u05d4");this.charWidths[r.L]=this.charWidths[r.EN]=this.charWidths[r.ON_R]=t,this.charWidths[r.R]=this.charWidths[r.AN]=n,this.charWidths[r.R_H]=n*.45,this.charWidths[r.B]=this.charWidths[r.RLE]=0,this.currentRow=null},this.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},this.setEolChar=function(e){this.EOL=e},this.setContentWidth=function(e){this.contentWidth=e},this.isRtlLine=function(e){return this.$isRtl?!0:e!=undefined?this.session.getLine(e).charAt(0)==this.RLE:this.isRtlDir},this.setRtlDirection=function(e,t){var n=e.getCursorPosition();for(var r=e.selection.getSelectionAnchor().row;r<=n.row;r++)!t&&e.session.getLine(r).charAt(0)===e.session.$bidiHandler.RLE?e.session.doc.removeInLine(r,0,1):t&&e.session.getLine(r).charAt(0)!==e.session.$bidiHandler.RLE&&e.session.doc.insert({column:0,row:r},e.session.$bidiHandler.RLE)},this.getPosLeft=function(e){e-=this.wrapIndent;var t=this.line.charAt(0)===this.RLE?1:0,n=e>t?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),s=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&s[i]%2!==0&&i++;for(var u=0;u<i;u++)o+=this.charWidths[s[u]];return!this.session.getOverwrite()&&e>t&&s[i]%2===0&&(o+=this.charWidths[s[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},this.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,s=[],o=0,u=Math.min(e,t)-this.wrapIndent,a=Math.max(e,t)-this.wrapIndent,f=!1,l=!1,c=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p<r.length;p++)h=n.logicalFromVisual[p],i=r[p],f=h>=u&&h<a,f&&!l?c=o:!f&&l&&s.push({left:c,width:o-c}),o+=this.charWidths[i],l=f;f&&p===r.length&&s.push({left:c,width:o-c});if(this.isRtlDir)for(var d=0;d<s.length;d++)s[d].left+=this.rtlLineOffset;return s},this.offsetToCol=function(e){this.isRtlDir&&(e-=this.rtlLineOffset);var t=0,e=Math.max(e,0),n=0,r=0,i=this.bidiMap.bidiLevels,s=this.charWidths[i[r]];this.wrapIndent&&(e-=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);while(e>n+s/2){n+=s;if(r===i.length-1){s=0;break}s=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e<n&&r--,t=this.bidiMap.logicalFromVisual[r]):r>0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&s===0&&i[r-1]%2===0||!this.isRtlDir&&r===0&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&s!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(o.prototype),t.BidiHandler=o}),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 r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")})};(function(){r.implement(this,s),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.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.get
372SelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},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?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},this.$setSelection=function(e,t,n,r){if(this.$silent)return;var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit("changeSelection")},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(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}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=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+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 r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.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(),e=this.lead;this.wouldMoveIntoSoftTab(e,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),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},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 r=n.search(/\s+$/);r>0&&(t.column=r)}}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),r=n.substring(t);
372this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(r)&&(t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(s)&&(t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonToken
372Re.lastIndex=0);if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},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=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);if(e!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var s=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&s.row===this.lead.row&&s.column===this.lead.column,this.moveCursorTo(s.row,s.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.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 r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach()},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 o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},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{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[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(u.prototype),t.Selection=u}),define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!<]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.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&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n,e):p=d.token,d.next&&(typeof d.next=="string"?r=
372d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m),d.consumeLineEnd&&(l=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=500),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!="string"&&(c=c[0]||""),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a=="string"?a:a.include;p&&(Array.isArray(p)?f=p.map(function(e){return r[e]}):f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return this.$keywordList=[],Object.keys(e).forEach(function(t){var s=e[t],o=s.split(r||"|");for(var u=o.length;u--;){var a=o[u];this.$keywordList.push(a),n&&(a=a.toLowerCase()),i[a]=t}},this),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}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(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}
372).call(r.prototype),t.Behaviour=r}),define("ace/token_iterator",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}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(n!==undefined)return n;n=0;while(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 r(this.$row,t,this.$row,t+e.value.length)}}).call(i.prototype),t.TokenIterator=i}),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 r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],a=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d=function(e){this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e&&e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var v=a.substring(u.column,u.column+1);if(v=="}"){var m=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(m!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var g="";d.isMaybeInsertedClosing(u,a)&&(g=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var v=a.substring(u.column,u.column+1);if(v==="}"){var y=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!y)return null;var b=this.$getIndent(i.getLine(y.row))}else{if(!g){d.clearMaybeInsertedClosing();return}var b=this.$getIndent(a)}var w=b+i.getTabString();return{text:"\n"+w+"\n"+b+g,selection:[1,w.length,1,w.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}
372),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(d);if(S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;var T=l[f.column-2];if(!(d!=o||T!=o&&!E.test(T)))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.$mode.$quotes||c,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&s.hasOwnProperty(o)){h(n);var u=r.doc.getLine(i.start.row),a=u.substring(i.start.column+1,i.start.column+2);if(a==o)return i.end.column++,i}})};d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o<r.length;o+=2)s.push(i+=r[o]),r[o+1]&&s.push(45,i+=r[o+1]);t.wordChars=String.fromCharCode.apply(null,s)}),define("ace/mode/text",["require","exports","module","ace/config","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 r=e("../config"),i=e("../tokenizer").Tokenizer,s=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,u=e("../unicode"),a=e("../lib/lang"),f=e("../token_iterator").TokenIterator,l=e("../range").Range,c=function(){this.HighlightRules=s};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+u.wordChars+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+u.wordChars+"\\$_]|\\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,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,u=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+a.escapeRegExp(c)+")"),d=new RegExp("(?:"+a.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:u},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(a.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=a.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,u,u)?i.insertInLine({row:t,column:u},y):i.insertInLine({row:t,column:u},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<u&&(u=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),u==Infinity&&(u=E,s=!1,o=!1),l&&u%f!=0&&(u=Math.floor(u/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new f(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,a=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new l(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new f(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new l(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);a.start.row==c&&(a.start.column+=h),a.end.row==c&&(a.end.column+=h),t.selection.fromOrientedRange(a)},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)if(e[t]){var n=e[t],i=n.prototype.$id,s=r.$modes[i];s||(r.$modes[i]=s=new n),r.$modes[t]||(r.$modes[t]=s),this.$embeds.push(t),this.$modes[t]=s}var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<o.length;t++)(function(e){var n=o[t],r=e[n];e[o[t]]=function(){return this.$delegator(n,arguments,r)}})(this)},this.$delegator=function(e,t,n){var r=t[0]||"start";if(typeof r!="string"){if(Array.isArray(r[2])){var i=r[2][r[2].length-1],s=this.$modes[i];if(s)return s[e].apply(s,[r[1]].concat([].slice.call(t,1)))}r=r[0]||"start"}for(var o=0;o<this.$embeds.length;o++){if(!this.$modes[this.$embeds[o]])continue;var u=r.split(this.$embeds[o]);if(!u[0]&&u[1]){t[0]=u[1];var s=this.$modes[this.$embeds[o]];return s[e].apply(s,t)}}var a=n.apply(this,t);return n?a:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}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,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(c.prototype),t.Mode=c}),define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),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)return;if(e.start.row>this.row)return;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 r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.off("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.c
372olumn=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(s.prototype)}),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 r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(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 u(this,e,t)},"aaa".split(/a/).length===0?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){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},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),t[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),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},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){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<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),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},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 r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},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:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},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=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},this.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row<t&&e.end.row<t||e.action=="insert"&&e.start.row<=t)&&this.applyDelta(e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length-t+1,i=e.start.row,s=e.start.column;for(var o=0,u=0;o<r;o=u){u+=t-1;var a=n.slice(o,u);a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}e.lines=n.slice(o),e.start.row=i+o,e.start.column=s,this.applyDelta(e,!0)},this.revertDelta=function(e){this.$safeApplyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}
372return{row:s-1,column:e+n[s-1].length+r}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=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)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),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})},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(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}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],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),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)}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 r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push("  "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;
372if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[],this.$bias=1};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){var t=e.start,n=e.end,r=t.row,i=n.row,s=this.ranges;for(var o=0,u=s.length;o<u;o++){var a=s[o];if(a.end.row>=r)break}if(e.action=="insert"){var f=i-r,l=-t.column+n.column;for(;o<u;o++){var a=s[o];if(a.start.row>r)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column==t.column&&this.$bias<=0||(a.start.column+=l,a.start.row+=f));if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$bias<0)continue;a.end.column==t.column&&l>0&&o<u-1&&a.end.column>a.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;o<u;o++){var a=s[o];if(a.start.row>i)break;if(a.end.row<i&&(r<a.end.row||r==a.end.row&&t.column<a.end.column))a.end.row=r,a.end.column=t.column;else if(a.end.row==i)if(a.end.column<=n.column){if(f||a.end.column>t.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;else a.end.row>i&&(a.end.row+=f);if(a.start.row<i&&(r<a.start.row||r==a.start.row&&t.column<a.start.column))a.start.row=r,a.start.column=t.column;else if(a.start.row==i)if(a.start.column<=n.column){if(f||a.start.column>t.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f;else a.start.row>i&&(a.start.row+=f)}}if(f!=0&&o<u)for(;o<u;o++){var a=s[o];a.start.row+=f,a.end.row+=f}}}).call(s.prototype),t.RangeList=s}),define("ace/edit_session/fold",["require","exports","module","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function o(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function u(e,t){o(e.start,t),o(e.end,t)}function a(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function f(e,t){a(e.start,t),a(e.end,t)}var r=e("../range_list").RangeList,i=e("../lib/oop"),s=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};i.inherits(s,r),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new s(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;u(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r],o=0;if(i==0){if(s.range.containsRange(e))return s.addSubFold(e);o=1}var t=e.range.end.row,n=e.range.end.column;for(var a=r,i=-1;a<this.subFolds.length;a++){i=this.subFolds[a].range.compare(t,n);if(i!=1)break}i==0&&a++;var f=this.subFolds.splice(r,a-r,e),l=i==0?f.length-1:f.length;for(var c=o;c<l;c++)e.addSubFold(f[c]);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return f(e,this.start)}}.call(s.prototype)}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s].range;if(o.contains(e,t)){if(n==1&&o.isEnd(e,t)&&!o.isEmpty())continue;if(n==-1&&o.isStart(e,t)&&!o.isEmpty())continue;return i[s]}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];
372t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column,c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),o.collapseChildren||p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal("changeFold",{data:o,action:"add"}),o},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;if(e==null)n=new r(0,0,this.getLength(),0),t==null&&(t=!0);else if(typeof e=="number")n=new r(e,0,e,this.getLine(e).length);else if("row"in e)n=r.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach(function(e){i=i.concat(this.unfold(e))},this),i;n=e}i=this.getFoldsInRangeList(n);var s=i;while(i.length==1&&r.comparePoints(i[0].start,n.start)<0&&r.comparePoints(i[0].end,n.end)>0)this.expandFolds(i),i=this.getFoldsInRangeList(n);t!=0?this.removeFolds(i):this.expandFolds(i);if(s.length)return s},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken(),u=s&&s.type;if(s&&/^comment|string/.test(u)){u=u.match(/comment|string/)[0],u=="comment"&&(u+="|doc-start");var a=new RegExp(u),f=new r;if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){var l=-1;do{s=i.stepForward();if(l==-1){var c=this.getState(i.$row);a.test(c)||(l=i.$row)}else if(i.$row>l)break}while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+s.value.length-2,f}},this.foldAll=function(e,t,n,r){n==undefined&&(n=1e5);var i=this.foldWidgets;if(!i)return;t=t||this.getLength(),e=e||0;for(var s=e;s<t;s++){i[s]==null&&(i[s]=this.getFoldWidget(s));if(i[s]!="start")continue;if(r&&!r(s))continue;var o=this.getFoldWidgetRange(s);o&&o.isMultiLine()&&o.end.row<=t&&o.start.row>=e&&(s=o.end.row,o.collapseChildren=n,this.addFold("...",o))}},this.foldToLevel=function(e){this.foldAll();while(e-->0)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,function(t){var n=e.getTokens(t);for(var r=0;r<n.length;r++){var i=n[r];if(i.type=="text"&&/^\s+$/.test(i.value))continue;return/comment/.test(i.type)?!0:!1}})},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}
372var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.getMatchingBracketRanges=function(e){var t=this.getLine(e.row),n=t.charAt(e.column-1),r=n&&n.match(/([\(\[\{])|([\)\]\}])/);r||(n=t.charAt(e.column),e={row:e.row,column:e.column+1},r=n&&n.match(/([\(\[\{])|([\)\]\}])/));if(!r)return null;var s=new i(e.row,e.column-1,e.row,e.column),o=r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e);if(!o)return[s];var u=new i(o.row,o.column,o.row,o.column+1);return[s,u]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./bidihandler").BidiHandler,o=e("./config"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++d.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new c(e);this.setDocument(e),this.selection=new a(this),this.$bidiHandler=new s(this),o.resetOptions(this),this.setMode(t),o._signal("session",this)};d.$uid=0,function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>
372=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,u),this.setDocument=function(e){this.doc&&this.doc.off("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&(t&&t.length&&(this.$undoManager.add({action:"removeFolds",folds:t},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(e,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null){var s=n.length-1;i=this.getLine(e).length}else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"	"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("over
372write",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker")},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new p(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new l(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new l(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes=o.$modes,this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new f);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,o.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;var n=this.$mode;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var r=e.getTokenizer();if(r.on!==undefined){var i=this.onReloadTokenizer.bind(this);r.on("update",i)}if(!this.bgTokenizer){this.bgTokenizer=new h(r);var s=this;this.bgTokenizer.on("update",function(e){s._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(r);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode",{oldMode:n,mode:e}))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){o.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)}
372,this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action=="insert"||r.action=="remove"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;n<e.length;n++){var r=e[n];(r.action=="insert"||r.action=="remove")&&this.doc.$safeApplyDelta(r)}!t&&this.$undoSelect&&(e.selectionAfter?this.selection.fromJSON(e.selectionAfter):this.selection.setRange(this.$getUndoSelection(e,!1))),this.$fromUndo=!1},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t){function n(e){return t?e.action!=="insert":e.action==="insert"}var r,i;for(var s=0;s<e.length;s++){var o=e[s];if(!o.start)continue;if(!r){n(o)?r=l.fromPoints(o.start,o.end):r=l.fromPoints(o.start,o.start);continue}n(o)?(i=o.start,r.compare(i.row,i.column)==-1&&r.setStart(i),i=o.end,r.compare(i.row,i.column)==1&&r.setEnd(i)):(i=o.start,r.compare(i.row,i.column)==-1&&(r=l.fromPoints(o.start,o.start)))}return r},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=l.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)=="	"?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),o=this.$wrapData,u=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,o){var u;if(e!=null){u=this.$getDisplayTokens(e,a.length),u[0]=n;for(var f=1;f<u.length;f++)u[f]=s}else u=this.$getDisplayTokens(r[t].substring(o,i),a.length);a=a.concat(u)}.bind(this),f.end.row,r[f.end.row].length+1),o[f.start.row]=this.$computeWrapSplits(a,u,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),o[l]=this.$computeWrapSplits(a,u,i),l++)};var e=1,t=2,n=3,s=4,a=9,c=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(p)for(var n=0;n<e.length;n++){var r=e[n];if(r==c)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return h&&p!==!1&&(t+=i),Math.min(t,m)}
372function y(t){var n=t-f;for(var r=f;r<t;r++){var i=e[r];if(i===12||i===2)n-=1}o.length||(b=g(),o.indent=b),l+=n,o.push(l),f=t}if(e.length==0)return[];var o=[],u=e.length,f=0,l=0,h=this.$wrapAsCode,p=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||p===!1?0:Math.floor(r/2),b=0;while(u-f>r-b){var w=f+r-b;if(e[w-1]>=c&&e[w]>=c){y(w);continue}if(e[w]==n||e[w]==s){for(w;w!=f-1;w--)if(e[w]==n)break;if(w>f){y(w);continue}w=f+r;for(w;w<e.length;w++)if(e[w]!=s)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),f-1);while(w>E&&e[w]<n)w--;if(h){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==a)w--}else while(w>E&&e[w]<c)w--;if(w>E){y(++w);continue}w=f+r,e[w]==t&&w--,y(w-b)}return o},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var f=1;f<s;f++)i.push(v)}else u==32?i.push(c):u>39&&u<48||u>57&&u<64?i.push(a):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),!this.$useWrapMode||!this.$wrapData[e]?t:this.$wrapData[e].length+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0}
372,this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-(e%this.$tabSize|0)},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t,n){if(e<0)return{row:0,column:0};var r,i=0,s=0,o,u=0,a=0,f=this.$screenRowCache,l=this.$getRowCacheIndex(f,e),c=f.length;if(c&&l>=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return this.lineWidgets&&this.lineWidgets[u]&&this.lineWidgets[u].rowsAbove&&(r+=this.lineWidgets[u].rowsAbove),{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i==="	"?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},this.isFullWidth=m}.call(d.prototype),e("./edit_session/folding").Folding.call(d.prototype),e("./edit_session/bracket_match").BracketMatch.call(d.prototype),o.defineOptions(d.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||
372!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=d}),define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return r},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var r=t.backwards==1,i=t.skipCurrent!=0,s=t.range,o=t.start;o||(o=s?s[r?"end":"start"]:e.selection.getRange()),o.start&&(o=o[i!=r?"end":"start"]);var u=s?s.start.row:0,a=s?s.end.row:e.getLength()-1;if(r)var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n--;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=a,u=o.row;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return};else var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n+=1;n<=a;n++)if(c(n,0,e))return;if(t.wrap==0)return;for(n=u,a=o.row;n<=a;n++)if(c(n,0,e))return};if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var o=r?t-l+1:t;if(o<0||o+l>e.getLength())return;var u=e.getLine(o),a=u.search(n[0]);if(!r&&a<i||a===-1)return;for(var f=1;f<l;f++){u=e.getLine(o+f);if(u.search(n[f])==-1)return}var c=u.match(n[l-1])[0].length;if(r&&c>i)return;if(s(o,a,o+l-1,c))return!0};else if(r)var c=function(t,r,i){var s=e.getLine(t),o=[],u,a=0;n.lastIndex=0;while(u=n.exec(s)){var f=u[0].length;a=u.index;if(!f){if(a>=s.length)break;n.lastIndex=a+=1}if(u.index+f>r)break;o.push(u.index,f)}for(var l=o.length-1;l>=0;l-=2){var c=o[l-1],f=o[l];if(i(t,c,t,c+f))return!0}};else var c=function(t,r,i){var s=e.getLine(t),o,u;n.lastIndex=r;while(u=n.exec(s)){var a=u[0].length;o=u.index;if(i(t,o,t,o+a))return!0;
372if(!a){n.lastIndex=o+=1;if(o>=s.length)return!1}}};return{forEach:f}}}).call(o.prototype),t.Search=o}),define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}}
372,this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("./ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:o("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments
vendor: 8,339 bytes, line 372
372()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:o("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:o("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()
372,n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n
vendor: 6,020 bytes, line 372
372),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"
372autoindent",description:"Auto Indent",bindKey:o(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",description:"Join lines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"},{name:"addLineAfter",description:"Add new line after the current line",exec:function(e){e.selection.clearSelection(),e.navigateLineEnd(),e.insert("\n")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"addLineBefore",description:"Add new line before the current line",exec:function(e){e.selection.clearSelection();var t=e.getCursorPosition();e.selection.moveTo(t.row-1,Number.MAX_VALUE),e.insert("\n"),t.row===0&&e.navigateUp()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"openCommandPallete",description:"Open command pallete",bindKey:o("F1","F1"),exec:function(e){e.prompt({$type:"commands"})},readOnly:!0},{name:"modeSelect",description:"Change language mode...",bindKey:o(null,null),exec:function(e){e.prompt({$type:"modes"})},readOnly:!0}];for(var u=1;u<9;u++)t.commands.push({name:"foldToLevel"+u,description:"Fold To Level "+u,level:u,exec:function(e){e.session.foldToLevel(this.level)},scrollIntoView:"center",readOnly:!0})}),define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/clipboard"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=e("./clipboard"),w=function(e,t,n){this.$toDestroy=[];var r=e.getContainerElement();this.container=r,this.renderer=e,this.id="editor"+ ++w.$uid,this.commands=new v(o.isMac?"mac":"win",m),typeof document=="object"&&(this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new a(this),new f(this)),this.keyBinding=new l(this),this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}
372.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||n&&n.session||new c("")),g.resetOptions(this),n&&this.setOptions(n),g._signal("editor",this)};w.$uid=0,function(){r.implement(this,d),this.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(e){if(this.curOp&&this.session){if(e&&e.returnValue===!1||!this.session)return this.curOp=null;if(e==1&&this.curOp.command&&this.curOp.command.name=="mouse")return;this._signal("beforeEndOperation");if(!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"&&e!="ace"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onCh
372angeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach(function(e){t.removeMarker(e)}),t.$bracketHighlight=null);var n=t.getMatchingBracketRanges(e.getCursorPosition());!n&&t.$mode.getMatching&&(n=t.$mode.getMatching(e.session));if(!n)return;var r="ace_bracket";Array.isArray(n)?n.length==1&&(r="ace_error_bracket"):n=[n],n.length==2&&(p.comparePoints(n[0].end,n[1].start)==0?n=[p.fromPoints(n[0].start,n[1].end)]:p.comparePoints(n[0].start,n[1].end)==0&&(n=[p.fromPoints(n[1].start,n[0].end)])),t.$bracketHighlight={ranges:n,markerIds:n.map(function(e){return t.addMarker(e,r,"text")})}},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!==-1){i=r.stepForward();if(!i)return}var s=i.value,o=i.value,u=0,a=r.stepBackward();if(a.value==="<"){do a=i,i=r.stepForward(),i&&(i.type.indexOf("tag-name")!==-1?(o=i.value,s===o&&(a.value==="<"?u++:a.value==="</"&&u--)):s===o&&i.value==="/>"&&u--);while(i&&u>=0)}else{do{i=a,a=r.stepBackward();
372if(i)if(i.type.indexOf("tag-name")!==-1)s===i.value&&(a.value==="<"?u++:a.value==="</"&&u--);else if(i.value==="/>"){var f=0,l=a;while(l){if(l.type.indexOf("tag-name")!==-1&&l.value===s){u--;break}if(l.value==="<")break;l=r.stepBackward(),f++}for(var c=0;c<f;c++)r.stepForward()}}while(a&&u<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var h=r.getCurrentTokenRow(),d=r.getCurrentTokenColumn(),v=new p(h,d,h,d+i.value.length),m=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&m!=undefined&&v.compareRange(m.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),t.$tagHighlight||(t.$tagHighlight=t.addMarker(v,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.isFocused()||e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\w\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()}
372,this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;i<r.length;i++){var s=r[i];if(i&&r[i-1].start.row==s.start.row)continue;e+=this.session.getLine(s.start.row)+t}}var o={text:e};return this._signal("copy",o),b.lineMode=n?o.text:!1,o.text},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){typeof e=="string"&&(e={text:e}),this._signal("paste",e);var t=e.text,n=t===b.lineMode,r=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)n?r.insert({row:this.selection.lead.row,column:0},t):this.insert(t);else if(n)this.selection.rangeList.ranges.forEach(function(e){r.insert({row:e.start.row,column:0},t)});else{var i=t.split(/\r\n|\r|\n/),s=this.selection.rangeList.ranges,o=i.length==2&&(!i[0]||!i[1]);if(i.length!=s.length||o)return this.commands.exec("insertstring",this,t);for(var u=s.length;u--;){var a=s[u];a.isEmpty()||r.remove(a),r.insert(a.start,i[u])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),e=s.text)}e=="	"&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()&&e.indexOf("\n")==-1){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e);n.insert(i,e),s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var h=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},h)}c&&r.autoOutdent(l,n,i.row)}},this.autoIndent=function(){var e=this.session,t=e.getMode(),n,r;if(this.selection.isEmpty())n=0,r=e.doc.getLength()-1;else{var i=this.getSelectionRange();n=i.start.row,r=i.end.row}var s="",o="",u="",a,f,l,c=e.getTabString();for(var h=n;h<=r;h++)h>0&&(s=e.getState(h-1),o=e.getLine(h-1),u=t.getNextLineIndent(s,o,c)),a=e.getLine(h),f=t.$getIndent(a),u!==f&&(f.length>0&&(l=new p(h,0,h,f.length),e.remove(l)),u.length>0&&e.insert({row:h,column:0},u)),t.autoOutdent(s,e,h)},this.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},this.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}(e||!this.selection.isEmpty())&&this.insert(e,!0);if(t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},this.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)}
372,this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r),this.session.selection.moveToPosition(i.end)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column-1]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l="	"}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,"	")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(var r=e.first;r<=e.last;r++)n.push(t.getLine(r));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var i=new p(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}else this.toggleWord()},this.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],this.toggleWord=function(){var e=this.selection.getCursor().row,t=this.selection.getCursor().column;this.selection.selectWord();var n=this.getSelectedText(),r=this.selection.getWordRange().start.column,i=n.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g,"$1 ").split(/\s/),o=t-r-1;o<0&&(o=0);var u=0,a=0,f=this;
372n.match(/[A-Za-z0-9_]+/)&&i.forEach(function(t,i){a=u+t.length,o>=u&&o<=a&&(n=t,f.selection.clearSelection(),f.moveCursorTo(e,u+r),f.selection.selectTo(e,a+r)),u=a});var l=this.$toggleWordPairs,c;for(var h=0;h<l.length;h++){var p=l[h];for(var d=0;d<=1;d++){var v=+!d,m=n.match(new RegExp("^\\s?_?("+s.escapeRegExp(p[d])+")\\s?$","i"));if(m){var g=n.match(new RegExp("([_]|^|\\s)("+s.escapeRegExp(m[1])+")($|\\s)","g"));g&&(c=n.replace(new RegExp(s.escapeRegExp(p[d]),"i"),function(e){var t=p[v];return e.toUpperCase()==e?t=t.toUpperCase():e.charAt(0).toUpperCase()==e.charAt(0)&&(t=t.substr(0,0)+p[v].charAt(0).toUpperCase()+t.substr(1)),t}),this.insert(c),c="")}}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)}
372,this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)}
372,this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(e){e.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))},this.prompt=function(e,t,n){var r=this;g.loadModule("./ext/prompt",function(i){i.prompt(r,e,t,n)})}}.call(w.prototype),g.defineOptions(w.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?E.attach(this):E.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?E.attach(this):E.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.getValue());if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),i.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!e&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),i.addCssClass(this.container,"ace_hasPlaceholder");var t=i.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focu
372sTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var E={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=w}),define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n<t-1){var i=d(e[n],e[n+1]);e[n]=i[0],e[n+1]=i[1],n++}return!0}}}function a(e){var t=e.action=="insert",n=e.start,r=e.end,i=(r.row-n.row)*(t?1:-1),s=(r.column-n.column)*(t?1:-1);t&&(r=n);for(var o in this.marks){var a=this.marks[o],f=u(a,n);if(f<0)continue;if(f===0&&t){if(a.bias!=1){a.bias==-1;continue}f=1}var l=t?f:u(a,r);if(l>0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join("\n");var t="";e.action?(t=e.action=="insert"?"+":"-",t+="["+e.lines+"]"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join("\n"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+="	("+(e.id||e.rev)+")";return t}function h(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function p(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r<t.length;r++)if(!p(e[n],t[r])){while(n<e.length){while(r--)p(t[r],e[n]);r=t.length,n++}return[e,t]}return e.selectionBefore=t.selectionBefore=e.selectionAfter=t.selectionAfter=null,[t,e]}function v(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)o(e.start,t.start)<0?m(t,e,1):m(e,t,1);else if(n&&!r)o(e.start,t.end)>=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i],o=v(s,t);t=o[0],o.length!=2&&(o[2]?(r.splice(i+1,1,o[1],o[2]),i++):o[1]||(r.splice(i,1),i--))}r.length||e.splice(n,1)}return e}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];for(var i=0;i<r.length;i++)b(e,r[i])}}var r=function(){this.$maxRev=0,this.$fromUndo=!1,this.reset()};(function(){this.addSession=function(e){this.$session=e},this.add=function(e,t,n){if(this.$fromUndo)return;if(e==this.$lastDelta)return;this.$keepRedoStack||(this.$redoStack.length=0);if(t===!1||!this.lastDeltas)this.lastDeltas=[],this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev;if(e.action=="remove"||e.action=="insert")this.$lastDelta=e;this.lastDeltas.push(e)},this.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id<t&&(i.ignore=!0)}this.lastDeltas=null}
372,this.getSelection=function(e,t){var n=this.selections;for(var r=n.length;r--;){var i=n[r];if(i.rev<e)return t&&(i=n[r+1]),i}},this.getRevision=function(){return this.$rev},this.getDeltas=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack,r=null,i=0;for(var s=n.length;s--;){var o=n[s][0];o.id<t&&!r&&(r=s+1);if(o.id<=e){i=s+1;break}}return n.slice(i,r)},this.getChangedRanges=function(e,t){t==null&&(t=this.$rev+1)},this.getChangedLines=function(e,t){t==null&&(t=this.$rev+1)},this.undo=function(e,t){this.lastDeltas=null;var n=this.$undoStack;if(!i(n,n.length))return;e||(e=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var r=n.pop(),s=null;return r&&(s=e.undoChanges(r,t),this.$redoStack.push(r),this.$syncRev()),this.$fromUndo=!1,s},this.redo=function(e,t){this.lastDeltas=null,e||(e=this.$session),this.$fromUndo=!0;if(this.$redoStackBaseRev!=this.$rev){var n=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);w(this.$redoStack,n),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(e){e[0].id=++this.$maxRev},this)}var r=this.$redoStack.pop(),i=null;return r&&(i=e.redoChanges(r,t),this.$undoStack.push(r),this.$syncRev()),this.$fromUndo=!1,i},this.$syncRev=function(){var e=this.$undoStack,t=e[e.length-1],n=t&&t[0].id||0;this.$redoStackBaseRev=n,this.$rev=n},this.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},this.canUndo=function(){return this.$undoStack.length>0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)}}).call(r.prototype);var s=e("./range").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0};(function(){this.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},this.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},this.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight),s=n.documentToScreenRow(e,0)*t.lineHeight;return s-i*this.canvasHeight},this.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},this.getLength=function(){return this.cells.length},this.get=function(e){return this.cells[e]},this.shift=function(){this.$cacheCell(this.cells.shift())},this.pop=function(){this.$cacheCell(this.cells.pop())},this.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.appendChild(t)}else this.cells.push(e),this.element.appendChild(e.element)},this.unshift=function(e){if(Array.isArray(e)){this.cells.unshift.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;n<e.length;n++)t.appendChild(e[n].element);this.element.firstChild?this.element.insertBefore(t,this.element.firstChild):this.element.appendChild(t)}else this.cells.unshift(e),this.element.insertAdjacentElement("afterbegin",e.element)},this.last=function(){return this.cells.length?this.cells[this.cells.length-1]:null},this.$cacheCell=function(e){if(!e)return;e.element.remove(),this.cellCache.push(e)},this.createCell=function(e,t,n,i){var s=this.cellCache.pop();if(!s){var o=r.createElement("div");i&&i(o),this.element.appendChild(o),s={element:o,text:"",row:e}}return s.row=e,s}}).call(i.prototype),t.Lines=i}),define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/layer/lines"],function(e,t,n){"use strict";function f(e){var t=document.createTextNode("");e.appendChild(t);var n=r.createElement("span");return e.appendChild(n),e}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=e("./lines").Lines,a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$lines=new u(this.element),this.$lines.$offsetCoefficient=1};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.off("
372change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action=="remove")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){this.config=e;var t=this.session,n=e.firstRow,r=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1);this.oldLastRow=r,this.config=e,this.$lines.moveContainer(e),this.$updateCursorRow();var i=t.getNextFoldLine(n),s=i?i.start.row:Infinity,o=null,u=-1,a=n;for(;;){a>s&&(a=i.end.row+1,i=t.getNextFoldLine(a,i),s=i?i.start.row:Infinity);if(a>r){while(this.$lines.getLength()>u+1)this.$lines.pop();break}o=this.$lines.get(++u),o?o.row=a:(o=this.$lines.createCell(a,e,this.session,f),this.$lines.push(o)),this.$renderCell(o,e,i,a),a++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";if(this.$fixedWidth||t.$useWrapMode)i=t.getLength()+r-1;var s=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();s+=o.left+o.right,s!==this.gutterWidth&&!isNaN(s)&&(this.gutterWidth=s,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",s))},this.$updateCursorRow=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.getCursor();if(this.$cursorRow===e.row)return;this.$cursorRow=e.row},this.updateLineHighlight=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.cursor.row;this.$cursorRow=e;if(this.$cursorCell&&this.$cursorCell.row==e)return;this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n<t.length;n++){var r=t[n];if(r.row>=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}},this.scrollLines=function(e){var t=this.config;this.config=e,this.$updateCursorRow();if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;this.oldLastRow=n;if(!t||r<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var i=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);i>0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLines(e,e.firstRow,t.firstRow-1)),n>r&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},this.$renderLines=function(e,t,n){var r=[],i=t,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>n)break;var u=this.$lines.createCell(i,e,this.session,f);this.$renderCell(u,e,s,i),r.push(u),i++}
372return r},this.$renderCell=function(e,t,n,i){var s=e.element,o=this.session,u=s.childNodes[0],a=s.childNodes[1],f=o.$firstLineNumber,l=o.$breakpoints,c=o.$decorations,h=o.gutterRenderer||this.$renderer,p=this.$showFoldWidgets&&o.foldWidgets,d=n?n.start.row:Number.MAX_VALUE,v="ace_gutter-cell ";this.$highlightGutterLine&&(i==this.$cursorRow||n&&i<this.$cursorRow&&i>=d&&this.$cursorRow<=n.end.row)&&(v+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),l[i]&&(v+=l[i]),c[i]&&(v+=c[i]),this.$annotations[i]&&(v+=this.$annotations[i].className),s.className!=v&&(s.className=v);if(p){var m=p[i];m==null&&(m=p[i]=o.getFoldWidget(i))}if(m){var v="ace_fold-widget ace_"+m;m=="start"&&i==d&&i<n.end.row?v+=" ace_closed":v+=" ace_open",a.className!=v&&(a.className=v);var g=t.lineHeight+"px";r.setStyle(a.style,"height",g),r.setStyle(a.style,"display","inline-block")}else a&&r.setStyle(a.style,"display","none");var y=(h?h.getText(o,i):i+f).toString();return y!==u.data&&(u.data=y),r.setStyle(e.element.style,"height",this.$lines.computeLineHeight(i,t,o)+"px"),r.setStyle(e.element.style,"top",this.$lines.computeLineTop(i,t,o)+"px"),e.text=y,e},this.$fixedWidth=!1,this.$highlightGutterLine=!0,this.$renderer="",this.setHighlightGutterLine=function(e){this.$highlightGutterLine=e},this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return 0},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=(parseInt(e.borderLeftWidth)||0)+(parseInt(e.paddingLeft)||0)+1,this.$padding.right=(parseInt(e.borderRightWidth)||0)+(parseInt(e.paddingRight)||0),this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(a.prototype),t.Gutter=a}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},this.update=function(e){if(!e)return;this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}if(this.i!=-1)while(this.i<this.element.childElementCount)this.element.removeChild(this.element.lastChild)},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,this.drawSingleLineMarker(t,d,i+(l==a?" ace_start":"")+" ace_br"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+o+"px;"+"right:0;"+"top:"+u+"px;left:"+a+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{u=this.$getTop(t.end.row,r);var l=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+o+"px;"+"width:"+l+"px;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(c?" ace_br"+c:""),"height:"+o+"px;"+"right:0;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))},this.drawSingleLineMarker=function(e,t,n,r,i,s){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,s);var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+o+"px;"+"width:"+u+"px;"+"top:"+a+"px;"+"left:"+f+"px;"+(s||""))},this.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f
372=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(e){this.elt(n,"height:"+o+"px;"+"width:"+e.width+(i||0)+"px;"+"top:"+u+"px;"+"left:"+(a+e.left)+"px;"+(s||""))},this)},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))}}).call(s.prototype),t.Marker=s}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("./lines").Lines,u=e("../lib/event_emitter").EventEmitter,a=function(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()=="\n"&&e.getNewLineMode()!="windows",n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.showSpaces=!1,this.showTabs=!1,this.showEOL=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,typeof e=="string"?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)if(this.showTabs){var r=this.dom.createElement("span");r.className="ace_invisible ace_invisible_tab",r.textContent=s.stringRepeat(this.TAB_CHAR,n),t.push(r)}else t.push(this.dom.createTextNode(s.stringRepeat(" ",n),this.element));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var i="ace_indent-guide",o=this.showSpaces?" ace_invisible ace_invisible_space":"",u=this.showSpaces?s.stringRepeat(this.SPACE_CHAR,this.tabSize):s.stringRepeat(" ",this.tabSize),a=this.showTabs?" ace_invisible ace_invisible_tab":"",f=this.showTabs?s.stringRepeat(this.TAB_CHAR,this.tabSize):u,r=this.dom.createElement("span");r.className=i+o,r.textContent=u,this.$tabStrings[" "]=r;var r=this.dom.createElement("span");r.className=i+a,r.textContent=f,this.$tabStrings["	"]=r}},this.updateLines=function(e,t,n){if(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)return this.update(e);this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var f=!1,u=r,a=this.session.getNextFoldLine(u),l=a?a.start.row:Infinity;for(;;){u>l&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),l=a?a.start.row:Infinity);if(u>i)break;var c=s[o++];if(c){this.dom.removeChildren(c),this.$renderLine(c,u,u==l?a:!1),f&&(c.style.top=this.$lines.computeLineTop(u,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(u)+"px";c.style.height!=h&&(f=!0,c.style.height=h)}u++}if(f)while(o<this.$lines.cells.length){var p=this.$lines.cells[o++];p.element.style.top=this.$lines.computeLineTop(p.row,e,this.session)+"px"}},this.scrollLines=function(e){var t=this.config;this.config=e;if(this.$lines.pageChanged(t,e))return this.update(e);
372this.$lines.moveContainer(e);var n=e.lastRow,r=t?t.lastRow:-1;if(!t||r<e.firstRow)return this.update(e);if(n<t.firstRow)return this.update(e);if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);if(t.firstRow<e.firstRow)for(var i=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);i>0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRow<t.firstRow&&this.$lines.unshift(this.$renderLinesFragment(e,e.firstRow,t.firstRow-1)),e.lastRow>t.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow))},this.$renderLinesFragment=function(e,t,n){var r=[],s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=this.$lines.createCell(s,e,this.session),f=a.element;this.dom.removeChildren(f),i.setStyle(f.style,"height",this.$lines.computeLineHeight(s,e,this.session)+"px"),i.setStyle(f.style,"top",this.$lines.computeLineTop(s,e,this.session)+"px"),this.$renderLine(f,s,s==u?o:!1),this.$useLineGroups()?f.className="ace_line_group":f.className="ace_line",r.push(a),s++}return r},this.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),a,f=0;while(a=o.exec(r)){var l=a[1],c=a[2],h=a[3],p=a[4],d=a[5];if(!i.showSpaces&&c)continue;var v=f!=a.index?r.slice(f,a.index):"";f=a.index+a[0].length,v&&u.appendChild(this.dom.createTextNode(v,this.element));if(l){var m=i.session.getScreenTabSize(t+a.index);u.appendChild(i.$tabStrings[m].cloneNode(!0)),t+=m-1}else if(c)if(i.showSpaces){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space",g.textContent=s.stringRepeat(i.SPACE_CHAR,c.length),u.appendChild(g)}else u.appendChild(this.com.createTextNode(c,this.element));else if(h){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space ace_invalid",g.textContent=s.stringRepeat(i.SPACE_CHAR,h.length),u.appendChild(g)}else if(p){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className=i.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",g.textContent=i.showSpaces?i.SPACE_CHAR:p,u.appendChild(g)}else if(d){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className="ace_cjk",g.textContent=d,u.appendChild(g)}}u.appendChild(this.dom.createTextNode(f?r.slice(f):r,this.element));if(!this.$textToken[n.type]){var y="ace_"+n.type.replace(/\./g," ace_"),g=this.dom.createElement("span");n.type=="fold"&&(g.style.width=n.value.length*this.config.characterWidth+"px"),g.className=y,g.appendChild(u),e.appendChild(g)}else e.appendChild(u);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==" "){r-=r%this.tabSize;var i=r/this.tabSize;for(var s=0;s<i;s++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return t.substr(r)}if(t[0]=="	"){for(var s=0;s<r;s++)e.appendChild(this.$tabStrings["	"].cloneNode(!0));return t.substr(r)}return t},this.$createLineElement=function(e){var t=this.dom.createElement("div");return t.className="ace_line",t.style.height=this.config.lineHeight+"px",t},this.$renderWrappedLine=function(e,t,n){var r=0,i=0,o=n[0],u=0,a=this.$createLineElement();e.appendChild(a);for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){r=c.length,c=this.renderIndentGuide(a,c,o);if(!c)continue;r-=c.length}if(r+c.length<o)u=this.$renderToken(a,u,l,c),r+=c.length;else{while(r+c.length>=o)u=this.$renderToken(a,u,l,c.substring(0,o-r)),c=c.substring(o-r),r=o,a=this.$createLineElement(),e.appendChild(a),a.appendChild(this.dom.createTextNode(s.stringRepeat("\u00a0",n.indent),this.element)),i++,u=0,o=n[i]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,u=this.$renderToken(a,u,l,c))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(a,u,null,"",!0)},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++){r=t[s],i=r.value;if(n+i.length>this.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,r,i);n=this.$renderToken(e,n,r,i)}},this.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var s=this.dom.createElement("span");s.className="ace_inline_button ace_keyword ace_toggle_wrap",s.textContent=i?"<hide>":"<click to see more...>",e.appendChild(s)},this.$renderLine=function(e,t,n){!n&&n!=0&&(n=this.session.getFoldLine(t));
372if(n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var s=this.session.getRowSplitData(t);if(s&&s.length){this.$renderWrappedLine(e,r,s);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var o=this.dom.createElement("span");o.className="ace_invisible ace_invisible_eol",o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(a.prototype),t.Text=a}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){this.$isAnimating=!1,r.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,r.removeCssClass(this.element,"ace_smooth-blinking")),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this)));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.isCursorInView=function(e,t){return e.top>
vendor: 8,720 bytes, line 372
372=0&&e.top<t.maxHeight},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,i=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,s=t.length;n<s;n++){var o=this.getPixelPosition(t[n].cursor,!0);if((o.top>e.height+e.offset||o.top<0)&&n>1)continue;var u=this.cursors[i++]||this.addCursor(),a=u.style;this.drawCursor?this.drawCursor(u,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(a,"display","block"),r.translate(u,o.left,o.top),r.setStyle(a,"width",Math.round(e.characterWidth)+"px"),r.setStyle(a,"height",e.lineHeight+"px")):r.setStyle(a,"display","none")}while(this.cursors.length>i)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=32768,a=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\u00a0",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};r.inherits(f,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(l,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;t&&(r.blockIdle(100),n.changes=0,n.onRender(t));if(n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}};(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(i.prototype),t.RenderLoop=i}),define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/event"),u=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,f=256,l=typeof ResizeObserver=="function",c=200,h=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()};(function(){r.implement(this,a),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",u.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){e.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},this.$measureCharWidth=function(e){this.$main.textContent=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return!t||!t.parentElement?1:(window.getComputedStyle(t).zoom||1)*e(t.parentElement)},this.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},this.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)}}).call(h.prototype)}),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./layer/gutter").Gutter,u=e("./layer/marker").Marker,a=e("./layer/text").Text,f
372=e("./layer/cursor").Cursor,l=e("./scrollbar").HScrollBar,c=e("./scrollbar").VScrollBar,h=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,d=e("./lib/event_emitter").EventEmitter,v='.ace_br1 {border-top-left-radius    : 3px;}.ace_br2 {border-top-right-radius   : 3px;}.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_editor {position: relative;overflow: hidden;padding: 0;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;contain: style size layout;font-variant-ligatures: no-common-ligatures
vendor: 4,221 bytes, line 372
372;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;contain: style size layout;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {position: absolute;top: 0;left: 0;right: 0;padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {contain: strict;position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;contain: strict;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: transparent;color: inherit;z-index: 1000;opacity: 1;}.ace_composition_placeholder { color: transparent }.ace_composition_marker { border-bottom: 1px solid;position: absolute;border-radius: 0;margin-top: 1px;}[ace_nocontext=true] {transform: none!important;filter: none!important;
372clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;height: 1000000px;contain: style size layout;}.ace_text-layer {font: inherit !important;position: absolute;height: 1000000px;width: 1000000px;contain: style size layout;}.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {contain: style size layout;position: absolute;top: 0;left: 0;right: 0;}.ace_hidpi .ace_text-layer,.ace_hidpi .ace_gutter-layer,.ace_hidpi .ace_content,.ace_hidpi .ace_gutter {contain: strict;will-change: transform;}.ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group {contain: strict;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {opacity: 0;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_error_bracket {position: absolute;border-bottom: 1px solid #DE5555;border-radius: 0;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;
372cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_mobile-menu {position: absolute;line-height: 1.5;border-radius: 4px;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;background: white;box-shadow: 1px 3px 2px grey;border: 1px solid #dcdcdc;color: black;}.ace_dark > .ace_mobile-menu {background: #333;color: #ccc;box-shadow: 1px 3px 2px grey;border: 1px solid #444;}.ace_mobile-button {padding: 2px;cursor: pointer;overflow: hidden;}.ace_mobile-button:hover {background-color: #eee;opacity:1;}.ace_mobile-button:active {background-color: #ddd;}.ace_placeholder {font-family: arial;transform: scale(0.9);transform-origin: left;white-space: pre;opacity: 0.7;margin: 0 10px;}',m=e("./lib/useragent"),g=m.isIE;i.importCssString(v,"ace_editor.css",!1);var y=function(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),s.get("useStrictCSP")==null&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new o(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new u(this.content);var r=this.$textLayer=new a(this.content);this.canvas=r.element,this.$markerFront=new u(this.content),this.$curs
372orLayer=new f(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new c(this.container,this),this.scrollBarH=new l(this.container,this),this.scrollBarV.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!m.isIOS,this.$loop=new h(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,d),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var s=0,o=this.$size,u={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};r&&(e||o.height!=r)&&(o.height=r,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL);if(n&&(e||o.width!=n)){s|=this.CHANGE_SIZE,o.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var a=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",a),i.setStyle(this.scroller.style,"right",a),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight());if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}return o.$dirty=!n||!r,s&&this._signal("resize",u),s},this.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)}
372,this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$isMousePressed)return;var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(!n)return;t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,s=n.top,o=n.left;s-=r.offset;var u=t&&t.useTextareaForIME?this.lineHeight:g?0:1;if(s<0||s>r.height-u){i.translate(this.textarea,0,0);return}var a=1,f=this.$size.height-u;if(!t)s+=this.lineHeight;else if(t.useTextareaForIME){var l=this.textarea.value;a=this.characterWidth*this.session.$getStringScreenWidth(l)[0]}else s+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-a&&(o=this.$size.scrollerWidth-a),o+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",u+"px"),i.setStyle(e,"width",a+"px"),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-a),Math.min(s,f))},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig()|this.$loop.clear();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var s=n.width+2*this.$padding+"px",o=n.minHeight+"px";i.setStyle(this.content.style,"width",s),i.setStyle(this.content.style,"height",o)}e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$curs
372orLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}if(e&this.CHANGE_SCROLL){this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?this.$showGutter&&this.$gutterLayer.update(n):e&this.CHANGE_CURSOR&&this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,i-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop>c.top),p=a!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var d=this.scrollTop%this.lineHeight,v=Math.ceil(f/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-d)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),f=t.scrollerHeight+e.getRowLength(g)*w+b,d=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||p)S|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:f,maxHeight:i,offset:d,gutterOffset:w?Math.max(0,Math.ceil((d+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),S},this.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),this.$textLayer&&e>this.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)}
372,this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight+u-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)}
372,this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){if(!r.session)return clearInterval(r.$timer);s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(e)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},this.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),e.useTextareaForIME==undefined&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$curs
372orLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""},this.addToken=function(e,t,n,r){var i=this.session;i.bgTokenizer.lines[n]=null;var s={type:t,value:e},o=i.getTokens(n);if(r==null)o.push(s);else{var u=0;for(var a=0;a<o.length;a++){var f=o[a];u+=f.value.length;if(r<=u){var l=f.value.length-(u-r),c=f.value.slice(0,l),h=f.value.slice(l);o.splice(a,1,{type:f.type,value:c},s,{type:f.type,value:h});break}}}this.updateLines(n,n)},this.removeExtraToken=function(e,t){this.updateLines(e,e)},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.$id&&(n.$themeId=r.$id),i.importCssString(r.cssText,r.cssClass,n.container),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){i.setStyle(this.scroller.style,"cursor",e)},this.setMouseCursor=function(e){i.setStyle(this.scroller.style,"cursor",e)},this.attachToShadowRoot=function(){i.importCssString(v,"ace_editor.css",this.container)},this.destroy=function(){this.freeze(),this.$fontMetrics.destroy(),this.$cursorLayer.destroy(),this.removeAllListeners(),this.container.textContent=""}}).call(y.prototype),s.defineOptions(y.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!m.isMobile&&!m.isIE}}),t.VirtualRenderer=y}
372),define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";function u(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}function a(e){if(typeof Worker=="undefined")return{postMessage:function(){},terminate:function(){}};if(o.get("loadWorkerFromBlob")){var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}return new Worker(e)}var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),f=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.$createWorkerFromOldConfig=function(t,n,r,i,s){e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var u=this.$normalizePath;i=i||u(e.toUrl("ace/worker/worker.js",null,"_"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){var r=null,i=!1,u=Object.create(s),a=[],l=new f({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e);if(!r)return;i?setTimeout(c):c()}});l.setEmitSync=function(e){i=e};var c=function(){var e=a.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};return u.postMessage=function(e){l.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.length)c()}),l};t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEac
372h(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?"block":"add":n&&l.$blockSelectEnabled&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column,e.offsetX);if(s(E,e)&&s(t,c.lead))return;E=e,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEac
372h(l.addSelectionMarker,l),l.updateSelectionMarkers()};h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),E={row:-1,column:-1};var L=function(e){k(),clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",description:"Add cursor above",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",description:"Add cursor below",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",description:"Add cursor above (skip current)",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",description:"Add cursor below (skip current)",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",description:"Select more before",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",description:"Select more after",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",description:"Select next before",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",description:"Select next after",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"toggleSplitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.rangeCount>1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()},e),u.addListener(t,"keyup",r,e),u.addListener(t,"blur",r,e)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;
372(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){var e=this.ranges.length?this.ranges:[this.getRange()],t=[];for(var n=0;n<e.length;n++){var r=e[n],s=r.start.row,o=r.end.row;if(s===o)t.push(r.clone());else{t.push(new i(s,r.start.column,s,this.session.getLine(s).length));while(++s<o)t.push(this.getLineRange(s,!0));t.push(new i(o,0,o,r.end.column))}n==0&&!this.isBackwards()&&(t=t.reverse())}this.toSingleRange();for(var n=t.length;n--;)this.addRange(t[n])},this.joinSelections=function(){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column,a=e.offsetX,f=t.offsetX;else var o=t.column,u=e.column,a=t.offsetX,f=e.offsetX;var l=e.row<t.row;if(l)var c=e.row,h=t.row;else var c=t.row,h=e.row;o<0&&(o=0),c<0&&(c=0),c==h&&(n=!0);var p;for(var d=c;d<=h;d++){var m=i.fromPoints(this.session.screenToDocumentPosition(d,o,a),this.session.screenToDocumentPosition(d,u,f));if(m.isEmpty()){if(p&&v(m.end,p))break;p=m.end}m.cursor=s?m.start:m.end,r.push(m)}l&&r.reverse();if(!n){var g=r.length-1;while(r[g].isEmpty()&&g>0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(
372),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges(),u.ranges[0]&&u.fromOrientedRange(u.ranges[0]);var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}n.fromOrientedRange(n.ranges[0])},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.session.unfold(u),this.multiSelect.addRange(u),this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}
372else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o){var h=e.getTokenAt(t,0);if(!h||h.type!=="string")break}l=t}if(l>f){var p=e.getLine(l).length;return new r(f,u,l,p)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0
372);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.$id="ace/theme/textmate";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass,!1)}),define("ace/line_widgets",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";function i(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/dom");(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action=="remove"){var i=t.splice(n+1,r);
372!t[n]&&i[i.length-1]&&(t[n]=i.pop()),i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);t[n]&&t[n].column!=null&&e.start.column>t[n].column&&n++,s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},this.addLineWidget=function(e){this.$registerLineWidget(e),e.session=this.session;if(!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=r.createElement("div"),e.el.innerHTML=e.html),e.el&&(r.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight)),e.rowCount==null&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);e.$fold=n;if(n){var i=this.session.lineWidgets;e.row==n.end.row&&!i[n.start.row]?i[n.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(i.prototype),t.LineWidgets=i}),define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>
372=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString("    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }","error_marker.css",!1)}),define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./range").Range,o=e("./editor").Editor,u=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,f=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,typeof define=="function"&&(t.define=define),t.edit=function(e,n){if(typeof e=="string"){var s=e;e=document.getElementById(s);if(!e)throw new Error("ace.edit can't find div #"+s)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var u="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;u=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(u=e.textContent,e.innerHTML="");var l=t.createEditSession(u),c=new o(new f(e),l,n),h={document:l,editor:c,onResize:c.resize.bind(c,null)};return a&&(h.textarea=a),i.addListener(window,"resize",h.onResize),c.on("destroy",function(){i.removeListener(window,"resize",h.onResize),h.editor.container.env=null}),c.container.env=c.env=h,c},t.createEditSession=function(e,t){var n=new u(e,t);return n.setUndoManager(new a),n},t.Range=s,t.Editor=o,t.EditSession=u,t.UndoManager=a,t.VirtualRenderer=f,t.version=t.config.version});            (function() {
373                window.require(["ace/ace"], function(a) {
374                    if (a) {
375                        a.config.init(true);
376                        a.define = window.define;
377                    }
378                    if (!window.ace)
379                        window.ace = a;
380                    for (var key in a) if (a.hasOwnProperty(key))
381                        window.ace[key] = a[key];
382                    window.ace["default"] = window.ace;
383                    if (typeof module == "object" && typeof exports == "object" && module) {
384                        module.exports = window.ace;
385                    }
386                });
387            })();
388
389define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./lib/lang"),o=e("./range").Range,u=e("./anchor").Anchor,a=e("./keyboard/hash_handler").HashHandler,f=e("./tokenizer").Tokenizer,l=o.comparePoints,c=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,i),this.getTokenizer=function(){function e(e,t,n){return e=e.substr(1),/^\d+$/.test(e)&&!n.inFormatString?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return"(?:[^\\\\"+e+"]|\\\\.)"}return c.$tokenizer=new f({start:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectIf?(n[0].expectIf=!1,n[0].elseBranch=n[0],[n[0]]):":"}},{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return r=="}"&&n.length?e=r:"`$\\".indexOf(r)!=-1?e=r:n.inFormatString&&(r=="n"?e="\n":r=="t"?e="\n":"ulULE".
389indexOf(r)!=-1&&(e={changeCase:r,local:r>"a"})),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:e},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1),n,r);return r.unshift(i[0]),i},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+t("\\|")+"*\\|",onMatch:function(e,t,n){n[0].choices=e.slice(1,-1).split(",")},next:"start"},{regex:"/("+t("/")+"+)/(?:("+t("/")+"*)/)(\\w*):?",onMatch:function(e,t,n){var r=n[0];return r.fmtString=e,e=this.splitRegex.exec(e),r.guard=e[1],r.fmt=e[2],r.flag=e[3],""},next:"start"},{regex:"`"+t("`")+"*`",onMatch:function(e,t,n){return n[0].code=e.splice(1,-1),""},next:"start"},{regex:"\\?",onMatch:function(e,t,n){n[0]&&(n[0].expectIf=!0)},next:"start"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:"/("+t("/")+"+)/",token:"regex"},{regex:"",onMatch:function(e,t,n){n.inFormatString=!0},next:"start"}]}),c.prototype.getTokenizer=function(){return c.$tokenizer},c.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.$getDefaultValue=function(e,t){if(/^[A-Z]\d+$/.test(t)){var n=t.substr(1);return(this.variables[t[0]+"__"]||{})[n]}if(/^\d+$/.test(t))return(this.variables.__||{})[t];t=t.replace(/^TM_/,"");if(!e)return;var r=e.session;switch(t){case"CURRENT_WORD":var i=r.getWordRange();case"SELECTION":case"SELECTED_TEXT":return r.getTextRange(i);case"CURRENT_LINE":return r.getLine(e.getCursorPosition().row);case"PREV_LINE":return r.getLine(e.getCursorPosition().row-1);case"LINE_INDEX":return e.getCursorPosition().column;case"LINE_NUMBER":return e.getCursorPosition().row+1;case"SOFT_TABS":return r.getUseSoftTabs()?"YES":"NO";case"TAB_SIZE":return r.getTabSize();case"FILENAME":case"FILEPATH":return"";case"FULLNAME":return"Ace"}},this.variables={},this.getVariableValue=function(e,t){return this.variables.hasOwnProperty(t)?this.variables[t](e,t)||"":this.$getDefaultValue(e,t)||""},this.tmStrFormat=function(e,t,n){var r=t.flag||"",i=t.guard;i=new RegExp(i,r.replace(/[^gi]/,""));var s=this.tokenizeTmSnippet(t.fmt,"formatString"),o=this,u=e.replace(i,function(){o.variables.__=arguments;var e=o.resolveVariables(s,n),t="E";for(var r=0;r<e.length;r++){var i=e[r];if(typeof i=="object"){e[r]="";if(i.changeCase&&i.local){var u=e[r+1];u&&typeof u=="string"&&(i.changeCase=="u"?e[r]=u[0].toUpperCase():e[r]=u[0].toLowerCase(),e[r+1]=u.substr(1))}else i.changeCase&&(t=i.changeCase)}else t=="U"?e[r]=i.toUpperCase():t=="L"&&(e[r]=i.toLowerCase())}return e.join("")});return this.variables.__=null,u},this.resolveVariables=function(e,t){function o(t){var n=e.indexOf(t,r+1);n!=-1&&(r=n)}var n=[];for(var r=0;r<e.length;r++){var i=e[r];if(typeof i=="string")n.push(i);else{if(typeof i!="object")continue;if(i.skip)o(i);else{if(i.processed<r)continue;if(i.text){var s=this.getVariableValue(t,i.text);s&&i.fmtString&&(s=this.tmStrFormat(s,i)),i.processed=r,i.expectIf==null?s&&(n.push(s),o(i)):s?i.skip=i.elseBranch:o(i)}else i.tabstopId!=null?n.push(i):i.changeCase!=null&&n.push(i)}}}return n},this.insertSnippetForSelection=function(e,t){function f(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r=="object"){if(a[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=e.session.getTabString(),s=r.match(/^\s*/)[0];n.column<s.length&&(s=s.slice(0,n.column)),t=t.replace(/\r/g,"");var o=this.tokenizeTmSnippet(t);o=this.resolveVariables(o,e),o=o.map(function(e){return e=="\n"?e+s:typeof e=="string"?e.replace(/\t/g,i):e});var u=[];o.forEach(function(e,t){if(typeof e!="object")return;var n=e.tabstopId,r=u[n];r||(r=u[n]=[],r.index=n,r.value="");if(r.indexOf(e)!==-1)return;r.push(e);var i=o.indexOf(e,t+1);if(i===-1)return;var s=o.slice(t+1,i),a=s.some(function(e){return typeof e=="object"});a&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!="string")&&(r.value=s.join(""))}),u.forEach(function(e){e.length=0});var a={};for(var l=0;l<o.length;l++){var c=o[l];if(typeof c!="object")continue;var p=c.tabstopId,d=o.indexOf(c,l+1);
389if(a[p]){a[p]===c&&(a[p]=null);continue}var v=u[p],m=typeof v.value=="string"?[v.value]:f(v.value);m.unshift(l+1,Math.max(0,d-l)),m.push(c),a[p]=c,o.splice.apply(o,m),v.indexOf(c)===-1&&v.push(c)}var g=0,y=0,b="";o.forEach(function(e){if(typeof e=="string"){var t=e.split("\n");t.length>1?(y=t[t.length-1].length,g+=t.length-1):y+=e.length,b+=e}else e.start?e.end={row:g,column:y}:e.start={row:g,column:y}});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new h(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||"";t=t.split("/").pop();if(t==="html"||t==="php"){t==="php"&&!e.session.$mode.inlinePhp&&(t="html");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r=="object"&&(r=r[0]),r.substring&&(r.substring(0,3)=="js-"?t="javascript":r.substring(0,4)=="css-"?t="css":r.substring(0,4)=="php-"&&(t="php"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push("_"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[""],i.matchAfter=i.endRe?i.endRe.exec(n):[""],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:"",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:"",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function o(e){return e&&!/^\^?\(.*\)\$?$|^\\b$/.test(e)&&(e="(?:"+e+")"),e||""}function u(e,t,n){return e=o(e),t=o(t),n?(e=t+e,e&&e[e.length-1]!="$"&&(e+="$")):(e+=t,e&&e[0]!="^"&&(e="^"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||"_"),t=e.scope,n[t]||(n[t]=[],r[t]={});var o=r[t];if(e.name){var a=o[e.name];a&&i.unregister(a),o[e.name]=e}n[t].push(e),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\w/.test(e.tabTrigger)&&(e.guard="\\b"),e.trigger=s.escapeRegExp(e.tabTrigger));if(!e.trigger&&!e.guard&&!e.endTrigger&&!e.endGuard)return;e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),e&&e.content?a(e):Array.isArray(e)&&e.forEach(a),this._signal("registerSnippets",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\r/g,"");var t=[],n={},r=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\t/gm,""),t.push(n),n={};else{var o=i[2],u=i[3];if(o=="regex"){var a=/\/((?:[^\/\\]|\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o=="snippet"?(n.tabTrigger=u.match(/^\S*/)[0],n.name||(n.name=u)):n[o]=u}}return t}
389,this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(c.prototype);var h=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e,n=e.action[0]=="r",r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=i.column-r.column;n&&(u=-u,a=-a);if(!this.$inChange&&n){var f=this.selectedTabstop,c=f&&!f.some(function(e){return l(e.start,r)<=0&&l(e.end,i)>=0});if(c)return this.detach()}var h=this.ranges;for(var p=0;p<h.length;p++){var d=h[p];if(d.end.row<r.row)continue;if(n&&l(r,d.start)<0&&l(i,d.end)>0){this.removeRange(d),p--;continue}d.start.row==s&&d.start.column>r.column&&(d.start.column+=a),d.end.row==s&&d.end.column>=r.column&&(d.end.column+=a),d.start.row>=s&&(d.start.row+=u),d.end.row>=s&&(d.end.row+=u),l(d.start,d.end)>0&&this.removeRange(d)}h.length||this.detach()},this.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges)return;this.$inChange=!0;var n=this.editor.session,r=n.getTextRange(e.firstNonLinked);for(var i=e.length;i--;){var s=e[i];if(!s.linked)continue;var o=t.snippetManager.tmStrFormat(r,s.original);n.replace(s,o)}this.$inChange=!1},this.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,
389n=this.editor.selection.isEmpty();for(var r=this.ranges.length;r--;){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},this.onChangeSession=function(){this.detach()},this.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),n===0&&this.detach()},this.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;if(!this.editor.inVirtualSelectionMode){var n=this.editor.multiSelect;n.toSingleRange(t.firstNonLinked.clone());for(var r=t.length;r--;){if(t.hasLinkedRanges&&t[r].linked)continue;n.addRange(t[r].clone(),!0)}n.ranges[0]&&n.addRange(n.ranges[0].clone())}else this.editor.selection.setRange(t.firstNonLinked);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.addTabstops=function(e,t,n){this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var r=o.fromPoints(n,n);v(r.start,t),v(r.end,t),e[0]=[r],e[0].index=0}var i=this.index,s=[i+1,0],u=this.ranges;e.forEach(function(e,n){var r=this.$openTabstops[n]||e;for(var i=e.length;i--;){var a=e[i],f=o.fromPoints(a.start,a.end||a.start);d(f.start,t),d(f.end,t),f.original=a,f.tabstop=r,u.push(f),r!=e?r.unshift(f):r[i]=f,a.fmtString?(f.linked=!0,r.hasLinkedRanges=!0):r.firstNonLinked||(r.firstNonLinked=f)}r.firstNonLinked||(r.hasLinkedRanges=!1),r===e&&(s.push(r),this.$openTabstops[n]=r),this.addTabstopMarkers(r)},this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);e.tabstop.splice(t,1),t=this.ranges.indexOf(e),this.ranges.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new a,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1)},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1)},Esc:function(e){e.tabstopManager.detach()},Return:function(e){return!1}})}).call(h.prototype);var p={};p.onChange=u.prototype.onChange,p.setPosition=function(e,t){this.pos.row=e,this.pos.column=t},p.update=function(e,t,n){this.$insertRight=n,this.pos=e,this.onChange(t)};var d=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},v=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};e("./lib/dom").importCssString(".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}"),t.snippetManager=new c;var m=e("./editor").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(m.prototype)}),define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../virtual_renderer").VirtualRenderer,i=e("../editor").Editor,s=e("../range").Range,o=e("../lib/event"),u=e("../lib/lang"),a=e("../lib/dom"),f=function(e){var t=new r(e);t.$maxLines=4;var n=new i(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusTimeout=0,n.$highlightTagPending=!0,n},l=function(e){var t=a.createElement("div"),n=new f(t);e&&e.appendChild(t),t.style.display="none",n.renderer.content.style.cursor="default",n.renderer.setStyle("ace_autocomplete"),n.setOption("displayIndentGuides",!1),n.setOption("dragDelay",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCurs
389or=!1,n.setHighlightActiveLine(!1),n.session.highlight(""),n.session.$searchHighlight.clazz="ace_highlight-marker",n.on("mousedown",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),c.start.row=c.end.row=t.row,e.stop()});var i,l=new s(-1,0,-1,Infinity),c=new s(-1,0,-1,Infinity);c.id=n.session.addMarker(c,"ace_active-line","fullLine"),n.setSelectOnHover=function(e){e?l.id&&(n.session.removeMarker(l.id),l.id=null):l.id=n.session.addMarker(l,"ace_line-hover","fullLine")},n.setSelectOnHover(!1),n.on("mousemove",function(e){if(!i){i=e;return}if(i.x==e.x&&i.y==e.y)return;i=e,i.scrollTop=n.renderer.scrollTop;var t=i.getDocumentPosition().row;l.start.row!=t&&(l.id||n.setRow(t),p(t))}),n.renderer.on("beforeRender",function(){if(i&&l.start.row!=-1){i.$pos=null;var e=i.getDocumentPosition().row;l.id||n.setRow(e),p(e,!0)}}),n.renderer.on("afterRender",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow];r!==t.selectedNode&&t.selectedNode&&a.removeCssClass(t.selectedNode,"ace_selected"),t.selectedNode=r,r&&a.addCssClass(r,"ace_selected")});var h=function(){p(-1)},p=function(e,t){e!==l.start.row&&(l.start.row=l.end.row=e,t||n.session._emit("changeBackMarker"),n._emit("changeHoverMarker"))};n.getHoveredRow=function(){return l.start.row},o.addListener(n.container,"mouseout",h),n.on("hide",h),n.on("changeSelection",h),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return typeof t=="string"?t:t&&t.value||""};var d=n.session.bgTokenizer;return d.$tokenizeRow=function(e){function s(e,n){e&&r.push({type:(t.className||"")+(n||""),value:e})}var t=n.data[e],r=[];if(!t)return r;typeof t=="string"&&(t={value:t});var i=t.caption||t.value||t.name,o=i.toLowerCase(),u=(n.filterText||"").toLowerCase(),a=0,f=0;for(var l=0;l<=u.length;l++)if(l!=f&&(t.matchMask&1<<l||l==u.length)){var c=u.slice(f,l);f=l;var h=o.indexOf(c,a);if(h==-1)continue;s(i.slice(a,h),""),a=h+c.length,s(i.slice(h,a),"completion-highlight")}return s(i.slice(a,i.length),""),t.meta&&r.push({type:"completion-meta",value:t.meta}),r},d.$updateOnChange=r,d.start=r,n.session.$computeWidth=function(){return this.screenWidth=0},n.isOpen=!1,n.isTopdown=!1,n.autoSelect=!0,n.filterText="",n.data=[],n.setData=function(e,t){n.filterText=t||"",n.setValue(u.stringRepeat("\n",e.length),-1),n.data=e||[],n.setRow(0)},n.getData=function(e){return n.data[e]},n.getRow=function(){return c.start.row},n.setRow=function(e){e=Math.max(this.autoSelect?0:-1,Math.min(this.data.length,e)),c.start.row!=e&&(n.selection.clearSelection(),c.start.row=c.end.row=e||0,n.session._emit("changeBackMarker"),n.moveCursorTo(e||0,0),n.isOpen&&n._signal("select"))},n.on("changeSelection",function(){n.isOpen&&n.setRow(n.selection.lead.row),n.renderer.scrollCursorIntoView()}),n.hide=function(){this.container.style.display="none",this._signal("hide"),n.isOpen=!1},n.show=function(e,t,r){var s=this.container,o=window.innerHeight,u=window.innerWidth,a=this.renderer,f=a.$maxLines*t*1.4,l=e.top+this.$borderSize,c=l>o/2&&!r;c&&l+t+f>o?(a.$maxPixelHeight=l-2*this.$borderSize,s.style.top="",s.style.bottom=o-l+"px",n.isTopdown=!1):(l+=t,a.$maxPixelHeight=o-l-.2*t,s.style.top=l+"px",s.style.bottom="",n.isTopdown=!0),s.style.display="";var h=e.left;h+s.offsetWidth>u&&(h=u-s.offsetWidth),s.style.left=h+"px",this._signal("show"),i=null,n.isOpen=!0},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n};a.importCssString(".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {    background-color: #CAD6FA;    z-index: 1;}.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {    background-color: #3a674e;}.ace_editor.ace_autocomplete .ace_line-hover {    border: 1px solid #abbffe;    margin-top: -1px;    background: rgba(233,233,253,0.4);    position: absolute;    z-index: 2;}.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {    border: 1px solid rgba(109, 150, 13, 0.8);    background: rgba(58, 103, 78, 0.62);}.ace_completion-meta {    opacity: 0.5;    margin: 0.9em;}
389.ace_editor.ace_autocomplete .ace_completion-highlight{    color: #2d69c7;}.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{    color: #93ca12;}.ace_editor.ace_autocomplete {    width: 300px;    z-index: 200000;    border: 1px lightgray solid;    position: fixed;    box-shadow: 2px 3px 5px rgba(0,0,0,.2);    line-height: 1.4;    background: #fefefe;    color: #111;}.ace_dark.ace_editor.ace_autocomplete {    border: 1px #484747 solid;    box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);    line-height: 1.4;    background: #25282c;    color: #c1c1c1;}","autocompletion.css"),t.AcePopup=l}),define("ace/autocomplete/util",["require","exports","module"],function(e,t,n){"use strict";t.parForEach=function(e,t,n){var r=0,i=e.length;i===0&&n();for(var s=0;s<i;s++)t(e[s],function(e,t){r++,r===i&&n(e,t)})};var r=/[a-zA-Z_0-9\.\$\-\u00A2-\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;i.push(e[s])}return i.reverse().join("")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t;s<e.length;s++){if(!n.test(e[s]))break;i.push(e[s])}return i},t.getCompletionPrefix=function(e){var t=e.getCursorPosition(),n=e.session.getLine(t.row),r;return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!r&&e&&(r=this.retrievePrecedingIdentifier(n,t.column,e))}.bind(this))}.bind(this)),r||this.retrievePrecedingIdentifier(n,t.column)}}),define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/snippets"],function(e,t,n){"use strict";var r=e("./keyboard/hash_handler").HashHandler,i=e("./autocomplete/popup").AcePopup,s=e("./autocomplete/util"),o=e("./lib/event"),u=e("./lib/lang"),a=e("./lib/dom"),f=e("./snippets").snippetManager,l=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new r,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=u.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=u.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new i(document.body||document.documentElement),this.popup.on("click",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on("show",this.tooltipTimer.bind(null,null)),this.popup.on("select",this.tooltipTimer.bind(null,null)),this.popup.on("changeHoverMarker",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(e,t,n){this.popup||this.$init(),this.popup.autoSelect=this.autoSelect,this.popup.setData(this.completions.filtered,this.completions.filterText),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var r=e.renderer;this.popup.setRow(this.autoSelect?0:-1);if(!n){this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize());var i=r.layerConfig.lineHeight,s=r.$cursorLayer.getPixelPosition(this.base,!0);s.left-=this.popup.getTextLeftOffset();var o=e.container.getBoundingClientRect();s.top+=o.top-r.layerConfig.offset,s.left+=o.left-e.renderer.scrollLeft,s.left+=r.gutterWidth,this.popup.show(s,i)}else n&&!t&&this.detach()},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(e){var t=document.activeElement,n=this.editor.textInput.getElement(),r=e.relatedTarget&&this.tooltipNode&&this.tooltipNode.contains(e.relatedTarget),i=this.popup&&this.popup.container;t!=n&&t.parentNode!=i&&!r&&t!=this.tooltipNode&&e.relatedTarget!=n&&this.detach()},this.mousedownListener=function(e){this.detach()},this.mousewheelListener=function(e){this.detach()},this.goTo=function(e){var t=this.popup.getRow(),n=this.popup.session.getLength()-1;switch(e){case"up":t=t<=0?n:t-1;break;case"down":t=t>=n?-1:t+1;break;case"start":t=0;break;case"end":t=n}this.popup.setRow(t)},this.insertMatch=function(e,t){e||(e=this.popup.getData(this.popup.getRow()));if(!e)return!1;if(e.completer&&e.completer.insertMatch)e.completer.insertMatch(this.editor,e);else{if(this.completions.filterText){var n=this.editor.selection.getAllRanges();for(var r=0,i;i=n[r];r++)i.start.column-=this.completions.filterText.length,this.editor.session.remove(i)}e.snippet?f.insertSnippet(this.editor,e.snippet):this.editor.execCommand("insertstring",e.value||e)}this.detach()},this.commands={Up:function(e){e.completer.goTo("up")},Down:function(e){e.completer.goTo("down")},"Ctrl-Up|Ctrl-Home":function(e){e.completer.goTo("start")},"Ctrl-Down|Ctrl-End":function(e){e.completer.goTo("end")},Esc:function(e){e.completer.detach()},Return:function(e){return e.completer.insertMatch()},"Shift-Return":function(e){e.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(e){var t=e.completer.insertMatch();if(!!t||!!e.tabstopManager)return t;e.completer.goTo("down")},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},this.gatherCompletions=function(e,t){var n=e.getSession(),r=e.getCursorPosition(),i=s.getCompletionPrefix(e);this.base=n.doc.createAnchor(r.row,r.column-i.length),this.base.$insertRight=!0;var o=[],u=e.completers.length;
389return e.completers.forEach(function(a,f){a.getCompletions(e,n,r,i,function(n,r){!n&&r&&(o=o.concat(r)),t(null,{prefix:s.getCompletionPrefix(e),matches:o,finished:--u===0})})}),!0},this.showPopup=function(e){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on("changeSelection",this.changeListener),e.on("blur",this.blurListener),e.on("mousedown",this.mousedownListener),e.on("mousewheel",this.mousewheelListener),this.updateCompletions()},this.updateCompletions=function(e){if(e&&this.base&&this.completions){var t=this.editor.getCursorPosition(),n=this.editor.session.getTextRange({start:this.base,end:t});if(n==this.completions.filterText)return;this.completions.setFilter(n);if(!this.completions.filtered.length)return this.detach();if(this.completions.filtered.length==1&&this.completions.filtered[0].value==n&&!this.completions.filtered[0].snippet)return this.detach();this.openPopup(this.editor,n,e);return}var r=this.gatherCompletionsId;this.gatherCompletions(this.editor,function(t,n){var i=function(){if(!n.finished)return;return this.detach()}.bind(this),s=n.prefix,o=n&&n.matches;if(!o||!o.length)return i();if(s.indexOf(n.prefix)!==0||r!=this.gatherCompletionsId)return;this.completions=new c(o),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(s);var u=this.completions.filtered;if(!u.length)return i();if(u.length==1&&u[0].value==s&&!u[0].snippet)return i();if(this.autoInsert&&u.length==1&&n.finished)return this.insertMatch(u[0]);this.openPopup(this.editor,s,e)}.bind(this))},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var e=this.popup,t=e.data,n=t&&(t[e.getHoveredRow()]||t[e.getRow()]),r=null;if(!n||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();this.editor.completers.some(function(e){return e.getDocTooltip&&(r=e.getDocTooltip(n)),r}),r||(r=n),typeof r=="string"&&(r={docText:r});if(!r||!r.docHTML&&!r.docText)return this.hideDocTooltip();this.showDocTooltip(r)},this.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=a.createElement("div"),this.tooltipNode.className="ace_tooltip ace_doc-tooltip",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents="auto",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this),this.tooltipNode.onclick=this.onTooltipClick.bind(this));var t=this.tooltipNode;e.docHTML?t.innerHTML=e.docHTML:e.docText&&(t.textContent=e.docText),t.parentNode||document.body.appendChild(t);var n=this.popup,r=n.container.getBoundingClientRect();t.style.top=n.container.style.top,t.style.bottom=n.container.style.bottom,t.style.display="block",window.innerWidth-r.right<320?r.left<320?n.isTopdown?(t.style.top=r.bottom+"px",t.style.left=r.left+"px",t.style.right="",t.style.bottom=""):(t.style.top=n.container.offsetTop-t.offsetHeight+"px",t.style.left=r.left+"px",t.style.right="",t.style.bottom=""):(t.style.right=window.innerWidth-r.left+"px",t.style.left=""):(t.style.left=r.right+1+"px",t.style.right="")},this.hideDocTooltip=function(){this.tooltipTimer.cancel();if(!this.tooltipNode)return;var e=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==e&&this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)},this.onTooltipClick=function(e){var t=e.target;while(t&&t!=this.tooltipNode){if(t.nodeName=="A"&&t.href){t.rel="noreferrer",t.target="_blank";break}t=t.parentNode}}}).call(l.prototype),l.startCommand={name:"startAutocomplete",exec:function(e){e.completer||(e.completer=new l),e.completer.autoInsert=!1,e.completer.autoSelect=!0,e.completer.showPopup(e),e.completer.cancelContextMenu()},bindKey:"Ctrl-Space|Ctrl-Shift-Space|Alt-Space"};var c=function(e,t){this.all=e,this.filtered=e,this.filterText=t||"",this.exactMatch=!1};(function(){this.setFilter=function(e){if(e.length>this.filterText&&e.lastIndexOf(this.filterText,0)===0)var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.$score-e.$score||(e.caption||e.value)<(t.caption||t.value)});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t===n?!1:(n=t,!0)}),this.filtered=t},this.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),i=t.toLowerCase();e:for(var s=0,o;o=e[s];s++){var u=o.caption||o.value||o.snippet;if(!u)continue;var a=-1,f=0,l=0,c,h;if(this.exactMatch){if(t!==u.substr(0,t.length))continue e}else{var p=u.toLowerCase().indexOf(i);if(p>-1)l=p;else for(var d=0;d<t.length;d++){var v=u.indexOf(i[d],a+1),m=u.indexOf(r[d],a+1);c=v>=0?m<0||v<m?v:m:m;if(c<0)continue e;h=c-a-1,h>0&&(a===-1&&(l+=10),l+=h,f|=1<<d),a=c}}o.matchMask=f,o.exactMatch=l?0:1,o.$score=(o.score||0)-l,n.push(o)}return n}}).call(c.prototype),t.Autocomplete=l,t.FilteredList=c}),define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],function(e,t,n){function s(e,t){var n=e.getTextRange(r.fromPoints({row:0,column:0},t));return n.split(i).length-1}function o(e,t){var n=s(e,t),r=e.getValue().split(i),o=Object.create(null),u=r[n];return r.forEach(function(e,t){if(!e||e===u)return;var i=Math.abs(n-t),s=r.length-i;o[e]?o[e]=Math.max(s,o[e]):o[e]=s}),o}var r=e("../range").Range,i=/[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;t.getCompletions=function(e,t,n,r,i){var s=o(t,n),u=Object.keys(s);i(null,u.map(function(e){return{caption:e,value:e,score:s[e],meta:"local"}}))}}),define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"],function(e,t,n){"use strict";var r=e("../snippets").snippetManager,i=e("../autocomplete").Autocomplete,s=e("../config"),o=e("../lib/lang"),u=e("../autocomplete/util"),a=e("../autocomplete/text_completer"),f={getCompletions:function(e,t,n,r,i){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,n,r,i);var s=e.session.getState(n.row),o=t.$mode.getCompletions(s,t,n,r);i(null,o)}},l={getCompletions:function(e,t,n,i,s){var o=[],u=t.getTokenAt(n.row,n.column);u&&u.type.match(/(tag-name|tag-open|tag-whitespace|attribute-name|attribute-value)\.xml$/)?o.push("html-tag"):o=r.getActiveScopes(e);var a=r.snippetMap,f=[];o.forEach(function(e){var t=a[e]||[];for(var n=t.length;n--;){var r=t[n],i=r.name||r.tabTrigger;if(!i)continue;f.push({caption:i,snippet:r.content,meta:r.tabTrigger&&!r.name?r.tabTrigger+"\u21e5 ":"snippet",type:"snippet"})}},this),s(null,f)}
389,getDocTooltip:function(e){e.type=="snippet"&&!e.docHTML&&(e.docHTML=["<b>",o.escapeHTML(e.caption),"</b>","<hr></hr>",o.escapeHTML(e.snippet)].join(""))}},c=[l,a,f];t.setCompleters=function(e){c.length=0,e&&c.push.apply(c,e)},t.addCompleter=function(e){c.push(e)},t.textCompleter=a,t.keyWordCompleter=f,t.snippetCompleter=l;var h={name:"expandSnippet",exec:function(e){return r.expandWithTab(e)},bindKey:"Tab"},p=function(e,t){d(t.session.$mode)},d=function(e){var t=e.$id;r.files||(r.files={}),v(t),e.modes&&e.modes.forEach(d)},v=function(e){if(!e||r.files[e])return;var t=e.replace("mode","snippets");r.files[e]={},s.loadModule(t,function(t){t&&(r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){v("ace/mode/"+e)})))})},m=function(e){var t=e.editor,n=t.completer&&t.completer.activated;if(e.command.name==="backspace")n&&!u.getCompletionPrefix(t)&&t.completer.detach();else if(e.command.name==="insertstring"){var r=u.getCompletionPrefix(t);r&&!n&&(t.completer||(t.completer=new i),t.completer.autoInsert=!1,t.completer.showPopup(t))}},g=e("../editor").Editor;e("../config").defineOptions(g.prototype,"editor",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.addCommand(i.startCommand)):this.commands.removeCommand(i.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:c),this.commands.on("afterExec",m)):this.commands.removeListener("afterExec",m)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(h),this.on("changeMode",p),p(null,this)):(this.commands.removeCommand(h),this.off("changeMode",p))},value:!1}})});                (function() {
390                    window.require(["ace/ext/language_tools"], function(m) {
391                        if (typeof module == "object" && typeof exports == "object" && module) {
392                            module.exports = m;
393                        }
394                    });
395                })();
396
397
398define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/lang"),s=e("../lib/event"),o='.ace_search {background-color: #ddd;color: #666;border: 1px solid #cbcbcb;border-top: 0 none;overflow: hidden;margin: 0;padding: 4px 6px 0 4px;position: absolute;top: 0;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {margin: 0 20px 4px 0;overflow: hidden;line-height: 1.9;}.ace_replace_form {margin-right: 0;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {border-radius: 3px 0 0 3px;background-color: white;color: black;border: 1px solid #cbcbcb;border-right: 0 none;outline: 0;padding: 0;font-size: inherit;margin: 0;line-height: inherit;padding: 0 6px;min-width: 17em;vertical-align: top;min-height: 1.8em;box-sizing: content-box;}.ace_searchbtn {border: 1px solid #cbcbcb;line-height: inherit;display: inline-block;padding: 0 6px;background: #fff;border-right: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;margin: 0;position: relative;color: #666;}.ace_searchbtn:last-child {border-radius: 0 3px 3px 0;border-right: 1px solid #cbcbcb;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn:hover {background-color: #eef1f6;}.ace_searchbtn.prev, .ace_searchbtn.next {padding: 0px 0.7em}.ace_searchbtn.prev:after, .ace_searchbtn.next:after {content: "";border: solid 2px #888;width: 0.5em;height: 0.5em;border-width:  2px 0 0 2px;display:inline-block;transform: rotate(-45deg);}.ace_searchbtn.next:after {border-width: 0 2px 2px 0 ;}.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;font: 16px/16px Arial;padding: 0;height: 14px;width: 14px;top: 9px;right: 7px;position: absolute;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_button {margin-left: 2px;
398cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;box-sizing:    border-box!important;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;clear: both;}.ace_search_counter {float: left;font-family: arial;padding: 0 8px;}',u=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys"),f=999;r.importCssString(o,"ace_searchbox");var l='<div class="ace_search right">    <span action="hide" class="ace_searchbtn_close"></span>    <div class="ace_search_form">        <input class="ace_search_field" placeholder="Search for" spellcheck="false"></input>        <span action="findPrev" class="ace_searchbtn prev"></span>        <span action="findNext" class="ace_searchbtn next"></span>        <span action="findAll" class="ace_searchbtn" title="Alt-Enter">All</span>    </div>    <div class="ace_replace_form">        <input class="ace_search_field" placeholder="Replace with" spellcheck="false"></input>        <span action="replaceAndFindNext" class="ace_searchbtn">Replace</span>        <span action="replaceAll" class="ace_searchbtn">All</span>    </div>    <div class="ace_search_options">        <span action="toggleReplace" class="ace_button" title="Toggle Replace mode"            style="float:left;margin-top:-2px;padding:0 5px;">+</span>        <span class="ace_search_counter"></span>        <span action="toggleRegexpMode" class="ace_button" title="RegExp Search">.*</span>        <span action="toggleCaseSensitive" class="ace_button" title="CaseSensitive Search">Aa</span>        <span action="toggleWholeWords" class="ace_button" title="Whole Word Search">\\b</span>        <span action="searchInSelection" class="ace_button" title="Search In Selection">S</span>    </div></div>'.replace(/> +/g,">"),c=function(e,t,n){var i=r.createElement("div");i.innerHTML=l,this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),r.importCssString(o,"ace_searchbox",e.container)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,"click",function(e){var n=e.target||e.srcElement,r=n.getAttribute("action");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){if(e.editor.getReadOnly())return;e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()}
398,"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){r.setCssClass(this.replaceOption,"checked",this.searchRange),r.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",r.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",s),this.editor._emit("findSearchBox",{match:!s}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,r=0;if(t){var i=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),s=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(s-=e.session.doc.positionToIndex(this.searchRange.start));var o=t.lastIndex=0,u;while(u=t.exec(i)){n++,o=u.index,o<=s&&r++;if(n>f)break;if(!u[0]){t.lastIndex=o+=1;if(o>=i.length)break}}}this.searchCounter.textContent=r+" of "+(n>f?f+"+":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}
398).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){var n=e.searchBox||new c(e);n.show(e.session.getTextRange(),t)}});                (function() {
399                    window.require(["ace/ext/searchbox"], function(m) {
400                        if (typeof module == "object" && typeof exports == "object" && module) {
401                            module.exports = m;
402                        }
403                    });
404                })();
405            
406
407define("ace/snippets/css",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet .\n	${1} {\n		${2}\n	}\nsnippet !\n	 !important\nsnippet bdi:m+\n	-moz-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:m\n	-moz-border-image: ${1};\nsnippet bdrz:m\n	-moz-border-radius: ${1};\nsnippet bxsh:m+\n	-moz-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh:m\n	-moz-box-shadow: ${1};\nsnippet bdi:w+\n	-webkit-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:w\n	-webkit-border-image: ${1};\nsnippet bdrz:w\n	-webkit-border-radius: ${1};\nsnippet bxsh:w+\n	-webkit-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh:w\n	-webkit-box-shadow: ${1};\nsnippet @f\n	@font-face {\n		font-family: ${1};\n		src: url(${2});\n	}\nsnippet @i\n	@import url(${1});\nsnippet @m\n	@media ${1:print} {\n		${2}\n	}\nsnippet bg+\n	background: #${1:FFF} url(${2}) ${3:0} ${4:0} ${5:no-repeat};\nsnippet bga\n	background-attachment: ${1};\nsnippet bga:f\n	background-attachment: fixed;\nsnippet bga:s\n	background-attachment: scroll;\nsnippet bgbk\n	background-break: ${1};\nsnippet bgbk:bb\n	background-break: bounding-box;\nsnippet bgbk:c\n	background-break: continuous;\nsnippet bgbk:eb\n	background-break: each-box;\nsnippet bgcp\n	background-clip: ${1};\nsnippet bgcp:bb\n	background-clip: border-box;\nsnippet bgcp:cb\n	background-clip: content-box;\nsnippet bgcp:nc\n	background-clip: no-clip;\nsnippet bgcp:pb\n	background-clip: padding-box;\nsnippet bgc\n	background-color: #${1:FFF};\nsnippet bgc:t\n	background-color: transparent;\nsnippet bgi\n	background-image: url(${1});\nsnippet bgi:n\n	background-image: none;\nsnippet bgo\n	background-origin: ${1};\nsnippet bgo:bb\n	background-origin: border-box;\nsnippet bgo:cb\n	background-origin: content-box;\nsnippet bgo:pb\n	background-origin: padding-box;\nsnippet bgpx\n	background-position-x: ${1};\nsnippet bgpy\n	background-position-y: ${1};\nsnippet bgp\n	background-position: ${1:0} ${2:0};\nsnippet bgr\n	background-repeat: ${1};\nsnippet bgr:n\n	background-repeat: no-repeat;\nsnippet bgr:x\n	background-repeat: repeat-x;\nsnippet bgr:y\n	background-repeat: repeat-y;\nsnippet bgr:r\n	background-repeat: repeat;\nsnippet bgz\n	background-size: ${1};\nsnippet bgz:a\n	background-size: auto;\nsnippet bgz:ct\n	background-size: contain;\nsnippet bgz:cv\n	background-size: cover;\nsnippet bg\n	background: ${1};\nsnippet bg:ie\n	filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1}',sizingMethod='${2:crop}');\nsnippet bg:n\n	background: none;\nsnippet bd+\n	border: ${1:1px} ${2:solid} #${3:000};\nsnippet bdb+\n	border-bottom: ${1:1px} ${2:solid} #${3:000};\nsnippet bdbc\n	border-bottom-color: #${1:000};\nsnippet bdbi\n	border-bottom-image: url(${1});\nsnippet bdbi:n\n	border-bottom-image: none;\nsnippet bdbli\n	border-bottom-left-image: url(${1});\nsnippet bdbli:c\n	border-bottom-left-image: continue;\nsnippet bdbli:n\n	border-bottom-left-image: none;\nsnippet bdblrz\n	border-bottom-left-radius: ${1};\nsnippet bdbri\n	border-bottom-right-image: url(${1});\nsnippet bdbri:c\n	border-bottom-right-image: continue;\nsnippet bdbri:n\n	border-bottom-right-image: none;\nsnippet bdbrrz\n	border-bottom-right-radius: ${1};\nsnippet bdbs\n	border-bottom-style: ${1};\nsnippet bdbs:n\n	border-bottom-style: none;\nsnippet bdbw\n	border-bottom-width: ${1};\nsnippet bdb\n	border-bottom: ${1};\nsnippet bdb:n\n	border-bottom: none;\nsnippet bdbk\n	border-break: ${1};\nsnippet bdbk:c\n	border-break: close;\nsnippet bdcl\n	border-collapse: ${1};\nsnippet bdcl:c\n	border-collapse: collapse;\nsnippet bdcl:s\n	border-collapse: separate;\nsnippet bdc\n	border-color: #${1:000};\nsnippet bdci\n	border-corner-image: url(${1});\nsnippet bdci:c\n	border-corner-image: continue;\nsnippet bdci:n\n	border-corner-image: none;\nsnippet bdf\n	border-fit: ${1};\nsnippet bdf:c\n	border-fit: clip;\nsnippet bdf:of\n	border-fit: overwrite;\nsnippet bdf:ow\n	border-fit: overwrite;\nsnippet bdf:r\n	border-fit: repeat;\nsnippet bdf:sc\n	border-fit: scale;\nsnippet bdf:sp\n	border-fit: space;\nsnippet bdf:st\n	border-fit: stretch;\nsnippet bdi\n	border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:n\n	border-image: none;\nsnippet bdl+\n	border-left: ${1:1px} ${2:solid} #${3:000};\nsnippet bdlc\n	border-left-color: #${1:000};\nsnippet bdli\n	border-left-image: url(${1});\nsnippet bdli:n\n	border-left-image: none;\nsnippet bdls\n	border-left-style: ${1};\nsnippet bdls:n\n	border-left-style: none;\nsnippet bdlw\n	border-left-width: ${1};\nsnippet bdl\n	border-left: ${1};\nsnippet bdl:n\n	border-left: none;\nsnippet bdlt\n	border-length: ${1};\nsnippet bdlt:a\n	border-length: auto;\nsnippet bdrz\n	border-radius: ${1};\nsnippet bdr+\n	border-right: ${1:1px} ${2:solid} #${3:000};\nsnippet bdrc\n	border-right-color: #${1:000};\nsnippet bdri\n	border-right-image: url(${1});\nsnippet bdri:n\n	border-right-image: none;\nsnippet bdrs\n	border-right-style: ${1};\nsnippet bdrs:n\n	border-right-style: none;\nsnippet bdrw\n	border-right-width: ${1};\nsnippet bdr\n	border-right: ${1};
407\nsnippet bdr:n\n	border-right: none;\nsnippet bdsp\n	border-spacing: ${1};\nsnippet bds\n	border-style: ${1};\nsnippet bds:ds\n	border-style: dashed;\nsnippet bds:dtds\n	border-style: dot-dash;\nsnippet bds:dtdtds\n	border-style: dot-dot-dash;\nsnippet bds:dt\n	border-style: dotted;\nsnippet bds:db\n	border-style: double;\nsnippet bds:g\n	border-style: groove;\nsnippet bds:h\n	border-style: hidden;\nsnippet bds:i\n	border-style: inset;\nsnippet bds:n\n	border-style: none;\nsnippet bds:o\n	border-style: outset;\nsnippet bds:r\n	border-style: ridge;\nsnippet bds:s\n	border-style: solid;\nsnippet bds:w\n	border-style: wave;\nsnippet bdt+\n	border-top: ${1:1px} ${2:solid} #${3:000};\nsnippet bdtc\n	border-top-color: #${1:000};\nsnippet bdti\n	border-top-image: url(${1});\nsnippet bdti:n\n	border-top-image: none;\nsnippet bdtli\n	border-top-left-image: url(${1});\nsnippet bdtli:c\n	border-corner-image: continue;\nsnippet bdtli:n\n	border-corner-image: none;\nsnippet bdtlrz\n	border-top-left-radius: ${1};\nsnippet bdtri\n	border-top-right-image: url(${1});\nsnippet bdtri:c\n	border-top-right-image: continue;\nsnippet bdtri:n\n	border-top-right-image: none;\nsnippet bdtrrz\n	border-top-right-radius: ${1};\nsnippet bdts\n	border-top-style: ${1};\nsnippet bdts:n\n	border-top-style: none;\nsnippet bdtw\n	border-top-width: ${1};\nsnippet bdt\n	border-top: ${1};\nsnippet bdt:n\n	border-top: none;\nsnippet bdw\n	border-width: ${1};\nsnippet bd\n	border: ${1};\nsnippet bd:n\n	border: none;\nsnippet b\n	bottom: ${1};\nsnippet b:a\n	bottom: auto;\nsnippet bxsh+\n	box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh\n	box-shadow: ${1};\nsnippet bxsh:n\n	box-shadow: none;\nsnippet bxz\n	box-sizing: ${1};\nsnippet bxz:bb\n	box-sizing: border-box;\nsnippet bxz:cb\n	box-sizing: content-box;\nsnippet cps\n	caption-side: ${1};\nsnippet cps:b\n	caption-side: bottom;\nsnippet cps:t\n	caption-side: top;\nsnippet cl\n	clear: ${1};\nsnippet cl:b\n	clear: both;\nsnippet cl:l\n	clear: left;\nsnippet cl:n\n	clear: none;\nsnippet cl:r\n	clear: right;\nsnippet cp\n	clip: ${1};\nsnippet cp:a\n	clip: auto;\nsnippet cp:r\n	clip: rect(${1:0} ${2:0} ${3:0} ${4:0});\nsnippet c\n	color: #${1:000};\nsnippet ct\n	content: ${1};\nsnippet ct:a\n	content: attr(${1});\nsnippet ct:cq\n	content: close-quote;\nsnippet ct:c\n	content: counter(${1});\nsnippet ct:cs\n	content: counters(${1});\nsnippet ct:ncq\n	content: no-close-quote;\nsnippet ct:noq\n	content: no-open-quote;\nsnippet ct:n\n	content: normal;\nsnippet ct:oq\n	content: open-quote;\nsnippet coi\n	counter-increment: ${1};\nsnippet cor\n	counter-reset: ${1};\nsnippet cur\n	cursor: ${1};\nsnippet cur:a\n	cursor: auto;\nsnippet cur:c\n	cursor: crosshair;\nsnippet cur:d\n	cursor: default;\nsnippet cur:ha\n	cursor: hand;\nsnippet cur:he\n	cursor: help;\nsnippet cur:m\n	cursor: move;\nsnippet cur:p\n	cursor: pointer;\nsnippet cur:t\n	cursor: text;\nsnippet d\n	display: ${1};\nsnippet d:mib\n	display: -moz-inline-box;\nsnippet d:mis\n	display: -moz-inline-stack;\nsnippet d:b\n	display: block;\nsnippet d:cp\n	display: compact;\nsnippet d:ib\n	display: inline-block;\nsnippet d:itb\n	display: inline-table;\nsnippet d:i\n	display: inline;\nsnippet d:li\n	display: list-item;\nsnippet d:n\n	display: none;\nsnippet d:ri\n	display: run-in;\nsnippet d:tbcp\n	display: table-caption;\nsnippet d:tbc\n	display: table-cell;\nsnippet d:tbclg\n	display: table-column-group;\nsnippet d:tbcl\n	display: table-column;\nsnippet d:tbfg\n	display: table-footer-group;\nsnippet d:tbhg\n	display: table-header-group;\nsnippet d:tbrg\n	display: table-row-group;\nsnippet d:tbr\n	display: table-row;\nsnippet d:tb\n	display: table;\nsnippet ec\n	empty-cells: ${1};\nsnippet ec:h\n	empty-cells: hide;\nsnippet ec:s\n	empty-cells: show;\nsnippet exp\n	expression()\nsnippet fl\n	float: ${1};\nsnippet fl:l\n	float: left;\nsnippet fl:n\n	float: none;\nsnippet fl:r\n	float: right;\nsnippet f+\n	font: ${1:1em} ${2:Arial},${3:sans-serif};\nsnippet fef\n	font-effect: ${1};\nsnippet fef:eb\n	font-effect: emboss;\nsnippet fef:eg\n	font-effect: engrave;\nsnippet fef:n\n	font-effect: none;\nsnippet fef:o\n	font-effect: outline;\nsnippet femp\n	font-emphasize-position: ${1};\nsnippet femp:a\n	font-emphasize-position: after;\nsnippet femp:b\n	font-emphasize-position: before;\nsnippet fems\n	font-emphasize-style: ${1};\nsnippet fems:ac\n	font-emphasize-style: accent;
407\nsnippet fems:c\n	font-emphasize-style: circle;\nsnippet fems:ds\n	font-emphasize-style: disc;\nsnippet fems:dt\n	font-emphasize-style: dot;\nsnippet fems:n\n	font-emphasize-style: none;\nsnippet fem\n	font-emphasize: ${1};\nsnippet ff\n	font-family: ${1};\nsnippet ff:c\n	font-family: ${1:'Monotype Corsiva','Comic Sans MS'},cursive;\nsnippet ff:f\n	font-family: ${1:Capitals,Impact},fantasy;\nsnippet ff:m\n	font-family: ${1:Monaco,'Courier New'},monospace;\nsnippet ff:ss\n	font-family: ${1:Helvetica,Arial},sans-serif;\nsnippet ff:s\n	font-family: ${1:Georgia,'Times New Roman'},serif;\nsnippet fza\n	font-size-adjust: ${1};\nsnippet fza:n\n	font-size-adjust: none;\nsnippet fz\n	font-size: ${1};\nsnippet fsm\n	font-smooth: ${1};\nsnippet fsm:aw\n	font-smooth: always;\nsnippet fsm:a\n	font-smooth: auto;\nsnippet fsm:n\n	font-smooth: never;\nsnippet fst\n	font-stretch: ${1};\nsnippet fst:c\n	font-stretch: condensed;\nsnippet fst:e\n	font-stretch: expanded;\nsnippet fst:ec\n	font-stretch: extra-condensed;\nsnippet fst:ee\n	font-stretch: extra-expanded;\nsnippet fst:n\n	font-stretch: normal;\nsnippet fst:sc\n	font-stretch: semi-condensed;\nsnippet fst:se\n	font-stretch: semi-expanded;\nsnippet fst:uc\n	font-stretch: ultra-condensed;\nsnippet fst:ue\n	font-stretch: ultra-expanded;\nsnippet fs\n	font-style: ${1};\nsnippet fs:i\n	font-style: italic;\nsnippet fs:n\n	font-style: normal;\nsnippet fs:o\n	font-style: oblique;\nsnippet fv\n	font-variant: ${1};\nsnippet fv:n\n	font-variant: normal;\nsnippet fv:sc\n	font-variant: small-caps;\nsnippet fw\n	font-weight: ${1};\nsnippet fw:b\n	font-weight: bold;\nsnippet fw:br\n	font-weight: bolder;\nsnippet fw:lr\n	font-weight: lighter;\nsnippet fw:n\n	font-weight: normal;\nsnippet f\n	font: ${1};\nsnippet h\n	height: ${1};\nsnippet h:a\n	height: auto;\nsnippet l\n	left: ${1};\nsnippet l:a\n	left: auto;\nsnippet lts\n	letter-spacing: ${1};\nsnippet lh\n	line-height: ${1};\nsnippet lisi\n	list-style-image: url(${1});\nsnippet lisi:n\n	list-style-image: none;\nsnippet lisp\n	list-style-position: ${1};\nsnippet lisp:i\n	list-style-position: inside;\nsnippet lisp:o\n	list-style-position: outside;\nsnippet list\n	list-style-type: ${1};\nsnippet list:c\n	list-style-type: circle;\nsnippet list:dclz\n	list-style-type: decimal-leading-zero;\nsnippet list:dc\n	list-style-type: decimal;\nsnippet list:d\n	list-style-type: disc;\nsnippet list:lr\n	list-style-type: lower-roman;\nsnippet list:n\n	list-style-type: none;\nsnippet list:s\n	list-style-type: square;\nsnippet list:ur\n	list-style-type: upper-roman;\nsnippet lis\n	list-style: ${1};\nsnippet lis:n\n	list-style: none;\nsnippet mb\n	margin-bottom: ${1};\nsnippet mb:a\n	margin-bottom: auto;\nsnippet ml\n	margin-left: ${1};\nsnippet ml:a\n	margin-left: auto;\nsnippet mr\n	margin-right: ${1};\nsnippet mr:a\n	margin-right: auto;\nsnippet mt\n	margin-top: ${1};\nsnippet mt:a\n	margin-top: auto;\nsnippet m\n	margin: ${1};\nsnippet m:4\n	margin: ${1:0} ${2:0} ${3:0} ${4:0};\nsnippet m:3\n	margin: ${1:0} ${2:0} ${3:0};\nsnippet m:2\n	margin: ${1:0} ${2:0};\nsnippet m:0\n	margin: 0;\nsnippet m:a\n	margin: auto;\nsnippet mah\n	max-height: ${1};\nsnippet mah:n\n	max-height: none;\nsnippet maw\n	max-width: ${1};\nsnippet maw:n\n	max-width: none;\nsnippet mih\n	min-height: ${1};\nsnippet miw\n	min-width: ${1};\nsnippet op\n	opacity: ${1};\nsnippet op:ie\n	filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100});\nsnippet op:ms\n	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100})';\nsnippet orp\n	orphans: ${1};\nsnippet o+\n	outline: ${1:1px} ${2:solid} #${3:000};\nsnippet oc\n	outline-color: ${1:#000};\nsnippet oc:i\n	outline-color: invert;\nsnippet oo\n	outline-offset: ${1};\nsnippet os\n	outline-style: ${1};\nsnippet ow\n	outline-width: ${1};\nsnippet o\n	outline: ${1};\nsnippet o:n\n	outline: none;\nsnippet ovs\n	overflow-style: ${1};\nsnippet ovs:a\n	overflow-style: auto;\nsnippet ovs:mq\n	overflow-style: marquee;\nsnippet ovs:mv\n	overflow-style: move;\nsnippet ovs:p\n	overflow-style: panner;\nsnippet ovs:s\n	overflow-style: scrollbar;\nsnippet ovx\n	overflow-x: ${1};\nsnippet ovx:a\n	overflow-x: auto;\nsnippet ovx:h\n	overflow-x: hidden;\nsnippet ovx:s\n	overflow-x: scroll;\nsnippet ovx:v\n	overflow-x: visible;\nsnippet ovy\n	overflow-y: ${1};\nsnippet ovy:a\n	overflow-y: auto;\nsnippet ovy:h\n	overflow-y: hidden;
407\nsnippet ovy:s\n	overflow-y: scroll;\nsnippet ovy:v\n	overflow-y: visible;\nsnippet ov\n	overflow: ${1};\nsnippet ov:a\n	overflow: auto;\nsnippet ov:h\n	overflow: hidden;\nsnippet ov:s\n	overflow: scroll;\nsnippet ov:v\n	overflow: visible;\nsnippet pb\n	padding-bottom: ${1};\nsnippet pl\n	padding-left: ${1};\nsnippet pr\n	padding-right: ${1};\nsnippet pt\n	padding-top: ${1};\nsnippet p\n	padding: ${1};\nsnippet p:4\n	padding: ${1:0} ${2:0} ${3:0} ${4:0};\nsnippet p:3\n	padding: ${1:0} ${2:0} ${3:0};\nsnippet p:2\n	padding: ${1:0} ${2:0};\nsnippet p:0\n	padding: 0;\nsnippet pgba\n	page-break-after: ${1};\nsnippet pgba:aw\n	page-break-after: always;\nsnippet pgba:a\n	page-break-after: auto;\nsnippet pgba:l\n	page-break-after: left;\nsnippet pgba:r\n	page-break-after: right;\nsnippet pgbb\n	page-break-before: ${1};\nsnippet pgbb:aw\n	page-break-before: always;\nsnippet pgbb:a\n	page-break-before: auto;\nsnippet pgbb:l\n	page-break-before: left;\nsnippet pgbb:r\n	page-break-before: right;\nsnippet pgbi\n	page-break-inside: ${1};\nsnippet pgbi:a\n	page-break-inside: auto;\nsnippet pgbi:av\n	page-break-inside: avoid;\nsnippet pos\n	position: ${1};\nsnippet pos:a\n	position: absolute;\nsnippet pos:f\n	position: fixed;\nsnippet pos:r\n	position: relative;\nsnippet pos:s\n	position: static;\nsnippet q\n	quotes: ${1};\nsnippet q:en\n	quotes: '\\201C' '\\201D' '\\2018' '\\2019';\nsnippet q:n\n	quotes: none;\nsnippet q:ru\n	quotes: '\\00AB' '\\00BB' '\\201E' '\\201C';\nsnippet rz\n	resize: ${1};\nsnippet rz:b\n	resize: both;\nsnippet rz:h\n	resize: horizontal;\nsnippet rz:n\n	resize: none;\nsnippet rz:v\n	resize: vertical;\nsnippet r\n	right: ${1};\nsnippet r:a\n	right: auto;\nsnippet tbl\n	table-layout: ${1};\nsnippet tbl:a\n	table-layout: auto;\nsnippet tbl:f\n	table-layout: fixed;\nsnippet tal\n	text-align-last: ${1};\nsnippet tal:a\n	text-align-last: auto;\nsnippet tal:c\n	text-align-last: center;\nsnippet tal:l\n	text-align-last: left;\nsnippet tal:r\n	text-align-last: right;\nsnippet ta\n	text-align: ${1};\nsnippet ta:c\n	text-align: center;\nsnippet ta:l\n	text-align: left;\nsnippet ta:r\n	text-align: right;\nsnippet td\n	text-decoration: ${1};\nsnippet td:l\n	text-decoration: line-through;\nsnippet td:n\n	text-decoration: none;\nsnippet td:o\n	text-decoration: overline;\nsnippet td:u\n	text-decoration: underline;\nsnippet te\n	text-emphasis: ${1};\nsnippet te:ac\n	text-emphasis: accent;
407\nsnippet te:a\n	text-emphasis: after;\nsnippet te:b\n	text-emphasis: before;\nsnippet te:c\n	text-emphasis: circle;\nsnippet te:ds\n	text-emphasis: disc;\nsnippet te:dt\n	text-emphasis: dot;\nsnippet te:n\n	text-emphasis: none;\nsnippet th\n	text-height: ${1};\nsnippet th:a\n	text-height: auto;\nsnippet th:f\n	text-height: font-size;\nsnippet th:m\n	text-height: max-size;\nsnippet th:t\n	text-height: text-size;\nsnippet ti\n	text-indent: ${1};\nsnippet ti:-\n	text-indent: -9999px;\nsnippet tj\n	text-justify: ${1};\nsnippet tj:a\n	text-justify: auto;\nsnippet tj:d\n	text-justify: distribute;\nsnippet tj:ic\n	text-justify: inter-cluster;\nsnippet tj:ii\n	text-justify: inter-ideograph;\nsnippet tj:iw\n	text-justify: inter-word;\nsnippet tj:k\n	text-justify: kashida;\nsnippet tj:t\n	text-justify: tibetan;\nsnippet to+\n	text-outline: ${1:0} ${2:0} #${3:000};\nsnippet to\n	text-outline: ${1};\nsnippet to:n\n	text-outline: none;\nsnippet tr\n	text-replace: ${1};\nsnippet tr:n\n	text-replace: none;\nsnippet tsh+\n	text-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet tsh\n	text-shadow: ${1};\nsnippet tsh:n\n	text-shadow: none;\nsnippet tt\n	text-transform: ${1};\nsnippet tt:c\n	text-transform: capitalize;\nsnippet tt:l\n	text-transform: lowercase;\nsnippet tt:n\n	text-transform: none;\nsnippet tt:u\n	text-transform: uppercase;\nsnippet tw\n	text-wrap: ${1};\nsnippet tw:no\n	text-wrap: none;\nsnippet tw:n\n	text-wrap: normal;\nsnippet tw:s\n	text-wrap: suppress;\nsnippet tw:u\n	text-wrap: unrestricted;\nsnippet t\n	top: ${1};\nsnippet t:a\n	top: auto;\nsnippet va\n	vertical-align: ${1};\nsnippet va:bl\n	vertical-align: baseline;\nsnippet va:b\n	vertical-align: bottom;\nsnippet va:m\n	vertical-align: middle;\nsnippet va:sub\n	vertical-align: sub;\nsnippet va:sup\n	vertical-align: super;\nsnippet va:tb\n	vertical-align: text-bottom;\nsnippet va:tt\n	vertical-align: text-top;\nsnippet va:t\n	vertical-align: top;\nsnippet v\n	visibility: ${1};\nsnippet v:c\n	visibility: collapse;\nsnippet v:h\n	visibility: hidden;\nsnippet v:v\n	visibility: visible;\nsnippet whsc\n	white-space-collapse: ${1};\nsnippet whsc:ba\n	white-space-collapse: break-all;\nsnippet whsc:bs\n	white-space-collapse: break-strict;\nsnippet whsc:k\n	white-space-collapse: keep-all;\nsnippet whsc:l\n	white-space-collapse: loose;\nsnippet whsc:n\n	white-space-collapse: normal;\nsnippet whs\n	white-space: ${1};\nsnippet whs:n\n	white-space: normal;\nsnippet whs:nw\n	white-space: nowrap;\nsnippet whs:pl\n	white-space: pre-line;\nsnippet whs:pw\n	white-space: pre-wrap;\nsnippet whs:p\n	white-space: pre;\nsnippet wid\n	widows: ${1};\nsnippet w\n	width: ${1};\nsnippet w:a\n	width: auto;\nsnippet wob\n	word-break: ${1};\nsnippet wob:ba\n	word-break: break-all;\nsnippet wob:bs\n	word-break: break-strict;\nsnippet wob:k\n	word-break: keep-all;\nsnippet wob:l\n	word-break: loose;\nsnippet wob:n\n	word-break: normal;\nsnippet wos\n	word-spacing: ${1};\nsnippet wow\n	word-wrap: ${1};\nsnippet wow:no\n	word-wrap: none;\nsnippet wow:n\n	word-wrap: normal;\nsnippet wow:s\n	word-wrap: suppress;\nsnippet wow:u\n	word-wrap: unrestricted;\nsnippet z\n	z-index: ${1};\nsnippet z:a\n	z-index: auto;\nsnippet zoo\n	zoom: 1;\n",t.scope="css"});                (function() {
408                    window.require(["ace/snippets/css"], function(m) {
409                        if (typeof module == "object" && typeof exports == "object" && module) {
410                            module.exports = m;
411                        }
412                    });
413                })();
414            
415
416define("ace/snippets/html",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Some useful Unicode entities\n# Non-Breaking Space\nsnippet nbs\n	&nbsp;\n# \u2190\nsnippet left\n	&#x2190;\n# \u2192\nsnippet right\n	&#x2192;\n# \u2191\nsnippet up\n	&#x2191;\n# \u2193\nsnippet down\n	&#x2193;\n# \u21a9\nsnippet return\n	&#x21A9;\n# \u21e4\nsnippet backtab\n	&#x21E4;\n# \u21e5\nsnippet tab\n	&#x21E5;\n# \u21e7\nsnippet shift\n	&#x21E7;\n# \u2303\nsnippet ctrl\n	&#x2303;\n# \u2305\nsnippet enter\n	&#x2305;\n# \u2318\nsnippet cmd\n	&#x2318;
416\n# \u2325\nsnippet option\n	&#x2325;\n# \u2326\nsnippet delete\n	&#x2326;\n# \u232b\nsnippet backspace\n	&#x232B;\n# \u238b\nsnippet esc\n	&#x238B;\n# Generic Doctype\nsnippet doctype HTML 4.01 Strict\n	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n	"http://www.w3.org/TR/html4/strict.dtd">\nsnippet doctype HTML 4.01 Transitional\n	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\n	"http://www.w3.org/TR/html4/loose.dtd">\nsnippet doctype HTML 5\n	<!DOCTYPE HTML>\nsnippet doctype XHTML 1.0 Frameset\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\nsnippet doctype XHTML 1.0 Strict\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\nsnippet doctype XHTML 1.0 Transitional\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\nsnippet doctype XHTML 1.1\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\n	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n# HTML Doctype 4.01 Strict\nsnippet docts\n	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n	"http://www.w3.org/TR/html4/strict.dtd">\n# HTML Doctype 4.01 Transitional\nsnippet doct\n	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\n	"http://www.w3.org/TR/html4/loose.dtd">\n# HTML Doctype 5\nsnippet doct5\n	<!DOCTYPE html>\n# XHTML Doctype 1.0 Frameset\nsnippet docxf\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">\n# XHTML Doctype 1.0 Strict\nsnippet docxs\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n# XHTML Doctype 1.0 Transitional\nsnippet docxt\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n# XHTML Doctype 1.1\nsnippet docx\n	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\n	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n# html5shiv\nsnippet html5shiv\n	<!--[if lte IE 8]>\n		<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"><\/script>\n	<![endif]-->\nsnippet html5printshiv\n	<!--[if lte IE 8]>\n		<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"><\/script>\n	<![endif]-->\n# Attributes\nsnippet attr\n	${1:attribute}="${2:property}"\nsnippet attr+\n	${1:attribute}="${2:property}" attr+${3}\nsnippet .\n	class="${1}"${2}\nsnippet #\n	id="${1}"${2}\nsnippet alt\n	alt="${1}"${2}\nsnippet charset\n	charset="${1:utf-8}"${2}
416\nsnippet data\n	data-${1}="${2:$1}"${3}\nsnippet for\n	for="${1}"${2}\nsnippet height\n	height="${1}"${2}\nsnippet href\n	href="${1:#}"${2}\nsnippet lang\n	lang="${1:en}"${2}\nsnippet media\n	media="${1}"${2}\nsnippet name\n	name="${1}"${2}\nsnippet rel\n	rel="${1}"${2}\nsnippet scope\n	scope="${1:row}"${2}\nsnippet src\n	src="${1}"${2}\nsnippet title=\n	title="${1}"${2}\nsnippet type\n	type="${1}"${2}\nsnippet value\n	value="${1}"${2}\nsnippet width\n	width="${1}"${2}\n# Elements\nsnippet a\n	<a href="${1:#}">${2:$1}</a>\nsnippet a.\n	<a class="${1}" href="${2:#}">${3:$1}</a>\nsnippet a#\n	<a id="${1}" href="${2:#}">${3:$1}</a>\nsnippet a:ext\n	<a href="http://${1:example.com}">${2:$1}</a>\nsnippet a:mail\n	<a href="mailto:${1:[email protected]}?subject=${2:feedback}">${3:email me}</a>\nsnippet abbr\n	<abbr title="${1}">${2}</abbr>\nsnippet address\n	<address>\n		${1}\n	</address>\nsnippet area\n	<area shape="${1:rect}" coords="${2}" href="${3}" alt="${4}" />\nsnippet area+\n	<area shape="${1:rect}" coords="${2}" href="${3}" alt="${4}" />\n	area+${5}\nsnippet area:c\n	<area shape="circle" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:d\n	<area shape="default" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:p\n	<area shape="poly" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:r\n	<area shape="rect" coords="${1}" href="${2}" alt="${3}" />\nsnippet article\n	<article>\n		${1}\n	</article>\nsnippet article.\n	<article class="${1}">\n		${2}\n	</article>\nsnippet article#\n	<article id="${1}">\n		${2}\n	</article>\nsnippet aside\n	<aside>\n		${1}\n	</aside>\nsnippet aside.\n	<aside class="${1}">\n		${2}\n	</aside>\nsnippet aside#\n	<aside id="${1}">\n		${2}\n	</aside>\nsnippet audio\n	<audio src="${1}>${2}</audio>\nsnippet b\n	<b>${1}</b>\nsnippet base\n	<base href="${1}" target="${2}" />\nsnippet bdi\n	<bdi>${1}</bdo>\nsnippet bdo\n	<bdo dir="${1}">${2}</bdo>\nsnippet bdo:l\n	<bdo dir="ltr">${1}</bdo>\nsnippet bdo:r\n	<bdo dir="rtl">${1}</bdo>\nsnippet blockquote\n	<blockquote>\n		${1}\n	</blockquote>\nsnippet body\n	<body>\n		${1}\n	</body>\nsnippet br\n	<br />${1}\nsnippet button\n	<button type="${1:submit}">${2}</button>\nsnippet button.\n	<button class="${1:button}" type="${2:submit}">${3}</button>\nsnippet button#\n	<button id="${1}" type="${2:submit}">${3}</button>\nsnippet button:s\n	<button type="submit">${1}</button>\nsnippet button:r\n	<button type="reset">${1}</button>\nsnippet canvas\n	<canvas>\n		${1}\n	</canvas>\nsnippet caption\n	<caption>${1}</caption>\nsnippet cite\n	<cite>${1}</cite>\nsnippet code\n	<code>${1}</code>\nsnippet col\n	<col />${1}\nsnippet col+\n	<col />\n	col+${1}\nsnippet colgroup\n	<colgroup>\n		${1}\n	</colgroup>\nsnippet colgroup+\n	<colgroup>\n		<col />\n		col+${1}\n	</colgroup>\nsnippet command\n	<command type="command" label="${1}" icon="${2}" />\nsnippet command:c\n	<command type="checkbox" label="${1}" icon="${2}" />\nsnippet command:r\n	<command type="radio" radiogroup="${1}" label="${2}" icon="${3}" />\nsnippet datagrid\n	<datagrid>\n		${1}\n	</datagrid>\nsnippet datalist\n	<datalist>\n		${1}\n	</datalist>\nsnippet datatemplate\n	<datatemplate>\n		${1}\n	</datatemplate>\nsnippet dd\n	<dd>${1}</dd>\nsnippet dd.\n	<dd class="${1}">${2}</dd>\nsnippet dd#\n	<dd id="${1}">${2}</dd>\nsnippet del\n	<del>${1}</del>\nsnippet details\n	<details>${1}</details>\nsnippet dfn\n	<dfn>${1}</dfn>\nsnippet dialog\n	<dialog>\n		${1}\n	</dialog>\nsnippet div\n	<div>\n		${1}\n	</div>\nsnippet div.\n	<div class="${1}">\n		${2}\n	</div>\nsnippet div#\n	<div id="${1}">\n		${2}\n	</div>\nsnippet dl\n	<dl>\n		${1}\n	</dl>\nsnippet dl.\n	<dl class="${1}">\n		${2}\n	</dl>\nsnippet dl#\n	<dl id="${1}">\n		${2}\n	</dl>\nsnippet dl+\n	<dl>\n		<dt>${1}</dt>\n		<dd>${2}</dd>\n		dt+${3}\n	</dl>\nsnippet dt\n	<dt>${1}</dt>\nsnippet dt.\n	<dt class="${1}">${2}</dt>\nsnippet dt#\n	<dt id="${1}">${2}</dt>\nsnippet dt+\n	<dt>${1}</dt>\n	<dd>${2}</dd>\n	dt+${3}\nsnippet em\n	<em>${1}</em>\nsnippet embed\n	<embed src=${1} type="${2} />\nsnippet fieldset\n	<fieldset>\n		${1}\n	</fieldset>\nsnippet fieldset.\n	<fieldset class="${1}">\n		${2}\n	</fieldset>
416\nsnippet fieldset#\n	<fieldset id="${1}">\n		${2}\n	</fieldset>\nsnippet fieldset+\n	<fieldset>\n		<legend><span>${1}</span></legend>\n		${2}\n	</fieldset>\n	fieldset+${3}\nsnippet figcaption\n	<figcaption>${1}</figcaption>\nsnippet figure\n	<figure>${1}</figure>\nsnippet footer\n	<footer>\n		${1}\n	</footer>\nsnippet footer.\n	<footer class="${1}">\n		${2}\n	</footer>\nsnippet footer#\n	<footer id="${1}">\n		${2}\n	</footer>\nsnippet form\n	<form action="${1}" method="${2:get}" accept-charset="utf-8">\n		${3}\n	</form>\nsnippet form.\n	<form class="${1}" action="${2}" method="${3:get}" accept-charset="utf-8">\n		${4}\n	</form>\nsnippet form#\n	<form id="${1}" action="${2}" method="${3:get}" accept-charset="utf-8">\n		${4}\n	</form>\nsnippet h1\n	<h1>${1}</h1>\nsnippet h1.\n	<h1 class="${1}">${2}</h1>\nsnippet h1#\n	<h1 id="${1}">${2}</h1>\nsnippet h2\n	<h2>${1}</h2>\nsnippet h2.\n	<h2 class="${1}">${2}</h2>\nsnippet h2#\n	<h2 id="${1}">${2}</h2>\nsnippet h3\n	<h3>${1}</h3>\nsnippet h3.\n	<h3 class="${1}">${2}</h3>\nsnippet h3#\n	<h3 id="${1}">${2}</h3>\nsnippet h4\n	<h4>${1}</h4>\nsnippet h4.\n	<h4 class="${1}">${2}</h4>\nsnippet h4#\n	<h4 id="${1}">${2}</h4>\nsnippet h5\n	<h5>${1}</h5>\nsnippet h5.\n	<h5 class="${1}">${2}</h5>\nsnippet h5#\n	<h5 id="${1}">${2}</h5>\nsnippet h6\n	<h6>${1}</h6>\nsnippet h6.\n	<h6 class="${1}">${2}</h6>\nsnippet h6#\n	<h6 id="${1}">${2}</h6>\nsnippet head\n	<head>\n		<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n\n		<title>${1:`substitute(Filename(\'\', \'Page Title\'), \'^.\', \'\\u&\', \'\')`}</title>\n		${2}\n	</head>\nsnippet header\n	<header>\n		${1}\n	</header>\nsnippet header.\n	<header class="${1}">\n		${2}\n	</header>\nsnippet header#\n	<header id="${1}">\n		${2}\n	</header>\nsnippet hgroup\n	<hgroup>\n		${1}\n	</hgroup>\nsnippet hgroup.\n	<hgroup class="${1}>\n		${2}\n	</hgroup>\nsnippet hr\n	<hr />${1}\nsnippet html\n	<html>\n	${1}\n	</html>\nsnippet xhtml\n	<html xmlns="http://www.w3.org/1999/xhtml">\n	${1}\n	</html>\nsnippet html5\n	<!DOCTYPE html>\n	<html>\n		<head>\n			<meta http-equiv="content-type" content="text/html; charset=utf-8" />\n			<title>${1:`substitute(Filename(\'\', \'Page Title\'), \'^.\', \'\\u&\', \'\')`}</title>\n			${2:meta}\n		</head>\n		<body>\n			${3:body}\n		</body>\n	</html>\nsnippet xhtml5\n	<!DOCTYPE html>\n	<html xmlns="http://www.w3.org/1999/xhtml">\n		<head>\n			<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />\n			<title>${1:`substitute(Filename(\'\', \'Page Title\'), \'^.\', \'\\u&\', \'\')`}</title>\n			${2:meta}\n		</head>\n		<body>\n			${3:body}\n		</body>\n	</html>\nsnippet i\n	<i>${1}</i>\nsnippet iframe\n	<iframe src="${1}" frameborder="0"></iframe>${2}\nsnippet iframe.\n	<iframe class="${1}" src="${2}" frameborder="0"></iframe>${3}\nsnippet iframe#\n	<iframe id="${1}" src="${2}" frameborder="0"></iframe>${3}\nsnippet img\n	<img src="${1}" alt="${2}" />${3}\nsnippet img.\n	<img class="${1}" src="${2}" alt="${3}" />${4}\nsnippet img#\n	<img id="${1}" src="${2}" alt="${3}" />${4}\nsnippet input\n	<input type="${1:text/submit/hidden/button/image}" name="${2}" id="${3:$2}" value="${4}" />${5}\nsnippet input.\n	<input class="${1}" type="${2:text/submit/hidden/button/image}" name="${3}" id="${4:$3}" value="${5}" />${6}\nsnippet input:text\n	<input type="text" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:submit\n	<input type="submit" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:hidden\n	<input type="hidden" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:button\n	<input type="button" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:image\n	<input type="image" name="${1}" id="${2:$1}" src="${3}" alt="${4}" />${5}\nsnippet input:checkbox\n	<input type="checkbox" name="${1}" id="${2:$1}" />${3}\nsnippet input:radio\n	<input type="radio" name="${1}" id="${2:$1}" />${3}\nsnippet input:color\n	<input type="color" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:date\n	<input type="date" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:datetime\n	<input type="datetime" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:datetime-local\n	<input type="datetime-local" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:email\n	<input type="email" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:file\n	<input type="file" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:month\n	<input type="month" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:number\n	<input type="number" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:password\n	<input type="password" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:range\n	<input type="range" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:reset\n	<input type="reset" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:search\n	<input type="search" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:time\n	<input type="time" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:url\n	<input type="url" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:week\n	<input type="week" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet ins\n	<ins>${1}</ins>\nsnippet kbd\n	<kbd>${1}</kbd>\nsnippet keygen\n	<keygen>${1}</keygen>\nsnippet label\n	<label for="${2:$1}">${1}</label>\nsnippet label:i\n	<label for="${2:$1}">${1}</label>\n	<input type="${3:text/submit/hidden/button}" name="${4:$2}" id="${5:$2}" value="${6}" />${7}\nsnippet label:s\n	<label for="${2:$1}">${1}</label>\n	<select name="${3:$2}" id="${4:$2}">\n		<option value="${5}">${6:$5}</option>\n	</select>\nsnippet legend\n	<legend>${1}</legend>\nsnippet legend+\n	<legend><span>${1}</span></legend>\nsnippet li\n	<li>${1}</li>\nsnippet li.\n	<li class="${1}">${2}</li>\nsnippet li+\n	<li>${1}</li>\n	li+${2}
416\nsnippet lia\n	<li><a href="${2:#}">${1}</a></li>\nsnippet lia+\n	<li><a href="${2:#}">${1}</a></li>\n	lia+${3}\nsnippet link\n	<link rel="${1}" href="${2}" title="${3}" type="${4}" />${5}\nsnippet link:atom\n	<link rel="alternate" href="${1:atom.xml}" title="Atom" type="application/atom+xml" />${2}\nsnippet link:css\n	<link rel="stylesheet" href="${2:style.css}" type="text/css" media="${3:all}" />${4}\nsnippet link:favicon\n	<link rel="shortcut icon" href="${1:favicon.ico}" type="image/x-icon" />${2}\nsnippet link:rss\n	<link rel="alternate" href="${1:rss.xml}" title="RSS" type="application/atom+xml" />${2}\nsnippet link:touch\n	<link rel="apple-touch-icon" href="${1:favicon.png}" />${2}\nsnippet map\n	<map name="${1}">\n		${2}\n	</map>\nsnippet map.\n	<map class="${1}" name="${2}">\n		${3}\n	</map>\nsnippet map#\n	<map name="${1}" id="${2:$1}>\n		${3}\n	</map>\nsnippet map+\n	<map name="${1}">\n		<area shape="${2}" coords="${3}" href="${4}" alt="${5}" />${6}\n	</map>${7}\nsnippet mark\n	<mark>${1}</mark>\nsnippet menu\n	<menu>\n		${1}\n	</menu>\nsnippet menu:c\n	<menu type="context">\n		${1}\n	</menu>\nsnippet menu:t\n	<menu type="toolbar">\n		${1}\n	</menu>\nsnippet meta\n	<meta http-equiv="${1}" content="${2}" />${3}\nsnippet meta:compat\n	<meta http-equiv="X-UA-Compatible" content="IE=${1:7,8,edge}" />${3}\nsnippet meta:refresh\n	<meta http-equiv="refresh" content="text/html;charset=UTF-8" />${3}\nsnippet meta:utf\n	<meta http-equiv="content-type" content="text/html;charset=UTF-8" />${3}\nsnippet meter\n	<meter>${1}</meter>\nsnippet nav\n	<nav>\n		${1}\n	</nav>\nsnippet nav.\n	<nav class="${1}">\n		${2}\n	</nav>\nsnippet nav#\n	<nav id="${1}">\n		${2}\n	</nav>\nsnippet noscript\n	<noscript>\n		${1}\n	</noscript>\nsnippet object\n	<object data="${1}" type="${2}">\n		${3}\n	</object>${4}\n# Embed QT Movie\nsnippet movie\n	<object width="$2" height="$3" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"\n	 codebase="http://www.apple.com/qtactivex/qtplugin.cab">\n		<param name="src" value="$1" />\n		<param name="controller" value="$4" />\n		<param name="autoplay" value="$5" />\n		<embed src="${1:movie.mov}"\n			width="${2:320}" height="${3:240}"\n			controller="${4:true}" autoplay="${5:true}"\n			scale="tofit" cache="true"\n			pluginspage="http://www.apple.com/quicktime/download/" />\n	</object>${6}\nsnippet ol\n	<ol>\n		${1}\n	</ol>\nsnippet ol.\n	<ol class="${1}>\n		${2}\n	</ol>\nsnippet ol#\n	<ol id="${1}>\n		${2}\n	</ol>\nsnippet ol+\n	<ol>\n		<li>${1}</li>\n		li+${2}\n	</ol>\nsnippet opt\n	<option value="${1}">${2:$1}</option>\nsnippet opt+\n	<option value="${1}">${2:$1}</option>\n	opt+${3}\nsnippet optt\n	<option>${1}</option>\nsnippet optgroup\n	<optgroup>\n		<option value="${1}">${2:$1}</option>\n		opt+${3}\n	</optgroup>\nsnippet output\n	<output>${1}</output>\nsnippet p\n	<p>${1}</p>\nsnippet param\n	<param name="${1}" value="${2}" />${3}\nsnippet pre\n	<pre>\n		${1}\n	</pre>\nsnippet progress\n	<progress>${1}</progress>\nsnippet q\n	<q>${1}</q>\nsnippet rp\n	<rp>${1}</rp>\nsnippet rt\n	<rt>${1}</rt>\nsnippet ruby\n	<ruby>\n		<rp><rt>${1}</rt></rp>\n	</ruby>\nsnippet s\n	<s>${1}</s>\nsnippet samp\n	<samp>\n		${1}\n	</samp>\nsnippet script\n	<script type="text/javascript" charset="utf-8">\n		${1}\n	<\/script>\nsnippet scriptsrc\n	<script src="${1}.js" type="text/javascript" charset="utf-8"><\/script>\nsnippet newscript\n	<script type="application/javascript" charset="utf-8">\n		${1}\n	<\/script>\nsnippet newscriptsrc\n	<script src="${1}.js" type="application/javascript" charset="utf-8"><\/script>\nsnippet section\n	<section>\n		${1}\n	</section>\nsnippet section.\n	<section class="${1}">\n		${2}\n	</section>\nsnippet section#\n	<section id="${1}">\n		${2}\n	</section>\nsnippet select\n	<select name="${1}" id="${2:$1}">\n		${3}\n	</select>\nsnippet select.\n	<select name="${1}" id="${2:$1}" class="${3}>\n		${4}\n	</select>\nsnippet select+\n	<select name="${1}" id="${2:$1}">\n		<option value="${3}">${4:$3}</option>\n		opt+${5}\n	</select>\nsnippet small\n	<small>${1}</small>\nsnippet source\n	<source src="${1}" type="${2}" media="${3}" />\nsnippet span\n	<span>${1}</span>\nsnippet strong\n	<strong>${1}</strong>\nsnippet style\n	<style type="text/css" media="${1:all}">\n		${2}\n	</style>\nsnippet sub\n	<sub>${1}</sub>
416\nsnippet summary\n	<summary>\n		${1}\n	</summary>\nsnippet sup\n	<sup>${1}</sup>\nsnippet table\n	<table border="${1:0}">\n		${2}\n	</table>\nsnippet table.\n	<table class="${1}" border="${2:0}">\n		${3}\n	</table>\nsnippet table#\n	<table id="${1}" border="${2:0}">\n		${3}\n	</table>\nsnippet tbody\n	<tbody>\n		${1}\n	</tbody>\nsnippet td\n	<td>${1}</td>\nsnippet td.\n	<td class="${1}">${2}</td>\nsnippet td#\n	<td id="${1}">${2}</td>\nsnippet td+\n	<td>${1}</td>\n	td+${2}\nsnippet textarea\n	<textarea name="${1}" id=${2:$1} rows="${3:8}" cols="${4:40}">${5}</textarea>${6}\nsnippet tfoot\n	<tfoot>\n		${1}\n	</tfoot>\nsnippet th\n	<th>${1}</th>\nsnippet th.\n	<th class="${1}">${2}</th>\nsnippet th#\n	<th id="${1}">${2}</th>\nsnippet th+\n	<th>${1}</th>\n	th+${2}\nsnippet thead\n	<thead>\n		${1}\n	</thead>\nsnippet time\n	<time datetime="${1}" pubdate="${2:$1}>${3:$1}</time>\nsnippet title\n	<title>${1:`substitute(Filename(\'\', \'Page Title\'), \'^.\', \'\\u&\', \'\')`}</title>\nsnippet tr\n	<tr>\n		${1}\n	</tr>\nsnippet tr+\n	<tr>\n		<td>${1}</td>\n		td+${2}\n	</tr>\nsnippet track\n	<track src="${1}" srclang="${2}" label="${3}" default="${4:default}>${5}</track>${6}\nsnippet ul\n	<ul>\n		${1}\n	</ul>\nsnippet ul.\n	<ul class="${1}">\n		${2}\n	</ul>\nsnippet ul#\n	<ul id="${1}">\n		${2}\n	</ul>\nsnippet ul+\n	<ul>\n		<li>${1}</li>\n		li+${2}\n	</ul>\nsnippet var\n	<var>${1}</var>\nsnippet video\n	<video src="${1} height="${2}" width="${3}" preload="${5:none}" autoplay="${6:autoplay}>${7}</video>${8}\nsnippet wbr\n	<wbr />${1}\n',t.scope="html"});                (function() {
417                    window.require(["ace/snippets/html"], function(m) {
418                        if (typeof module == "object" && typeof exports == "object" && module) {
419                            module.exports = m;
420                        }
421                    });
422                })();
423            
424
425define("ace/snippets/svg",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="svg"});                (function() {
426                    window.require(["ace/snippets/svg"], function(m) {
427                        if (typeof module == "object" && typeof exports == "object" && module) {
428                            module.exports = m;
429                        }
430                    });
431                })();
432            
433
434define("ace/snippets/hxl", ["require", "exports", "module"], function (e, t, n) {
435    "use strict";
436    t.snippetText = '# scope: hxl\n\n# --- Binary commands ---\n\nsnippet bin.append\n	bin.append(${1}, ${2})\n\nsnippet bin.base64decode\n	bin.base64decode(${1})\n\nsnippet bin.base64encode\n	bin.base64encode(${1})\n\nsnippet bin.fromHexString\n	bin.fromHexString(${1})\n\nsnippet bin.toHexString\n	bin.toHexString(${1})\n\nsnippet bin.hashSHA1\n	bin.hashSHA1(${1})\n    \nsnippet bin.length\n	bin.length(${1})\n    \nsnippet bin.random\n	bin.random(${1})\n\nsnippet bin.subBinary\n	bin.subBinary(${1}, ${2}, ${3})\n\nsnippet bin.byteAt\n	bin.byteAt(${1}, ${2}, ${3})\n\nsnippet bin.wordAt\n	bin.wordAt(${1}, ${2}, ${3})\n\nsnippet bin.intAt\n	bin.intAt(${1}, ${2}, ${3})\n\nsnippet bin.longAt\n	bin.longAt(${1}, ${2}, ${3})\n\nsnippet bin.macLongAt\n	bin.macLongAt(${1}, ${2}, ${3})\n\nsnippet bin.macStringAt\n	bin.macStringAt(${1}, ${2}, ${3})\n            \n# --- Config commands ---\n\nsnippet config.addModule\n	config.addModule(${1}, ${2})\n \nsnippet config.addModuleItems\n	config.addModuleItems(${1}, ${2})\n\nsnippet config.cloneModule\n	config.cloneModule(${1})\n\nsnippet config.createContainer\n	config.createContainer()\n\nsnippet config.createModule\n	config.createModule(${1})\n\nsnippet config.createModuleInherited\n	config.createModuleInherited(${1})\n\nsnippet config.enableDataConfig\n	config.enableDataConfig(${1})\n\nsnippet config.getAttributes\n	config.getAttributes(${1})\n\nsnippet config.getContext\n	config.getContext(${1})\n\nsnippet config.getParent\n	config.getParent(${1})\n\nsnippet config.getIdeType\n	config.getIdeType(${1})\n\n# --- Date commands ---\n\nsnippet date.add\n	date.add{\n		/datetime = ${1};\n		/year = ${2};\n		/month = ${3};\n		/day = ${4};\n		/hour = ${5};\n		/minute = ${6};\n		/second = ${7};\n	};\n\nsnippet date.dateToStruct\n	date.dateToStruct(${1})\n\nsnippet date.durationNice\n	date.durationNice(${1})\n\nsnippet date.format\n	date.format(${1}, ${2})\n\nsnippet date.getYear\n	date.getYear(${1})\n\nsnippet date.getWeekDay\n	date.getWeekDay(${1})\n\nsnippet date.millis\n	date.millis()\n\nsnippet date.now\n	date.now()\n\nsnippet date.parse\n	date.parse(${1}, ${2})\n\nsnippet date.structToDate\n	date.structToDate{\n		/year = ${1};\n		/month = ${2};\n		/day = ${3};\n		/noTimeZone = ${4};\n	}; \n\nsnippet date.structToTime\n	date.structToTime{\n		/hour = ${1};\n		/minute = ${2};\n		/second = ${3};\n		/millisecond = ${4};\n	};
436\n\nsnippet date.datetimeToStruct3\n	date.datetimeToStruct3(${1})\n\nsnippet date.structToDatetime3\n	date.structToDatetime3{\n		/year = ${1};\n		/month = ${2};\n		/day = ${3};\n		/hour = ${4};\n		/minute = ${5};\n		/second = ${6};\n		/millisecond = ${7};\n		/noTimeZone = ${8};\n		/era = ${8};\n	};\n\n# --- DB dispatch ---\n\nsnippet db.dispatch\n	db.dispatch{\n		/dataSource = ${1};\n		/dataType = ${2};\n		/command = ${3};\n	};\n\n# --- File commands ---\n\nsnippet file.excel2.import\n	file.excel2.import{\n		${0}\n	};\n\nsnippet file.excel2.export\n	file.excel2.export{\n		${0}\n	};\n\n# --- IDE commands ---\n\nsnippet ide.cleanDataNew\n	ide.cleanDataNew(${1})\n\nsnippet ide.getModuleType\n	ide.getModuleType(${1})\n\n# --- Is commands ---\n\nsnippet is.module\n	is.module(${1})\n\nsnippet is.subNodes\n	is.subNodes(${1})\n\nsnippet is.typeBoolean\n	is.typeBoolean(${1})\n\nsnippet is.typeDate\n	is.typeDate(${1})\n\nsnippet is.typeDatetime\n	is.typeDatetime(${1})\n\nsnippet is.typeDecimal\n	is.typeDecimal(${1})\n\nsnippet is.typeDouble\n	is.typeDouble(${1})\n\nsnippet is.typeInt\n	is.typeInt(${1})\n\nsnippet is.typeLong\n	is.typeLong(${1})\n\nsnippet is.typeNode\n	is.typeNode(${1})\n\nsnippet is.typeString\n	is.typeString(${1})\n\nsnippet is.typeTime\n	is.typeTime(${1})\n\nsnippet is.typeValueNN\n	is.typeValueNN(${1})\n\nsnippet is.valueNE\n	is.valueNE(${1})\n\nsnippet is.valueBinary\n	is.valueBinary(${1})\n\nsnippet is.valueBinaryNE\n	is.valueBinaryNE(${1})\n\nsnippet is.valueBoolean\n	is.valueBoolean(${1})\n\nsnippet is.valueDate\n	is.valueDate(${1})\n\nsnippet is.valueDatetime\n	is.valueDatetime(${1})\n\nsnippet is.valueDecimal\n	is.valueDecimal(${1})\n\nsnippet is.valueDecimalNZ\n	is.valueDecimal(${1})\n\nsnippet is.valueDouble\n	is.valueDouble(${1})\n\nsnippet is.valueDoubleNZ\n	is.valueDoubleNZ(${1})\n\nsnippet is.valueInt\n	is.valueInt(${1})\n\nsnippet is.valueIntNZ\n	is.valueIntNZ(${1})\n\nsnippet is.valueLong\n	is.valueLong(${1})\n\nsnippet is.valueLongNZ\n	is.valueLongNZ(${1})\n\nsnippet is.valuePathNE\n	is.valuePathNE(${1})\n\nsnippet is.valueString\n	is.valueString(${1})\n\nsnippet is.valueStringNE\n	is.valueStringNE(${1})\n\nsnippet is.valueTime\n	is.valueTime(${1})\n\n# --- Lang commands (except keywords) ---\n\nsnippet java\n	java{\n		/class = "${1:sk.dandiway.hyperix.extension.}";\n		/input{\n			/parameter = ${2:"value"};\n		};\n	}\n\n# --- Math commands ---\n\nsnippet math.absInt\n	math.absInt(${1:0})\n\nsnippet math.absLong\n	math.absLong(${1:0})\n\nsnippet math.absDouble\n	math.absDouble(${1:0})\n\nsnippet math.floorInt\n	math.floorInt(${1:0})\n\nsnippet math.floorLong\n	math.floorLong(${1:0})\n\nsnippet math.floorDouble\n	math.floorDouble(${1:0})\n\nsnippet math.ceilInt\n	math.ceilInt(${1:0})\n\nsnippet math.ceilLong\n	math.ceilLong(${1:0})\n\nsnippet math.ceilDouble\n	math.ceilLong(${1:0})\n\nsnippet math.maxInt\n	math.maxInt(${1:0})\n\nsnippet math.maxLong\n	math.maxLong(${1:0})\n\nsnippet math.maxDouble\n	math.maxDouble(${1:0})\n\nsnippet math.minInt\n	math.minInt(${1:0})\n\nsnippet math.minLong\n	math.minLong(${1:0})\n\nsnippet math.minDouble\n	math.minDouble(${1:0})\n\nsnippet math.roundInt\n	math.roundInt(${1:0})\n\nsnippet math.roundLong\n	math.roundLong(${1:0})\n\nsnippet math.roundDouble\n	math.roundDouble(${1:0})\n\nsnippet math.randomInt\n	math.randomInt()\n\nsnippet math.randomLong\n	math.randomLong()\n\nsnippet math.randomDouble\n	math.randomLong()\n\nsnippet math.fromBase36\n	math.fromBase36(${1:0})\n	\nsnippet math.toBase36\n	math.toBase36(${1:0})\n\nsnippet math.sqrtInt\n	math.sqrtInt(${1:0})\n\nsnippet math.sqrtLong\n	math.sqrtLong(${1:0})\n\nsnippet math.log10\n	math.log10(${1:0})\n\n# --- Net commands ---\n\nsnippet net.callHttp\n	net.callHttp{\n		/url = ${1};\n		/method = ${2};\n		/encoding = ${3};\n		/contentType = ${4};\n		/params = ${5};   // Query params //\n		/header = ${6};   // HTTP header params //\n		/cookie = ${7};\n		/body = ${8};\n		/response = ${9}; // Response HTTP header params //\n		/flag{\n			/sslNoCheck = ${10};\n			/followRedirects = ${11};\n		};\n	};\n\nsnippet net.callHttpSoap11\n	net.callHttpSoap11{\n		/url = ${1};\n		/request = ${2};\n		/action = ${3};\n		/auth = ${4};\n	};\n\nsnippet net.callHttpSoap12\n	net.callHttpSoap12{\n		/url = ${1};\n		/request = ${2};\n		/action = ${3};\n		/auth = ${4};\n	};\n\nsnippet net.convertCSVToDataTree\n	net.convertCSVToDataTree(${1}, ${2}
436)\n\nsnippet net.convertDataTreeToFlat\n	net.convertDataTreeToFlat(${1})\n\nsnippet net.convertDataTreeToJson\n	net.convertDataTreeToJson(${1})\n\nsnippet net.convertDataTreeToJsonPretty\n	net.convertDataTreeToJsonPretty(${1})\n\nsnippet net.convertDataTreeToToon\n	net.convertDataTreeToToon(${1}, ${2})\n\nsnippet net.convertJsonToDataTree\n	net.convertJsonToDataTree(${1})\n\nsnippet net.convertParamTreeToDataTree\n	net.convertParamTreeToDataTree(${1})\n\nsnippet net.decodeXml\n	net.decodeXml{\n		/xml = ${1};\n		/encoding = ${2};\n	};\n\nsnippet net.encodeXml2\n	net.encodeXml2{\n		/element = ${1};\n		/xmlTree = ${2};\n		/encoding = ${3};\n	};\n\nsnippet net.getHeaderParam\n	net.getHeaderParam(${1})\n\nsnippet net.setHeaderParam\n	net.setHeaderParam(${1}, ${2})\n\nsnippet net.macLongToString\n	net.macLongToString(${1})\n\nsnippet net.macStringToLong\n	net.macStringToLong(${1})\n\nsnippet net.urlSplit\n	net.urlSplit(${1})\n\n# --- Path commands ---\n\nsnippet path.key\n	path.key(${1})\n\nsnippet path.keyAt\n	path.keyAt(${1}, ${2})\n\nsnippet path.keyFind\n	path.keyAt(${1}, ${2})\n\nsnippet path.keyLast\n	path.keyLast(${1})\n\nsnippet path.keyDelete\n	path.keyDelete(${1}, ${2})\n\nsnippet path.keysDelete\n	path.keysDelete{\n		/path = ${1};\n		/keys = ${2};\n	}\n\nsnippet path.length\n	path.length(${1})\n\nsnippet path.items\n	path.items(${1})\n\nsnippet path.join\n	path.join{\n		/item1 = ${1};\n	};\n\nsnippet path.pathToTreeFocus\n	path.pathToTreeFocus(${1})\n\nsnippet path.reverse\n	path.reverse(${1})\n\nsnippet path.split\n	path.split(${1}, ${2})\n\nsnippet path.stringWithDelimiter\n	path.subpath(${1}, ${2})\n\nsnippet path.subpath\n	path.subpath(${1}, ${2}, ${3})\n\nsnippet path.tail\n	path.tail(${1})\n\nsnippet path.treeFocusToPath\n	path.treeFocusToPath(${1})\n\nsnippet path.val\n	path.val(${1})\n\n# --- Project commands ---\n\nsnippet project.config.get\n	project.config.get()\n\nsnippet project.getInfo2\n	project.getInfo2()\n\nsnippet project.getSecurityRing\n	project.getSecurityRing()\n\nsnippet project.info.depends\n	project.info.depends()\n\nsnippet project.isTimerRequest\n	project.isTimerRequest()\n\nsnippet project.version.toInt\n	project.version.toInt(${1})\n\nsnippet project.version.toString\n	project.version.toString(${1})\n\n# --- Security commands ---\n\nsnippet security.aesDecrypt\n	security.aesDecrypt(${1}, ${2})\n\nsnippet security.aesEncrypt\n	security.aesEncrypt(${1}, ${2})\n\nsnippet security.aesDecryptTreeFromBinary\n	security.aesDecryptTreeFromBinary(${1}, ${2})\n\nsnippet security.aesEncryptTreeToBinary\n	security.aesEncryptTreeToBinary(${1}, ${2})\n\nsnippet security.aes256DecryptTreeFromBinary\n	security.aes256DecryptTreeFromBinary(${1}, ${2})\n\nsnippet security.aes256EncryptTreeToBinary\n	security.aes256EncryptTreeToBinary(${1}, ${2})\n\nsnippet security.hashPassword.get\n	security.hashPassword.get(${1}, ${2}, ${3})\n\nsnippet security.hashPassword.check\n	security.hashPassword.check(${1}, ${2}, ${3})\n\nsnippet security.hash\n	security.hash(${1})\n\nsnippet security.hashMD5\n	security.hashMD5(${1})\n\nsnippet security.hashSHA1\n	security.hashSHA1(${1})\n\nsnippet security.hashSHA2\n	security.hashSHA2(${1})\n\nsnippet security.hashSHA3\n	security.hashSHA3(${1})\n\nsnippet security.hmacSHA1\n	security.hmacSHA1(${1}, ${2})\n\nsnippet security.hmacSHA256\n	security.hmacSHA256(${1}, ${2})\n\n# --- Server commands ---\n\nsnippet server.mail.check\n	server.mail.check(${1})\n\nsnippet server.mail.send\n	server.mail.send{\n		/subject = ${1};\n		/message = ${2};\n		/contentType = ${3};\n		/encoding = ${4};\n		/header = ${5};\n		/recipientAddress = ${6};\n		/carbonCopyAddress = ${7};\n		/blindCarbonCopyAddress = ${8};\n		/senderAddress = ${9};\n	};\n\nsnippet server.getParam\n	server.getParam(${1})\n\nsnippet server.security.getInfo\n	server.security.getInfo()\n\nsnippet server.session.read\n	server.session.read{\n		/context[${1:in/urlContext}] = empty;\n	};\n\nsnippet server.session.write\n	server.session.write{\n		/context[${1:in/urlContext}] = empty;\n		/tree = ${2:tmp/tree};\n	};\n\nsnippet server.sleep\n	server.sleep(${1})\n\nsnippet server.synchronize\n	server.synchronize{\n		/key = ${1};\n		/config = ${2};\n		/operation = ${3};\n		/input = ${4};\n	};\n\nsnippet server.thread\n	server.thread{\n		/name = ${1};\n		/config = ${2};\n		/operation = ${3};\n		/input = ${4};\n	};\n\nsnippet server.parallel\n	server.parallel{\n		/name = ${1};\n		// /interval = ${2:100};\n		// /timeout = ${3:1000};\n		/list/1{\n		  /config = ${4};  \n		  // /operation = "${5:execute}";\n		  /input = ${6};\n		};\n	};\n\n# --- String commands ---\n\nsnippet str.base64decode\n	str.base64decode(${1})\n\nsnippet str.base64encode\n	str.base64encode(${1:""})\n\nsnippet str.contains\n	str.contains(${1:""}, ${2:""})\n\nsnippet str.endsWith\n	str.endsWith(${1:""}, ${2:""})\n\nsnippet str.extractDiacritics\n	str.extractDiacritics(${1:""})\n\nsnippet str.format\n	str.format{\n		/string = ${1:"Hello %%name%%"};\n		/params{\n			${2:/name = "World"}\n		};\n	}
436\n\nsnippet str.find\n	str.find{ \n		/string = ${1:"hello world"}; \n		/regex = ${2:"[a-z]"}; \n	}\n\nsnippet str.hashMD5\n	str.hashMD5(${1:"Hello World"})\n\nsnippet str.hashSHA1\n	str.hashSHA1(${1:"Hello World"})\n\nsnippet str.charAt\n	str.charAt(${1}, ${2})\n\nsnippet str.htmlDecode\n	str.htmlDecode(${1})\n\nsnippet str.htmlEncode\n	str.htmlEncode(${1})\n\nsnippet str.idFormat\n	str.idFormat(${1}, ${2}, ${3})\n\nsnippet str.indexOf\n	str.indexOf(${1}, ${2})\n\nsnippet str.lastIndexOf\n	str.lastIndexOf(${1}, ${2})\n\nsnippet str.initCap\n	str.initCap(${1})\n\nsnippet str.join\n	str.join{\n		/strings = ${1};\n		/delimiter = ${2};\n	}\n\nsnippet str.jsonEncode\n	str.jsonEncode(${1})\n\nsnippet str.length\n	str.length(${1:"Hello World"})\n\nsnippet str.justify\n	str.justify{\n		/string = ${1};\n		/length = ${2};\n		/char = ${3};\n		/type/center = ${4:true};\n	}\n\nsnippet str.replace\n	str.replace{\n		/string = ${1:""};\n		/regex = ${3:"World"};\n		/replacement = ${2:""};\n	}\n\nsnippet str.replaceParams\n	str.replaceParams{\n		/string = ${1:"%%param%%"};\n		/params{\n			/${2:key} = ${3:"value"};\n		};\n	}\n\nsnippet str.replaceString\n	str.replaceString(${1:""}, ${2:""}, ${3:""})\n\nsnippet str.sortDecode\n	str.sortDecode(${1})\n	\nsnippet str.sortDecodeInteger\n	str.sortDecodeInteger(${1})\n\nsnippet str.sortDecodeDecimal\n	str.sortDecodeDecimal(${1})\n\nsnippet str.sortEncodeInteger\n	str.sortEncodeInteger(${1})\n\nsnippet str.sortEncodeDecimal\n	str.sortEncodeDecimal(${1})\n\nsnippet str.split\n	str.split{\n		/string = ${1:"Hello World"};\n		/regex = ${2:" "};\n	}\n\nsnippet str.startsWith\n	str.startsWith(${1:""}, ${2:""})\n\nsnippet str.substring\n	str.substring(${1:""}, ${2}, ${3})\n\nsnippet str.toLowerCase\n	str.toLowerCase(${1:""})\n\nsnippet str.toLowerCaseFirst\n	str.toLowerCaseFirst(${1:""})\n\nsnippet str.toUpperCase\n	str.toUpperCase(${1:""})\n\nsnippet str.toUpperCaseFirst\n	str.toUpperCaseFirst(${1:""})\n\nsnippet str.trim\n	str.trim(${1:""})\n\nsnippet str.urlDecode\n	str.urlDecode(${1:""})\n\nsnippet str.urlEncode\n	str.urlEncode(${1:""})\n\nsnippet str.urlEncodeUri\n	str.urlEncode(${1:""})\n\nsnippet str.zplEncode\n	str.zplEncode(${1:""})\n\n# --- Tree commands ---\n\nsnippet tree.add\n	tree.add(${1}, ${2})\n\nsnippet tree.compare\n	tree.compare(${1}, ${2})\n\nsnippet tree.convertFromAutodetect\n	tree.convertFromAutodetect(${1})\n\nsnippet tree.convertFromBinary\n	tree.convertFromBinary(${1})\n\nsnippet tree.convertFromString\n	tree.convertFromString(${1})\n\nsnippet tree.convertToBinary\n	tree.convertToBinary(${1})\n\nsnippet tree.convertToString\n	tree.convertToString(${1})\n\nsnippet tree.convertToXML\n	tree.convertToXML(${1})\n\nsnippet tree.count\n	tree.count(${1})\n\nsnippet tree.cut\n	tree.cut(${1}, ${2})\n\nsnippet tree.dumpToHxl\n	tree.dumpToHxl(${1})\n\nsnippet tree.dumpToString\n	tree.dumpToString(${1})\n\nsnippet tree.existByPathValue\n	tree.existByPathValue{\n		/tree = ${1};\n		/path = ${2};\n		/value = ${3};\n	}\n\nsnippet tree.filterByPathValue\n	tree.findByPathValue{\n		/tree = ${1};\n		/path = ${2};\n		/value = ${3};\n	}\n\nsnippet tree.hashCode\n	tree.hashCode(${1})\n\nsnippet tree.itemsCut\n	tree.itemsCut(${1}, ${2})\n\nsnippet tree.keyAt\n	tree.keyAt(${1}, ${2})\n\nsnippet tree.keyDelete\n	tree.keyDelete(${1}, ${2})\n\nsnippet tree.keyFirst\n	tree.keyFirst(${1})\n\nsnippet tree.keyInsert\n	tree.keyInsert{\n		/tree = ${1};\n		/key = ${2};\n		/addTree = ${2};\n		/position = ${3};\n	}\n\nsnippet tree.keyLast\n	tree.keyLast(${1})\n\nsnippet tree.keyMoveDown\n	tree.keyMoveDown{\n		/tree = ${1};\n		/key = ${2};\n		/cycle = true;\n	}\n\nsnippet tree.keyMoveUp\n	tree.keyMoveUp{\n		/tree = ${1};\n		/key = ${2};\n		/cycle = true;\n	}\n\nsnippet tree.keyNext\n	tree.keyNext{\n		/tree = ${1};\n		/key = ${2};\n		/cycle = true;\n	}\n\nsnippet tree.keyPos\n	tree.keyPos(${1}, ${2})\n\nsnippet tree.keysDelete\n	tree.keysDelete{\n		/tree = ${1};\n		/keys{\n			${2}\n		};\n	}\n\nsnippet tree.pathDelete\n	tree.pathDelete{\n		/tree = ${1};\n		/path = ${2};\n	}\n\nsnippet tree.reverse\n	tree.reverse(${1});
436\n\nsnippet tree.search\n	tree.search(${1}, ${2})\n\nsnippet tree.size\n	tree.size(${1})\n\nsnippet tree.sort\n	tree.sort{\n		/tree = ${1};\n		/flags = ${2};\n	}\n\nsnippet tree.sortByKeyInt\n	tree.sortByKeyInt{\n		/tree = ${1};\n		/flags = ${2};\n	}\n\nsnippet tree.sortByValueInt\n	tree.sortByValueInt{\n		/tree = ${1};\n		/flags = ${3};\n	}\n\nsnippet tree.sortByPathInt\n	tree.sortByPathInt{\n		/tree = ${1};\n		/path = ${2};\n		/flags = ${3};\n	}\n\nsnippet tree.subtree\n	tree.subtree(${1}, ${2}, ${3})\n\nsnippet tree.toString\n	tree.toString(${1})\n\nsnippet tree.valAt\n	tree.valAt(${1}, ${2})\n\nsnippet tree.valLast\n	tree.valLast(${1})\n\n# --- Structures ---\n\n# if else\nsnippet ifelse\n	if (${1:true}) {\n		${2}\n	} else {\n		${0}\n	}\n\n# for\nsnippet for\n	for (${1:in}) {\n		${2:out}[forkey] = forval;\n	}\n\n# while\nsnippet while\n	${1:tmp/i} = 0;\n	while (${1} < ${2:10}) {\n		${3:// code}\n		${1} = ${1} + 1;\n	}\n\nsnippet throw2\n	throw2 \\$cfg/items/exception.initialize{\n	  /message = "";\n	  /info{\n	  };\n	};\n	\nsnippet tryCatch\n	try{\n	  throw2 \\$cfg/items/exception.initialize{\n	    /message = "Exception message";\n	  };\n	} catch2 (cfg/items/exception) {\n	  log5(\\$loc.getMessageTree());\n	}\n\nsnippet switch\n	switch (${1:tmp/greeting}) {\n	  case "${2:hello}":\n	    ${3:// code}\n	    break;\n	  default:\n	  	${4:// code}\n	  	break;\n	}\n\n# Module operation call\nsnippet $\n	\\$${1:module}.${2:operation}{\n		${3}\n	};\n\nsnippet _formMessages\n	/messages[]{\n		/type/${1:warning} = empty;\n		/message = ${2:"Message goes here."};\n		/reasons[]{\n			/message = ${3:"Optional reason goes here."}\n		};\n	}\n\nsnippet _dataConditions\n	/conds[]{\n		/name = ${1:"name"};\n		/condType/${2:equal} = empty;\n		/valueType/${3:string} = empty;\n		/value = ${4:"hello world"};\n	};\n\nsnippet _dataOrders\n	/orders[]{\n		/name = ${1:"name"};\n		/orderType/desc = true;\n	};\n\nsnippet _dataRange\n	/range{\n		/countAll = false;\n	};\n\nguard tmp/listOutput\\s*\ntrigger =\\s*\nsnippet _lO\n	= \\$${1:tmp/datatype}.list{\n		${2:_dataRange}\n		${3:_dataConditions}\n		${4:_dataOrders}\n	};\n\n	if (!tmp/listOutput/ok) {\n		warning("Cannot perform \\"list\\" operation on datatype.");\n		return;\n	}\n\nguard tmp/addOutput\\s*\ntrigger =\\s*\nsnippet _aO\n	= \\$${1:tmp/datatype}.add{\n		/addID = ${2:23};\n		/addData = ${3:tmp/data};\n		/addOptions/canUpdateRecord = empty;\n	};\n\n	if (!tmp/addOutput/ok) {\n		warning("Cannot perform \\"add\\" operation on datatype.");\n		return;\n	}\n\nguard tmp/updateOutput\\s*\ntrigger =\\s*\nsnippet _uO\n	= \\$${1:tmp/datatype}.update{\n		/updateID = ${2:23};\n		/updateData = ${3:tmp/data};\n		/updateOptions/canNotExist/canAddRecord = empty;\n		${4:_dataConditions}\n	};\n\n	if (!tmp/updateOutput/ok) {\n		warning("Cannot perform \\"update\\" operation on datatype.");\n		return;\n	}\n\nguard tmp/deleteOutput\\s*\ntrigger =\\s*\nsnippet _dO\n	= \\$${1:tmp/datatype}.delete{\n		/deleteID = ${2:23};\n		/deleteOptions/canNotExist = empty;\n		${4:_dataConditions}\n	};\n\n	if (!tmp/deleteOutput/ok) {\n		warning("Cannot perform \\"delete\\" operation on datatype.");\n		return;\n	}\n\nguard tmp/readOutput\\s*\ntrigger =\\s*\nsnippet _rO\n	= \\$${1:tmp/datatype}.read{\n		/readID = ${2:23};\n		/readOptions/canNotExist = empty;\n		${4:_dataConditions}\n	};\n\n	if (!tmp/readOutput/ok) {\n		warning("Cannot perform \\"read\\" operation on datatype.");\n		return;\n	}\n'
437  , t.scope = "hxl"
438})
439
440define("ace/snippets/java",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='## Access Modifiers\nsnippet po\n	protected\nsnippet pu\n	public\nsnippet pr\n	private\n##\n## Annotations\nsnippet before\n	@Before\n	static void ${1:intercept}(${2:args}) { ${3} }\nsnippet mm\n	@ManyToMany\n	${1}\nsnippet mo\n	@ManyToOne\n	${1}\nsnippet om\n	@OneToMany${1:(cascade=CascadeType.ALL)}\n	${2}\nsnippet oo\n	@OneToOne\n	${1}\n##\n## Basic Java packages and import\nsnippet im\n	import\nsnippet j.b\n	java.beans.\nsnippet j.i\n	java.io.\nsnippet j.m\n	java.math.\nsnippet j.n\n	java.net.\nsnippet j.u\n	java.util.\n##\n## Class\nsnippet cl\n	class ${1:`Filename("", "untitled")`} ${2}
440\nsnippet in\n	interface ${1:`Filename("", "untitled")`} ${2:extends Parent}${3}\nsnippet tc\n	public class ${1:`Filename()`} extends ${2:TestCase}\n##\n## Class Enhancements\nsnippet ext\n	extends \nsnippet imp\n	implements\n##\n## Comments\nsnippet /*\n	/*\n	 * ${1}\n	 */\n##\n## Constants\nsnippet co\n	static public final ${1:String} ${2:var} = ${3};${4}\nsnippet cos\n	static public final String ${1:var} = "${2}";${3}\n##\n## Control Statements\nsnippet case\n	case ${1}:\n		${2}\nsnippet def\n	default:\n		${2}\nsnippet el\n	else\nsnippet elif\n	else if (${1}) ${2}\nsnippet if\n	if (${1}) ${2}\nsnippet sw\n	switch (${1}) {\n		${2}\n	}\n##\n## Create a Method\nsnippet m\n	${1:void} ${2:method}(${3}) ${4:throws }${5}\n##\n## Create a Variable\nsnippet v\n	${1:String} ${2:var}${3: = null}${4};${5}\n##\n## Enhancements to Methods, variables, classes, etc.\nsnippet ab\n	abstract\nsnippet fi\n	final\nsnippet st\n	static\nsnippet sy\n	synchronized\n##\n## Error Methods\nsnippet err\n	System.err.print("${1:Message}");\nsnippet errf\n	System.err.printf("${1:Message}", ${2:exception});\nsnippet errln\n	System.err.println("${1:Message}");\n##\n## Exception Handling\nsnippet as\n	assert ${1:test} : "${2:Failure message}";${3}\nsnippet ca\n	catch(${1:Exception} ${2:e}) ${3}\nsnippet thr\n	throw\nsnippet ths\n	throws\nsnippet try\n	try {\n		${3}\n	} catch(${1:Exception} ${2:e}) {\n	}\nsnippet tryf\n	try {\n		${3}\n	} catch(${1:Exception} ${2:e}) {\n	} finally {\n	}\n##\n## Find Methods\nsnippet findall\n	List<${1:listName}> ${2:items} = ${1}.findAll();${3}\nsnippet findbyid\n	${1:var} ${2:item} = ${1}.findById(${3});${4}\n##\n## Javadocs\nsnippet /**\n	/**\n	 * ${1}\n	 */\nsnippet @au\n	@author `system("grep \\`id -un\\` /etc/passwd | cut -d \\":\\" -f5 | cut -d \\",\\" -f1")`\nsnippet @br\n	@brief ${1:Description}\nsnippet @fi\n	@file ${1:`Filename()`}.java\nsnippet @pa\n	@param ${1:param}\nsnippet @re\n	@return ${1:param}\n##\n## Logger Methods\nsnippet debug\n	Logger.debug(${1:param});${2}\nsnippet error\n	Logger.error(${1:param});${2}\nsnippet info\n	Logger.info(${1:param});${2}\nsnippet warn\n	Logger.warn(${1:param});${2}\n##\n## Loops\nsnippet enfor\n	for (${1} : ${2}) ${3}\nsnippet for\n	for (${1}; ${2}; ${3}) ${4}\nsnippet wh\n	while (${1}) ${2}\n##\n## Main method\nsnippet main\n	public static void main (String[] args) {\n		${1:/* code */}\n	}\n##\n## Print Methods\nsnippet print\n	System.out.print("${1:Message}");\nsnippet printf\n	System.out.printf("${1:Message}", ${2:args});\nsnippet println\n	System.out.println(${1});\n##\n## Render Methods\nsnippet ren\n	render(${1:param});${2}\nsnippet rena\n	renderArgs.put("${1}", ${2});${3}\nsnippet renb\n	renderBinary(${1:param});${2}\nsnippet renj\n	renderJSON(${1:param});${2}\nsnippet renx\n	renderXml(${1:param});${2}\n##\n## Setter and Getter Methods\nsnippet set\n	${1:public} void set${3:}(${2:String} ${4:}){\n		this.$4 = $4;\n	}\nsnippet get\n	${1:public} ${2:String} get${3:}(){\n		return this.${4:};\n	}\n##\n## Terminate Methods or Loops\nsnippet re\n	return\nsnippet br\n	break;\n##\n## Test Methods\nsnippet t\n	public void test${1:Name}() throws Exception {\n		${2}\n	}\nsnippet test\n	@Test\n	public void test${1:Name}() throws Exception {\n		${2}\n	}\n##\n## Utils\nsnippet Sc\n	Scanner\n##\n## Miscellaneous\nsnippet action\n	public static void ${1:index}(${2:args}) { ${3} }\nsnippet rnf\n	notFound(${1:param});${2}\nsnippet rnfin\n	notFoundIfNull(${1:param});${2}\nsnippet rr\n	redirect(${1:param});${2}\nsnippet ru\n	unauthorized(${1:param});${2}\nsnippet unless\n	(unless=${1:param});${2}\n',t.scope="java"});                (function() {
441                    window.require(["ace/snippets/java"], function(m) {
442                        if (typeof module == "object" && typeof exports == "object" && module) {
443                            module.exports = m;
444                        }
445                    });
446                })();
447            
448
449define("ace/snippets/javascript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Prototype\nsnippet proto\n	${1:class_name}.prototype.${2:method_name}
449 = function(${3:first_argument}) {\n		${4:// body...}\n	};\n# Function\nsnippet fun\n	function ${1?:function_name}(${2:argument}) {\n		${3:// body...}\n	}\n# Anonymous Function\nregex /((=)\\s*|(:)\\s*|(\\()|\\b)/f/(\\))?/\nsnippet f\n	function${M1?: ${1:functionName}}($2) {\n		${0:$TM_SELECTED_TEXT}\n	}${M2?;}${M3?,}${M4?)}\n# Immediate function\ntrigger \\(?f\\(\nendTrigger \\)?\nsnippet f(\n	(function(${1}) {\n		${0:${TM_SELECTED_TEXT:/* code */}}\n	}(${1}));\n# if\nsnippet if\n	if (${1:true}) {\n		${0}\n	}\n# if ... else\nsnippet ife\n	if (${1:true}) {\n		${2}\n	} else {\n		${0}\n	}\n# tertiary conditional\nsnippet ter\n	${1:/* condition */} ? ${2:a} : ${3:b}\n# switch\nsnippet switch\n	switch (${1:expression}) {\n		case \'${3:case}\':\n			${4:// code}\n			break;\n		${5}\n		default:\n			${2:// code}\n	}\n# case\nsnippet case\n	case \'${1:case}\':\n		${2:// code}\n		break;\n	${3}\n\n# while (...) {...}\nsnippet wh\n	while (${1:/* condition */}) {\n		${0:/* code */}\n	}\n# try\nsnippet try\n	try {\n		${0:/* code */}\n	} catch (e) {}\n# do...while\nsnippet do\n	do {\n		${2:/* code */}\n	} while (${1:/* condition */});\n# Object Method\nsnippet :f\nregex /([,{[])|^\\s*/:f/\n	${1:method_name}: function(${2:attribute}) {\n		${0}\n	}${3:,}\n# setTimeout function\nsnippet setTimeout\nregex /\\b/st|timeout|setTimeo?u?t?/\n	setTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\n# Get Elements\nsnippet gett\n	getElementsBy${1:TagName}(\'${2}\')${3}\n# Get Element\nsnippet get\n	getElementBy${1:Id}(\'${2}\')${3}\n# console.log (Firebug)\nsnippet cl\n	console.log(${1});\n# return\nsnippet ret\n	return ${1:result}\n# for (property in object ) { ... }\nsnippet fori\n	for (var ${1:prop} in ${2:Things}) {\n		${0:$2[$1]}\n	}\n# hasOwnProperty\nsnippet has\n	hasOwnProperty(${1})\n# docstring\nsnippet /**\n	/**\n	 * ${1:description}\n	 *\n	 */\nsnippet @par\nregex /^\\s*\\*\\s*/@(para?m?)?/\n	@param {${1:type}} ${2:name} ${3:description}\nsnippet @ret\n	@return {${1:type}} ${2:description}\n# JSON.parse\nsnippet jsonp\n	JSON.parse(${1:jstr});\n# JSON.stringify\nsnippet jsons\n	JSON.stringify(${1:object});\n# self-defining function\nsnippet sdf\n	var ${1:function_name} = function(${2:argument}) {\n		${3:// initial code ...}\n\n		$1 = function($2) {\n			${4:// main code}\n		};\n	}\n# singleton\nsnippet sing\n	function ${1:Singleton} (${2:argument}) {\n		// the cached instance\n		var instance;\n\n		// rewrite the constructor\n		$1 = function $1($2) {\n			return instance;\n		};\n		\n		// carry over the prototype properties\n		$1.prototype = this;\n\n		// the instance\n		instance = new $1();\n\n		// reset the constructor pointer\n		instance.constructor = $1;\n\n		${3:// code ...}\n\n		return instance;\n	}\n# class\nsnippet class\nregex /^\\s*/clas{0,2}/\n	var ${1:class} = function(${20}) {\n		$40$0\n	};\n	\n	(function() {\n		${60:this.prop = ""}\n	}).call(${1:class}.prototype);\n	\n	exports.${1:class} = ${1:class};\n# \nsnippet for-\n	for (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\n		${0:${2:Things}[${1:i}];}\n	}\n# for (...) {...}\nsnippet for\n	for (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\n		${3:$2[$1]}$0\n	}\n# for (...) {...} (Improved Native For-Loop)\nsnippet forr\n	for (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\n		${3:$2[$1]}$0\n	}\n\n\n#modules\nsnippet def\n	define(function(require, exports, module) {\n	"use strict";\n	var ${1/.*\\///} = require("${1}");\n	\n	$TM_SELECTED_TEXT\n	});\nsnippet req\nguard ^\\s*\n	var ${1/.*\\///} = require("${1}");\n	$0\nsnippet requ\nguard ^\\s*\n	var ${1/.*\\/(.)/\\u$1/} = require("${1}").${1/.*\\/(.)/\\u$1/};\n	$0\n',t.scope="javascript"});                (function() {
450                    window.require(["ace/snippets/javascript"], function(m) {
451                        if (typeof module == "object" && typeof exports == "object" && module) {
452                            module.exports = m;
453                        }
454                    });
455                })();
456            
457
458define("ace/snippets/json",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="json"});                (function() {
459                    window.require(["ace/snippets/json"], function(m) {
460                        if (typeof module == "object" && typeof exports == "object" && module) {
461                            module.exports = m;
462                        }
463                    });
464                })();
465            
466
467define("ace/snippets/less",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="less"});                (function() {
468                    window.require(["ace/snippets/less"], function(m) {
469                        if (typeof module == "object" && typeof exports == "object" && module) {
470                            module.exports = m;
471                        }
472                    });
473                })();
474            
475
476define("ace/snippets/sass",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="sass"});                (function() {
477                    window.require(["ace/snippets/sass"], function(m) {
478                        if (typeof module == "object" && typeof exports == "object" && module) {
479                            module.exports = m;
480                        }
481                    });
482                })();
483            
484
485define("ace/snippets/scss",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scss"});                (function() {
486                    window.require(["ace/snippets/scss"], function(m) {
487                        if (typeof module == "object" && typeof exports == "object" && module) {
488                            module.exports = m;
489                        }
490                    });
491                })();
492            
493
494define("ace/snippets/sql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet tbl\n	create table ${1:table} (\n		${2:columns}\n	);\nsnippet col\n	${1:name}	${2:type}	${3:default ''}	${4:not null}\nsnippet ccol\n	${1:name}	varchar2(${2:size})	${3:default ''}	${4:not null}\nsnippet ncol\n	${1:name}	number	${3:default 0}	${4:not null}\nsnippet dcol\n	${1:name}	date	${3:default sysdate}	${4:not null}\nsnippet ind\n	create index ${3:$1_$2} on ${1:table}(${2:column});\nsnippet uind\n	create unique index ${1:name} on ${2:table}(${3:column});\nsnippet tblcom\n	comment on table ${1:table} is '${2:comment}';\nsnippet colcom\n	comment on column ${1:table}.${2:column} is '${3:comment}';\nsnippet addcol\n	alter table ${1:table} add (${2:column} ${3:type});\nsnippet seq\n	create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\nsnippet s*\n	select * from ${1:table}\n",t.scope="sql"});                (function() {
495                    window.require(["ace/snippets/sql"], function(m) {
496                        if (typeof module == "object" && typeof exports == "object" && module) {
497                            module.exports = m;
498                        }
499                    });
500                })();
501            
502
503define("ace/snippets/xml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="xml"});                (function() {
504                    window.require(["ace/snippets/xml"], function(m) {
505                        if (typeof module == "object" && typeof exports == "object" && module) {
506                            module.exports = m;
507                        }
508                    });
509                })();
510            
511
512define("ace/snippets/plain_text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="plain_text"})
513
514define("ace/theme/hxl",["require","exports","module","ace/lib/dom"],function(e,t,n){
515  t.cssClass="ace-hxl",
516  t.cssText=".ace-hxl .ace_gutter {background: #f0f0f0;border-right: 1px solid #eee;color: #8F908A;}.ace-hxl.ace_editor{border-radius: 4px;background-color: white;color: black;}.ace-hxl .ace_cursor {color: #676767;}.ace-hxl .ace_marker-layer .ace_selected-word {border: 1px solid #676767;border-radius: 1px;}.ace-hxl .ace_marker-layer .ace_active-line,.ace-hxl .ace_gutter-active-line {background: rgba(34, 170, 255, 0.10);}.ace-hxl .ace_marker-layer .ace_selection {background: rgba(0, 120, 205, 0.15);}.ace-hxl .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #676767;border-radius: 1px;}.ace-hxl .ace_invalid {color: #F8F8F0;background-color: #F92626;padding-left: 0.1em;padding-right: 0.1em;}.ace-hxl .ace_support.ace_function {color: #DD00DD;}.ace-hxl .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-hxl .ace_variable {color: #879EFA;}.ace-hxl .ace_keyword,.ace-hxl .ace_keyword.ace_control,.ace-hxl .ace_constant.ace_language {color: #7F0055;}.ace_keyword.ace_operator {color: black;font-weight: normal;}.ace-hxl .ace_identifier.ace_tree{color: #FF7F00;}.ace-hxl .ace_variable.ace_parameter {font-style: italic;color: #009DFF;}.ace-hxl .ace_constant.ace_numeric,.ace-hxl .ace_constant.ace_character,.ace-hxl .ace_string,.ace-hxl .ace_constant.ace_other {color: blue;}.ace-hxl .ace_comment {color: #007F00;}.ace-hxl .ace_indent-guide {border-right: 1px solid lightgray;margin-right: -1px; }.ace_variable.ace_language.ace_invalid.ace_illegal {text-decoration: line-through;color: red;background-color: inherit;}.ace-hxl .ace_unknown {border-bottom: 1px solid red;}.ace-hxl .ace_comment.ace_documentation{color: #F92626;}.ace-hxl .ace_comment.ace_documentation.ace_alternative{color: #879EFA;}.ace-hxl .ace_comment.ace_documentation.ace_mention, .ace-hxl .ace_comment.ace_documentation.ace_issue{border: 1px solid #D0CFCF;border-radius: 6px;background-color: whitesmoke;color: black;padding: 0 2px;margin: 0 -4px;cursor: pointer !important;pointer-events: auto;}body.dark .ace-hxl .ace_gutter {background: #31373F;color: #8F908A;border-right: 1px solid #8c8c8c;}body.dark .ace-hxl .ace_print-margin {width: 1px;background: #555651}body.dark .ace-hxl {background-color: #272B30;color: #F8F8F2}body.dark .ace-hxl .ace_cursor {color: #F8F8F0}body.dark .ace-hxl .ace_marker-layer .ace_selection {background: #49483E}body.dark .ace-hxl.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;}body.dark .ace-hxl .ace_marker-layer .ace_step {background: rgb(102, 82, 
5160)}body.dark .ace-hxl .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}body.dark .ace-hxl .ace_marker-layer .ace_active-line {background: #202020}body.dark .ace-hxl .ace_gutter-active-line {background-color: #272727}body.dark .ace-hxl .ace_marker-layer .ace_selected-word {border: 1px solid #ffffff;background-color: rgba(73, 73, 73, 0.54);border-radius: 3px;transform: scale(1.1);}body.dark .ace-hxl .ace_invisible {color: #52524d}body.dark .ace-hxl .ace_entity.ace_name.ace_tag,body.dark .ace-hxl .ace_keyword,body.dark .ace-hxl .ace_meta.ace_tag,body.dark .ace-hxl .ace_storage {color: #F92672}body.dark .ace-hxl .ace_punctuation,body.dark .ace-hxl .ace_punctuation.ace_tag {color: #fff}body.dark .ace-hxl .ace_constant.ace_character,body.dark .ace-hxl .ace_constant.ace_language,body.dark .ace-hxl .ace_constant.ace_numeric,body.dark .ace-hxl .ace_constant.ace_other {color: #AE81FF}body.dark .ace-hxl .ace_invalid {color: #F8F8F0;background-color: #F92672}body.dark .ace-hxl .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}body.dark .ace-hxl .ace_support.ace_constant,body.dark .ace-hxl .ace_support.ace_function {color: #66D9EF}body.dark .ace-hxl .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}body.dark .ace-hxl .ace_storage.ace_type,body.dark .ace-hxl .ace_support.ace_class,body.dark .ace-hxl .ace_support.ace_type {font-style: italic;color: #66D9EF}body.dark .ace-hxl .ace_entity.ace_name.ace_function,body.dark .ace-hxl .ace_entity.ace_other,body.dark .ace-hxl .ace_entity.ace_other.ace_attribute-name,body.dark .ace-hxl .ace_variable {color: #A6E22E}body.dark .ace-hxl .ace_variable.ace_parameter {font-style: italic;color: #FD971F}body.dark .ace-hxl .ace_string {color: #E6DB74}body.dark .ace-hxl .ace_comment {color: #75715E}body.dark .ace-hxl .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}body.dark .ace-hxl .ace_identifier.ace_tree {color: #d6d6d6;}body.dark .ace-hxl .ace_autocomplete .ace_marker-layer .ace_active-line{background-color: #515256;}body.dark .ace-hxl .ace_editor.ace_autocomplete .ace_completion-highlight{color: #CEC107;}body.dark .ace-hxl .ace_indent-guide {border-right: none;margin-right: 0;}";
517  var r=e("../lib/dom");
518  r.importCssString(t.cssText,t.cssClass)
519})
520
521define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-chrome",t.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0
521);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)});                (function() {
522                    window.require(["ace/theme/chrome"], function(m) {
523                        if (typeof module == "object" && typeof exports == "object" && module) {
524                            module.exports = m;
525                        }
526                    });
527                })();
528            
529
530"no use strict";
531!function (e) {
532    function t(e, t) {
533        var n = e, r = "";
534        while (n) {
535            var i = t[n];
536            if (typeof i == "string") return i + r;
537            if (i) return i.location.replace(/\/*$/, "/") + (r || i.main || i.name);
538            if (i === !1) return "";
539            var s = n.lastIndexOf("/");
540            if (s === -1) break;
541            r = n.substr(s) + r, n = n.slice(0, s)
542        }
543        return e
544    }
545
546    if (typeof e.window != "undefined" && e.document) return;
547    if (e.require && e.define) return;
548    e.console || (e.console = function () {
549        var e = Array.prototype.slice.call(arguments, 0);
550        postMessage({type: "log", data: e})
551    }, e.console.error = e.console.warn = e.console.log = e.console.trace = e.console), e.window = e, e.ace = e, e.onerror = function (e, t, n, r, i) {
552        postMessage({type: "error", data: {message: e, data: i.data, file: t, line: n, col: r, stack: i.stack}})
553    }, e.normalizeModule = function (t, n) {
554        if (n.indexOf("!") !== -1) {
555            var r = n.split("!");
556            return e.normalizeModule(t, r[0]) + "!" + e.normalizeModule(t, r[1])
557        }
558        if (n.charAt(0) == ".") {
559            var i = t.split("/").slice(0, -1).join("/");
560            n = (i ? i + "/" : "") + n;
561            while (n.indexOf(".") !== -1 && s != n) {
562                var s = n;
563                n = n.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "")
564            }
565        }
566        return n
567    }, e.require = function (r, i) {
568        i || (i = r, r = null);
569        if (!i.charAt) throw new Error("worker.js require() accepts only (parentId, id) as arguments");
570        i = e.normalizeModule(r, i);
571        var s = e.require.modules[i];
572        if (s) return s.initialized || (s.initialized = !0, s.exports = s.factory().exports), s.exports;
573        if (!e.require.tlns) return console.log("unable to load " + i);
574        var o = t(i, e.require.tlns);
575        return o.slice(-3) != ".js" && (o += ".js"), e.require.id = i, e.require.modules[i] = {}, importScripts(o), e.require(r, i)
576    }, e.require.modules = {}, e.require.tlns = {}, e.define = function (t, n, r) {
577        arguments.length == 2 ? (r = n, typeof t != "string" && (n = t, t = e.require.id)) : arguments.length == 1 && (r = t, n = [], t = e.require.id);
578        if (typeof r != "function") {
579            e.require.modules[t] = {exports: r, initialized: !0};
580            return
581        }
582        n.length || (n = ["require", "exports", "module"]);
583        var i = function (n) {
584            return e.require(t, n)
585        };
586        e.require.modules[t] = {
587            exports: {}, factory: function () {
588                var e = this, t = r.apply(this, n.slice(0, r.length).map(function (t) {
589                    switch (t) {
590                        case"require":
591                            return i;
592                        case"exports":
593                            return e.exports;
594                        case"module":
595                            return e;
596                        default:
597                            return i(t)
598                    }
599                }));
600                return t && (e.exports = t), e
601            }
602        }
603    }, e.define.amd = {}, require.tlns = {}, e.initBaseUrls = function (t) {
604        for (var n in t) require.tlns[n] = t[n]
605    }, e.initSender = function () {
606        var n = e.require("ace/lib/event_emitter").EventEmitter, r = e.require("ace/lib/oop"), i = function () {
607        };
608        return function () {
609            r.implement(this, n), this.callback = function (e, t) {
610                postMessage({type: "call", id: t, data: e})
611            }, this.emit = function (e, t) {
612                postMessage({type: "event", name: e, data: t})
613            }
614        }.call(i.prototype), new i
615    };
616    var n = e.main = null, r = e.sender = null;
617    e.onmessage = function (t) {
618        var i = t.data;
619        if (i.event && r) r._signal(i.event, i.data); else if (i.command) if (n[i.command]) n[i.command].apply(n, i.args); else {
620            if (!e[i.command]) throw new Error("Unknown command:" + i.command);
621            e[i.command].apply(e, i.args)
622        } else if (i.init) {
623            e.initBaseUrls(i.tlns), require("ace/lib/es5-shim"), r = e.sender = e.initSender();
624            var s = require(i.module)[i.classname];
625            n = e.main = new s(r)
626        }
627    }
628}(this), define("ace/lib/oop", [], function (e, t, n) {
629    "use strict";
630    t.inherits = function (e, t) {
631        e.super_ = t, e.prototype = Object.create(t.prototype, {
632            constructor: {
633                value: e,
634                enumerable: !1,
635                writable: !0,
636                configurable: !0
637            }
638        })
639    }, t.mixin = function (e, t) {
640        for (var n in t) e[n] = t[n];
641        return e
642    }, t.implement = function (e, n) {
643        t.mixin(e, n)
644    }
645}), define("ace/lib/lang", [], function (e, t, n) {
646    "use strict";
647    t.last = function (e) {
648        return e[e.length - 1]
649    }
649, t.stringReverse = function (e) {
650        return e.split("").reverse().join("")
651    }, t.stringRepeat = function (e, t) {
652        var n = "";
653        while (t > 0) {
654            t & 1 && (n += e);
655            if (t >>= 1) e += e
656        }
657        return n
658    };
659    var r = /^\s\s*/, i = /\s\s*$/;
660    t.stringTrimLeft = function (e) {
661        return e.replace(r, "")
662    }, t.stringTrimRight = function (e) {
663        return e.replace(i, "")
664    }, t.copyObject = function (e) {
665        var t = {};
666        for (var n in e) t[n] = e[n];
667        return t
668    }, t.copyArray = function (e) {
669        var t = [];
670        for (var n = 0, r = e.length; n < r; n++) e[n] && typeof e[n] == "object" ? t[n] = this.copyObject(e[n]) : t[n] = e[n];
671        return t
672    }, t.deepCopy = function s(e) {
673        if (typeof e != "object" || !e) return e;
674        var t;
675        if (Array.isArray(e)) {
676            t = [];
677            for (var n = 0; n < e.length; n++) t[n] = s(e[n]);
678            return t
679        }
680        if (Object.prototype.toString.call(e) !== "[object Object]") return e;
681        t = {};
682        for (var n in e) t[n] = s(e[n]);
683        return t
684    }, t.arrayToMap = function (e) {
685        var t = {};
686        for (var n = 0; n < e.length; n++) t[e[n]] = 1;
687        return t
688    }, t.createMap = function (e) {
689        var t = Object.create(null);
690        for (var n in e) t[n] = e[n];
691        return t
692    }, t.arrayRemove = function (e, t) {
693        for (var n = 0; n <= e.length; n++) t === e[n] && e.splice(n, 1)
694    }, t.escapeRegExp = function (e) {
695        return e.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1")
696    }, t.escapeHTML = function (e) {
697        return ("" + e).replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;")
698    }, t.getMatchOffsets = function (e, t) {
699        var n = [];
700        return e.replace(t, function (e) {
701            n.push({offset: arguments[arguments.length - 2], length: e.length})
702        }), n
703    }, t.deferredCall = function (e) {
704        var t = null, n = function () {
705            t = null, e()
706        }, r = function (e) {
707            return r.cancel(), t = setTimeout(n, e || 0), r
708        };
709        return r.schedule = r, r.call = function () {
710            return this.cancel(), e(), r
711        }, r.cancel = function () {
712            return clearTimeout(t), t = null, r
713        }, r.isPending = function () {
714            return t
715        }, r
716    }, t.delayedCall = function (e, t) {
717        var n = null, r = function () {
718            n = null, e()
719        }, i = function (e) {
720            n == null && (n = setTimeout(r, e || t))
721        };
722        return i.delay = function (e) {
723            n && clearTimeout(n), n = setTimeout(r, e || t)
724        }, i.schedule = i, i.call = function () {
725            this.cancel(), e()
726        }, i.cancel = function () {
727            n && clearTimeout(n), n = null
728        }, i.isPending = function () {
729            return n
730        }, i
731    }
732}), define("ace/range", [], function (e, t, n) {
733    "use strict";
734    var r = function (e, t) {
735        return e.row - t.row || e.column - t.column
736    }, i = function (e, t, n, r) {
737        this.start = {row: e, column: t}, this.end = {row: n, column: r}
738    };
739    (function () {
740        this.isEqual = function (e) {
741            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
742        }, this.toString = function () {
743            return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"
744        }, this.contains = function (e, t) {
745            return this.compare(e, t) == 0
746        }, this.compareRange = function (e) {
747            var t, n = e.end, r = e.start;
748            return t = this.compare(n.row, n.column), t == 1 ? (t = this.compare(r.row, r.column), t == 1 ? 2 : t == 0 ? 1 : 0) : t == -1 ? -2 : (t = this.compare(r.row, r.column), t == -1 ? -1 : t == 1 ? 42 : 0)
749        }, this.comparePoint = function (e) {
750            return this.compare(e.row, e.column)
751        }, this.containsRange = function (e) {
752            return this.comparePoint(e.start) == 0 && this.comparePoint(e.end) == 0
753        }, this.intersects = function (e) {
754            var t = this.compareRange(e);
755            return t == -1 || t == 0 || t == 1
756        }, this.isEnd = function (e, t) {
757            return this.end.row == e && this.end.column == t
758        }, this.isStart = function (e, t) {
759            return this.start.row == e && this.start.column == t
760        }, this.setStart = function (e, t) {
761            typeof e == "object" ? (this.start.column = e.column, this.start.row = e.row) : (this.start.row = e, this.start.column = t)
762        }, this.setEnd = function (e, t) {
763            typeof e == "object" ? (this.end.column = e.column, this.end.row = e.row) : (this.end.row = e, this.end.column = t)
764        }, this.inside = function (e, t) {
765            return this.compare(e, t) == 0 ? this.isEnd(e, t) || this.isStart(e, t) ? !1 : !0 : !1
766        }, this.insideStart = function (e, t) {
767            return this.compare(e, t) == 0 ? this.isEnd(e, t) ? !1 : !0 : !1
768        }, this.insideEnd = function (e, t) {
769            return this.compare(e, t) == 0 ? this.isStart(e, t) ? !1 : !0 : !1
770        }, this.compare = function (e, t) {
771            return !this.isMultiLine() && e === this.start.row ? t < this.start.column ? -1 : t > this.end.column ? 1 : 0 : 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
772        }, this.compareStart = function (e, t) {
773            return this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
774        }, this.compareEnd = function (e, t) {
775            return this.end.row == e && this.end.column == t ? 1 : this.compare(e, t)
776        }, this.compareInside = function (e, t) {
777            return this.end.row == e && this.end.column == t ? 1 : this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
778        }, this.clipRows = function (e, t) {
779            if (this.end.row > t) var n = {row: t + 1, column: 0}; else if (this.end.row < e) var n = {
780                row: e,
781                column: 0
782            };
783            if (this.start.row > t) var r = {row: t + 1, column: 0}; else if (this.start.row < e) var r = {
784                row: e,
785                column: 0
786            };
787            return i.fromPoints(r || this.start, n || this.end)
788        }, this.extend = function (e, t) {
789            var n = this.compare(e, t);
790            if (n == 0) return this;
791            if (n == -1) var r = {row: e, column: t}; else var s = {row: e, column: t};
792            return i.fromPoints(r || this.start, s || this.end)
793        }, this.isEmpty = function () {
794            return this.start.row === this.end.row && this.start.column === this.end.column
795        }, this.isMultiLine = function () {
796            return this.start.row !== this.end.row
797        }, this.clone = function () {
798            return i.fromPoints(this.start, this.end)
799        }, this.collapseRows = function () {
800            return this.end.column == 0 ? 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)
801        }, this.toScreenRange = function (e) {
802            var t = e.documentToScreenPosition(this.start), n = e.documentToScreenPosition(this.end);
803            return new i(t.row, t.column, n.row, n.column)
804        }, this.moveBy = function (e, t) {
805            this.start.row += e, this.start.column += t, this.end.row += e, this.end.column += t
806        }
807    }).call(i.prototype), i.fromPoints = function (e, t) {
808        return new i(e.row, e.column, t.row, t.column)
809    }, i.comparePoints = r, i.comparePoints = function (e, t) {
810        return e.row - t.row || e.column - t.column
811    }, t.Range = i
812}), define("ace/apply_delta", [], function (e, t, n) {
813    "use strict";
814
815    function r(e, t) {
816        throw console.log("Invalid Delta:", e), "Invalid Delta: " + t
817    }
818
819    function i(e, t) {
820        return t.row >= 0 && t.row < e.length && t.column >= 0 && t.column <= e[t.row].length
821    }
822
823    function s(e, t) {
824        t.action != "insert" && t.action != "remove" && r(t, "delta.action must be 'insert' or 'remove'"), t.lines instanceof Array || r(t, "delta.lines must be an Array"), (!t.start || !t.end) && r(t, "delta.start/end must be an present");
825        var n = t.start;
826        i(e, t.start) || r(t, "delta.start must be contained in document");
827        var s = t.end;
828        t.action == "remove" && !i(e, s) && r(t, "delta.end must contained in document for 'remove' actions");
829        var o = s.row - n.row, u = s.column - (o == 0 ? n.column : 0);
830        (o != t.lines.length - 1 || t.lines[o].length != u) && r(t, "delta.range must match delta lines")
831    }
832
833    t.applyDelta = function (e, t, n) {
834        var r = t.start.row, i = t.start.column, s = e[r] || "";
835        switch (t.action) {
836            case"insert":
837                var o = t.lines;
838                if (o.length === 1) e[r] = s.substring(0, i) + t.lines[0] + s.substring(i); else {
839                    var u = [r, 1].concat(t.lines);
840                    e.splice.apply(e, u), e[r] = s.substring(0, i) + e[r], e[r + t.lines.length - 1] += s.substring(i)
841                }
842                break;
843            case"remove":
844                var a = t.end.column, f = t.end.row;
845                r === f ? e[r] = s.substring(0, i) + s.substring(a) : e.splice(r, f - r + 1, s.substring(0, i) + e[f].substring(a))
846        }
847    }
848}), define("ace/lib/event_emitter", [], function (e, t, n) {
849    "use strict";
850    var r = {}, i = function () {
851        this.propagationStopped = !0
852    }, s = function () {
853        this.defaultPrevented = !0
854    };
855    r._emit = r._dispatchEvent = function (e, t) {
856        this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});
857        var n = this._eventRegistry[e] || [], r = this._defaultHandlers[e];
858        if (!n.length && !r) return;
859        if (typeof t != "object" || !t) t = {};
860        t.type || (t.type = e), t.stopPropagation || (t.stopPropagation = i), t.preventDefault || (t.preventDefault = s), n = n.slice();
861        for (var o = 0; o < n.length; o++) {
862            n[o](t, this);
863            if (t.propagationStopped) break
864        }
865        if (r && !t.defaultPrevented) return r(t, this)
866    }, r._signal = function (e, t) {
867        var n = (this._eventRegistry || {})[e];
868        if (!n) return;
869        n = n.slice();
870        for (var r = 0; r < n.length; r++) n[r](t, this)
871    }, r.once = function (e, t) {
872        var n = this;
873        this.addEventListener(e, function r() {
874            n.removeEventListener(e, r), t.apply(null, arguments)
875        });
876        if (!t) return new Promise(function (e) {
877            t = e
878        })
879    }, r.setDefaultHandler = function (e, t) {
880        var n = this._defaultHandlers;
881        n || (n = this._defaultHandlers = {_disabled_: {}});
882        if (n[e]) {
883            var r = n[e], i = n._disabled_[e];
884            i || (n._disabled_[e] = i = []), i.push(r);
885            var s = i.indexOf(t);
886            s != -1 && i.splice(s, 1)
887        }
888        n[e] = t
889    }, r.removeDefaultHandler = function (e, t) {
890        var n = this._defaultHandlers;
891        if (!n) return;
892        var r = n._disabled_[e];
893        if (n[e] == t) r && this.setDefaultHandler(e, r.pop()); else if (r) {
894            var i = r.indexOf(t);
895            i != -1 && r.splice(i, 1)
896        }
897    }, r.on = r.addEventListener = function (e, t, n) {
898        this._eventRegistry = this._eventRegistry || {};
899        var r = this._eventRegistry[e];
900        return r || (r = this._eventRegistry[e] = []), r.indexOf(t) == -1 && r[n ? "unshift" : "push"](t), t
901    }, r.off = r.removeListener = r.removeEventListener = function (e, t) {
902        this._eventRegistry = this._eventRegistry || {};
903        var n = this._eventRegistry[e];
904        if (!n) return;
905        var r = n.indexOf(t);
906        r !== -1 && n.splice(r, 1)
907    }, r.removeAllListeners = function (e) {
908        this._eventRegistry && (this._eventRegistry[e] = [])
909    }, t.EventEmitter = r
910}), define("ace/anchor", [], function (e, t, n) {
911    "use strict";
912    var r = e("./lib/oop"), i = e("./lib/event_emitter").EventEmitter, s = t.Anchor = function (e, t, n) {
913        this.$onChange = this.onChange.bind(this), this.attach(e), typeof n == "undefined" ? this.setPosition(t.row, t.column) : this.setPosition(t, n)
914    };
915    (function () {
916        function e(e, t, n) {
917            var r = n ? e.column <= t.column : e.column < t.column;
918            return e.row < t.row || e.row == t.row && r
919        }
920
921        function t(t, n, r) {
922            var i = t.action == "insert", s = (i ? 1 : -1) * (t.end.row - t.start.row),
923                o = (i ? 1 : -1) * (t.end.column - t.start.column), u = t.start, a = i ? u : t.end;
924            return e(n, u, r) ? {row: n.row, column: n.column} : e(a, n, !r) ? {
925                row: n.row + s,
926                column: n.column + (n.row == a.row ? o : 0)
927            } : {row: u.row, column: u.column}
928        }
929
930        r.implement(this, i), this.getPosition = function () {
931            return this.$clipPositionToDocument(this.row, this.column)
932        }, this.getDocument = function () {
933            return this.document
934        }, this.$insertRight = !1, this.onChange = function (e) {
935            if (e.start.row == e.end.row && e.start.row != this.row) return;
936            if (e.start.row > this.row) return;
937            var n = t(e, {row: this.row, column: this.column}, this.$insertRight);
938            this.setPosition(n.row, n.column, !0)
939        }, this.setPosition = function (e, t, n) {
940            var r;
941            n ? r = {row: e, column: t} : r = this.$clipPositionToDocument(e, t);
942            if (this.row == r.row && this.column == r.column) return;
943            var i = {row: this.row, column: this.column};
944            this.row = r.row, this.column = r.column, this._signal("change", {old: i, value: r})
945        }, this.detach = function () {
946            this.document.removeEventListener("change", this.$onChange)
947        }, this.attach = function (e) {
948            this.document = e || this.document, this.document.on("change", this.$onChange)
949        }, this.$clipPositionToDocument = function (e, t) {
950            var n = {};
951            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
952        }
953    }).call(s.prototype)
954}), define("ace/document", [], function (e, t, n) {
955    "use strict";
956    var r = e("./lib/oop"), i = e("./apply_delta").applyDelta, s = e("./lib/event_emitter").EventEmitter,
957        o = e("./range").Range, u = e("./anchor").Anchor, a = function (e) {
958            this.$lines = [""], e.length === 0 ? this.$lines = [""] : Array.isArray(e) ? this.insertMergedLines({
959                row: 0,
960                column: 0
961            }, e) : this.insert({row: 0, column: 0}, e)
962        };
963    (function () {
964        r.implement(this, s), this.setValue = function (e) {
965            var t = this.getLength() - 1;
966            this.remove(new o(0, 0, t, this.getLine(t).length)), this.insert({row: 0, column: 0}, e)
967        }, this.getValue = function () {
968            return this.getAllLines().join(this.getNewLineCharacter())
969        }, this.createAnchor = function (e, t) {
970            return new u(this, e, t)
971        }, "aaa".split(/a/).length === 0 ? this.$split = function (e) {
972            return e.replace(/\r\n|\r/g, "\n").split("\n")
973        } : this.$split = function (e) {
974            return e.split(/\r\n|\r|\n/)
975        }, this.$detectNewLine = function (e) {
976            var t = e.match(/^.*?(\r\n|\r|\n)/m);
977            this.$autoNewLine = t ? t[1] : "\n", this._signal("changeNewLineMode")
978        }, this.getNewLineCharacter = function () {
979            switch (this.$newLineMode) {
980                case"windows":
981                    return "\r\n";
982                case"unix":
983                    return "\n";
984                default:
985                    return this.$autoNewLine || "\n"
986            }
987        }, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function (e) {
988            if (this.$newLineMode === e) return;
989            this.$newLineMode = e, this._signal("changeNewLineMode")
990        }, this.getNewLineMode = function () {
991            return this.$newLineMode
992        }, this.isNewLine = function (e) {
993            return e == "\r\n" || e == "\r" || e == "\n"
994        }, this.getLine = function (e) {
995            return this.$lines[e] || ""
996        }, this.getLines = function (e, t) {
997            return this.$lines.slice(e, t + 1)
998        }, this.getAllLines = function () {
999            return this.getLines(0, this.getLength())
1000        }, this.getLength = function () {
1001            return this.$lines.length
1002        }, this.getTextRange = function (e) {
1003            return this.getLinesForRange(e).join(this.getNewLineCharacter())
1004        }, this.getLinesForRange = function (e) {
1005            var t;
1006            if (e.start.row === e.end.row) t = [this.getLine(e.start.row).substring(e.start.column, e.end.column)]; else {
1007                t = this.getLines(e.start.row, e.end.row), t[0] = (t[0] || "").substring(e.start.column);
1008                var n = t.length - 1;
1009                e.end.row - e.start.row == n && (t[n] = t[n].substring(0, e.end.column))
1010            }
1011            return t
1012        }, this.insertLines = function (e, t) {
1013            return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(e, t)
1014        }, this.removeLines = function (e, t) {
1015            return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(e, t)
1016        }, this.insertNewLine = function (e) {
1017            return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."), this.insertMergedLines(e, ["", ""])
1018        }, this.insert = function (e, t) {
1019            return this.getLength() <= 1 && this.$detectNewLine(t), this.insertMergedLines(e, this.$split(t))
1020        }, this.insertInLine = function (e, t) {
1021            var n = this.clippedPos(e.row, e.column), r = this.pos(e.row, e.column + t.length);
1022            return this.applyDelta({start: n, end: r, action: "insert", lines: [t]}, !0), this.clonePos(r)
1023        }, this.clippedPos = function (e, t) {
1024            var n = this.getLength();
1025            e === undefined ? e = n : e < 0 ? e = 0 : e >= n && (e = n - 1, t = undefined);
1026            var r = this.getLine(e);
1027            return t == undefined && (t = r.length), t = Math.min(Math.max(t, 0), r.length), {row: e, column: t}
1028        }, this.clonePos = function (e) {
1029            return {row: e.row, column: e.column}
1030        }, this.pos = function (e, t) {
1031            return {row: e, column: t}
1032        }, this.$clipPosition = function (e) {
1033            var t = this.getLength();
1034            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
1035        }, this.insertFullLines = function (e, t) {
1036            e = Math.min(Math.max(e, 0), this.getLength());
1037            var n = 0;
1038            e < this.getLength() ? (t = t.concat([""]), n = 0) : (t = [""].concat(t), e--, n = this.$lines[e].length), this.insertMergedLines({
1039                row: e,
1040                column: n
1041            }, t)
1042        }, this.insertMergedLines = function (e, t) {
1043            var n = this.clippedPos(e.row, e.column),
1044                r = {row: n.row + t.length - 1, column: (t.length == 1 ? n.column : 0) + t[t.length - 1].length};
1045            return this.applyDelta({start: n, end: r, action: "insert", lines: t}), this.clonePos(r)
1046        }, this.remove = function (e) {
1047            var t = this.clippedPos(e.start.row, e.start.column), n = this.clippedPos(e.end.row, e.end.column);
1048            return this.applyDelta({
1049                start: t,
1050                end: n,
1051                action: "remove",
1052                lines: this.getLinesForRange({start: t, end: n})
1053            }), this.clonePos(t)
1054        }, this.removeInLine = function (e, t, n) {
1055            var r = this.clippedPos(e, t), i = this.clippedPos(e, n);
1056            return this.applyDelta({
1057                start: r,
1058                end: i,
1059                action: "remove",
1060                lines: this.getLinesForRange({start: r, end: i})
1061            }, !0), this.clonePos(r)
1062        }, this.removeFullLines = function (e, t) {
1063            e = Math.min(Math.max(0, e), this.getLength() - 1), t = Math.min(Math.max(0, t), this.getLength() - 1);
1064            var n = t == this.getLength() - 1 && e > 0, r = t < this.getLength() - 1, i = n ? e - 1 : e,
1065                s = n ? this.getLine(i).length : 0, u = r ? t + 1 : t, a = r ? 0 : this.getLine(u).length,
1066                f = new o(i, s, u, a), l = this.$lines.slice(e, t + 1);
1067            return this.applyDelta({start: f.start, end: f.end, action: "remove", lines: this.getLinesForRange(f)}), l
1068        }, this.removeNewLine = function (e) {
1069            e < this.getLength() - 1 && e >= 0 && this.applyDelta({
1070                start: this.pos(e, this.getLine(e).length),
1071                end: this.pos(e + 1, 0),
1072                action: "remove",
1073                lines: ["", ""]
1074            })
1075        }, this.replace = function (e, t) {
1076            e instanceof o || (e = o.fromPoints(e.start, e.end));
1077            if (t.length === 0 && e.isEmpty()) return e.start;
1078            if (t == this.getTextRange(e)) return e.end;
1079            this.remove(e);
1080            var n;
1081            return t ? n = this.insert(e.start, t) : n = e.start, n
1082        }, this.applyDeltas = function (e) {
1083            for (var t = 0; t < e.length; t++) this.applyDelta(e[t])
1084        }, this.revertDeltas = function (e) {
1085            for (var t = e.length - 1; t >= 0; t--) this.revertDelta(e[t])
1086        }, this.applyDelta = function (e, t) {
1087            var n = e.action == "insert";
1088            if (n ? e.lines.length <= 1 && !e.lines[0] : !o.comparePoints(e.start, e.end)) return;
1089            n && e.lines.length > 2e4 ? this.$splitAndapplyLargeDelta(e, 2e4) : (i(this.$lines, e, t), this._signal("change", e))
1090        }, this.$splitAndapplyLargeDelta = function (e, t) {
1091            var n = e.lines, r = n.length - t + 1, i = e.start.row, s = e.start.column;
1092            for (var o = 0, u = 0; o < r; o = u) {
1093                u += t - 1;
1094                var a = n.slice(o, u);
1095                a.push(""), this.applyDelta({
1096                    start: this.pos(i + o, s),
1097                    end: this.pos(i + u, s = 0),
1098                    action: e.action,
1099                    lines: a
1100                }, !0)
1101            }
1102            e.lines = n.slice(o), e.start.row = i + o, e.start.column = s, this.applyDelta(e, !0)
1103        }, this.revertDelta = function (e) {
1104            this.applyDelta({
1105                start: this.clonePos(e.start),
1106                end: this.clonePos(e.end),
1107                action: e.action == "insert" ? "remove" : "insert",
1108                lines: e.lines.slice()
1109            })
1110        }, this.indexToPosition = function (e, t) {
1111            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length;
1112            for (var i = t || 0, s = n.length; i < s; i++) {
1113                e -= n[i].length + r;
1114                if (e < 0) return {row: i, column: e + n[i].length + r}
1115            }
1116            return {row: s - 1, column: e + n[s - 1].length + r}
1117        }, this.positionToIndex = function (e, t) {
1118            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length, i = 0,
1119                s = Math.min(e.row, n.length);
1120            for (var o = t || 0; o < s; ++o) i += n[o].length + r;
1121            return i + e.column
1122        }
1123    }).call(a.prototype), t.Document = a
1124}), define("ace/worker/mirror", [], function (e, t, n) {
1125    "use strict";
1126    var r = e("../range").Range, i = e("../document").Document, s = e("../lib/lang"), o = t.Mirror = function (e) {
1127        this.sender = e;
1128        var t = this.doc = new i(""), n = this.deferredUpdate = s.delayedCall(this.onUpdate.bind(this)), r = this;
1129        e.on("change", function (e) {
1130            var i = e.data;
1131            if (i[0].start) t.applyDeltas(i); else for (var s = 0; s < i.length; s += 2) {
1132                if (Array.isArray(i[s + 1])) var o = {
1133                    action: "insert",
1134                    start: i[s],
1135                    lines: i[s + 1]
1136                }; else var o = {action: "remove", start: i[s], end: i[s + 1]};
1137                t.applyDelta(o, !0)
1138            }
1139            if (r.$timeout) return n.schedule(r.$timeout);
1140            r.onUpdate()
1141        })
1142    };
1143    (function () {
1144        this.$timeout = 500, this.setTimeout = function (e) {
1145            this.$timeout = e
1146        }, this.setValue = function (e) {
1147            this.doc.setValue(e), this.deferredUpdate.schedule(this.$timeout)
1148        }, this.getValue = function (e) {
1149            this.sender.callback(this.doc.getValue(), e)
1150        }, this.onUpdate = function () {
1151        }, this.isPending = function () {
1152            return this.deferredUpdate.isPending()
1153        }
1154    }).call(o.prototype)
1155}), define("ace/mode/css/csslint", [], function (require, exports, module) {
1156    function objectToString(e) {
1157        return Object.prototype.toString.call(e)
1158    }
1159
1160    function clone(e, t, n, r) {
1161        function u(e, n) {
1162            if (e === null) return null;
1163            if (n == 0) return e;
1164            var a;
1165            if (typeof e != "object") return e;
1166            if (util.isArray(e)) a = []; else if (util.isRegExp(e)) a = new RegExp(e.source, util.getRegExpFlags(e)), e.lastIndex && (a.lastIndex = e.lastIndex); else if (util.isDate(e)) a = new Date(e.getTime()); else {
1167                if (o && Buffer.isBuffer(e)) return a = new Buffer(e.length), e.copy(a), a;
1168                typeof r == "undefined" ? a = Object.create(Object.getPrototypeOf(e)) : a = Object.create(r)
1169            }
1170            if (t) {
1171                var f = i.indexOf(e);
1172                if (f != -1) return s[f];
1173                i.push(e), s.push(a)
1174            }
1175            for (var l in e) a[l] = u(e[l], n - 1);
1176            return a
1177        }
1178
1179        var i = [], s = [], o = typeof Buffer != "undefined";
1180        return typeof t == "undefined" && (t = !0), typeof n == "undefined" && (n = Infinity), u(e, n)
1181    }
1182
1183    function Reporter(e, t) {
1184        this.messages = [], this.stats = [], this.lines = e, this.ruleset = t
1185    }
1186
1187    var parserlib = {};
1188    (function () {
1189        function e() {
1190            this._listeners = {}
1191        }
1192
1193        function t(e) {
1194            this._input = e.replace(/\n\r?/g, "\n"), this._line = 1, this._col = 1, this._cursor = 0
1195        }
1196
1197        function n(e, t, n) {
1198            this.col = n, this.line = t, this.message = e
1199        }
1200
1201        function r(e, t, n, r) {
1202            this.col = n, this.line = t, this.text = e, this.type = r
1203        }
1204
1205        function i(e, n) {
1206            this._reader = e ? new t(e.toString()) : null, this._token = null, this._tokenData = n, this._lt = [], this._ltIndex = 0, this._ltIndexCache = []
1207        }
1208
1209        e.prototype = {
1210            constructor: e, addListener: function (e, t) {
1211                this._listeners[e] || (this._listeners[e] = []), this._listeners[e].push(t)
1212            }, fire: function (e) {
1213                typeof e == "string" && (e = {type: e}), typeof e.target != "undefined" && (e.target = this);
1214                if (typeof e.type == "undefined") throw new Error("Event object missing 'type' property.");
1215                if (this._listeners[e.type]) {
1216                    var t = this._listeners[e.type].concat();
1217                    for (var n = 0, r = t.length; n < r; n++) t[n].call(this, e)
1218                }
1219            }, removeListener: function (e, t) {
1220                if (this._listeners[e]) {
1221                    var n = this._listeners[e];
1222                    for (var r = 0, i = n.length; r < i; r++) if (n[r] === t) {
1223                        n.splice(r, 1);
1224                        break
1225                    }
1226                }
1227            }
1228        }, t.prototype = {
1229            constructor: t, getCol: function () {
1230                return this._col
1231            }, getLine: function () {
1232                return this._line
1233            }, eof: function () {
1234                return this._cursor == this._input.length
1235            }, peek: function (e) {
1236                var t = null;
1237                return e = typeof e == "undefined" ? 1 : e, this._cursor < this._input.length && (t = this._input.charAt(this._cursor + e - 1)), t
1238            }, read: function () {
1239                var e = null;
1240                return this._cursor < this._input.length && (this._input.charAt(this._cursor) == "\n" ? (this._line++, this._col = 1) : this._col++, e = this._input.charAt(this._cursor++)), e
1241            }, mark: function () {
1242                this._bookmark = {cursor: this._cursor, line: this._line, col: this._col}
1243            }, reset: function () {
1244                this._bookmark && (this._cursor = this._bookmark.cursor, this._line = this._bookmark.line, this._col = this._bookmark.col, delete this._bookmark)
1245            }, readTo: function (e) {
1246                var t = "", n;
1247                while (t.length < e.length || t.lastIndexOf(e) != t.length - e.length) {
1248                    n = this.read();
1249                    if (!n) throw new Error('Expected "' + e + '" at line ' + this._line + ", col " + this._col + ".");
1250                    t += n
1251                }
1252                return t
1253            }, readWhile: function (e) {
1254                var t = "", n = this.read();
1255                while (n !== null && e(n)) t += n, n = this.read();
1256                return t
1257            }, readMatch: function (e) {
1258                var t = this._input.substring(this._cursor), n = null;
1259                return typeof e == "string" ? t.indexOf(e) === 0 && (n = this.readCount(e.length)) : e instanceof RegExp && e.test(t) && (n = this.readCount(RegExp.lastMatch.length)), n
1260            }, readCount: function (e) {
1261                var t = "";
1262                while (e--) t += this.read();
1263                return t
1264            }
1265        }, n.prototype = new Error, r.fromToken = function (e) {
1266            return new r(e.value, e.startLine, e.startCol)
1267        }, r.prototype = {
1268            constructor: r, valueOf: function () {
1269                return this.text
1270            }, toString: function () {
1271                return this.text
1272            }
1273        }, i.createTokenData = function (e) {
1274            var t = [], n = {}, r = e.concat([]), i = 0, s = r.length + 1;
1275            r.UNKNOWN = -1, r.unshift({name: "EOF"});
1276            for (; i < s; i++) t.push(r[i].name), r[r[i].name] = i, r[i].text && (n[r[i].text] = i);
1277            return r.name = function (e) {
1278                return t[e]
1279            }, r.type = function (e) {
1280                return n[e]
1281            }, r
1282        }, i.prototype = {
1283            constructor: i, match: function (e, t) {
1284                e instanceof Array || (e = [e]);
1285                var n = this.get(t), r = 0, i = e.length;
1286                while (r < i) if (n == e[r++]) return !0;
1287                return this.unget(), !1
1288            }, mustMatch: function (e, t) {
1289                var r;
1290                e instanceof Array || (e = [e]);
1291                if (!this.match.apply(this, arguments)) throw r = this.LT(1), new n("Expected " + this._tokenData[e[0]].name + " at line " + r.startLine + ", col " + r.startCol + ".", r.startLine, r.startCol)
1292            }, advance: function (e, t) {
1293                while (this.LA(0) !== 0 && !this.match(e, t)) this.get();
1294                return this.LA(0)
1295            }, get: function (e) {
1296                var t = this._tokenData, n = this._reader, r, i = 0, s = t.length, o = !1, u, a;
1297                if (this._lt.length && this._ltIndex >= 0 && this._ltIndex < this._lt.length) {
1298                    i++, this._token = this._lt[this._ltIndex++], a = t[this._token.type];
1299                    while (a.channel !== undefined && e !== a.channel && this._ltIndex < this._lt.length) this._token = this._lt[this._ltIndex++], a = t[this._token.type], i++;
1300                    if ((a.channel === undefined || e === a.channel) && this._ltIndex <= this._lt.length) return this._ltIndexCache.push(i), this._token.type
1301                }
1302                return u = this._getToken(), u.type > -1 && !t[u.type].hide && (u.channel = t[u.type].channel, this._token = u, this._lt.push(u), this._ltIndexCache.push(this._lt.length - this._ltIndex + i), this._lt.length > 5 && this._lt.shift(), this._ltIndexCache.length > 5 && this._ltIndexCache.shift(), this._ltIndex = this._lt.length), a = t[u.type], a && (a.hide || a.channel !== undefined && e !== a.channel) ? this.get(e) : u.type
1303            }, LA: function (e) {
1304                var t = e, n;
1305                if (e > 0) {
1306                    if (e > 5) throw new Error("Too much lookahead.");
1307                    while (t) n = this.get(), t--;
1308                    while (t < e) this.unget(), t++
1309                } else if (e < 0) {
1310                    if (!this._lt[this._ltIndex + e]) throw new Error("Too much lookbehind.");
1311                    n = this._lt[this._ltIndex + e].type
1312                } else n = this._token.type;
1313                return n
1314            }, LT: function (e) {
1315                return this.LA(e), this._lt[this._ltIndex + e - 1]
1316            }, peek: function () {
1317                return this.LA(1)
1318            }, token: function () {
1319                return this._token
1320            }, tokenName: function (e) {
1321                return e < 0 || e > this._tokenData.length ? "UNKNOWN_TOKEN" : this._tokenData[e].name
1322            }, tokenType: function (e) {
1323                return this._tokenData[e] || -1
1324            }, unget: function () {
1325                if (!this._ltIndexCache.length) throw new Error("Too much lookahead.");
1326                this._ltIndex -= this._ltIndexCache.pop(), this._token = this._lt[this._ltIndex - 1]
1327            }
1328        }, parserlib.util = {StringReader: t, SyntaxError: n, SyntaxUnit: r, EventTarget: e, TokenStreamBase: i}
1329    })(), function () {
1330        function Combinator(e, t, n) {
1331            SyntaxUnit.call(this, e, t, n, Parser.COMBINATOR_TYPE), this.type = "unknown", /^\s+$/.test(e) ? this.type = "descendant" : e == ">" ? this.type = "child" : e == "+" ? this.type = "adjacent-sibling" : e == "~" && (this.t
1331ype = "sibling")
1332        }
1333
1334        function MediaFeature(e, t) {
1335            SyntaxUnit.call(this, "(" + e + (t !== null ? ":" + t : "") + ")", e.startLine, e.startCol, Parser.MEDIA_FEATURE_TYPE), this.name = e, this.value = t
1336        }
1337
1338        function MediaQuery(e, t, n, r, i) {
1339            SyntaxUnit.call(this, (e ? e + " " : "") + (t ? t : "") + (t && n.length > 0 ? " and " : "") + n.join(" and "), r, i, Parser.MEDIA_QUERY_TYPE), this.modifier = e, this.mediaType = t, this.features = n
1340        }
1341
1342        function Parser(e) {
1343            EventTarget.call(this), this.options = e || {}, this._tokenStream = null
1344        }
1345
1346        function PropertyName(e, t, n, r) {
1347            SyntaxUnit.call(this, e, n, r, Parser.PROPERTY_NAME_TYPE), this.hack = t
1348        }
1349
1350        function PropertyValue(e, t, n) {
1351            SyntaxUnit.call(this, e.join(" "), t, n, Parser.PROPERTY_VALUE_TYPE), this.parts = e
1352        }
1353
1354        function PropertyValueIterator(e) {
1355            this._i = 0, this._parts = e.parts, this._marks = [], this.value = e
1356        }
1357
1358        function PropertyValuePart(text, line, col) {
1359            SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_VALUE_PART_TYPE), this.type = "unknown";
1360            var temp;
1361            if (/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)) {
1362                this.type = "dimension", this.value = +RegExp.$1, this.units = RegExp.$2;
1363                switch (this.units.toLowerCase()) {
1364                    case"em":
1365                    case"rem":
1366                    case"ex":
1367                    case"px":
1368                    case"cm":
1369                    case"mm":
1370                    case"in":
1371                    case"pt":
1372                    case"pc":
1373                    case"ch":
1374                    case"vh":
1375                    case"vw":
1376                    case"vmax":
1377                    case"vmin":
1378                        this.type = "length";
1379                        break;
1380                    case"deg":
1381                    case"rad":
1382                    case"grad":
1383                        this.type = "angle";
1384                        break;
1385                    case"ms":
1386                    case"s":
1387                        this.type = "time";
1388                        break;
1389                    case"hz":
1390                    case"khz":
1391                        this.type = "frequency";
1392                        break;
1393                    case"dpi":
1394                    case"dpcm":
1395                        this.type = "resolution"
1396                }
1397            } else /^([+\-]?[\d\.]+)%$/i.test(text) ? (this.type = "percentage", this.value = +RegExp.$1) : /^([+\-]?\d+)$/i.test(text) ? (this.type = "integer", this.value = +RegExp.$1) : /^([+\-]?[\d\.]+)$/i.test(text) ? (this.type = "number", this.value = +RegExp.$1) : /^#([a-f0-9]{3,6})/i.test(text) ? (this.type = "color", temp = RegExp.$1, temp.length == 3 ? (this.red = parseInt(temp.charAt(0) + temp.charAt(0), 16), this.green = parseInt(temp.charAt(1) + temp.charAt(1), 16), this.blue = parseInt(temp.charAt(2) + temp.charAt(2), 16)) : (this.red = parseInt(temp.substring(0, 2), 16), this.green = parseInt(temp.substring(2, 4), 16), this.blue = parseInt(temp.substring(4, 6), 16))) : /^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text) ? (this.type = "color", this.red = +RegExp.$1, this.green = +RegExp.$2, this.blue = +RegExp.$3) : /^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text) ? (this.type = "color", this.red = +RegExp.$1 * 255 / 100, this.green = +RegExp.$2 * 255 / 100, this.blue = +RegExp.$3 * 255 / 100) : /^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/i.test(text) ? (this.type = "color", this.red = +RegExp.$1, this.green = +RegExp.$2, this.blue = +RegExp.$3, this.alpha = +RegExp.$4) : /^rgba\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text) ? (this.type = "color", this.red = +RegExp.$1 * 255 / 100, this.green = +RegExp.$2 * 255 / 100, this.blue = +RegExp.$3 * 255 / 100, this.alpha = +RegExp.$4) : /^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text) ? (this.type = "color", this.hue = +RegExp.$1, this.saturation = +RegExp.$2 / 100, this.lightness = +RegExp.$3 / 100) : /^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text) ? (this.t
1397ype = "color", this.hue = +RegExp.$1, this.saturation = +RegExp.$2 / 100, this.lightness = +RegExp.$3 / 100, this.alpha = +RegExp.$4) : /^url\(["']?([^\)"']+)["']?\)/i.test(text) ? (this.type = "uri", this.uri = RegExp.$1) : /^([^\(]+)\(/i.test(text) ? (this.type = "function", this.name = RegExp.$1, this.value = text) : /^["'][^"']*["']/.test(text) ? (this.type = "string", this.value = eval(text)) : Colors[text.toLowerCase()] ? (this.type = "color", temp = Colors[text.toLowerCase()].substring(1), this.red = parseInt(temp.substring(0, 2), 16), this.green = parseInt(temp.substring(2, 4), 16), this.blue = parseInt(temp.substring(4, 6), 16)) : /^[\,\/]$/.test(text) ? (this.type = "operator", this.value = text) : /^[a-z\-_\u0080-\uFFFF][a-z0-9\-_\u0080-\uFFFF]*$/i.test(text) && (this.type = "identifier", this.value = text)
1398        }
1399
1400        function Selector(e, t, n) {
1401            SyntaxUnit.call(this, e.join(" "), t, n, Parser.SELECTOR_TYPE), this.parts = e, this.specificity = Specificity.calculate(this)
1402        }
1403
1404        function SelectorPart(e, t, n, r, i) {
1405            SyntaxUnit.call(this, n, r, i, Parser.SELECTOR_PART_TYPE), this.elementName = e, this.modifiers = t
1406        }
1407
1408        function SelectorSubPart(e, t, n, r) {
1409            SyntaxUnit.call(this, e, n, r, Parser.SELECTOR_SUB_PART_TYPE), this.type = t, this.args = []
1410        }
1411
1412        function Specificity(e, t, n, r) {
1413            this.a = e, this.b = t, this.c = n, this.d = r
1414        }
1415
1416        function isHexDigit(e) {
1417            return e !== null && h.test(e)
1418        }
1419
1420        function isDigit(e) {
1421            return e !== null && /\d/.test(e)
1422        }
1423
1424        function isWhitespace(e) {
1425            return e !== null && /\s/.test(e)
1426        }
1427
1428        function isNewLine(e) {
1429            return e !== null && nl.test(e)
1430        }
1431
1432        function isNameStart(e) {
1433            return e !== null && /[a-z_\u0080-\uFFFF\\]/i.test(e)
1434        }
1435
1436        function isNameChar(e) {
1437            return e !== null && (isNameStart(e) || /[0-9\-\\]/.test(e))
1438        }
1439
1440        function isIdentStart(e) {
1441            return e !== null && (isNameStart(e) || /\-\\/.test(e))
1442        }
1443
1444        function mix(e, t) {
1445            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
1446            return e
1447        }
1448
1449        function TokenStream(e) {
1450            TokenStreamBase.call(this, e, Tokens)
1451        }
1452
1453        function ValidationError(e, t, n) {
1454            this.col = n, this.line = t, this.message = e
1455        }
1456
1457        var EventTarget = parserlib.util.EventTarget, TokenStreamBase = parserlib.util.TokenStreamBase,
1458            StringReader = parserlib.util.StringReader, SyntaxError = parserlib.util.SyntaxError,
1459            SyntaxUnit = parserlib.util.SyntaxUnit, Colors = {
1460                aliceblue: "#f0f8ff",
1461                antiquewhite: "#faebd7",
1462                aqua: "#00ffff",
1463                aquamarine: "#7fffd4",
1464                azure: "#f0ffff",
1465                beige: "#f5f5dc",
1466                bisque: "#ffe4c4",
1467                black: "#000000",
1468                blanchedalmond: "#ffebcd",
1469                blue: "#0000ff",
1470                blueviolet: "#8a2be2",
1471                brown: "#a52a2a",
1472                burlywood: "#deb887",
1473                cadetblue: "#5f9ea0",
1474                chartreuse: "#7fff00",
1475                chocolate: "#d2691e",
1476                coral: "#ff7f50",
1477                cornflowerblue: "#6495ed",
1478                cornsilk: "#fff8dc",
1479                crimson: "#dc143c",
1480                cyan: "#00ffff",
1481                darkblue: "#00008b",
1482                darkcyan: "#008b8b",
1483                darkgoldenrod: "#b8860b",
1484                darkgray: "#a9a9a9",
1485                darkgrey: "#a9a9a9",
1486                darkgreen: "#006400",
1487                darkkhaki: "#bdb76b",
1488                darkmagenta: "#8b008b",
1489                darkolivegreen: "#556b2f",
1490                darkorange: "#ff8c00",
1491                darkorchid: "#9932cc",
1492                darkred: "#8b0000",
1493                darksalmon: "#e9967a",
1494                darkseagreen: "#8fbc8f",
1495                darkslateblue: "#483d8b",
1496                darkslategray: "#2f4f4f",
1497                darkslategrey: "#2f4f4f",
1498                darkturquoise: "#00ced1",
1499                darkviolet: "#9400d3",
1500                deeppink: "#ff1493",
1501                deepskyblue: "#00bfff",
1502                dimgray: "#696969",
1503                dimgrey: "#696969",
1504                dodgerblue: "#1e90ff",
1505                firebrick: "#b22222",
1506                floralwhite: "#fffaf0",
1507                forestgreen: "#228b22",
1508                fuchsia: "#ff00ff",
1509                gainsboro: "#dcdcdc",
1510                ghostwhite: "#f8f8ff",
1511                gold: "#ffd700",
1512                goldenrod: "#daa520",
1513                gray: "#808080",
1514                grey: "#808080",
1515                green: "#008000",
1516                greenyellow: "#adff2f",
1517                honeydew: "#f0fff0",
1518                hotpink: "#ff69b4",
1519                indianred: "#cd5c5c",
1520                indigo: "#4b0082",
1521                ivory: "#fffff0",
1522                khaki: "#f0e68c",
1523                lavender: "#e6e6fa",
1524                lavenderblush: "#fff0f5",
1525                lawngreen: "#7cfc00",
1526                lemonchiffon: "#fffacd",
1527                lightblue: "#add8e6",
1528                lightcoral: "#f08080",
1529                lightcyan: "#e0ffff",
1530                lightgoldenrodyellow: "#fafad2",
1531                lightgray: "#d3d3d3",
1532                lightgrey: "#d3d3d3",
1533                lightgreen: "#90ee90",
1534                lightpink: "#ffb6c1",
1535                lightsalmon: "#ffa07a",
1536                lightseagreen: "#20b2aa",
1537                lightskyblue: "#87cefa",
1538                lightslategray: "#778899",
1539                lightslategrey: "#778899",
1540                lightsteelblue: "#b0c4de",
1541                lightyellow: "#ffffe0",
1542                lime: "#00ff00",
1543                limegreen: "#32cd32",
1544                linen: "#faf0e6",
1545                magenta: "#ff00ff",
1546                maroon: "#800000",
1547                mediumaquamarine: "#66cdaa",
1548                mediumblue: "#0000cd",
1549                mediumorchid: "#ba55d3",
1550                mediumpurple: "#9370d8",
1551                mediumseagreen: "#3cb371",
1552                mediumslateblue: "#7b68ee",
1553                mediumspringgreen: "#00fa9a",
1554                mediumturquoise: "#48d1cc",
1555                mediumvioletred: "#c71585",
1556                midnightblue: "#191970",
1557                mintcream: "#f5fffa",
1558                mistyrose: "#ffe4e1",
1559                moccasin: "#ffe4b5",
1560                navajowhite: "#ffdead",
1561                navy: "#000080",
1562                oldlace: "#fdf5e6",
1563                olive: "#808000",
1564                olivedrab: "#6b8e23",
1565                orange: "#ffa500",
1566                orangered: "#ff4500",
1567                orchid: "#da70d6",
1568                palegoldenrod: "#eee8aa",
1569                palegreen: "#98fb98",
1570                paleturquoise: "#afeeee",
1571                palevioletred: "#d87093",
1572                papayawhip: "#ffefd5",
1573                peachpuff: "#ffdab9",
1574                peru: "#cd853f",
1575                pink: "#ffc0cb",
1576                plum: "#dda0dd",
1577                powderblue: "#b0e0e6",
1578                purple: "#800080",
1579                red: "#ff0000",
1580                rosybrown: "#bc8f8f",
1581                royalblue: "#4169e1",
1582                saddlebrown: "#8b4513",
1583                salmon: "#fa8072",
1584                sandybrown: "#f4a460",
1585                seagreen: "#2e8b57",
1586                seashell: "#fff5ee",
1587                sienna: "#a0522d",
1588                silver: "#c0c0c0",
1589                skyblue: "#87ceeb",
1590                slateblue: "#6a5acd",
1591                slategray: "#708090",
1592                slategrey: "#708090",
1593                snow: "#fffafa",
1594                springgreen: "#00ff7f",
1595                steelblue: "#4682b4",
1596                tan: "#d2b48c",
1597                teal: "#008080",
1598                thistle: "#d8bfd8",
1599                tomato: "#ff6347",
1600                turquoise: "#40e0d0",
1601                violet: "#ee82ee",
1602                wheat: "#f5deb3",
1603                white: "#ffffff",
1604                whitesmoke: "#f5f5f5",
1605                yellow: "#ffff00",
1606                yellowgreen: "#9acd32",
1607                activeBorder: "Active window border.",
1608                activecaption: "Active window caption.",
1609                appworkspace: "Background color of multiple document interface.",
1610                background: "Desktop background.",
1611                buttonface: "The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.",
1612                buttonhighlight: "The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",
1613                buttonshadow: "The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",
1614                buttontext: "Text on push buttons.",
1615                captiontext: "Text in caption, size box, and scrollbar arrow box.",
1616                graytext: "Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.",
1617                greytext: "Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.",
1618                highlight: "Item(s) selected in a control.",
1619                highlighttext: "Text of item(s) selected in a control.",
1620                inactiveborder: "Inactive window border.",
1621                inactivecaption: "Inactive window caption.",
1622                inactivecaptiontext: "Color of text in an inactive caption.",
1623                infobackground: "Background color for tooltip controls.",
1624                infotext: "Text color for tooltip controls.",
1625                menu: "Menu background.",
1626                menutext: "Text in menus.",
1627                scrollbar: "Scroll bar gray area.",
1628                threeddarkshadow: "The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
1629                threedface: "The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
1630                threedhighlight: "The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
1631                threedlightshadow: "The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
1632                threedshadow: "The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
1633                window: "Window background.",
1634                windowframe: "Window frame.",
1635                windowtext: "Text in windows."
1636            };
1637        Combinator.prototype = new SyntaxUnit, Combinator.prototype.constructor = Combinator, MediaFeature.prototype = new SyntaxUnit, MediaFeature.prototype.constructor = MediaFeature, MediaQuery.prototype = new SyntaxUnit, MediaQuery.prototype.constructor = MediaQuery, Parser.DEFAULT_TYPE = 0, Parser.COMBINATOR_TYPE = 1, Parser.MEDIA_FEATURE_TYPE = 2, Parser.MEDIA_QUERY_TYPE = 3, Parser.PROPERTY_NAME_TYPE = 4, Parser.PROPERTY_VALUE_TYPE = 5, Parser.PROPERTY_VALUE_PART_TYPE = 6, Parser.SELECTOR_TYPE = 7, Parser.SELECTOR_PART_TYPE = 8, Parser.SELECTOR_SUB_PART_TYPE = 9, Parser.prototype = function () {
1638            var e = new EventTarget, t, n = {
1639                constructor: Parser,
1640                DEFAULT_TYPE: 0,
1641                COMBINATOR_TYPE: 1,
1642                MEDIA_FEATURE_TYPE: 2,
1643                MEDIA_QUERY_TYPE: 3,
1644                PROPERTY_NAME_TYPE: 4,
1645                PROPERTY_VALUE_TYPE: 5,
1646                PROPERTY_VALUE_PART_TYPE: 6,
1647                SELECTOR_TYPE: 7,
1648                SELECTOR_PART_TYPE: 8,
1649                SELECTOR_SUB_PART_TYPE: 9,
1650                _stylesheet: function () {
1651                    var e = this._tokenStream, t = null, n, r, i;
1652                    this.fire("startstylesheet"), this._charset(), this._skipCruft();
1653                    while (e.peek() == Tokens.IMPORT_SYM) this._import(), this._skipCruft();
1654                    while (e.peek() == Tokens.NAMESPACE_SYM) this._namespace(), this._skipCruft();
1655                    i = e.peek();
1656                    while (i > Tokens.EOF) {
1657                        try {
1658                            switch (i) {
1659                                case Tokens.MEDIA_SYM:
1660                                    this._media(), this._skipCruft();
1661                                    break;
1662                                case Tokens.PAGE_SYM:
1663                                    this._page(), this._skipCruft();
1664                                    break;
1665                                case Tokens.FONT_FACE_SYM:
1666                                    this._font_face(), this._skipCruft();
1667                                    break;
1668                                case Tokens.KEYFRAMES_SYM:
1669                                    this._keyframes(), this._skipCruft();
1670                                    break;
1671                                case Tokens.VIEWPORT_SYM:
1672                                    this._viewport(), this._skipCruft();
1673                                    break;
1674                                case Tokens.UNKNOWN_SYM:
1675                                    e.get();
1676                                    if (!!this.options.strict) throw new SyntaxError("Unknown @ rule.", e.LT(0).startLine, e.LT(0).startCol);
1677                                    this.fire({
1678                                        type: "error",
1679                                        error: null,
1680                                        message: "Unknown @ rule: " + e.LT(0).value + ".",
1681                                        line: e.LT(0).startLine,
1682                                        col: e.LT(0).startCol
1683                                    }), n = 0;
1684                                    while (e.advance([Tokens.LBRACE, Tokens.RBRACE]) == Tokens.LBRACE) n++;
1685                                    while (n) e.advance([Tokens.RBRACE]), n--;
1686                                    break;
1687                                case Tokens.S:
1688                                    this._readWhitespace();
1689                                    break;
1690                                default:
1691                                    if (!this._ruleset()) switch (i) {
1692                                        case Tokens.CHARSET_SYM:
1693                                            throw r = e.LT(1), this._charset(!1), new SyntaxError("@charset not allowed here.", r.startLine, r.startCol);
1694                                        case Tokens.IMPORT_SYM:
1695                                            throw r = e.LT(1), this._import(!1), new SyntaxError("@import not allowed here.", r.startLine, r.startCol);
1696                                        case Tokens.NAMESPACE_SYM:
1697                                            throw r = e.LT(1), this._namespace(!1), new SyntaxError("@namespace not allowed here.", r.startLine, r.startCol);
1698                                        default:
1699                                            e.get(), this._unexpectedToken(e.token())
1700                                    }
1701                            }
1702                        } catch (s) {
1703                            if (!(s instanceof SyntaxError && !this.options.strict)) throw s;
1704                            this.fire({type: "error", error: s, message: s.message, line: s.line, col: s.col})
1705                        }
1706                        i = e.peek()
1707                    }
1708                    i != Tokens.EOF && this._unexpectedToken(e.token()), this.fire("endstylesheet")
1709                },
1710                _charset: function (e) {
1711                    var t = this._tokenStream, n, r, i, s;
1712                    t.match(Tokens.CHARSET_SYM) && (i = t.token().startLine, s = t.token().startCol, this._readWhitespace(), t.mustMatch(Tokens.STRING), r = t.token(), n = r.value, this._readWhitespace(), t.mustMatch(Tokens.SEMICOLON), e !== !1 && this.fire({
1713                        type: "charset",
1714                        charset: n,
1715                        line: i,
1716                        col: s
1717                    }))
1718                },
1719                _import: function (e) {
1720                    var t = this._tokenStream, n, r, i, s = [];
1721                    t.mustMatch(Tokens.IMPORT_SYM), i = t.token(), this._readWhitespace(), t.mustMatch([Tokens.STRING, Tokens.URI]), r = t.token().value.replace(/^(?:url\()?["']?([^"']+?)["']?\)?$/, "$1"), this._readWhitespace(), s = this._media_query_list(), t.mustMatch(Tokens.SEMICOLON), this._readWhitespace(), e !== !1 && this.fire({
1722                        type: "import",
1723                        uri: r,
1724                        media: s,
1725                        line: i.startLine,
1726                        col: i.startCol
1727                    })
1728                },
1729                _namespace: function (e) {
1730                    var t = this._tokenStream, n, r, i, s;
1731                    t.mustMatch(Tokens.NAMESPACE_SYM), n = t.token().startLine, r = t.token().startCol, this._readWhitespace(), t.match(Tokens.IDENT) && (i = t.token().value, this._readWhitespace()), t.mustMatch([Tokens.STRING, Tokens.URI]), s = t.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1"), this._readWhitespace(), t.mustMatch(Tokens.SEMICOLON), this._readWhitespace(), e !== !1 && this.fire({
1732                        type: "namespace",
1733                        prefix: i,
1734                        uri: s,
1735                        line: n,
1736                        col: r
1737                    })
1738                },
1739                _media: function () {
1740                    var e = this._tokenStream, t, n, r;
1741                    e.mustMatch(Tokens.MEDIA_SYM), t = e.token().startLine, n = e.token().startCol, this._readWhitespace(), r = this._media_query_list(), e.mustMatch(Tokens.LBRACE), this._readWhitespace(), this.fire({
1742                        type: "startmedia",
1743                        media: r,
1744                        line: t,
1745                        col: n
1746                    });
1747                    for (; ;) if (e.peek() == Tokens.PAGE_SYM) this._page(); else if (e.peek() == Tokens.FONT_FACE_SYM) this._font_face(); else if (e.peek() == Tokens.VIEWPORT_SYM) this._viewport(); else if (!this._ruleset()) break;
1748                    e.mustMatch(Tokens.RBRACE), this._readWhitespace(), this.fire({
1749                        type: "endmedia",
1750                        media: r,
1751                        line: t,
1752                        col: n
1753                    })
1754                },
1755                _media_query_list: function () {
1756                    var e = this._tokenStream, t = [];
1757                    this._readWhitespace(), (e.peek() == Tokens.IDENT || e.peek() == Tokens.LPAREN) && t.push(this._media_query());
1758                    while (e.match(Tokens.COMMA)) this._readWhitespace(), t.push(this._media_query());
1759                    return t
1760                },
1761                _media_query: function () {
1762                    var e = this._tokenStream, t = null, n = null, r = null, i = [];
1763                    e.match(Tokens.IDENT) && (n = e.token().value.toLowerCase(), n != "only" && n != "not" ? (e.unget(), n = null) : r = e.token()), this._readWhitespace(), e.peek() == Tokens.IDENT ? (t = this._media_type(), r === null && (r = e.token())) : e.peek() == Tokens.LPAREN && (r === null && (r = e.LT(1)), i.push(this._media_expression()));
1764                    if (t === null && i.length === 0) return null;
1765                    this._readWhitespace();
1766                    while (e.match(Tokens.IDENT)) e.token().value.toLowerCase() != "and" && this._unex
1766pectedToken(e.token()), this._readWhitespace(), i.push(this._media_expression());
1767                    return new MediaQuery(n, t, i, r.startLine, r.startCol)
1768                },
1769                _media_type: function () {
1770                    return this._media_feature()
1771                },
1772                _media_expression: function () {
1773                    var e = this._tokenStream, t = null, n, r = null;
1774                    return e.mustMatch(Tokens.LPAREN), this._readWhitespace(), t = this._media_feature(), this._readWhitespace(), e.match(Tokens.COLON) && (this._readWhitespace(), n = e.LT(1), r = this._expression()), e.mustMatch(Tokens.RPAREN), this._readWhitespace(), new MediaFeature(t, r ? new SyntaxUnit(r, n.startLine, n.startCol) : null)
1775                },
1776                _media_feature: function () {
1777                    var e = this._tokenStream;
1778                    return e.mustMatch(Tokens.IDENT), SyntaxUnit.fromToken(e.token())
1779                },
1780                _page: function () {
1781                    var e = this._tokenStream, t, n, r = null, i = null;
1782                    e.mustMatch(Tokens.PAGE_SYM), t = e.token().startLine, n = e.token().startCol, this._readWhitespace(), e.match(Tokens.IDENT) && (r = e.token().value, r.toLowerCase() === "auto" && this._unexpectedToken(e.token())), e.peek() == Tokens.COLON && (i = this._pseudo_page()), this._readWhitespace(), this.fire({
1783                        type: "startpage",
1784                        id: r,
1785                        pseudo: i,
1786                        line: t,
1787                        col: n
1788                    }), this._readDeclarations(!0, !0), this.fire({type: "endpage", id: r, pseudo: i, line: t, col: n})
1789                },
1790                _margin: function () {
1791                    var e = this._tokenStream, t, n, r = this._margin_sym();
1792                    return r ? (t = e.token().startLine, n = e.token().startCol, this.fire({
1793                        type: "startpagemargin",
1794                        margin: r,
1795                        line: t,
1796                        col: n
1797                    }), this._readDeclarations(!0), this.fire({
1798                        type: "endpagemargin",
1799                        margin: r,
1800                        line: t,
1801                        col: n
1802                    }), !0) : !1
1803                },
1804                _margin_sym: function () {
1805                    var e = this._tokenStream;
1806                    return e.match([Tokens.TOPLEFTCORNER_SYM, Tokens.TOPLEFT_SYM, Tokens.TOPCENTER_SYM, Tokens.TOPRIGHT_SYM, Tokens.TOPRIGHTCORNER_SYM, Tokens.BOTTOMLEFTCORNER_SYM, Tokens.BOTTOMLEFT_SYM, Tokens.BOTTOMCENTER_SYM, Tokens.BOTTOMRIGHT_SYM, Tokens.BOTTOMRIGHTCORNER_SYM, Tokens.LEFTTOP_SYM, Tokens.LEFTMIDDLE_SYM, Tokens.LEFTBOTTOM_SYM, Tokens.RIGHTTOP_SYM, Tokens.RIGHTMIDDLE_SYM, Tokens.RIGHTBOTTOM_SYM]) ? SyntaxUnit.fromToken(e.token()) : null
1807                },
1808                _pseudo_page: function () {
1809                    var e = this._tokenStream;
1810                    return e.mustMatch(Tokens.COLON), e.mustMatch(Tokens.IDENT), e.token().value
1811                },
1812                _font_face: function () {
1813                    var e = this._tokenStream, t, n;
1814                    e.mustMatch(Tokens.FONT_FACE_SYM), t = e.token().startLine, n = e.token().startCol, this._readWhitespace(), this.fire({
1815                        type: "startfontface",
1816                        line: t,
1817                        col: n
1818                    }), this._readDeclarations(!0), this.fire({type: "endfontface", line: t, col: n})
1819                },
1820                _viewport: function () {
1821                    var e = this._tokenStream, t, n;
1822                    e.mustMatch(Tokens.VIEWPORT_SYM), t = e.token().startLine, n = e.token().startCol, this._readWhitespace(), this.fire({
1823                        type: "startviewport",
1824                        line: t,
1825                        col: n
1826                    }), this._readDeclarations(!0), this.fire({type: "endviewport", line: t, col: n})
1827                },
1828                _operator: function (e) {
1829                    var t = this._tokenStream, n = null;
1830                    if (t.match([Tokens.SLASH, Tokens.COMMA]) || e && t.match([Tokens.PLUS, Tokens.STAR, Tokens.MINUS])) n = t.token(), this._readWhitespace();
1831                    return n ? PropertyValuePart.fromToken(n) : null
1832                },
1833                _combinator: function () {
1834                    var e = this._tokenStream, t = null, n;
1835                    return e.match([Tokens.PLUS, Tokens.GREATER, Tokens.TILDE]) && (n = e.token(), t = new Combinator(n.value, n.startLine, n.startCol), this._readWhitespace()), t
1836                },
1837                _unary_operator: function () {
1838                    var e = this._tokenStream;
1839                    return e.match([Tokens.MINUS, Tokens.PLUS]) ? e.token().value : null
1840                },
1841                _property: function () {
1842                    var e = this._tokenStream, t = null, n = null, r, i, s, o;
1843                    return e.peek() == Tokens.STAR && this.options.starHack && (e.get(), i = e.token(), n = i.value, s = i.startLine, o = i.startCol), e.match(Tokens.IDENT) && (i = e.token(), r = i.value, r.charAt(0) == "_" && this.options.underscoreHack && (n = "_", r = r.substring(1)), t = new PropertyName(r, n, s || i.startLine, o || i.startCol), this._readWhitespace()), t
1844                },
1845                _ruleset: function () {
1846                    var e = this._tokenStream, t, n;
1847                    try {
1848                        n = this._selectors_group()
1849                    } catch (r) {
1850                        if (r instanceof SyntaxError && !this.options.strict) {
1851                            this.fire({
1852                                type: "error",
1853                                error: r,
1854                                message: r.message,
1855                                line: r.line,
1856                                col: r.col
1857                            }), t = e.advance([Tokens.RBRACE]);
1858                            if (t != Tokens.RBRACE) throw r;
1859                            return !0
1860                        }
1861                        throw r
1862                    }
1863                    return n && (this.fire({
1864                        type: "startrule",
1865                        selectors: n,
1866                        line: n[0].line,
1867                        col: n[0].col
1868                    }), this._readDeclarations(!0), this.fire({
1869                        type: "endrule",
1870                        selectors: n,
1871                        line: n[0].line,
1872                        col: n[0].col
1873                    })), n
1874                },
1875                _selectors_group: function () {
1876                    var e = this._tokenStream, t = [], n;
1877                    n = this._selector();
1878                    if (n !== null) {
1879                        t.push(n);
1880                        while (e.match(Tokens.COMMA)) this._readWhitespace(), n = this._selector(), n !== null ? t.push(n) : this._unexpectedToken(e.LT(1))
1881                    }
1882                    return t.length ? t : null
1883                },
1884                _selector: function () {
1885                    var e = this._tokenStream, t = [], n = null, r = null, i = null;
1886                    n = this._simple_selector_sequence();
1887                    if (n === null) return null;
1888                    t.push(n);
1889                    do {
1890                        r = this._combinator();
1891                        if (r !== null) t.push(r), n = this._simple_selector_sequence(), n === null ? this._unexpectedToken(e.LT(1)) : t.push(n); else {
1892                            if (!this._readWhitespace()) break;
1893                            i = new Combinator(e.token().value, e.token().startLine, e.token().startCol), r = this._combinator(), n = this._simple_selector_sequence(), n === null ? r !== null && this._unexpectedToken(e.LT(1)) : (r !== null ? t.push(r) : t.push(i), t.push(n))
1894                        }
1895                    } while (!0);
1896                    return new Selector(t, t[0].line, t[0].col)
1897                },
1898                _simple_selector_sequence: function () {
1899                    var e = this._tokenStream, t = null, n = [], r = "", i = [function () {
1900                            return e.match(Tokens.HASH) ? new SelectorSubPart(e.token().value, "id", e.token().startLine, e.token().startCol) : null
1901                        }, this._class, this._attrib, this._pseudo, this._negation], s = 0, o = i.length, u = null, a = !1,
1902                        f, l;
1903                    f = e.LT(1).startLine, l = e.LT(1).startCol, t = this._type_selector(), t || (t = this._universal()), t !== null && (r += t);
1904                    for (; ;) {
1905                        if (e.peek() === Tokens.S) break;
1906                        while (s < o && u === null) u = i[s++].call(this);
1907                        if (u === null) {
1908                            if (r === "") return null;
1909                            break
1910                        }
1911                        s = 0, n.push(u), r += u.toString(), u = null
1912                    }
1913                    return r !== "" ? new SelectorPart(t, n, r, f, l) : null
1914                },
1915                _type_selector: function () {
1916                    var e = this._tokenStream, t = this._namespace_prefix(), n = this._element_name();
1917                    return n ? (t && (n.text = t + n.text, n.col -= t.length), n) : (t && (e.unget(), t.length > 1 && e.unget()), null)
1918                },
1919                _class: function () {
1920                    var e = this._tokenStream, t;
1921                    return e.match(Tokens.DOT) ? (e.mustMatch(Tokens.IDENT), t = e.token(), new SelectorSubPart("." + t.value, "class", t.startLine, t.startCol - 1)) : null
1922                },
1923                _element_name: function () {
1924                    var e = this._tokenStream, t;
1925                    return e.match(Tokens.IDENT) ? (t = e.token(), new SelectorSubPart(t.value, "elementName", t.startLine, t.startCol)) : null
1926                },
1927                _namespace_prefix: function () {
1928                    var e = this._tokenStream, t = "";
1929                    if (e.LA(1) === Tokens.PIPE || e.LA(2) === Tokens.PIPE) e.match([Tokens.IDENT, Tokens.STAR]) && (t += e.token().value), e.mustMatch(Tokens.PIPE), t += "|";
1930                    return t.length ? t : null
1931                },
1932                _universal: function () {
1933                    var e = this._tokenStream, t = "", n;
1934                    return n = this._namespace_prefix(), n && (t += n), e.match(Tokens.STAR) && (t += "*"), t.length ? t : null
1935                },
1936                _attrib: function () {
1937                    var e = this._tokenStream, t = null, n, r;
1938                    return e.match(Tokens.LBRACKET) ? (r = e.token(), t = r.value, t += this._readWhitespace(), n = this._namespace_prefix(), n && (t += n), e.mustMatch(Tokens.IDENT), t += e.token().value, t += this._readWhitespace(), e.match([Tokens.PREFIXMATCH, Tokens.SUFFIXMATCH, Tokens.SUBSTRINGMATCH, Tokens.EQUALS, Tokens.INCLUDES, Tokens.DASHMATCH]) && (t += e.token().value, t += this._readWhitespace(), e.mustMatch([Tokens.IDENT, Tokens.STRING]), t += e.token().value, t += this._readWhitespace()), e.mustMatch(Tokens.RBRACKET), new SelectorSubPart(t + "]", "attribute", r.startLine, r.startCol)) : null
1939                },
1940                _pseudo: function () {
1941                    var e = this._tokenStream, t = null, n = ":", r, i;
1942                    return e.match(Tokens.COLON) && (e.match(Tokens.COLON) && (n += ":"), e.match(Tokens.IDENT) ? (t = e.token().value, r = e.token().startLine, i = e.token().startCol - n.length) : e.peek() == Tokens.FUNCTION && (r = e.LT(1).startLine, i = e.LT(1).startCol - n.length, t = this._functional_pseudo()), t && (t = new SelectorSubPart(n + t, "pseudo", r, i))), t
1943                },
1944                _functional_pseudo: function () {
1945                    var e = this._tokenStream, t = null;
1946                    return e.match(Tokens.FUNCTION) && (t = e.token().value, t += this._readWhitespace(), t += this._expression(), e.mustMatch(Tokens.RPAREN), t += ")"), t
1947                },
1948                _expression: function () {
1949                    var e = this._tokenStream, t = "";
1950                    while (e.match([Tokens.PLUS, Tokens.MINUS, Tokens.DIMENSION, Tokens.NUMBER, Tokens.STRING, Tokens.IDENT, Tokens.LENGTH, Tokens.FREQ, Tokens.ANGLE, Tokens.TIME, Tokens.RESOLUTION, Tokens.SLASH])) t += e.token().value, t += this._readWhitespace();
1951                    return t.length ? t : null
1952                },
1953                _negation: function () {
1954                    var e = this._tokenStream, t, n, r = "", i, s = null;
1955                    return e.match(Tokens.NOT) && (r = e.token().value, t = e.token().startLine, n = e.token().startCol, r += this._readWhitespace(), i = this._negation_arg(), r += i, r += this._readWhitespace(), e.match(Tokens.RPAREN), r += e.token().value, s = new SelectorSubPart(r, "not", t, n), s.args.push(i)), s
1956                },
1957                _negation_arg: function () {
1958                    var e = this._tokenStream, t = [this._type_selector, this._universal, function () {
1959                        return e.match(Tokens.HASH) ? new SelectorSubPart(e.token().value, "id", e.token().startLine, e.token().startCol) : null
1960                    }, this._class, this._attrib, this._pseudo], n = null, r = 0, i = t.length, s, o, u, a;
1961                    o = e.LT(1).startLine, u = e.LT(1).startCol;
1962                    while (r < i && n === null) n = t[r].call(this), r++;
1963                    return n === null && this._unexpectedToken(e.LT(1)), n.type == "elementName" ? a = new SelectorPart(n, [], n.toString(), o, u) : a = new SelectorPart(null, [n], n.toString(), o, u), a
1964                },
1965                _declaration: function () {
1966                    var e = this._tokenStream, t = null, n = null, r = null, i = null, s = null, o = "";
1967                    t = this._property();
1968                    if (t !== null) {
1969                        e.mustMatch(Tokens.COLON), this._readWhitespace(), n = this._expr(), (!n || n.length === 0) && this._unexpectedToken(e.LT(1)), r = this._prio(), o = t.toString();
1970                        if (this.options.starHack && t.hack == "*" || this.options.underscoreHack && t.hack == "_") o = t.text;
1971                        try {
1972                            this._validateProperty(o, n)
1973                        } catch (u) {
1974                            s = u
1975                        }
1976                        return this.fire({
1977                            type: "property",
1978                            property: t,
1979                            value: n,
1980                            important: r,
1981                            line: t.line,
1982                            col: t.col,
1983                            invalid: s
1984                        }), !0
1985                    }
1986                    return !1
1987                },
1988                _prio: function () {
1989                    var e = this._tokenStream, t = e.match(Tokens.IMPORTANT_SYM);
1990                    return this._readWhitespace(), t
1991                },
1992                _expr: function (e) {
1993                    var t = this._tokenStream, n = [], r = null, i = null;
1994                    r = this._term(e);
1995                    if (r !== null) {
1996                        n.push(r);
1997                        do {
1998                            i = this._operator(e), i && n.push(i), r = this._term(e);
1999                            if (r === null) break;
2000                            n.push(r)
2001                        } while (!0)
2002                    }
2003                    return n.length > 0 ? new PropertyValue(n, n[0].line, n[0].col) : null
2004                },
2005                _term: function (e) {
2006                    var t = this._tokenStream, n = null, r = null, i = null, s, o, u;
2007                    return n = this._unary_operator(), n !== null && (o = t.token().startLine, u = t.token().startCol), t.peek() == Tokens.IE_FUNCTION && this.options.ieFilters ? (r = this._ie_function(), n === null && (o = t.token().startLine, u = t.token().startCol)) : e && t.match([Tokens.LPAREN, Tokens.LBRACE, Tokens.LBRACKET]) ? (s = t.token(), i = s.endChar, r = s.value + this._expr(e).text, n === null && (o = t.token().startLine, u = t.token().startCol), t.mustMatch(Tokens.type(i)), r += i, this._readWhitespace()) : t.match([Tokens.NUMBER, Tokens.PERCENTAGE, Tokens.LENGTH, Tokens.ANGLE, Tokens.TIME, Tokens.FREQ, Tokens.STRING, Tokens.IDENT, Tokens.URI, Tokens.UNICODE_RANGE]) ? (r = t.token().value, n === null && (o = t.token().startLine, u = t.token().startCol), this._readWhitespace()) : (s = this._hexcolor(), s === null ? (n === null && (o = t.LT(1).startLine, u = t.LT(1).startCol), r === null && (t.LA(3) == Tokens.EQUALS && this.options.ieFilters ? r = this._ie_function() : r = this._function())) : (r = s.value, n === null && (o = s.startLine, u = s.startCol))), r !== null ? new PropertyValuePart(n !== null ? n + r : r, o, u) : null
2008                },
2009                _function: function () {
2010                    var e = this._tokenStream, t = null, n = null, r;
2011                    if (e.match(Tokens.FUNCTION)) {
2012                        t = e.token().value, this._readWhitespace(), n = this._expr(!0), t += n;
2013                        if (this.options.ieFilters && e.peek() == Tokens.EQUALS) do {
2014                            this._readWhitespace() && (t += e.token().value), e.LA(0) == Tokens.COMMA && (t += e.token().value), e.match(Tokens.IDENT), t += e.token().value, e.match(Tokens.EQUALS), t += e.token().value, r = e.peek();
2015                            while (r != Tokens.COMMA && r != Tokens.S && r != Tokens.RPAREN) e.get(), t += e.token().value, r = e.peek()
2016                        } while (e.match([Tokens.COMMA, Tokens.S]));
2017                        e.match(Tokens.RPAREN), t += ")", this._readWhitespace()
2018                    }
2019                    return t
2020                },
2021                _ie_function: function () {
2022                    var e = this._tokenStream, t = null, n = null, r;
2023                    if (e.match([Tokens.IE_FUNCTION, Tokens.FUNCTION])) {
2024                        t = e.token().value;
2025                        do {
2026                            this._readWhitespace() && (t += e.token().value), e.LA(0) == Tokens.COMMA && (t += e.token().value), e.match(Tokens.IDENT), t += e.token().value, e.match(Tokens.EQUALS), t += e.token().value, r = e.peek();
2027                            while (r != Tokens.COMMA && r != Tokens.S && r != Tokens.RPAREN) e.get(), t += e.token().value, r = e.peek()
2028                        } while (e.match([Tokens.COMMA, Tokens.S]));
2029                        e.match(Tokens.RPAREN), t += ")", this._readWhitespace()
2030                    }
2031                    return t
2032                },
2033                _hexcolor: function () {
2034                    var e = this._tokenStream, t = null, n;
2035                    if (e.match(Tokens.HASH)) {
2036                        t = e.token(), n = t.value;
2037                        if (!/#[a-f0-9]{3,6}/i.test(n)) throw new SyntaxError("Expected a hex color but found '" + n + "' at line " + t.startLine + ", col " + t.startCol + ".", t.startLine, t.startCol);
2038                        this._readWhitespace()
2039                    }
2040                    return t
2041                },
2042                _keyframes: function () {
2043                    var e = this._tokenStream, t, n, r, i = "";
2044                    e.mustMatch(Tokens.KEYFRAMES_SYM), t = e.token(), /^@\-([^\-]+)\-/.test(t.value) && (i = RegExp.$1), this._readWhitespace(), r = this._keyframe_name(), this._readWhitespace(), e.mustMatch(Tokens.LBRACE), this.fire({
2045                        type: "startkeyframes",
2046                        name: r,
2047                        prefix: i,
2048                        line: t.startLine,
2049                        col: t.startCol
2050                    }), this._readWhitespace(), n = e.peek();
2051                    while (n == Tokens.IDENT || n == Tokens.PERCENTAGE) this._keyframe_rule(), this._readWhitespace(), n = e.peek();
2052                    this.fire({
2053                        type: "endkeyframes",
2054                        name: r,
2055                        prefix: i,
2056                        line: t.startLine,
2057                        col: t.startCol
2058                    }), this._readWhitespace(), e.mustMatch(Tokens.RBRACE)
2059                },
2060                _keyframe_name: function () {
2061                    var e = this._tokenStream, t;
2062                    return e.mustMatch([Tokens.IDENT, Tokens.STRING]), SyntaxUnit.fromToken(e.token())
2063                },
2064                _keyframe_rule: function () {
2065                    var e = this._tokenStream, t, n = this._key_list();
2066                    this.fire({
2067                        type: "startkeyframerule",
2068                        keys: n,
2069                        line: n[0].line,
2070                        col: n[0].col
2071                    }), this._readDeclarations(!0), this.fire({
2072                        type: "endkeyframerule",
2073                        keys: n,
2074                        line: n[0].line,
2075                        col: n[0].col
2076                    })
2077                },
2078                _key_list: function () {
2079                    var e = this._tokenStream, t, n, r = [];
2080                    r.push(this._key()), this._readWhitespace();
2081                    while (e.match(Tokens.COMMA)) this._readWhitespace(), r.push(this._key()), this._readWhitespace();
2082                    return r
2083                },
2084                _key: function () {
2085                    var e = this._tokenStream, t;
2086                    if (e.match(Tokens.PERCENTAGE)) return SyntaxUnit.fromToken(e.token());
2087                    if (e.match(Tokens.IDENT)) {
2088                        t = e.token();
2089                        if (/from|to/i.test(t.value)) return SyntaxUnit.fromToken(t);
2090                        e.unget()
2091                    }
2092                    this._unexpectedToken(e.LT(1))
2093                },
2094                _skipCruft: function () {
2095                    while (this._tokenStream.match([Tokens.S, Tokens.CDO, Tokens.CDC])) ;
2096                },
2097                _readDeclarations: function (e, t) {
2098                    var n = this._tokenStream, r;
2099                    this._readWhitespace(), e && n.mustMatch(Tokens.LBRACE), this._readWhitespace();
2100                    try {
2101                        for (; ;) {
2102                            if (!(n.match(Tokens.SEMICOLON) || t && this._margin())) {
2103                                if (!this._declaration()) break;
2104                                if (!n.match(Tokens.SEMICOLON)) break
2105                            }
2106                            this._readWhitespace()
2107                        }
2108                        n.mustMatch(Tokens.RBRACE), this._readWhitespace()
2109                    } catch (i) {
2110                        if (!(i instanceof SyntaxError && !this.options.strict)) throw i;
2111                        this.fire({
2112                            type: "error",
2113                            error: i,
2114                            message: i.message,
2115                            line: i.line,
2116                            col: i.col
2117                        }), r = n.advance([Tokens.SEMICOLON, Tokens.RBRACE]);
2118                        if (r == Tokens.SEMICOLON) this._readDeclarations(!1, t); else if (r != Tokens.RBRACE) throw i
2119                    }
2120                },
2121                _readWhitespace: function () {
2122                    var e = this._tokenStream, t = "";
2123                    while (e.match(Tokens.S)) t += e.token().value;
2124                    return t
2125                },
2126                _unexpectedToken: function (e) {
2127                    throw new SyntaxError("Unexpected token '" + e.value + "' at line " + e.startLine + ", col " + e.startCol + ".", e.startLine, e.startCol)
2128                },
2129                _verifyEnd: function () {
2130                    this._tokenStream.LA(1) != Tokens.EOF && this._unexpectedToken(this._tokenStream.LT(1))
2131                },
2132                _validateProperty: function (e, t) {
2133                    Validation.validate(e, t)
2134                },
2135                parse: function (e) {
2136                    this._tokenStream = new TokenStream(e, Tokens), this._stylesheet()
2137                },
2138                parseStyleSheet: function (e) {
2139                    return this.parse(e)
2140                },
2141                parseMediaQuery: function (e) {
2142                    this._tokenStream = new TokenStream(e, Tokens);
2143                    var t = this._media_query();
2144                    return this._verifyEnd(), t
2145                },
2146                parsePropertyValue: function (e) {
2147                    this._tokenStream = new TokenStream(e, Tokens), this._readWhitespace();
2148                    var t = this._expr();
2149                    return this._readWhitespace(), this._verifyEnd(), t
2150                },
2151                parseRule: function (e) {
2152                    this._tokenStream = new TokenStream(e, Tokens), this._readWhitespace();
2153                    var t = this._ruleset();
2154                    return this._readWhitespace(), this._verifyEnd(), t
2155                },
2156                parseSelector: function (e) {
2157                    this._tokenStream = new TokenStream(e, Tokens), this._readWhitespace();
2158                    var t = this._selector();
2159                    return this._readWhitespace(), this._verifyEnd(), t
2160                },
2161                parseStyleAttribute: function (e) {
2162                    e += "}", this._tokenStream = new TokenStream(e, Tokens), this._readDeclarations()
2163                }
2164            };
2165            for (t in n) n.hasOwnProperty(t) && (e[t] = n[t]);
2166            return e
2167        }();
2168        var Properties = {
2169            "align-items": "flex-start | flex-end | center | baseline | stretch",
2170            "align-content": "flex-start | flex-end | center | space-between | space-around | stretch",
2171            "align-self": "auto | flex-start | flex-end | center | baseline | stretch",
2172            "-webkit-align-items": "flex-start | flex-end | center | baseline | stretch",
2173            "-webkit-align-content": "flex-start | flex-end | center | space-between | space-around | stretch",
2174            "-webkit-align-self": "auto | flex-start | flex-end | center | baseline | stretch",
2175            "alignment-adjust": "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>",
2176            "alignment-baseline": "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",
2177            animation: 1,
2178            "animation-delay": {multi: "<time>", comma: !0},
2179            "animation-direction": {multi: "normal | reverse | alternate | alternate-reverse", comma: !0},
2180            "animation-duration": {multi: "<time>", comma: !0},
2181            "animation-fill-mode": {multi: "none | forwards | backwards | both", comma: !0},
2182            "animation-iteration-count": {multi: "<number> | infinite", comma: !0},
2183            "animation-name": {multi: "none | <ident>", comma: !0},
2184            "animation-play-state": {multi: "running | paused", comma: !0},
2185            "animation-timing-function": 1,
2186            "-moz-animation-delay": {multi: "<time>", comma: !0},
2187            "-moz-animation-direction": {multi: "normal | reverse | alternate | alternate-reverse", comma: !0},
2188            "-moz-animation-duration": {multi: "<time>", comma: !0},
2189            "-moz-animation-iteration-count": {multi: "<number> | infinite", comma: !0},
2190            "-moz-animation-name": {multi: "none | <ident>", comma: !0},
2191            "-moz-animation-play-state": {multi: "running | paused", comma: !0},
2192            "-ms-animation-delay": {multi: "<time>", comma: !0},
2193            "-ms-animation-direction": {multi: "normal | reverse | alternate | alternate-reverse", comma: !0},
2194            "-ms-animation-duration": {multi: "<time>", comma: !0},
2195            "-ms-animation-iteration-count": {multi: "<number> | infinite", comma: !0},
2196            "-ms-animation-name": {multi: "none | <ident>", comma: !0},
2197            "-ms-animation-play-state": {multi: "running | paused", comma: !0},
2198            "-webkit-animation-delay": {multi: "<time>", comma: !0},
2199            "-webkit-animation-direction": {multi: "normal | reverse | alternate | alternate-reverse", comma: !0},
2200            "-webkit-animation-duration": {multi: "<time>", comma: !0},
2201            "-webkit-animation-fill-mode": {multi: "none | forwards | backwards | both", comma: !0},
2202            "-webkit-animation-iteration-count": {multi: "<number> | infinite", comma: !0},
2203            "-webkit-animation-name": {multi: "none | <ident>", comma: !0},
2204            "-webkit-animation-play-state": {multi: "running | paused", comma: !0},
2205            "-o-animation-delay": {multi: "<time>", comma: !0},
2206            "-o-animation-direction": {multi: "normal | reverse | alternate | alternate-reverse", comma: !0},
2207            "-o-animation-duration": {multi: "<time>", comma: !0},
2208            "-o-animation-iteration-count": {multi: "<number> | infinite", comma: !0},
2209            "-o-animation-name": {multi: "none | <ident>", comma: !0},
2210            "-o-animation-play-state": {multi: "running | paused", comma: !0},
2211            appearance: "icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit",
2212            azimuth: function (e) {
2213                var t = "<angle> | leftwards | rightwards | inherit",
2214                    n = "left-side | far-left | left | center-left | center | center-right | right | far-right | right-side",
2215                    r = !1, i = !1, s;
2216                ValidationTypes.isAny(e, t) || (ValidationTypes.isAny(e, "behind") && (r = !0, i = !0), ValidationTypes.isAny(e, n) && (i = !0, r || ValidationTypes.isAny(e, "behind")));
2217                if (e.hasNext()) throw s = e.next(), i ? new ValidationError("Expected end of value but found '" + s + "'.", s.line, s.c
2217ol) : new ValidationError("Expected (<'azimuth'>) but found '" + s + "'.", s.line, s.col)
2218            },
2219            "backface-visibility": "visible | hidden",
2220            background: 1,
2221            "background-attachment": {multi: "<attachment>", comma: !0},
2222            "background-clip": {multi: "<box>", comma: !0},
2223            "background-color": "<color> | inherit",
2224            "background-image": {multi: "<bg-image>", comma: !0},
2225            "background-origin": {multi: "<box>", comma: !0},
2226            "background-position": {multi: "<bg-position>", comma: !0},
2227            "background-repeat": {multi: "<repeat-style>"},
2228            "background-size": {multi: "<bg-size>", comma: !0},
2229            "baseline-shift": "baseline | sub | super | <percentage> | <length>",
2230            behavior: 1,
2231            binding: 1,
2232            bleed: "<length>",
2233            "bookmark-label": "<content> | <attr> | <string>",
2234            "bookmark-level": "none | <integer>",
2235            "bookmark-state": "open | closed",
2236            "bookmark-target": "none | <uri> | <attr>",
2237            border: "<border-width> || <border-style> || <color>",
2238            "border-bottom": "<border-width> || <border-style> || <color>",
2239            "border-bottom-color": "<color> | inherit",
2240            "border-bottom-left-radius": "<x-one-radius>",
2241            "border-bottom-right-radius": "<x-one-radius>",
2242            "border-bottom-style": "<border-style>",
2243            "border-bottom-width": "<border-width>",
2244            "border-collapse": "collapse | separate | inherit",
2245            "border-color": {multi: "<color> | inherit", max: 4},
2246            "border-image": 1,
2247            "border-image-outset": {multi: "<length> | <number>", max: 4},
2248            "border-image-repeat": {multi: "stretch | repeat | round", max: 2},
2249            "border-image-slice": function (e) {
2250                var t = !1, n = "<number> | <percentage>", r = !1, i = 0, s = 4, o;
2251                ValidationTypes.isAny(e, "fill") && (r = !0, t = !0);
2252                while (e.hasNext() && i < s) {
2253                    t = ValidationTypes.isAny(e, n);
2254                    if (!t) break;
2255                    i++
2256                }
2257                r ? t = !0 : ValidationTypes.isAny(e, "fill");
2258                if (e.hasNext()) throw o = e.next(), t ? new ValidationError("Expected end of value but found '" + o + "'.", o.line, o.col) : new ValidationError("Expected ([<number> | <percentage>]{1,4} && fill?) but found '" + o + "'.", o.line, o.col)
2259            },
2260            "border-image-source": "<image> | none",
2261            "border-image-width": {multi: "<length> | <percentage> | <number> | auto", max: 4},
2262            "border-left": "<border-width> || <border-style> || <color>",
2263            "border-left-color": "<color> | inherit",
2264            "border-left-style": "<border-style>",
2265            "border-left-width": "<border-width>",
2266            "border-radius": function (e) {
2267                var t = !1, n = "<length> | <percentage> | inherit", r = !1, i = !1, s = 0, o = 8, u;
2268                while (e.hasNext() && s < o) {
2269                    t = ValidationTypes.isAny(e, n);
2270                    if (!t) {
2271                        if (!(e.peek() == "/" && s > 0 && !r)) break;
2272                        r = !0, o = s + 5, e.next()
2273                    }
2274                    s++
2275                }
2276                if (e.hasNext()) throw u = e.next(), t ? new ValidationError("Expected end of value but found '" + u + "'.", u.line, u.col) : new ValidationError("Expected (<'border-radius'>) but found '" + u + "'.", u.line, u.col)
2277            },
2278            "border-right": "<border-width> || <border-style> || <color>",
2279            "border-right-color": "<color> | inherit",
2280            "border-right-style": "<border-style>",
2281            "border-right-width": "<border-width>",
2282            "border-spacing": {multi: "<length> | inherit", max: 2},
2283            "border-style": {multi: "<border-style>", max: 4},
2284            "border-top": "<border-width> || <border-style> || <color>",
2285            "border-top-color": "<color> | inherit",
2286            "border-top-left-radius": "<x-one-radius>",
2287            "border-top-right-radius": "<x-one-radius>",
2288            "border-top-style": "<border-style>",
2289            "border-top-width": "<border-width>",
2290            "border-width": {multi: "<border-width>", max: 4},
2291            bottom: "<margin-width> | inherit",
2292            "-moz-box-align": "start | end | center | baseline | stretch",
2293            "-moz-box-decoration-break": "slice |clone",
2294            "-moz-box-direction": "normal | reverse | inherit",
2295            "-moz-box-flex": "<number>",
2296            "-moz-box-flex-group": "<integer>",
2297            "-moz-box-lines": "single | multiple",
2298            "-moz-box-ordinal-group": "<integer>",
2299            "-moz-box-orient": "horizontal | vertical | inline-axis | block-axis | inherit",
2300            "-moz-box-pack": "start | end | center | justify",
2301            "-webkit-box-align": "start | end | center | baseline | stretch",
2302            "-webkit-box-decoration-break": "slice |clone",
2303            "-webkit-box-direction": "normal | reverse | inherit",
2304            "-webkit-box-flex": "<number>",
2305            "-webkit-box-flex-group": "<integer>",
2306            "-webkit-box-lines": "single | multiple",
2307            "-webkit-box-ordinal-group": "<integer>",
2308            "-webkit-box-orient": "horizontal | vertical | inline-axis | block-axis | inherit",
2309            "-webkit-box-pack": "start | end | center | justify",
2310            "box-shadow": function (e) {
2311                var t = !1, n;
2312                if (!ValidationTypes.isAny(e, "none")) Validation.multiProperty("<shadow>", e, !0, Infinity); else if (e.hasNext()) throw n = e.next(), new ValidationError("Expected end of value but found '" + n + "'.", n.line, n.col)
2313            },
2314            "box-sizing": "content-box | border-box | inherit",
2315            "break-after": "auto | always | avoid | left | right | page | column | avoid-p
2315age | avoid-column",
2316            "break-before": "auto | always | avoid | left | right | page | column | avoid-page | avoid-column",
2317            "break-inside": "auto | avoid | avoid-page | avoid-column",
2318            "caption-side": "top | bottom | inherit",
2319            clear: "none | right | left | both | inherit",
2320            clip: 1,
2321            color: "<color> | inherit",
2322            "color-profile": 1,
2323            "column-count": "<integer> | auto",
2324            "column-fill": "auto | balance",
2325            "column-gap": "<length> | normal",
2326            "column-rule": "<border-width> || <border-style> || <color>",
2327            "column-rule-color": "<color>",
2328            "column-rule-style": "<border-style>",
2329            "column-rule-width": "<border-width>",
2330            "column-span": "none | all",
2331            "column-width": "<length> | auto",
2332            columns: 1,
2333            content: 1,
2334            "counter-increment": 1,
2335            "counter-reset": 1,
2336            crop: "<shape> | auto",
2337            cue: "cue-after | cue-before | inherit",
2338            "cue-after": 1,
2339            "cue-before": 1,
2340            cursor: 1,
2341            direction: "ltr | rtl | inherit",
2342            display: "inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex",
2343            "dominant-baseline": 1,
2344            "drop-initial-after-adjust": "central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>",
2345            "drop-initial-after-align": "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",
2346            "drop-initial-before-adjust": "before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>",
2347            "drop-initial-before-align": "caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",
2348            "drop-initial-size": "auto | line | <length> | <percentage>",
2349            "drop-initial-value": "initial | <integer>",
2350            elevation: "<angle> | below | level | above | higher | lower | inherit",
2351            "empty-cells": "show | hide | inherit",
2352            filter: 1,
2353            fit: "fill | hidden | meet | slice",
2354            "fit-position": 1,
2355            flex: "<flex>",
2356            "flex-basis": "<width>",
2357            "flex-direction": "row | row-reverse | column | column-reverse",
2358            "flex-flow": "<flex-direction> || <flex-wrap>",
2359            "flex-grow": "<number>",
2360            "flex-shrink": "<number>",
2361            "flex-wrap": "nowrap | wrap | wrap-reverse",
2362            "-webkit-flex": "<flex>",
2363            "-webkit-flex-basis": "<width>",
2364            "-webkit-flex-direction": "row | row-reverse | column | column-reverse",
2365            "-webkit-flex-flow": "<flex-direction> || <flex-wrap>",
2366            "-webkit-flex-grow": "<number>",
2367            "-webkit-flex-shrink": "<number>",
2368            "-webkit-flex-wrap": "nowrap | wrap | wrap-reverse",
2369            "-ms-flex": "<flex>",
2370            "-ms-flex-align": "start | end | center | stretch | baseline",
2371            "-ms-flex-direction": "row | row-reverse | column | column-reverse | inherit",
2372            "-ms-flex-order": "<number>",
2373            "-ms-flex-pack": "start | end | center | justify",
2374            "-ms-flex-wrap": "nowrap | wrap | wrap-reverse",
2375            "float": "left | right | none | inherit",
2376            "float-offset": 1,
2377            font: 1,
2378            "font-family": 1,
2379            "font-size": "<absolute-size> | <relative-size> | <length> | <percentage> | inherit",
2380            "font-size-adjust": "<number> | none | inherit",
2381            "font-stretch": "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit",
2382            "font-style": "normal | italic | oblique | inherit",
2383            "font-variant": "normal | small-caps | inherit",
2384            "font-weight": "normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit",
2385            "grid-cell-stacking": "columns | rows | layer",
2386            "grid-column": 1,
2387            "grid-columns": 1,
2388            "grid-column-align": "start | end | center | stretch",
2389            "grid-column-sizing": 1,
2390            "grid-column-span": "<integer>",
2391            "grid-flow": "none | rows | columns",
2392            "grid-layer": "<integer>",
2393            "grid-row": 1,
2394            "grid-rows": 1,
2395            "grid-row-align": "start | end | center | stretch",
2396            "grid-row-span": "<integer>",
2397            "grid-row-sizing": 1,
2398            "hanging-punctuation": 1,
2399            height: "<margin-width> | <content-sizing> | inherit",
2400            "hyphenate-after": "<integer> | auto",
2401            "hyphenate-before": "<integer> | auto",
2402            "hyphenate-character": "<string> | auto",
2403            "hyphenate-lines": "no-limit | <integer>",
2404            "hyphenate-resource": 1,
2405            hyphens: "none | manual | auto",
2406            icon: 1,
2407            "image-orientation": "angle | auto",
2408            "image-rendering": 1,
2409            "image-resolution": 1,
2410            "inline-box-align": "initial | last | <integer>",
2411            "justify-content": "flex-start | flex-end | center | space-between | space-around",
2412            "-webkit-justify-content": "flex-start | flex-end | center | space-between | space-around",
2413            left: "<margin-width> | inherit",
2414            "letter-spacing": "<length> | normal | inherit",
2415            "line-height": "<number> | <length> | <percentage> | normal | inherit",
2416            "line-break": "auto | loose | normal | strict",
2417            "line-stacking": 1,
2418            "line-stacking-ruby": "exclude-ruby | include-ruby",
2419            "line-stacking-shift": "consider-shifts | disregard-shifts",
2420            "line-stacking-strategy": "inline-line-height | block-line-height | max-height | grid-height",
2421            "list-style": 1,
2422            "list-style-image": "<uri> | none | inherit",
2423            "list-style-position": "inside | outside | inherit",
2424            "list-style-type": "disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit",
2425            margin: {multi: "<margin-width> | inherit", max: 4},
2426            "margin-bottom": "<margin-width> | inherit",
2427            "margin-left": "<margin-width> | inherit",
2428            "margin-right": "<margin-width> | inherit",
2429            "margin-top": "<margin-width> | inherit",
2430            mark: 1,
2431            "mark-after": 1,
2432            "mark-before": 1,
2433            marks: 1,
2434            "marquee-direction": 1,
2435            "marquee-play-count": 1,
2436            "marquee-speed": 1,
2437            "marquee-style": 1,
2438            "max-height": "<length> | <percentage> | <content-sizing> | none | inherit",
2439            "max-width": "<length> | <percentage> | <content-sizing> | none | inherit",
2440            "max-zoom": "<number> | <percentage> | auto",
2441            "min-height": "<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit",
2442            "min-width": "<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit",
2443            "min-zoom": "<number> | <percentage> | auto",
2444            "move-to": 1,
2445            "nav-down": 1,
2446            "nav-index": 1,
2447            "nav-left": 1,
2448            "nav-right": 1,
2449            "nav-up": 1,
2450            opacity: "<number> | inherit",
2451            order: "<integer>",
2452            "-webkit-order": "<integer>",
2453            orphans: "<integer> | inherit",
2454            outline: 1,
2455            "outline-color": "<color> | invert | inherit",
2456            "outline-offset": 1,
2457            "outline-style": "<border-style> | inherit",
2458            "outline-width": "<border-width> | inherit",
2459            overflow: "visible | hidden | scroll | auto | inherit",
2460            "overflow-style": 1,
2461            "overflow-wrap": "normal | break-word",
2462            "overflow-x": 1,
2463            "overflow-y": 1,
2464            padding: {multi: "<padding-width> | inherit", max: 4},
2465            "padding-bottom": "<padding-width> | inherit",
2466            "padding-left": "<padding-width> | inherit",
2467            "padding-right": "<padding-width> | inherit",
2468            "padding-top": "<padding-width> | inherit",
2469            page: 1,
2470            "page-break-after": "auto | always | avoid | left | right | inherit",
2471            "page-break-before": "auto | always | avoid | left | right | inherit",
2472            "page-break-inside": "auto | avoid | inherit",
2473            "page-policy": 1,
2474            pause: 1,
2475            "pause-after": 1,
2476            "pause-before": 1,
2477            perspective: 1,
2478            "perspective-origin": 1,
2479            phonemes: 1,
2480            pitch: 1,
2481            "pitch-range": 1,
2482            "play-during": 1,
2483            "pointer-events": "auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit",
2484            position: "static | relative | absolute | fixed | inherit",
2485            "presentation-level": 1,
2486            "punctuation-trim": 1,
2487            quotes: 1,
2488            "rendering-intent": 1,
2489            resize: 1,
2490            rest: 1,
2491            "rest-after": 1,
2492            "rest-before": 1,
2493            richness: 1,
2494            right: "<margin-width> | inherit",
2495            rotation: 1,
2496            "rotation-point": 1,
2497            "ruby-align": 1,
2498            "ruby-overhang": 1,
2499            "ruby-position": 1,
2500            "ruby-span": 1,
2501            size: 1,
2502            speak: "normal | none | spell-out | inherit",
2503            "speak-header": "once | always | inherit",
2504            "speak-numeral": "digits | continuous | inherit",
2505            "speak-punctuation": "code | none | inherit",
2506            "speech-rate": 1,
2507            src: 1,
2508            stress: 1,
2509            "string-set": 1,
2510            "table-layout": "auto | fixed | inherit",
2511            "tab-size": "<integer> | <length>",
2512            target: 1,
2513            "target-name": 1,
2514            "target-new": 1,
2515            "target-position": 1,
2516            "text-align": "left | right | center | justify | inherit",
2517            "text-align-last": 1,
2518            "text-decoration": 1,
2519            "text-emphasis": 1,
2520            "text-height": 1,
2521            "text-indent": "<length> | <percentage> | inherit",
2522            "text-justify": "auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida",
2523            "text-outline": 1,
2524            "text-overflow": 1,
2525            "text-rendering": "auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit",
2526            "text-shadow": 1,
2527            "text-transform": "capitalize | uppercase | lowercase | none | inherit",
2528            "text-wrap": "normal | none | avoid",
2529            top: "<margin-width> | inherit",
2530            "-ms-touch-action": "auto | none | pan-x | pan-y",
2531            "touch-action": "auto | none | pan-x | pan-y",
2532            transform: 1,
2533            "transform-origin": 1,
2534            "transform-style": 1,
2535            transition: 1,
2536            "transition-delay": 1,
2537            "transition-duration": 1,
2538            "transition-property": 1,
2539            "transition-timing-function": 1,
2540            "unicode-bidi": "normal | embed | isolate | bidi-override | isolate-override | plaintext | inherit",
2541            "user-modify": "read-only | read-write | write-only | inherit",
2542            "user-select": "none | text | toggle | element | elements | all | inherit",
2543            "user-zoom": "zoom | fixed",
2544            "vertical-align": "auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>",
2545            visibility: "visible | hidden | collapse | inherit",
2546            "voice-balance": 1,
2547            "voice-duration": 1,
2548            "voice-family": 1,
2549            "voice-pitch": 1,
2550            "voice-pitch-range": 1,
2551            "voice-rate": 1,
2552            "voice-stress": 1,
2553            "voice-volume": 1,
2554            volume: 1,
2555            "white-space": "normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap",
2556            "white-space-collapse": 1,
2557            widows: "<integer> | inherit",
2558            width: "<length> | <percentage> | <content-sizing> | auto | inherit",
2559            "word-break": "normal | keep-all | break-all",
2560            "word-spacing": "<length> | normal | inherit",
2561            "word-wrap": "normal | break-word",
2562            "writing-mode": "horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb | inherit",
2563            "z-index": "<integer> | auto | inherit",
2564            zoom: "<number> | <percentage> | normal"
2565        };
2566        PropertyName.prototype = new SyntaxUnit, PropertyName.prototype.constructor = PropertyName, PropertyName.prototype.toString = function () {
2567            return (this.hack ? this.hack : "") + this.text
2568        }, PropertyValue.prototype = new SyntaxUnit, PropertyValue.prototype.constructor = PropertyValue, PropertyValueIterator.prototype.count = function () {
2569            return this._parts.length
2570        }, PropertyValueIterator.prototype.isFirst = function () {
2571            return this._i === 0
2572        }, PropertyValueIterator.prototype.hasNext = function () {
2573            return this._i < this._parts.length
2574        }, PropertyValueIterator.prototype.mark = function () {
2575            this._marks.push(this._i)
2576        }, PropertyValueIterator.prototype.peek = function (e) {
2577            return this.hasNext() ? this._parts[this._i + (e || 0)] : null
2578        }, PropertyValueIterator.prototype.next = function () {
2579            return this.hasNext() ? this._parts[this._i++] : null
2580        }, PropertyValueIterator.prototype.previous = function () {
2581            return this._i > 0 ? this._parts[--this._i] : null
2582        }, PropertyValueIterator.prototype.restore = function () {
2583            this._marks.length && (this._i = this._marks.pop())
2584        }, PropertyValuePart.prototype = new SyntaxUnit, PropertyValuePart.prototype.constructor = PropertyValuePart, PropertyValuePart.fromToken = function (e) {
2585            return new PropertyValuePart(e.value, e.startLine, e.startCol)
2586        };
2587        var Pseudos = {":first-letter": 1, ":first-line": 1, ":before": 1, ":after": 1};
2588        Pseudos.ELEMENT = 1, Pseudos.CLASS = 2, Pseudos.isElement = function (e) {
2589            return e.indexOf("::") === 0 || Pseudos[e.toLowerCase()] == Pseudos.ELEMENT
2590        }, Selector.prototype = new SyntaxUnit, Selector.prototype.constructor = Selector, SelectorPart.prototype = new SyntaxUnit, SelectorPart.prototype.constructor = SelectorPart, SelectorSubPart.prototype = new SyntaxUnit, SelectorSubPart.prototype.constructor = SelectorSubPart, Specificity.prototype = {
2591            constructor: Specificity,
2592            compare: function (e) {
2593                var t = ["a", "b", "c", "d"], n, r;
2594                for (n = 0, r = t.length; n < r; n++) {
2595                    if (this[t[n]] < e[t[n]]) return -1;
2596                    if (this[t[n]] > e[t[n]]) return 1
2597                }
2598                return 0
2599            },
2600            valueOf: function () {
2601                return this.a * 1e3 + this.b * 100 + this.c * 10 + this.d
2602            },
2603            toString: function () {
2604                return this.a + "," + this.b + "," + this.c + "," + this.d
2605            }
2606        }, Specificity.calculate = function (e) {
2607            function u(e) {
2608                var t, n, r, a, f = e.elementName ? e.elementName.text : "", l;
2609                f && f.charAt(f.length - 1) != "*" && o++;
2610                for (t = 0, r = e.modifiers.length; t < r; t++) {
2611                    l = e.modifiers[t];
2612                    switch (l.type) {
2613                        case"class":
2614                        case"attribute":
2615                            s++;
2616                            break;
2617                        case"id":
2618                            i++;
2619                            break;
2620                        case"pseudo":
2621                            Pseudos.isElement(l.text) ? o++ : s++;
2622                            break;
2623                        case"not":
2624                            for (n = 0, a = l.args.length; n < a; n++) u(l.args[n])
2625                    }
2626                }
2627            }
2628
2629            var t, n, r, i = 0, s = 0, o = 0;
2630            for (t = 0, n = e.parts.length; t < n; t++) r = e.parts[t], r instanceof SelectorPart && u(r);
2631            return new Specificity(0, i, s, o)
2632        };
2633        var h = /^[0-9a-fA-F]$/, nonascii = /^[\u0080-\uFFFF]$/, nl = /\n|\r\n|\r|\f/;
2634        TokenStream.prototype = mix(new TokenStreamBase, {
2635            _getToken: function (e) {
2636                var t, n = this._reader, r = null, i = n.getLine(), s = n.getCol();
2637                t = n.read();
2638                while (t) {
2639                    switch (t) {
2640                        case"/":
2641                            n.peek() == "*" ? r = this.commentToken(t, i, s) : r = this.charToken(t, i, s);
2642                            break;
2643                        case"|":
2644                        case"~":
2645                        case"^":
2646                        case"$":
2647                        case"*":
2648                            n.peek() == "=" ? r = this.comparisonToken(t, i, s) : r = this.charToken(t, i, s);
2649                            break;
2650                        case'"':
2651                        case"'":
2652                            r = this.stringToken(t, i, s);
2653                            break;
2654                        case"#":
2655                            isNameChar(n.peek()) ? r = this.hashToken(t, i, s) : r = this.charToken(t, i, s);
2656                            break;
2657                        case".":
2658                            isDigit(n.peek()) ? r = this.numberToken(t, i, s) : r = this.charToken(t, i, s);
2659                            break;
2660                        case"-":
2661                            n.peek() == "-" ? r = this.htmlCommentEndToken(t, i, s) : isNameStart(n.peek()) ? r = this.identOrFunctionToken(t, i, s) : r = this.charToken(t, i, s);
2662                            break;
2663                        case"!":
2664                            r = this.importantToken(t, i, s);
2665                            break;
2666                        case"@":
2667                            r = this.atRuleToken(t, i, s);
2668                            break;
2669                        case":":
2670                            r = this.notToken(t, i, s);
2671                            break;
2672                        case"<":
2673                            r = this.htmlCommentStartToken(t, i, s);
2674                            break;
2675                        case"U":
2676                        case"u":
2677                            if (n.peek() == "+") {
2678                                r = this.unicodeRangeToken(t, i, s);
2679                                break
2680                            }
2681                            ;
2682                        default:
2683                            isDigit(t) ? r = this.numberToken(t, i, s) : isWhitespace(t) ? r = this.whitespaceToken(t, i, s) : isIdentStart(t) ? r = this.identOrFunctionToken(t, i, s) : r = this.charToken(t, i, s)
2684                    }
2685                    break
2686                }
2687                return !r && t === null && (r = this.createToken(Tokens.EOF, null, i, s)), r
2688            }, createToken: function (e, t, n, r, i) {
2689                var s = this._reader;
2690                return i = i || {}, {
2691                    value: t,
2692                    type: e,
2693                    channel: i.channel,
2694                    endChar: i.endChar,
2695                    hide: i.hide || !1,
2696                    startLine: n,
2697                    startCol: r,
2698                    endLine: s.getLine(),
2699                    endCol: s.getCol()
2700                }
2701            }, atRuleToken: function (e, t, n) {
2702                var r = e, i = this._reader, s = Tokens.CHAR, o = !1, u, a;
2703                i.mark(), u = this.readName(), r = e + u, s = Tokens.type(r.toLowerCase());
2704                if (s == Tokens.CHAR || s == Tokens.UNKNOWN) r.length > 1 ? s = Tokens.UNKNOWN_SYM : (s = Tokens.CHAR, r = e, i.reset());
2705                return this.createToken(s, r, t, n)
2706            }, charToken: function (e, t, n) {
2707                var r = Tokens.type(e), i = {};
2708                return r == -1 ? r = Tokens.CHAR : i.endChar = Tokens[r].endChar, this.createToken(r, e, t, n, i)
2709            }, commentToken: function (e, t, n) {
2710                var r = this._reader, i = this.readComment(e);
2711                return this.createToken(Tokens.COMMENT, i, t, n)
2712            }, comparisonToken: function (e, t, n) {
2713                var r = this._reader, i = e + r.read(), s = Tokens.type(i) || Tokens.CHAR;
2714                return this.createToken(s, i, t, n)
2715            }, hashToken: function (e, t, n) {
2716                var r = this._reader, i = this.readName(e);
2717                return this.createToken(Tokens.HASH, i, t, n)
2718            }, htmlCommentStartToken: function (e, t, n) {
2719                var r = this._reader, i = e;
2720                return r.mark(), i += r.readCount(3), i == "<!--" ? this.createToken(Tokens.CDO, i, t, n) : (r.reset(), this.charToken(e, t, n))
2721            }, htmlCommentEndToken: function (e, t, n) {
2722                var r = this._reader, i = e;
2723                return r.mark(), i += r.readCount(2), i == "-->" ? this.createToken(Tokens.CDC, i, t, n) : (r.reset(), this.charToken(e, t, n))
2724            }, identOrFunctionToken: function (e, t, n) {
2725                var r = this._reader, i = this.readName(e), s = Tokens.IDENT;
2726                return r.peek() == "(" ? (i += r.read(), i.toLowerCase() == "url(" ? (s = Tokens.URI, i = this.readURI(i), i.toLowerCase() == "url(" && (s = Tokens.FUNCTION)) : s = Tokens.FUNCTION) : r.peek() == ":" && i.toLowerCase() == "progid" && (i += r.readTo("("), s = Tokens.IE_FUNCTION), this.createToken(s, i, t, n)
2727            }, importantToken: function (e, t, n) {
2728                var r = this._reader, i = e, s = Tokens.CHAR, o, u;
2729                r.mark(), u = r.read();
2730                while (u) {
2731                    if (u == "/") {
2732                        if (r.peek() != "*") break;
2733                        o = this.readComment(u);
2734                        if (o === "") break
2735                    } else {
2736                        if (!isWhitespace(u)) {
2737                            if (/i/i.test(u)) {
2738                                o = r.readCount(8), /mportant/i.test(o) && (i += u + o, s = Tokens.IMPORTANT_SYM);
2739                                break
2740                            }
2741                            break
2742                        }
2743                        i += u + this.readWhitespace()
2744                    }
2745                    u = r.read()
2746                }
2747                return s == Tokens.CHAR ? (r.reset(), this.charToken(e, t, n)) : this.createToken(s, i, t, n)
2748            }, notToken: function (e, t, n) {
2749                var r = this._reader, i = e;
2750                return r.mark(), i += r.readCount(4), i.toLowerCase() == ":not(" ? this.createToken(Tokens.NOT, i, t, n) : (r.reset(), this.charToken(e, t, n))
2751            }, numberToken: function (e, t, n) {
2752                var r = this._reader, i = this.readNumber(e), s, o = Tokens.NUMBER, u = r.peek();
2753                return isIdentStart(u) ? (s = this.readName(r.read()), i += s, /^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(s) ? o = Tokens.LENGTH : /^deg|^rad$|^grad$/i.test(s) ? o = Tokens.ANGLE : /^ms$|^s$/i.test(s) ? o = Tokens.TIME : /^hz$|^khz$/i.test(s) ? o = Tokens.FREQ : /^dpi$|^dpcm$/i.test(s) ? o = Tokens.RESOLUTION : o = Tokens.DIMENSION) : u == "%" && (i += r.read(), o = Tokens.PERCENTAGE), this.createToken(o, i, t, n)
2754            }, stringToken: function (e, t, n) {
2755                var r = e, i = e, s = this._reader, o = e, u = Tokens.STRING, a = s.read();
2756                while (a) {
2757                    i += a;
2758                    if (a == r && o != "\\") break;
2759                    if (isNewLine(s.peek()) && a != "\\") {
2760                        u = Tokens.INVALID;
2761                        break
2762                    }
2763                    o = a, a = s.read()
2764                }
2765                return a === null && (u = Tokens.INVALID), this.createToken(u, i, t, n)
2766            }, unicodeRangeToken: function (e, t, n) {
2767                var r = this._reader, i = e, s, o = Tokens.CHAR;
2768                return r.peek() == "+" && (r.mark(), i += r.read(), i += this.readUnicodeRangePart(!0), i.length == 2 ? r.reset() : (o = Tokens.UNICODE_RANGE, i.indexOf("?") == -1 && r.peek() == "-" && (r.mark(), s = r.read(), s += this.readUnicodeRangePart(!1), s.length == 1 ? r.reset() : i += s))), this.createToken(o, i, t, n)
2769            }, whitespaceToken: function (e, t, n) {
2770                var r = this._reader, i = e + this.readWhitespace();
2771                return this.createToken(Tokens.S, i, t, n)
2772            }, readUnicodeRangePart: function (e) {
2773                var t = this._reader, n = "", r = t.peek();
2774                while (isHexDigit(r) && n.length < 6) t.read(), n += r, r = t.peek();
2775                if (e) while (r == "?" && n.length < 6) t.read(), n += r, r = t.peek();
2776                return n
2777            }, readWhitespace: function () {
2778                var e = this._reader, t = "", n = e.peek();
2779                while (isWhitespace(n)) e.read(), t += n, n = e.peek();
2780                return t
2781            }, readNumber: function (e) {
2782                var t = this._reader, n = e, r = e == ".", i = t.peek();
2783                while (i) {
2784                    if (isDigit(i)) n += t.read(); else {
2785                        if (i != ".") break;
2786                        if (r) break;
2787                        r = !0, n += t.read()
2788                    }
2789                    i = t.peek()
2790                }
2791                return n
2792            }, readString: function () {
2793                var e = this._reader, t = e.read(), n = t, r = t, i = e.peek();
2794                while (i) {
2795                    i = e.read(), n += i;
2796                    if (i == t && r != "\\") break;
2797                    if (isNewLine(e.peek()) && i != "\\") {
2798                        n = "";
2799                        break
2800                    }
2801                    r = i, i = e.peek()
2802                }
2803                return i === null && (n = ""), n
2804            }, readURI: function (e) {
2805                var t = this._reader, n = e, r = "", i = t.peek();
2806                t.mark();
2807                while (i && isWhitespace(i)) t.read(), i = t.peek();
2808                i == "'" || i == '"' ? r = this.readString() : r = this.readURL(), i = t.peek();
2809                while (i && isWhitespace(i)) t.read(), i = t.peek();
2810                return r === "" || i != ")" ? (n = e, t.reset()) : n += r + t.read(), n
2811            }, readURL: function () {
2812                var e = this._reader, t = "", n = e.peek();
2813                while (/^[!#$%&\\*-~]$/.test(n)) t += e.read(), n = e.peek();
2814                return t
2815            }, readName: function (e) {
2816                var t = this._reader, n = e || "", r = t.peek();
2817                for (; ;) if (r == "\\") n += this.readEscape(t.read()), r = t.peek(); else {
2818                    if (!r || !isNameChar(r)) break;
2819                    n += t.read(), r = t.peek()
2820                }
2821                return n
2822            }, readEscape: function (e) {
2823                var t = this._reader, n = e || "", r = 0, i = t.peek();
2824                if (isHexDigit(i)) do n += t.read(), i = t.peek(); while (i && isHexDigit(i) && ++r < 6);
2825                return n.length == 3 && /\s/.test(i) || n.length == 7 || n.length == 1 ? t.read() : i = "", n + i
2826            }, readComment: function (e) {
2827                var t = this._reader, n = e || "", r = t.read();
2828                if (r == "*") {
2829                    while (r) {
2830                        n += r;
2831                        if (n.length > 2 && r == "*" && t.peek() == "/") {
2832                            n += t.read();
2833                            break
2834                        }
2835                        r = t.read()
2836                    }
2837                    return n
2838                }
2839                return ""
2840            }
2841        });
2842        var Tokens = [{name: "CDO"}, {name: "CDC"}, {name: "S", whitespace: !0}, {
2843            name: "COMMENT",
2844            comment: !0,
2845            hide: !0,
2846            channel: "comment"
2847        }, {name: "INCLUDES", text: "~="}, {name: "DASHMATCH", text: "|="}, {
2848            name: "PREFIXMATCH",
2849            text: "^="
2850        }, {name: "SUFFIXMATCH", text: "$="}, {
2851            name: "SUBSTRINGMATCH",
2852            text: "*="
2853        }, {name: "STRING"}, {name: "IDENT"}, {name: "HASH"}, {name: "IMPORT_SYM", text: "@import"}, {
2854            name: "PAGE_SYM",
2855            text: "@page"
2856        }, {name: "MEDIA_SYM", text: "@media"}, {name: "FONT_FACE_SYM", text: "@font-face"}, {
2857            name: "CHARSET_SYM",
2858            text: "@charset"
2859        }, {name: "NAMESPACE_SYM", text: "@namespace"}, {
2860            name: "VIEWPORT_SYM",
2861            text: ["@viewport", "@-ms-viewport"]
2862        }, {name: "UNKNOWN_SYM"}, {
2863            name: "KEYFRAMES_SYM",
2864            text: ["@keyframes", "@-webkit-keyframes", "@-moz-keyframes", "@-o-keyframes"]
2865        }, {name: "IMPORTANT_SYM"}, {name: "LENGTH"}, {name: "ANGLE"}, {name: "TIME"}, {name: "FREQ"}, {name: "DIMENSION"}, {name: "PERCENTAGE"}, {name: "NUMBER"}, {name: "URI"}, {name: "FUNCTION"}, {name: "UNICODE_RANGE"}, {name: "INVALID"}, {
2866            name: "PLUS",
2867            text: "+"
2868        }, {name: "GREATER", text: ">"}, {name: "COMMA", text: ","}, {
2869            name: "TILDE",
2870            text: "~"
2871        }, {name: "NOT"}, {name: "TOPLEFTCORNER_SYM", text: "@top-left-corner"}, {
2872            name: "TOPLEFT_SYM",
2873            text: "@top-left"
2874        }, {name: "TOPCENTER_SYM", text: "@top-center"}, {
2875            name: "TOPRIGHT_SYM",
2876            text: "@top-right"
2877        }, {name: "TOPRIGHTCORNER_SYM", text: "@top-right-corner"}, {
2878            name: "BOTTOMLEFTCORNER_SYM",
2879            text: "@bottom-left-corner"
2880        }, {name: "BOTTOMLEFT_SYM", text: "@bottom-left"}, {
2881            name: "BOTTOMCENTER_SYM",
2882            text: "@bottom-center"
2883        }, {name: "BOTTOMRIGHT_SYM", text: "@bottom-right"}, {
2884            name: "BOTTOMRIGHTCORNER_SYM",
2885            text: "@bottom-right-corner"
2886        }, {name: "LEFTTOP_SYM", text: "@left-top"}, {
2887            name: "LEFTMIDDLE_SYM",
2888            text: "@left-middle"
2889        }, {name: "LEFTBOTTOM_SYM", text: "@left-bottom"}, {
2890            name: "RIGHTTOP_SYM",
2891            text: "@right-top"
2892        }, {name: "RIGHTMIDDLE_SYM", text: "@right-middle"}, {
2893            name: "RIGHTBOTTOM_SYM",
2894            text: "@right-bottom"
2895        }, {name: "RESOLUTION", state: "media"}, {name: "IE_FUNCTION"}, {name: "CHAR"}, {
2896            name: "PIPE",
2897            text: "|"
2898        }, {name: "SLASH", text: "/"}, {name: "MINUS", text: "-"}, {name: "STAR", text: "*"}, {
2899            name: "LBRACE",
2900            endChar: "}",
2901            text: "{"
2902        }, {name: "RBRACE", text: "}"}, {name: "LBRACKET", endChar: "]", text: "["}, {
2903            name: "RBRACKET",
2904            text: "]"
2905        }, {name: "EQUALS", text: "="}, {name: "COLON", text: ":"}, {name: "SEMICOLON", text: ";"}, {
2906            name: "LPAREN",
2907            endChar: ")",
2908            text: "("
2909        }, {name: "RPAREN", text: ")"}, {name: "DOT", text: "."}];
2910        (function () {
2911            var e = [], t = {};
2912            Tokens.UNKNOWN = -1, Tokens.unshift({name: "EOF"});
2913            for (var n = 0, r = Tokens.length; n < r; n++) {
2914                e.push(Tokens[n].name), Tokens[Tokens[n].name] = n;
2915                if (Tokens[n].text) if (Tokens[n].text instanceof Array) for (var i = 0; i < Tokens[n].text.length; i++) t[Tokens[n].text[i]] = n; else t[Tokens[n].text] = n
2916            }
2917            Tokens.name = function (t) {
2918                return e[t]
2919            }, Tokens.type = function (e) {
2920                return t[e] || -1
2921            }
2922        })();
2923        var Validation = {
2924            validate: function (e, t) {
2925                var n = e.toString().toLowerCase(), r = t.parts, i = new PropertyValueIterator(t), s = Properties[n], o,
2926                    u, a, f, l, c, h, p, d, v, m;
2927                if (!s) {
2928                    if (n.indexOf("-") !== 0) throw new ValidationError("Unknown property '" + e + "'.", e.line, e.col)
2929                } else typeof s != "number" && (typeof s == "string" ? s.indexOf("||") > -1 ? this.groupProperty(s, i) : this.singleProperty(s, i, 1) : s.multi ? this.multiProperty(s.multi, i, s.comma, s.max || Infinity) : typeof s == "function" && s(i))
2930            }, singleProperty: function (e, t, n, r) {
2931                var i = !1, s = t.value, o = 0, u;
2932                while (t.hasNext() && o < n) {
2933                    i = ValidationTypes.isAny(t, e);
2934                    if (!i) break;
2935                    o++
2936                }
2937                if (!i) throw t.hasNext() && !t.isFirst() ? (u = t.peek(), new ValidationError("Expected end of value but found '" + u + "'.", u.line, u.col)) : new ValidationError("Expected (" + e + ") but found '" + s + "'.", s.line, s.c
2937ol);
2938                if (t.hasNext()) throw u = t.next(), new ValidationError("Expected end of value but found '" + u + "'.", u.line, u.col)
2939            }, multiProperty: function (e, t, n, r) {
2940                var i = !1, s = t.value, o = 0, u = !1, a;
2941                while (t.hasNext() && !i && o < r) {
2942                    if (!ValidationTypes.isAny(t, e)) break;
2943                    o++;
2944                    if (!t.hasNext()) i = !0; else if (n) {
2945                        if (t.peek() != ",") break;
2946                        a = t.next()
2947                    }
2948                }
2949                if (!i) throw t.hasNext() && !t.isFirst() ? (a = t.peek(), new ValidationError("Expected end of value but found '" + a + "'.", a.line, a.col)) : (a = t.previous(), n && a == "," ? new ValidationError("Expected end of value but found '" + a + "'.", a.line, a.col) : new ValidationError("Expected (" + e + ") but found '" + s + "'.", s.line, s.col));
2950                if (t.hasNext()) throw a = t.next(), new ValidationError("Expected end of value but found '" + a + "'.", a.line, a.col)
2951            }, groupProperty: function (e, t, n) {
2952                var r = !1, i = t.value, s = e.split("||").length, o = {count: 0}, u = !1, a, f;
2953                while (t.hasNext() && !r) {
2954                    a = ValidationTypes.isAnyOfGroup(t, e);
2955                    if (!a) break;
2956                    if (o[a]) break;
2957                    o[a] = 1, o.count++, u = !0;
2958                    if (o.count == s || !t.hasNext()) r = !0
2959                }
2960                if (!r) throw u && t.hasNext() ? (f = t.peek(), new ValidationError("Expected end of value but found '" + f + "'.", f.line, f.col)) : new ValidationError("Expected (" + e + ") but found '" + i + "'.", i.line, i.col);
2961                if (t.hasNext()) throw f = t.next(), new ValidationError("Expected end of value but found '" + f + "'.", f.line, f.col)
2962            }
2963        };
2964        ValidationError.prototype = new Error;
2965        var ValidationTypes = {
2966            isLiteral: function (e, t) {
2967                var n = e.text.toString().toLowerCase(), r = t.split(" | "), i, s, o = !1;
2968                for (i = 0, s = r.length; i < s && !o; i++) n == r[i].toLowerCase() && (o = !0);
2969                return o
2970            }, isSimple: function (e) {
2971                return !!this.simple[e]
2972            }, isComplex: function (e) {
2973                return !!this.complex[e]
2974            }, isAny: function (e, t) {
2975                var n = t.split(" | "), r, i, s = !1;
2976                for (r = 0, i = n.length; r < i && !s && e.hasNext(); r++) s = this.isType(e, n[r]);
2977                return s
2978            }, isAnyOfGroup: function (e, t) {
2979                var n = t.split(" || "), r, i, s = !1;
2980                for (r = 0, i = n.length; r < i && !s; r++) s = this.isType(e, n[r]);
2981                return s ? n[r - 1] : !1
2982            }, isType: function (e, t) {
2983                var n = e.peek(), r = !1;
2984                return t.charAt(0) != "<" ? (r = this.isLiteral(n, t), r && e.next()) : this.simple[t] ? (r = this.simple[t](n), r && e.next()) : r = this.complex[t](e), r
2985            }, simple: {
2986                "<absolute-size>": function (e) {
2987                    return ValidationTypes.isLiteral(e, "xx-small | x-small | small | medium | large | x-large | xx-large")
2988                }, "<attachment>": function (e) {
2989                    return ValidationTypes.isLiteral(e, "scroll | fixed | local")
2990                }, "<attr>": function (e) {
2991                    return e.type == "function" && e.name == "attr"
2992                }, "<bg-image>": function (e) {
2993                    return this["<image>"](e) || this["<gradient>"](e) || e == "none"
2994                }, "<gradient>": function (e) {
2995                    return e.type == "function" && /^(?:\-(?:ms|moz|o|webkit)\-)?(?:repeating\-)?(?:radial\-|linear\-)?gradient/i.test(e)
2996                }, "<box>": function (e) {
2997                    return ValidationTypes.isLiteral(e, "padding-box | border-box | content-box")
2998                }, "<content>": function (e) {
2999                    return e.type == "function" && e.name == "content"
3000                }, "<relative-size>": function (e) {
3001                    return ValidationTypes.isLiteral(e, "smaller | larger")
3002                }, "<ident>": function (e) {
3003                    return e.type == "identifier"
3004                }, "<length>": function (e) {
3005                    return e.type == "function" && /^(?:\-(?:ms|moz|o|webkit)\-)?calc/i.test(e) ? !0 : e.type == "length" || e.type == "number" || e.type == "integer" || e == "0"
3006                }, "<color>": function (e) {
3007                    return e.type == "color" || e == "transparent"
3008                }, "<number>": function (e) {
3009                    return e.type == "number" || this["<integer>"](e)
3010                }, "<integer>": function (e) {
3011                    return e.type == "integer"
3012                }, "<line>": function (e) {
3013                    return e.type == "integer"
3014                }, "<angle>": function (e) {
3015                    return e.type == "angle"
3016                }, "<uri>": function (e) {
3017                    return e.type == "uri"
3018                }, "<image>": function (e) {
3019                    return this["<uri>"](e)
3020                }, "<percentage>": function (e) {
3021                    return e.type == "percentage" || e == "0"
3022                }, "<border-width>": function (e) {
3023                    return this["<length>"](e) || ValidationTypes.isLiteral(e, "thin | medium | thick")
3024                }, "<border-style>": function (e) {
3025                    return ValidationTypes.isLiteral(e, "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset")
3026                }, "<content-sizing>": function (e) {
3027                    return ValidationTypes.isLiteral(e, "fill-available | -moz-available | -webkit-fill-available | max-content | -moz-max-content | -webkit-max-content | min-content | -moz-min-content | -webkit-min-content | fit-content | -moz-fit-content | -webkit-fit-content")
3028                }, "<margin-width>": function (e) {
3029                    return this["<length>"](e) || this["<percentage>"](e) || ValidationTypes.isLiteral(e, "auto")
3030                }, "<padding-width>": function (e) {
3031                    return this["<length>"](e) || this["<percentage>"](e)
3032                }, "<shape>": function (e) {
3033                    return e.type == "function" && (e.name == "rect" || e.name == "inset-rect")
3034                }, "<time>": function (e) {
3035                    return e.type == "time"
3036                }, "<flex-grow>": function (e) {
3037                    return this["<number>"](e)
3038                }, "<flex-shrink>": function (e) {
3039                    return this["<number>"](e)
3040                }, "<width>": function (e) {
3041                    return this["<margin-width>"](e)
3042                }, "<flex-basis>": function (e) {
3043                    return this["<width>"](e)
3044                }, "<flex-direction>": function (e) {
3045                    return ValidationTypes.isLiteral(e, "row | row-reverse | column | column-reverse")
3046                }, "<flex-wrap>": function (e) {
3047                    return ValidationTypes.isLiteral(e, "nowrap | wrap | wrap-reverse")
3048                }
3049            }, complex: {
3050                "<bg-position>": function (e) {
3051                    var t = this, n = !1, r = "<percentage> | <length>", i = "left | right", s = "top | bottom", o = 0,
3052                        u = function () {
3053                            return e.hasNext() && e.peek() != ","
3054                        };
3055                    while (e.peek(o) && e.peek(o) != ",") o++;
3056                    return o < 3 ? ValidationTypes.isAny(e, i + " | center | " + r) ? (n = !0, ValidationTypes.isAny(e, s + " | center | " + r)) : ValidationTypes.isAny(e, s) && (n = !0, ValidationTypes.isAny(e, i + " | center")) : ValidationTypes.isAny(e, i) ? ValidationTypes.isAny(e, s) ? (n = !0, ValidationTypes.isAny(e, r)) : ValidationTypes.isAny(e, r) && (ValidationTypes.isAny(e, s) ? (n = !0, ValidationTypes.isAny(e, r)) : ValidationTypes.isAny(e, "center") && (n = !0)) : ValidationTypes.isAny(e, s) ? ValidationTypes.isAny(e, i) ? (n = !0, ValidationTypes.isAny(e, r)) : ValidationTypes.isAny(e, r) && (ValidationTypes.isAny(e, i) ? (n = !0, ValidationTypes.isAny(e, r)) : ValidationTypes.isAny(e, "center") && (n = !0)) : ValidationTypes.isAny(e, "center") && ValidationTypes.isAny(e, i + " | " + s) && (n = !0, ValidationTypes.isAny(e, r)), n
3057                }
3057, "<bg-size>": function (e) {
3058                    var t = this, n = !1, r = "<percentage> | <length> | auto", i, s, o;
3059                    return ValidationTypes.isAny(e, "cover | contain") ? n = !0 : ValidationTypes.isAny(e, r) && (n = !0, ValidationTypes.isAny(e, r)), n
3060                }, "<repeat-style>": function (e) {
3061                    var t = !1, n = "repeat | space | round | no-repeat", r;
3062                    return e.hasNext() && (r = e.next(), ValidationTypes.isLiteral(r, "repeat-x | repeat-y") ? t = !0 : ValidationTypes.isLiteral(r, n) && (t = !0, e.hasNext() && ValidationTypes.isLiteral(e.peek(), n) && e.next())), t
3063                }, "<shadow>": function (e) {
3064                    var t = !1, n = 0, r = !1, i = !1, s;
3065                    if (e.hasNext()) {
3066                        ValidationTypes.isAny(e, "inset") && (r = !0), ValidationTypes.isAny(e, "<color>") && (i = !0);
3067                        while (ValidationTypes.isAny(e, "<length>") && n < 4) n++;
3068                        e.hasNext() && (i || ValidationTypes.isAny(e, "<color>"), r || ValidationTypes.isAny(e, "inset")), t = n >= 2 && n <= 4
3069                    }
3070                    return t
3071                }, "<x-one-radius>": function (e) {
3072                    var t = !1, n = "<length> | <percentage> | inherit";
3073                    return ValidationTypes.isAny(e, n) && (t = !0, ValidationTypes.isAny(e, n)), t
3074                }, "<flex>": function (e) {
3075                    var t, n = !1;
3076                    ValidationTypes.isAny(e, "none | inherit") ? n = !0 : ValidationTypes.isType(e, "<flex-grow>") ? e.peek() ? ValidationTypes.isType(e, "<flex-shrink>") ? e.peek() ? n = ValidationTypes.isType(e, "<flex-basis>") : n = !0 : ValidationTypes.isType(e, "<flex-basis>") && (n = e.peek() === null) : n = !0 : ValidationTypes.isType(e, "<flex-basis>") && (n = !0);
3077                    if (!n) throw t = e.peek(), new ValidationError("Expected (none | [ <flex-grow> <flex-shrink>? || <flex-basis> ]) but found '" + e.value.text + "'.", t.line, t.col);
3078                    return n
3079                }
3080            }
3081        };
3082        parserlib.css = {
3083            Colors: Colors,
3084            Combinator: Combinator,
3085            Parser: Parser,
3086            PropertyName: PropertyName,
3087            PropertyValue: PropertyValue,
3088            PropertyValuePart: PropertyValuePart,
3089            MediaFeature: MediaFeature,
3090            MediaQuery: MediaQuery,
3091            Selector: Selector,
3092            SelectorPart: SelectorPart,
3093            SelectorSubPart: SelectorSubPart,
3094            Specificity: Specificity,
3095            TokenStream: TokenStream,
3096            Tokens: Tokens,
3097            ValidationError: ValidationError
3098        }
3099    }(), function () {
3100        for (var e in parserlib) exports[e] = parserlib[e]
3101    }();
3102    var util = {
3103        isArray: function (e) {
3104            return Array.isArray(e) || typeof e == "object" && objectToString(e) === "[object Array]"
3105        }, isDate: function (e) {
3106            return typeof e == "object" && objectToString(e) === "[object Date]"
3107        }, isRegExp: function (e) {
3108            return typeof e == "object" && objectToString(e) === "[object RegExp]"
3109        }, getRegExpFlags: function (e) {
3110            var t = "";
3111            return e.global && (t += "g"), e.ignoreCase && (t += "i"), e.multiline && (t += "m"), t
3112        }
3113    };
3114    typeof module == "object" && (module.exports = clone), clone.clonePrototype = function (e) {
3115        if (e === null) return null;
3116        var t = function () {
3117        };
3118        return t.prototype = e, new t
3119    };
3120    var CSSLint = function () {
3121        function i(e, t) {
3122            var r, i = e && e.match(n), s = i && i[1];
3123            return s && (r = {
3124                "true": 2,
3125                "": 1,
3126                "false": 0,
3127                2: 2,
3128                1: 1,
3129                0: 0
3130            }, s.toLowerCase().split(",").forEach(function (e) {
3131                var n = e.split(":"), i = n[0] || "", s = n[1] || "";
3132                t[i.trim()] = r[s.trim()]
3133            })), t
3134        }
3135
3136        var e = [], t = [], n = /\/\*csslint([^\*]*)\*\//, r = new parserlib.util.EventTarget;
3137        return r.version = "@VERSION@", r.addRule = function (t) {
3138            e.push(t), e[t.id] = t
3139        }, r.clearRules = function () {
3140            e = []
3141        }, r.getRules = function () {
3142            return [].concat(e).sort(function (e, t) {
3143                return e.id > t.id ? 1 : 0
3144            })
3145        }, r.getRuleset = function () {
3146            var t = {}, n = 0, r = e.length;
3147            while (n < r) t[e[n++].id] = 1;
3148            return t
3149        }, r.addFormatter = function (e) {
3150            t[e.id] = e
3151        }, r.getFormatter = function (e) {
3152            return t[e]
3153        }, r.format = function (e, t, n, r) {
3154            var i = this.getFormatter(n), s = null;
3155            return i && (s = i.startFormat(), s += i.formatResults(e, t, r || {}), s += i.endFormat()), s
3156        }, r.hasFormat = function (e) {
3157            return t.hasOwnProperty(e)
3158        }, r.verify = function (t, r) {
3159            var s = 0, o, u, a,
3160                f = new parserlib.css.Parser({starHack: !0, ieFilters: !0, underscoreHack: !0, strict: !1}
3160);
3161            u = t.replace(/\n\r?/g, "$split$").split("$split$"), r || (r = this.getRuleset()), n.test(t) && (r = clone(r), r = i(t, r)), o = new Reporter(u, r), r.errors = 2;
3162            for (s in r) r.hasOwnProperty(s) && r[s] && e[s] && e[s].init(f, o);
3163            try {
3164                f.parse(t)
3165            } catch (l) {
3166                o.error("Fatal error, cannot continue: " + l.message, l.line, l.col, {})
3167            }
3168            return a = {messages: o.messages, stats: o.stats, ruleset: o.ruleset}, a.messages.sort(function (e, t) {
3169                return e.rollup && !t.rollup ? 1 : !e.rollup && t.rollup ? -1 : e.line - t.line
3170            }), a
3171        }, r
3172    }();
3173    Reporter.prototype = {
3174        constructor: Reporter, error: function (e, t, n, r) {
3175            this.messages.push({type: "error", line: t, col: n, message: e, evidence: this.lines[t - 1], rule: r || {}})
3176        }, warn: function (e, t, n, r) {
3177            this.report(e, t, n, r)
3178        }, report: function (e, t, n, r) {
3179            this.messages.push({
3180                type: this.ruleset[r.id] === 2 ? "error" : "warning",
3181                line: t,
3182                col: n,
3183                message: e,
3184                evidence: this.lines[t - 1],
3185                rule: r
3186            })
3187        }, info: function (e, t, n, r) {
3188            this.messages.push({type: "info", line: t, col: n, message: e, evidence: this.lines[t - 1], rule: r})
3189        }, rollupError: function (e, t) {
3190            this.messages.push({type: "error", rollup: !0, message: e, rule: t})
3191        }, rollupWarn: function (e, t) {
3192            this.messages.push({type: "warning", rollup: !0, message: e, rule: t})
3193        }, stat: function (e, t) {
3194            this.stats[e] = t
3195        }
3196    }, CSSLint._Reporter = Reporter, CSSLint.Util = {
3197        mix: function (e, t) {
3198            var n;
3199            for (n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
3200            return n
3201        }, indexOf: function (e, t) {
3202            if (e.indexOf) return e.indexOf(t);
3203            for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n;
3204            return -1
3205        }, forEach: function (e, t) {
3206            if (e.forEach) return e.forEach(t);
3207            for (var n = 0, r = e.length; n < r; n++) t(e[n], n, e)
3208        }
3209    }, CSSLint.addRule({
3210        id: "adjoining-classes",
3211        name: "Disallow adjoining classes",
3212        desc: "Don't use adjoining classes.",
3213        browsers: "IE6",
3214        init: function (e, t) {
3215            var n = this;
3216            e.addListener("startrule", function (r) {
3217                var i = r.selectors, s, o, u, a, f, l, c;
3218                for (f = 0; f < i.length; f++) {
3219                    s = i[f];
3220                    for (l = 0; l < s.parts.length; l++) {
3221                        o = s.parts[l];
3222                        if (o.type === e.SELECTOR_PART_TYPE) {
3223                            a = 0;
3224                            for (c = 0; c < o.modifiers.length; c++) u = o.modifiers[c], u.type === "class" && a++, a > 1 && t.report("Don't use adjoining classes.", o.line, o.col, n)
3225                        }
3226                    }
3227                }
3228            })
3229        }
3230    }), CSSLint.addRule({
3231        id: "box-model",
3232        name: "Beware of broken box size",
3233        desc: "Don't use width or height when using padding or border.",
3234        browsers: "All",
3235        init: function (e, t) {
3236            function u() {
3237                s = {}, o = !1
3238            }
3239
3240            function a() {
3241                var e, u;
3242                if (!o) {
3243                    if (s.height) for (e in i) i.hasOwnProperty(e) && s[e] && (u = s[e].value, (e !== "padding" || u.parts.length !== 2 || u.parts[0].value !== 0) && t.report("Using height with " + e + " can sometimes make elements larger than you expect.", s[e].line, s[e].col, n));
3244                    if (s.width) for (e in r) r.hasOwnProperty(e) && s[e] && (u = s[e].value, (e !== "padding" || u.parts.length !== 2 || u.parts[1].value !== 0) && t.report("Using width with " + e + " can sometimes make elements larger than you expect.", s[e].line, s[e].col, n))
3245                }
3246            }
3247
3248            var n = this,
3249                r = {border: 1, "border-left": 1, "border-right": 1, padding: 1, "padding-left": 1, "padding-right": 1},
3250                i = {border: 1, "border-bottom": 1, "border-top": 1, padding: 1, "padding-bottom": 1, "padding-top": 1},
3251                s, o = !1;
3252            e.addListener("startrule", u), e.addListener("startfontface", u), e.addListener("startpage", u), e.addListener("startpagemargin", u), e.addListener("startkeyframerule", u), e.addListener("property", function (e) {
3253                var t = e.property.text.toLowerCase();
3254                i[t] || r[t] ? !/^0\S*$/.test(e.value) && (t !== "border" || e.value.toString() !== "none") && (s[t] = {
3255                    line: e.property.line,
3256                    col: e.property.col,
3257                    value: e.value
3258                }) : /^(width|height)/i.test(t) && /^(length|percentage)/.test(e.value.parts[0].type) ? s[t] = 1 : t === "box-sizing" && (o = !0)
3259            }), e.addListener("endrule", a), e.addListener("endfontface", a), e.addListener("endpage", a), e.addListener("endpagemargin", a), e.addListener("endkeyframerule", a)
3260        }
3261    }), CSSLint.addRule({
3262        id: "box-sizing",
3263        name: "Disallow use of box-sizing",
3264        desc: "The box-sizing properties isn't supported in IE6 and IE7.",
3265        browsers: "IE6, IE7",
3266        tags: ["Compatibility"],
3267        init: function (e, t) {
3268            var n = this;
3269            e.addListener("property", function (e) {
3270                var r = e.property.text.toLowerCase();
3271                r === "box-sizing" && t.report("The box-sizing property isn't supported in IE6 and IE7.", e.line, e.col, n)
3272            })
3273        }
3274    }), CSSLint.addRule({
3275        id: "bulletproof-font-face",
3276        name: "Use the bulletproof @font-face syntax",
3277        desc: "Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).",
3278        browsers: "All",
3279        init: function (e, t) {
3280            var n = this, r = !1, i = !0, s = !1, o, u;
3281            e.addListener("startfontface", function () {
3282                r = !0
3283            }), e.addListener("property", function (e) {
3284                if (!r) return;
3285                var t = e.property.toString().toLowerCase(), n = e.value.toString();
3286                o = e.line, u = e.col;
3287                if (t === "src") {
3288                    var a = /^\s?url\(['"].+\.eot\?.*['"]\)\s*format\(['"]embedded-opentype['"]\).*$/i;
3289                    !n.match(a) && i ? (s = !0, i = !1) : n.match(a) && !i && (s = !1)
3290                }
3291            }), e.addListener("endfontface", function () {
3292                r = !1, s && t.report("@font-face declaration doesn't follow the fontspring bulletproof syntax.", o, u, n)
3293            })
3294        }
3295    }), CSSLint.addRule({
3296        id: "compatible-vendor-prefixes",
3297        name: "Require compatible vendor prefixes",
3298        desc: "Include all compatible vendor prefixes to reach a wider range of users.",
3299        browsers: "All",
3300        init: function (e, t) {
3301            var n = this, r, i, s, o, u, a, f, l = !1, c = Array.prototype.push, h = [];
3302            r = {
3303                animation: "webkit moz",
3304                "animation-delay": "webkit moz",
3305                "animation-direction": "webkit moz",
3306                "animation-duration": "webkit moz",
3307                "animation-fill-mode": "webkit moz",
3308                "animation-iteration-count": "webkit moz",
3309                "animation-name": "webkit moz",
3310                "animation-play-state": "webkit moz",
3311                "animation-timing-function": "webkit moz",
3312                appearance: "webkit moz",
3313                "border-end": "webkit moz",
3314                "border-end-color": "webkit moz",
3315                "border-end-style": "webkit moz",
3316                "border-end-width": "webkit moz",
3317                "border-image": "webkit moz o",
3318                "border-radius": "webkit",
3319                "border-start": "webkit moz",
3320                "border-start-color": "webkit moz",
3321                "border-start-style": "webkit moz",
3322                "border-start-width": "webkit moz",
3323                "box-align": "webkit moz ms",
3324                "box-direction": "webkit moz ms",
3325                "box-flex": "webkit moz ms",
3326                "box-lines": "webkit ms",
3327                "box-ordinal-group": "webkit moz ms",
3328                "box-orient": "webkit moz ms",
3329                "box-pack": "webkit moz ms",
3330                "box-sizing": "webkit moz",
3331                "box-shadow": "webkit moz",
3332                "column-count": "webkit moz ms",
3333                "column-gap": "webkit moz ms",
3334                "column-rule": "webkit moz ms",
3335                "column-rule-color": "webkit moz ms",
3336                "column-rule-style": "webkit moz ms",
3337                "column-rule-width": "webkit moz ms",
3338                "column-width": "webkit moz ms",
3339                hyphens: "epub moz",
3340                "line-break": "webkit ms",
3341                "margin-end": "webkit moz",
3342                "margin-start": "webkit moz",
3343                "marquee-speed": "webkit wap",
3344                "marquee-style": "webkit wap",
3345                "padding-end": "webkit moz",
3346                "padding-start": "webkit moz",
3347                "tab-size": "moz o",
3348                "text-size-adjust": "webkit ms",
3349                transform: "webkit moz ms o",
3350                "transform-origin": "webkit moz ms o",
3351                transition: "webkit moz o",
3352                "transition-delay": "webkit moz o",
3353                "transition-duration": "webkit moz o",
3354                "transition-property": "webkit moz o",
3355                "transition-timing-function": "webkit moz o",
3356                "user-modify": "webkit moz",
3357                "user-select": "webkit moz ms",
3358                "word-break": "epub ms",
3359                "writing-mode": "epub ms"
3360            };
3361            for (s in r) if (r.hasOwnProperty(s)) {
3362                o = [], u = r[s].split(" ");
3363                for (a = 0, f = u.length; a < f; a++) o.push("-" + u[a] + "-" + s);
3364                r[s] = o, c.apply(h, o)
3365            }
3366            e.addListener("startrule", function () {
3367                i = []
3368            }), e.addListener("startkeyframes", function (e) {
3369                l = e.prefix || !0
3370            }), e.addListener("endkeyframes", function () {
3371                l = !1
3372            }), e.addListener("property", function (e) {
3373                var t = e.property;
3374                CSSLint.Util.indexOf(h, t.text) > -1 && (!l || typeof l != "string" || t.text.indexOf("-" + l + "-") !== 0) && i.push(t)
3375            }), e.addListener("endrule", function () {
3376                if (!i.length) return;
3377                var e = {}, s, o, u, a, f, l, c, h, p, d;
3378                for (s = 0, o = i.length; s < o; s++) {
3379                    u = i[s];
3380                    for (a in r) r.hasOwnProperty(a) && (f = r[a], CSSLint.Util.indexOf(f, u.text) > -1 && (e[a] || (e[a] = {
3381                        full: f.slice(0),
3382                        actual: [],
3383                        actualNodes: []
3384                    }), CSSLint.Util.indexOf(e[a].actual, u.text) === -1 && (e[a].actual.push(u.text), e[a].actualNodes.push(u))))
3385                }
3386                for (a in e) if (e.hasOwnProperty(a)) {
3387                    l = e[a], c = l.full, h = l.actual;
3388                    if (c.length > h.length) for (s = 0, o = c.length; s < o; s++) p = c[s], CSSLint.Util.indexOf(h, p) === -1 && (d = h.length === 1 ? h[0] : h.length === 2 ? h.join(" and ") : h.join(", "), t.report("The property " + p + " is compatible with " + d + " and should be included as well.", l.actualNodes[0].line, l.actualNodes[0].c
3388ol, n))
3389                }
3390            })
3391        }
3392    }), CSSLint.addRule({
3393        id: "display-property-grouping",
3394        name: "Require properties appropriate for display",
3395        desc: "Certain properties shouldn't be used with certain display property values.",
3396        browsers: "All",
3397        init: function (e, t) {
3398            function s(e, s, o) {
3399                i[e] && (typeof r[e] != "string" || i[e].value.toLowerCase() !== r[e]) && t.report(o || e + " can't be used with display: " + s + ".", i[e].line, i[e].col, n)
3400            }
3401
3402            function o() {
3403                i = {}
3404            }
3405
3406            function u() {
3407                var e = i.display ? i.display.value : null;
3408                if (e) switch (e) {
3409                    case"inline":
3410                        s("height", e), s("width", e), s("margin", e), s("margin-top", e), s("margin-bottom", e), s("float", e, "display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).");
3411                        break;
3412                    case"block":
3413                        s("vertical-align", e);
3414                        break;
3415                    case"inline-block":
3416                        s("float", e);
3417                        break;
3418                    default:
3419                        e.indexOf("table-") === 0 && (s("margin", e), s("margin-left", e), s("margin-right", e), s("margin-top", e), s("margin-bottom", e), s("float", e))
3420                }
3421            }
3422
3423            var n = this, r = {
3424                display: 1,
3425                "float": "none",
3426                height: 1,
3427                width: 1,
3428                margin: 1,
3429                "margin-left": 1,
3430                "margin-right": 1,
3431                "margin-bottom": 1,
3432                "margin-top": 1,
3433                padding: 1,
3434                "padding-left": 1,
3435                "padding-right": 1,
3436                "padding-bottom": 1,
3437                "padding-top": 1,
3438                "vertical-align": 1
3439            }, i;
3440            e.addListener("startrule", o), e.addListener("startfontface", o), e.addListener("startkeyframerule", o), e.addListener("startpagemargin", o), e.addListener("startpage", o), e.addListener("property", function (e) {
3441                var t = e.property.text.toLowerCase();
3442                r[t] && (i[t] = {value: e.value.text, line: e.property.line, col: e.property.col})
3443            }), e.addListener("endrule", u), e.addListener("endfontface", u), e.addListener("endkeyframerule", u), e.addListener("endpagemargin", u), e.addListener("endpage", u)
3444        }
3445    }), CSSLint.addRule({
3446        id: "duplicate-background-images",
3447        name: "Disallow duplicate background images",
3448        desc: "Every background-image should be unique. Use a common class for e.g. sprites.",
3449        browsers: "All",
3450        init: function (e, t) {
3451            var n = this, r = {};
3452            e.addListener("property", function (e) {
3453                var i = e.property.text, s = e.value, o, u;
3454                if (i.match(/background/i)) for (o = 0, u = s.parts.length; o < u; o++) s.parts[o].type === "uri" && (typeof r[s.parts[o].uri] == "undefined" ? r[s.parts[o].uri] = e : t.report("Background image '" + s.parts[o].uri + "' was used multiple times, first declared at line " + r[s.parts[o].uri].line + ", col " + r[s.parts[o].uri].col + ".", e.line, e.col, n))
3455            })
3456        }
3457    }), CSSLint.addRule({
3458        id: "duplicate-properties",
3459        name: "Disallow duplicate properties",
3460        desc: "Duplicate properties must appear one after the other.",
3461        browsers: "All",
3462        init: function (e, t) {
3463            function s() {
3464                r = {}
3465            }
3466
3467            var n = this, r, i;
3468            e.addListener("startrule", s), e.addListener("startfontface", s), e.addListener("startpage", s), e.addListener("startpagemargin", s), e.addListener("startkeyframerule", s), e.addListener("property", function (e) {
3469                var s = e.property, o = s.text.toLowerCase();
3470                r[o] && (i !== o || r[o] === e.value.text) && t.report("Duplicate property '" + e.property + "' found.", e.line, e.col, n), r[o] = e.value.text, i = o
3471            })
3472        }
3473    }), CSSLint.addRule({
3474        id: "empty-rules",
3475        name: "Disallow empty rules",
3476        desc: "Rules without any properties specified should be removed.",
3477        browsers: "All",
3478        init: function (e, t) {
3479            var n = this, r = 0;
3480            e.addListener("startrule", function () {
3481                r = 0
3482            }), e.addListener("property", function () {
3483                r++
3484            }), e.addListener("endrule", function (e) {
3485                var i = e.selectors;
3486                r === 0 && t.report("Rule is empty.", i[0].line, i[0].col, n)
3487            })
3488        }
3489    }), CSSLint.addRule({
3490        id: "errors",
3491        name: "Parsing Errors",
3492        desc: "This rule looks for recoverable syntax errors.",
3493        browsers: "All",
3494        init: function (e, t) {
3495            var n = this;
3496            e.addListener("error", function (e) {
3497                t.error(e.message, e.line, e.col, n)
3498            })
3499        }
3500    }), CSSLint.addRule({
3501        id: "fallback-colors",
3502        name: "Require fallback colors",
3503        desc: "For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.",
3504        browsers: "IE6,IE7,IE8",
3505        init: function (e, t) {
3506            function o() {
3507                s = {}, r = null
3508            }
3509
3510            var n = this, r, i = {
3511                color: 1,
3512                background: 1,
3513                "border-color": 1,
3514                "border-top-color": 1,
3515                "border-right-color": 1,
3516                "border-bottom-color": 1,
3517                "border-left-color": 1,
3518                border: 1,
3519                "border-top": 1,
3520                "border-right": 1,
3521                "border-bottom": 1,
3522                "border-left": 1,
3523                "background-color": 1
3524            }, s;
3525            e.addListener("startrule", o), e.addListener("startfontface", o), e.addListener("startpage", o), e.addListener("startpagemargin", o), e.addListener("startkeyframerule", o), e.addListener("property", function (e) {
3526                var s = e.property, o = s.text.toLowerCase(), u = e.value.parts, a = 0, f = "", l = u.length;
3527                if (i[o]) while (a < l) u[a].type === "color" && ("alpha" in u[a] || "hue" in u[a] ? (/([^\)]+)\(/.test(u[a]) && (f = RegExp.$1.toUpperCase()), (!r || r.property.text.toLowerCase() !== o || r.colorType !== "compat") && t.report("Fallback " + o + " (hex or RGB) should precede " + f + " " + o + ".", e.line, e.col, n)) : e.colorType = "compat"), a++;
3528                r = e
3529            })
3530        }
3531    }), CSSLint.addRule({
3532        id: "floats",
3533        name: "Disallow too many floats",
3534        desc: "This rule tests if the float property is used too many times",
3535        browsers: "All",
3536        init: function (e, t) {
3537            var n = this, r = 0;
3538            e.addListener("property", function (e) {
3539                e.property.text.toLowerCase() === "float" && e.value.text.toLowerCase() !== "none" && r++
3540            }), e.addListener("endstylesheet", function () {
3541                t.stat("floats", r), r >= 10 && t.rollupWarn("Too many floats (" + r + "), you're probably using them for layout. Consider using a grid system instead.", n)
3542            })
3543        }
3544    }), CSSLint.addRule({
3545        id: "font-faces",
3546        name: "Don't use too many web fonts",
3547        desc: "Too many different web fonts in the same stylesheet.",
3548        browsers: "All",
3549        init: function (e, t) {
3550            var n = this, r = 0;
3551            e.addListener("startfontface", function () {
3552                r++
3553            }), e.addListener("endstylesheet", function () {
3554                r > 5 && t.rollupWarn("Too many @font-face declarations (" + r + ").", n)
3555            })
3556        }
3557    }), CSSLint.addRule({
3558        id: "font-sizes",
3559        name: "Disallow too many font sizes",
3560        desc: "Checks the number of font-size declarations.",
3561        browsers: "All",
3562        init: function (e, t) {
3563            var n = this, r = 0;
3564            e.addListener("property", function (e) {
3565                e.property.toString() === "font-size" && r++
3566            }), e.addListener("endstylesheet", function () {
3567                t.stat("font-sizes", r), r >= 10 && t.rollupWarn("Too many font-size declarations (" + r + "), abstraction needed.", n)
3568            })
3569        }
3570    }), CSSLint.addRule({
3571        id: "gradients",
3572        name: "Require all gradient definitions",
3573        desc: "When using a vendor-prefixed gradient, make sure to use them all.",
3574        browsers: "All",
3575        init: function (e, t) {
3576            var n = this, r;
3577            e.addListener("startrule", function () {
3578                r = {moz: 0, webkit: 0, oldWebkit: 0, o: 0}
3579            }), e.addListener("property", function (e) {
3580                /\-(moz|o|webkit)(?:\-(?:linear|radial))\-gradient/i.test(e.value) ? r[RegExp.$1] = 1 : /\-webkit\-gradient/i.test(e.value) && (r.oldWebkit = 1)
3581            }), e.addListener("endrule", function (e) {
3582                var i = [];
3583                r.moz || i.push("Firefox 3.6+"), r.webkit || i.push("Webkit (Safari 5+, Chrome)"), r.oldWebkit || i.push("Old Webkit (Safari 4+, Chrome)"), r.o || i.push("Opera 11.1+"), i.length && i.length < 4 && t.report("Missing vendor-prefixed CSS gradients for " + i.join(", ") + ".", e.selectors[0].line, e.selectors[0].col, n)
3584            })
3585        }
3586    }), CSSLint.addRule({
3587        id: "ids",
3588        name: "Disallow IDs in selectors",
3589        desc: "Selectors should not contain IDs.",
3590        browsers: "All",
3591        init: function (e, t) {
3592            var n = this;
3593            e.addListener("startrule", function (r) {
3594                var i = r.selectors, s, o, u, a, f, l, c;
3595                for (f = 0; f < i.length; f++) {
3596                    s = i[f], a = 0;
3597                    for (l = 0; l < s.parts.length; l++) {
3598                        o = s.parts[l];
3599                        if (o.type === e.SELECTOR_PART_TYPE) for (c = 0; c < o.modifiers.length; c++) u = o.modifiers[c], u.type === "id" && a++
3600                    }
3601                    a === 1 ? t.report("Don't use IDs in selectors.", s.line, s.c
3601ol, n) : a > 1 && t.report(a + " IDs in the selector, really?", s.line, s.col, n)
3602                }
3603            })
3604        }
3605    }), CSSLint.addRule({
3606        id: "import",
3607        name: "Disallow @import",
3608        desc: "Don't use @import, use <link> instead.",
3609        browsers: "All",
3610        init: function (e, t) {
3611            var n = this;
3612            e.addListener("import", function (e) {
3613                t.report("@import prevents parallel downloads, use <link> instead.", e.line, e.col, n)
3614            })
3615        }
3616    }), CSSLint.addRule({
3617        id: "important",
3618        name: "Disallow !important",
3619        desc: "Be careful when using !important declaration",
3620        browsers: "All",
3621        init: function (e, t) {
3622            var n = this, r = 0;
3623            e.addListener("property", function (e) {
3624                e.important === !0 && (r++, t.report("Use of !important", e.line, e.col, n))
3625            }), e.addListener("endstylesheet", function () {
3626                t.stat("important", r), r >= 10 && t.rollupWarn("Too many !important declarations (" + r + "), try to use less than 10 to avoid specificity issues.", n)
3627            })
3628        }
3629    }), CSSLint.addRule({
3630        id: "known-properties",
3631        name: "Require use of known properties",
3632        desc: "Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.",
3633        browsers: "All",
3634        init: function (e, t) {
3635            var n = this;
3636            e.addListener("property", function (e) {
3637                e.invalid && t.report(e.invalid.message, e.line, e.col, n)
3638            })
3639        }
3640    }), CSSLint.addRule({
3641        id: "order-alphabetical",
3642        name: "Alphabetical order",
3643        desc: "Assure properties are in alphabetical order",
3644        browsers: "All",
3645        init: function (e, t) {
3646            var n = this, r, i = function () {
3647                r = []
3648            };
3649            e.addListener("startrule", i), e.addListener("startfontface", i), e.addListener("startpage", i), e.addListener("startpagemargin", i), e.addListener("startkeyframerule", i), e.addListener("property", function (e) {
3650                var t = e.property.text, n = t.toLowerCase().replace(/^-.*?-/, "");
3651                r.push(n)
3652            }), e.addListener("endrule", function (e) {
3653                var i = r.join(","), s = r.sort().join(",");
3654                i !== s && t.report("Rule doesn't have all its properties in alphabetical ordered.", e.line, e.col, n)
3655            })
3656        }
3657    }), CSSLint.addRule({
3658        id: "outline-none",
3659        name: "Disallow outline: none",
3660        desc: "Use of outline: none or outline: 0 should be limited to :focus rules.",
3661        browsers: "All",
3662        tags: ["Accessibility"],
3663        init: function (e, t) {
3664            function i(e) {
3665                e.selectors ? r = {
3666                    line: e.line,
3667                    col: e.col,
3668                    selectors: e.selectors,
3669                    propCount: 0,
3670                    outline: !1
3671                } : r = null
3672            }
3673
3674            function s() {
3675                r && r.outline && (r.selectors.toString().toLowerCase().indexOf(":focus") === -1 ? t.report("Outlines should only be modified using :focus.", r.line, r.col, n) : r.propCount === 1 && t.report("Outlines shouldn't be hidden unless other visual changes are made.", r.line, r.col, n))
3676            }
3677
3678            var n = this, r;
3679            e.addListener("startrule", i), e.addListener("startfontface", i), e.addListener("startpage", i), e.addListener("startpagemargin", i), e.addListener("startkeyframerule", i), e.addListener("property", function (e) {
3680                var t = e.property.text.toLowerCase(), n = e.value;
3681                r && (r.propCount++, t === "outline" && (n.toString() === "none" || n.toString() === "0") && (r.outline = !0))
3682            }), e.addListener("endrule", s), e.addListener("endfontface", s), e.addListener("endpage", s), e.addListener("endpagemargin", s), e.addListener("endkeyframerule", s)
3683        }
3684    }), CSSLint.addRule({
3685        id: "overqualified-elements",
3686        name: "Disallow overqualified elements",
3687        desc: "Don't use classes or IDs with elements (a.foo or a#foo).",
3688        browsers: "All",
3689        init: function (e, t) {
3690            var n = this, r = {};
3691            e.addListener("startrule", function (i) {
3692                var s = i.selectors, o, u, a, f, l, c;
3693                for (f = 0; f < s.length; f++) {
3694                    o = s[f];
3695                    for (l = 0; l < o.parts.length; l++) {
3696                        u = o.parts[l];
3697                        if (u.type === e.SELECTOR_PART_TYPE) for (c = 0; c < u.modifiers.length; c++) a = u.modifiers[c], u.elementName && a.type === "id" ? t.report("Element (" + u + ") is overqualified, just use " + a + " without element name.", u.line, u.col, n) : a.type === "class" && (r[a] || (r[a
3697] = []), r[a].push({
3698                            modifier: a,
3699                            part: u
3700                        }))
3701                    }
3702                }
3703            }), e.addListener("endstylesheet", function () {
3704                var e;
3705                for (e in r) r.hasOwnProperty(e) && r[e].length === 1 && r[e][0].part.elementName && t.report("Element (" + r[e][0].part + ") is overqualified, just use " + r[e][0].modifier + " without element name.", r[e][0].part.line, r[e][0].part.col, n)
3706            })
3707        }
3708    }), CSSLint.addRule({
3709        id: "qualified-headings",
3710        name: "Disallow qualified headings",
3711        desc: "Headings should not be qualified (namespaced).",
3712        browsers: "All",
3713        init: function (e, t) {
3714            var n = this;
3715            e.addListener("startrule", function (r) {
3716                var i = r.selectors, s, o, u, a;
3717                for (u = 0; u < i.length; u++) {
3718                    s = i[u];
3719                    for (a = 0; a < s.parts.length; a++) o = s.parts[a], o.type === e.SELECTOR_PART_TYPE && o.elementName && /h[1-6]/.test(o.elementName.toString()) && a > 0 && t.report("Heading (" + o.elementName + ") should not be qualified.", o.line, o.col, n)
3720                }
3721            })
3722        }
3723    }), CSSLint.addRule({
3724        id: "regex-selectors",
3725        name: "Disallow selectors that look like regexs",
3726        desc: "Selectors that look like regular expressions are slow and should be avoided.",
3727        browsers: "All",
3728        init: function (e, t) {
3729            var n = this;
3730            e.addListener("startrule", function (r) {
3731                var i = r.selectors, s, o, u, a, f, l;
3732                for (a = 0; a < i.length; a++) {
3733                    s = i[a];
3734                    for (f = 0; f < s.parts.length; f++) {
3735                        o = s.parts[f];
3736                        if (o.type === e.SELECTOR_PART_TYPE) for (l = 0; l < o.modifiers.length; l++) u = o.modifiers[l], u.type === "attribute" && /([\~\|\^\$\*]=)/.test(u) && t.report("Attribute selectors with " + RegExp.$1 + " are slow!", u.line, u.col, n)
3737                    }
3738                }
3739            })
3740        }
3741    }), CSSLint.addRule({
3742        id: "rules-count",
3743        name: "Rules Count",
3744        desc: "Track how many rules there are.",
3745        browsers: "All",
3746        init: function (e, t) {
3747            var n = 0;
3748            e.addListener("startrule", function () {
3749                n++
3750            }), e.addListener("endstylesheet", function () {
3751                t.stat("rule-count", n)
3752            })
3753        }
3754    }), CSSLint.addRule({
3755        id: "selector-max-approaching",
3756        name: "Warn when approaching the 4095 selector limit for IE",
3757        desc: "Will warn when selector count is >= 3800 selectors.",
3758        browsers: "IE",
3759        init: function (e, t) {
3760            var n = this, r = 0;
3761            e.addListener("startrule", function (e) {
3762                r += e.selectors.length
3763            }), e.addListener("endstylesheet", function () {
3764                r >= 3800 && t.report("You have " + r + " selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.", 0, 0, n)
3765            })
3766        }
3767    }), CSSLint.addRule({
3768        id: "selector-max",
3769        name: "Error when past the 4095 selector limit for IE",
3770        desc: "Will error when selector count is > 4095.",
3771        browsers: "IE",
3772        init: function (e, t) {
3773            var n = this, r = 0;
3774            e.addListener("startrule", function (e) {
3775                r += e.selectors.length
3776            }), e.addListener("endstylesheet", function () {
3777                r > 4095 && t.report("You have " + r + " selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.", 0, 0, n)
3778            })
3779        }
3780    }), CSSLint.addRule({
3781        id: "selector-newline",
3782        name: "Disallow new-line characters in selectors",
3783        desc: "New-line characters in selectors are usually a forgotten comma and not a descendant combinator.",
3784        browsers: "All",
3785        init: function (e, t) {
3786            function r(e) {
3787                var r, i, s, o, u, a, f, l, c, h, p, d = e.selectors;
3788                for (r = 0, i = d.length; r < i; r++) {
3789                    s = d[r];
3790                    for (o = 0, a = s.parts.length; o < a; o++) for (u = o + 1; u < a; u++) f = s.parts[o], l = s.parts[u], c = f.type, h = f.line, p = l.line, c === "descendant" && p > h && t.report("newline character found in selector (forgot a comma?)", h, d[r].parts[0].c
3790ol, n)
3791                }
3792            }
3793
3794            var n = this;
3795            e.addListener("startrule", r)
3796        }
3797    }), CSSLint.addRule({
3798        id: "shorthand",
3799        name: "Require shorthand properties",
3800        desc: "Use shorthand properties where possible.",
3801        browsers: "All",
3802        init: function (e, t) {
3803            function f() {
3804                u = {}
3805            }
3806
3807            function l(e) {
3808                var r, i, s, o;
3809                for (r in a) if (a.hasOwnProperty(r)) {
3810                    o = 0;
3811                    for (i = 0, s = a[r].length; i < s; i++) o += u[a[r][i]] ? 1 : 0;
3812                    o === a[r].length && t.report("The properties " + a[r].join(", ") + " can be replaced by " + r + ".", e.line, e.col, n)
3813                }
3814            }
3815
3816            var n = this, r, i, s, o = {}, u, a = {
3817                margin: ["margin-top", "margin-bottom", "margin-left", "margin-right"],
3818                padding: ["padding-top", "padding-bottom", "padding-left", "padding-right"]
3819            };
3820            for (r in a) if (a.hasOwnProperty(r)) for (i = 0, s = a[r].length; i < s; i++) o[a[r][i]] = r;
3821            e.addListener("startrule", f), e.addListener("startfontface", f), e.addListener("property", function (e) {
3822                var t = e.property.toString().toLowerCase();
3823                o[t] && (u[t] = 1)
3824            }), e.addListener("endrule", l), e.addListener("endfontface", l)
3825        }
3826    }), CSSLint.addRule({
3827        id: "star-property-hack",
3828        name: "Disallow properties with a star prefix",
3829        desc: "Checks for the star property hack (targets IE6/7)",
3830        browsers: "All",
3831        init: function (e, t) {
3832            var n = this;
3833            e.addListener("property", function (e) {
3834                var r = e.property;
3835                r.hack === "*" && t.report("Property with star prefix found.", e.property.line, e.property.col, n)
3836            })
3837        }
3838    }), CSSLint.addRule({
3839        id: "text-indent",
3840        name: "Disallow negative text-indent",
3841        desc: "Checks for text indent less than -99px",
3842        browsers: "All",
3843        init: function (e, t) {
3844            function s() {
3845                r = !1, i = "inherit"
3846            }
3847
3848            function o() {
3849                r && i !== "ltr" && t.report("Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.", r.line, r.col, n)
3850            }
3851
3852            var n = this, r, i;
3853            e.addListener("startrule", s), e.addListener("startfontface", s), e.addListener("property", function (e) {
3854                var t = e.property.toString().toLowerCase(), n = e.value;
3855                t === "text-indent" && n.parts[0].value < -99 ? r = e.property : t === "direction" && n.toString() === "ltr" && (i = "ltr")
3856            }), e.addListener("endrule", o), e.addListener("endfontface", o)
3857        }
3858    }), CSSLint.addRule({
3859        id: "underscore-property-hack",
3860        name: "Disallow properties with an underscore prefix",
3861        desc: "Checks for the underscore property hack (targets IE6)",
3862        browsers: "All",
3863        init: function (e, t) {
3864            var n = this;
3865            e.addListener("property", function (e) {
3866                var r = e.property;
3867                r.hack === "_" && t.report("Property with underscore prefix found.", e.property.line, e.property.col, n)
3868            })
3869        }
3870    }), CSSLint.addRule({
3871        id: "unique-headings",
3872        name: "Headings should only be defined once",
3873        desc: "Headings should be defined only once.",
3874        browsers: "All",
3875        init: function (e, t) {
3876            var n = this, r = {h1: 0, h2: 0, h3: 0, h4: 0, h5: 0, h6: 0};
3877            e.addListener("startrule", function (e) {
3878                var i = e.selectors, s, o, u, a, f;
3879                for (a = 0; a < i.length; a++) {
3880                    s = i[a], o = s.parts[s.parts.length - 1];
3881                    if (o.elementName && /(h[1-6])/i.test(o.elementName.toString())) {
3882                        for (f = 0; f < o.modifiers.length; f++) if (o.modifiers[f].type === "pseudo") {
3883                            u = !0;
3884                            break
3885                        }
3886                        u || (r[RegExp.$1]++, r[RegExp.$1] > 1 && t.report("Heading (" + o.elementName + ") has already been defined.", o.line, o.col, n))
3887                    }
3888                }
3889            }), e.addListener("endstylesheet", function () {
3890                var e, i = [];
3891                for (e in r) r.hasOwnProperty(e) && r[e] > 1 && i.push(r[e] + " " + e + "s");
3892                i.length && t.rollupWarn("You have " + i.join(", ") + " defined in this stylesheet.", n)
3893            })
3894        }
3895    }), CSSLint.addRule({
3896        id: "universal-selector",
3897        name: "Disallow universal selector",
3898        desc: "The universal selector (*) is known to be slow.",
3899        browsers: "All",
3900        init: function (e, t) {
3901            var n = this;
3902            e.addListener("startrule", function (e) {
3903                var r = e.selectors, i, s, o;
3904                for (o = 0; o < r.length; o++) i = r[o], s = i.parts[i.parts.length - 1], s.elementName === "*" && t.report(n.desc, s.line, s.c
3904ol, n)
3905            })
3906        }
3907    }), CSSLint.addRule({
3908        id: "unqualified-attributes",
3909        name: "Disallow unqualified attribute selectors",
3910        desc: "Unqualified attribute selectors are known to be slow.",
3911        browsers: "All",
3912        init: function (e, t) {
3913            var n = this;
3914            e.addListener("startrule", function (r) {
3915                var i = r.selectors, s, o, u, a, f;
3916                for (a = 0; a < i.length; a++) {
3917                    s = i[a], o = s.parts[s.parts.length - 1];
3918                    if (o.type === e.SELECTOR_PART_TYPE) for (f = 0; f < o.modifiers.length; f++) u = o.modifiers[f], u.type === "attribute" && (!o.elementName || o.elementName === "*") && t.report(n.desc, o.line, o.col, n)
3919                }
3920            })
3921        }
3922    }), CSSLint.addRule({
3923        id: "vendor-prefix",
3924        name: "Require standard property with vendor prefix",
3925        desc: "When using a vendor-prefixed property, make sure to include the standard one.",
3926        browsers: "All",
3927        init: function (e, t) {
3928            function o() {
3929                r = {}, i = 1
3930            }
3931
3932            function u() {
3933                var e, i, o, u, a, f = [];
3934                for (e in r) s[e] && f.push({actual: e, needed: s[e]});
3935                for (i = 0, o = f.length; i < o; i++) u = f[i].needed, a = f[i].actual, r[u] ? r[u][0].pos < r[a][0].pos && t.report("Standard property '" + u + "' should come after vendor-prefixed property '" + a + "'.", r[a][0].name.line, r[a][0].name.col, n) : t.report("Missing standard property '" + u + "' to go along with '" + a + "'.", r[a][0].name.line, r[a][0].name.col, n)
3936            }
3937
3938            var n = this, r, i, s = {
3939                "-webkit-border-radius": "border-radius",
3940                "-webkit-border-top-left-radius": "border-top-left-radius",
3941                "-webkit-border-top-right-radius": "border-top-right-radius",
3942                "-webkit-border-bottom-left-radius": "border-bottom-left-radius",
3943                "-webkit-border-bottom-right-radius": "border-bottom-right-radius",
3944                "-o-border-radius": "border-radius",
3945                "-o-border-top-left-radius": "border-top-left-radius",
3946                "-o-border-top-right-radius": "border-top-right-radius",
3947                "-o-border-bottom-left-radius": "border-bottom-left-radius",
3948                "-o-border-bottom-right-radius": "border-bottom-right-radius",
3949                "-moz-border-radius": "border-radius",
3950                "-moz-border-radius-topleft": "border-top-left-radius",
3951                "-moz-border-radius-topright": "border-top-right-radius",
3952                "-moz-border-radius-bottomleft": "border-bottom-left-radius",
3953                "-moz-border-radius-bottomright": "border-bottom-right-radius",
3954                "-moz-column-count": "column-count",
3955                "-webkit-column-count": "column-count",
3956                "-moz-column-gap": "column-gap",
3957                "-webkit-column-gap": "column-gap",
3958                "-moz-column-rule": "column-rule",
3959                "-webkit-column-rule": "column-rule",
3960                "-moz-column-rule-style": "column-rule-style",
3961                "-webkit-column-rule-style": "column-rule-style",
3962                "-moz-column-rule-color": "column-rule-color",
3963                "-webkit-column-rule-color": "column-rule-color",
3964                "-moz-column-rule-width": "column-rule-width",
3965                "-webkit-column-rule-width": "column-rule-width",
3966                "-moz-column-width": "column-width",
3967                "-webkit-column-width": "column-width",
3968                "-webkit-column-span": "column-span",
3969                "-webkit-columns": "columns",
3970                "-moz-box-shadow": "box-shadow",
3971                "-webkit-box-shadow": "box-shadow",
3972                "-moz-transform": "transform",
3973                "-webkit-transform": "transform",
3974                "-o-transform": "transform",
3975                "-ms-transform": "transform",
3976                "-moz-transform-origin": "transform-origin",
3977                "-webkit-transform-origin": "transform-origin",
3978                "-o-transform-origin": "transform-origin",
3979                "-ms-transform-origin": "transform-origin",
3980                "-moz-box-sizing": "box-sizing",
3981                "-webkit-box-sizing": "box-sizing"
3982            };
3983            e.addListener("startrule", o), e.addListener("startfontface", o), e.addListener("startpage", o), e.addListener("startpagemargin", o), e.addListener("startkeyframerule", o), e.addListener("property", function (e) {
3984                var t = e.property.text.toLowerCase();
3985                r[t] || (r[t] = []), r[t].push({name: e.property, value: e.value, pos: i++})
3986            }), e.addListener("endrule", u), e.addListener("endfontface", u), e.addListener("endpage", u), e.addListener("endpagemargin", u), e.addListener("endkeyframerule", u)
3987        }
3988    }), CSSLint.addRule({
3989        id: "zero-units",
3990        name: "Disallow units for 0 values",
3991        desc: "You don't need to specify units when a value is 0.",
3992        browsers: "All",
3993        init: function (e, t) {
3994            var n = this;
3995            e.addListener("property", function (e) {
3996                var r = e.value.parts, i = 0, s = r.length;
3997                while (i < s) (r[i].units || r[i].type === "percentage") && r[i].value === 0 && r[i].type !== "time" && t.report("Values of 0 shouldn't have units specified.", r[i].line, r[i].c
3997ol, n), i++
3998            })
3999        }
4000    }), function () {
4001        var e = function (e) {
4002            return !e || e.constructor !== String ? "" : e.replace(/[\"&><]/g, function (e) {
4003                switch (e) {
4004                    case'"':
4005                        return "&quot;";
4006                    case"&":
4007                        return "&amp;";
4008                    case"<":
4009                        return "&lt;";
4010                    case">":
4011                        return "&gt;"
4012                }
4013            })
4014        };
4015        CSSLint.addFormatter({
4016            id: "checkstyle-xml", name: "Checkstyle XML format", startFormat: function () {
4017                return '<?xml version="1.0" encoding="utf-8"?><checkstyle>'
4018            }, endFormat: function () {
4019                return "</checkstyle>"
4020            }, readError: function (t, n) {
4021                return '<file name="' + e(t) + '"><error line="0" column="0" severty="error" message="' + e(n) + '"></error></file>'
4022            }, formatResults: function (t, n) {
4023                var r = t.messages, i = [], s = function (e) {
4024                    return !!e && "name" in e ? "net.csslint." + e.name.replace(/\s/g, "") : ""
4025                };
4026                return r.length > 0 && (i.push('<file name="' + n + '">'), CSSLint.Util.forEach(r, function (t) {
4027                    t.rollup || i.push('<error line="' + t.line + '" column="' + t.col + '" severity="' + t.type + '"' + ' message="' + e(t.message) + '" source="' + s(t.rule) + '"/>')
4028                }), i.push("</file>")), i.join("")
4029            }
4030        })
4031    }(), CSSLint.addFormatter({
4032        id: "compact", name: "Compact, 'porcelain' format", startFormat: function () {
4033            return ""
4034        }, endFormat: function () {
4035            return ""
4036        }, formatResults: function (e, t, n) {
4037            var r = e.messages, i = "";
4038            n = n || {};
4039            var s = function (e) {
4040                return e.charAt(0).toUpperCase() + e.slice(1)
4041            };
4042            return r.length === 0 ? n.quiet ? "" : t + ": Lint Free!" : (CSSLint.Util.forEach(r, function (e) {
4043                e.rollup ? i += t + ": " + s(e.type) + " - " + e.message + "\n" : i += t + ": " + "line " + e.line + ", col " + e.col + ", " + s(e.type) + " - " + e.message + " (" + e.rule.id + ")\n"
4044            }), i)
4045        }
4046    }), CSSLint.addFormatter({
4047        id: "csslint-xml", name: "CSSLint XML format", startFormat: function () {
4048            return '<?xml version="1.0" encoding="utf-8"?><csslint>'
4049        }, endFormat: function () {
4050            return "</csslint>"
4051        }, formatResults: function (e, t) {
4052            var n = e.messages, r = [], i = function (e) {
4053                return !e || e.constructor !== String ? "" : e.replace(/\"/g, "'").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;")
4054            };
4055            return n.length > 0 && (r.push('<file name="' + t + '">'), CSSLint.Util.forEach(n, function (e) {
4056                e.rollup ? r.push('<issue severity="' + e.type + '" reason="' + i(e.message) + '" evidence="' + i(e.evidence) + '"/>') : r.push('<issue line="' + e.line + '" char="' + e.col + '" severity="' + e.type + '"' + ' reason="' + i(e.message) + '" evidence="' + i(e.evidence) + '"/>')
4057            }), r.push("</file>")), r.join("")
4058        }
4059    }), CSSLint.addFormatter({
4060        id: "junit-xml", name: "JUNIT XML format", startFormat: function () {
4061            return '<?xml version="1.0" encoding="utf-8"?><testsuites>'
4062        }, endFormat: function () {
4063            return "</testsuites>"
4064        }, formatResults: function (e, t) {
4065            var n = e.messages, r = [], i = {error: 0, failure: 0}, s = function (e) {
4066                return !!e && "name" in e ? "net.csslint." + e.name.replace(/\s/g, "") : ""
4067            }, o = function (e) {
4068                return !e || e.constructor !== String ? "" : e.replace(/\"/g, "'").replace(/</g, "&lt;").replace(/>/g, "&gt;")
4069            };
4070            return n.length > 0 && (n.forEach(function (e) {
4071                var t = e.type === "warning" ? "error" : e.type;
4072                e.rollup || (r.push('<testcase time="0" name="' + s(e.rule) + '">'), r.push("<" + t + ' message="' + o(e.message) + '"><![CDATA[' + e.line + ":" + e.col + ":" + o(e.evidence) + "]]></" + t + ">"), r.push("</testcase>"), i[t] += 1)
4073            }), r.unshift('<testsuite time="0" tests="' + n.length + '" skipped="0" errors="' + i.error + '" failures="' + i.failure + '" package="net.csslint" name="' + t + '">'), r.push("</testsuite>
4073")), r.join("")
4074        }
4075    }), CSSLint.addFormatter({
4076        id: "lint-xml", name: "Lint XML format", startFormat: function () {
4077            return '<?xml version="1.0" encoding="utf-8"?><lint>'
4078        }, endFormat: function () {
4079            return "</lint>"
4080        }, formatResults: function (e, t) {
4081            var n = e.messages, r = [], i = function (e) {
4082                return !e || e.constructor !== String ? "" : e.replace(/\"/g, "'").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;")
4083            };
4084            return n.length > 0 && (r.push('<file name="' + t + '">'), CSSLint.Util.forEach(n, function (e) {
4085                e.rollup ? r.push('<issue severity="' + e.type + '" reason="' + i(e.message) + '" evidence="' + i(e.evidence) + '"/>') : r.push('<issue line="' + e.line + '" char="' + e.col + '" severity="' + e.type + '"' + ' reason="' + i(e.message) + '" evidence="' + i(e.evidence) + '"/>')
4086            }), r.push("</file>")), r.join("")
4087        }
4088    }), CSSLint.addFormatter({
4089        id: "text", name: "Plain Text", startFormat: function () {
4090            return ""
4091        }, endFormat: function () {
4092            return ""
4093        }, formatResults: function (e, t, n) {
4094            var r = e.messages, i = "";
4095            n = n || {};
4096            if (r.length === 0) return n.quiet ? "" : "\n\ncsslint: No errors in " + t + ".";
4097            i = "\n\ncsslint: There ", r.length === 1 ? i += "is 1 problem" : i += "are " + r.length + " problems", i += " in " + t + ".";
4098            var s = t.lastIndexOf("/"), o = t;
4099            return s === -1 && (s = t.lastIndexOf("\\")), s > -1 && (o = t.substring(s + 1)), CSSLint.Util.forEach(r, function (e, t) {
4100                i = i + "\n\n" + o, e.rollup ? (i += "\n" + (t + 1) + ": " + e.type, i += "\n" + e.message) : (i += "\n" + (t + 1) + ": " + e.type + " at line " + e.line + ", col " + e.col, i += "\n" + e.message, i += "\n" + e.evidence)
4101            }), i
4102        }
4103    }), module.exports.CSSLint = CSSLint
4104}), define("ace/mode/css_worker", [], function (e, t, n) {
4105    "use strict";
4106    var r = e("../lib/oop"), i = e("../lib/lang"), s = e("../worker/mirror").Mirror, o = e("./css/csslint").CSSLint,
4107        u = t.Worker = function (e) {
4108            s.call(this, e), this.setTimeout(400), this.ruleset = null, this.setDisabledRules("ids|order-alphabetical"), this.setInfoRules("adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none|vendor-prefix")
4109        };
4110    r.inherits(u, s), function () {
4111        this.setInfoRules = function (e) {
4112            typeof e == "string" && (e = e.split("|")), this.infoRules = i.arrayToMap(e), this.doc.getValue() && this.deferredUpdate.schedule(100)
4113        }, this.setDisabledRules = function (e) {
4114            if (!e) this.ruleset = null; else {
4115                typeof e == "string" && (e = e.split("|"));
4116                var t = {};
4117                o.getRules().forEach(function (e) {
4118                    t[e.id] = !0
4119                }), e.forEach(function (e) {
4120                    delete t[e]
4121                }), this.ruleset = t
4122            }
4123            this.doc.getValue() && this.deferredUpdate.schedule(100)
4124        }, this.onUpdate = function () {
4125            var e = this.doc.getValue();
4126            if (!e) return this.sender.emit("annotate", []);
4127            var t = this.infoRules, n = o.verify(e, this.ruleset);
4128            this.sender.emit("annotate", n.messages.map(function (e) {
4129                return {
4130                    row: e.line - 1,
4131                    column: e.col - 1,
4132                    text: e.message,
4133                    type: t[e.rule.id] ? "info" : e.type,
4134                    rule: e.rule.name
4135                }
4136            }))
4137        }
4138    }.call(u.prototype)
4139}), define("ace/lib/es5-shim", [], function (e, t, n) {
4140    function r() {
4141    }
4142
4143    function w(e) {
4144        try {
4145            return Object.defineProperty(e, "sentinel", {}), "sentinel" in e
4146        } catch (t) {
4147        }
4148    }
4149
4150    function H(e) {
4151        return e = +e, e !== e ? e = 0 : e !== 0 && e !== 1 / 0 && e !== -1 / 0 && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), e
4152    }
4153
4154    function B(e) {
4155        var t = typeof e;
4156        return e === null || t === "undefined" || t === "boolean" || t === "number" || t === "string"
4157    }
4158
4159    function j(e) {
4160        var t, n, r;
4161        if (B(e)) return e;
4162        n = e.valueOf;
4163        if (typeof n == "function") {
4164            t = n.call(e);
4165            if (B(t)) return t
4166        }
4167        r = e.toString;
4168        if (typeof r == "function") {
4169            t = r.call(e);
4170            if (B(t)) return t
4171        }
4172        throw new TypeError
4173    }
4174
4175    Function.prototype.bind || (Function.prototype.bind = function (t) {
4176        var n = this;
4177        if (typeof n != "function") throw new TypeError("Function.prototype.bind called on incompatible " + n);
4178        var i = u.call(arguments, 1), s = function () {
4179            if (this instanceof s) {
4180                var e = n.apply(this, i.concat(u.call(arguments)));
4181                return Object(e) === e ? e : this
4182            }
4183            return n.apply(t, i.concat(u.call(arguments)))
4184        };
4185        return n.prototype && (r.prototype = n.prototype, s.prototype = new r, r.prototype = null), s
4186    });
4187    var i = Function.prototype.call, s = Array.prototype, o = Object.prototype, u = s.slice, a = i.bind(o.toString),
4188        f = i.bind(o.hasOwnProperty), l, c, h, p, d;
4189    if (d = f(o, "__defineGetter__")) l = i.bind(o.__defineGetter__), c = i.bind(o.__defineSetter__), h = i.bind(o.__lookupGetter__), p = i.bind(o.__lookupSetter__);
4190    if ([1, 2].splice(0).length != 2) if (!function () {
4191        function e(e) {
4192            var t = new Array(e + 2);
4193            return t[0] = t[1] = 0, t
4194        }
4195
4196        var t = [], n;
4197        t.splice.apply(t, e(20)), t.splice.apply(t, e(26)), n = t.length, t.splice(5, 0, "XXX"), n + 1 == t.length;
4198        if (n + 1 == t.length) return !0
4199    }()) Array.prototype.splice = function (e, t) {
4200        var n = this.length;
4201        e > 0 ? e > n && (e = n) : e == void 0 ? e = 0 : e < 0 && (e = Math.max(n + e, 0)), e + t < n || (t = n - e);
4202        var r = this.slice(e, e + t), i = u.call(arguments, 2), s = i.length;
4203        if (e === n) s && this.push.apply(this, i); else {
4204            var o = Math.min(t, n - e), a = e + o, f = a + s - o, l = n - a, c = n - o;
4205            if (f < a) for (var h = 0; h < l; ++h) this[f + h] = this[a + h]; else if (f > a) for (h = l; h--;) this[f + h] = this[a + h];
4206            if (s && e === c) this.length = c, this.push.apply(this, i); else {
4207                this.length = c + s;
4208                for (h = 0; h < s; ++h) this[e + h] = i[h]
4209            }
4210        }
4211        return r
4212    }; else {
4213        var v = Array.prototype.splice;
4214        Array.prototype.splice = function (e, t) {
4215            return arguments.length ? v.apply(this, [e === void 0 ? 0 : e, t === void 0 ? this.length - e : t].concat(u.call(arguments, 2))) : []
4216        }
4217    }
4218    Array.isArray || (Array.isArray = function (t) {
4219        return a(t) == "[object Array]"
4220    });
4221    var m = Object("a"), g = m[0] != "a" || !(0 in m);
4222    Array.prototype.forEach || (Array.prototype.forEach = function (t) {
4223        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = arguments[1], s = -1,
4224            o = r.length >>> 0;
4225        if (a(t) != "[object Function]") throw new TypeError;
4226        while (++s < o) s in r && t.call(i, r[s], s, n)
4227    }), Array.prototype.map || (Array.prototype.map = function (t) {
4228        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = Array(i),
4229            o = arguments[1];
4230        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
4231        for (var u = 0; u < i; u++) u in r && (s[u] = t.call(o, r[u], u, n));
4232        return s
4233    }), Array.prototype.filter || (Array.prototype.filter = function (t) {
4234        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = [], o,
4235            u = arguments[1];
4236        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
4237        for (var f = 0; f < i; f++) f in r && (o = r[f], t.call(u, o, f, n) && s.push(o));
4238        return s
4239    }), Array.prototype.every || (Array.prototype.every = function (t) {
4240        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
4241            s = arguments[1];
4242        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
4243        for (var o = 0; o < i; o++) if (o in r && !t.call(s, r[o], o, n)) return !1;
4244        return !0
4245    }), Array.prototype.some || (Array.prototype.some = function (t) {
4246        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
4247            s = arguments[1];
4248        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
4249        for (var o = 0; o < i; o++) if (o in r && t.call(s, r[o], o, n)) return !0;
4250        return !1
4251    }), Array.prototype.reduce || (Array.prototype.reduce = function (t) {
4252        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
4253        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
4254        if (!i && arguments.length == 1) throw new TypeError("reduce of empty array with 
4254no initial value");
4255        var s = 0, o;
4256        if (arguments.length >= 2) o = arguments[1]; else do {
4257            if (s in r) {
4258                o = r[s++];
4259                break
4260            }
4261            if (++s >= i) throw new TypeError("reduce of empty array with no initial value")
4262        } while (!0);
4263        for (; s < i; s++) s in r && (o = t.call(void 0, o, r[s], s, n));
4264        return o
4265    }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function (t) {
4266        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
4267        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
4268        if (!i && arguments.length == 1) throw new TypeError("reduceRight of empty array with no initial value");
4269        var s, o = i - 1;
4270        if (arguments.length >= 2) s = arguments[1]; else do {
4271            if (o in r) {
4272                s = r[o--];
4273                break
4274            }
4275            if (--o < 0) throw new TypeError("reduceRight of empty array with no initial value")
4276        } while (!0);
4277        do o in this && (s = t.call(void 0, s, r[o], o, n)); while (o--);
4278        return s
4279    });
4280    if (!Array.prototype.indexOf || [0, 1].indexOf(1, 2) != -1) Array.prototype.indexOf = function (t) {
4281        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
4282        if (!r) return -1;
4283        var i = 0;
4284        arguments.length > 1 && (i = H(arguments[1])), i = i >= 0 ? i : Math.max(0, r + i);
4285        for (; i < r; i++) if (i in n && n[i] === t) return i;
4286        return -1
4287    };
4288    if (!Array.prototype.lastIndexOf || [0, 1].lastIndexOf(0, -3) != -1) Array.prototype.lastIndexOf = function (t) {
4289        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
4290        if (!r) return -1;
4291        var i = r - 1;
4292        arguments.length > 1 && (i = Math.min(i, H(arguments[1]))), i = i >= 0 ? i : r - Math.abs(i);
4293        for (; i >= 0; i--) if (i in n && t === n[i]) return i;
4294        return -1
4295    };
4296    Object.getPrototypeOf || (Object.getPrototypeOf = function (t) {
4297        return t.__proto__ || (t.constructor ? t.constructor.prototype : o)
4298    });
4299    if (!Object.getOwnPropertyDescriptor) {
4300        var y = "Object.getOwnPropertyDescriptor called on a non-object: ";
4301        Object.getOwnPropertyDescriptor = function (t, n) {
4302            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(y + t);
4303            if (!f(t, n)) return;
4304            var r, i, s;
4305            r = {enumerable: !0, configurable: !0};
4306            if (d) {
4307                var u = t.__proto__;
4308                t.__proto__ = o;
4309                var i = h(t, n), s = p(t, n);
4310                t.__proto__ = u;
4311                if (i || s) return i && (r.get = i), s && (r.set = s), r
4312            }
4313            return r.value = t[n], r
4314        }
4315    }
4316    Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function (t) {
4317        return Object.keys(t)
4318    });
4319    if (!Object.create) {
4320        var b;
4321        Object.prototype.__proto__ === null ? b = function () {
4322            return {__proto__: null}
4323        } : b = function () {
4324            var e = {};
4325            for (var t in e) e[t] = null;
4326            return e.constructor = e.hasOwnProperty = e.propertyIsEnumerable = e.isPrototypeOf = e.toLocaleString = e.toString = e.valueOf = e.__proto__ = null, e
4327        }, Object.create = function (t, n) {
4328            var r;
4329            if (t === null) r = b(); else {
4330                if (typeof t != "object") throw new TypeError("typeof prototype[" + typeof t + "] != 'object'");
4331                var i = function () {
4332                };
4333                i.prototype = t, r = new i, r.__proto__ = t
4334            }
4335            return n !== void 0 && Object.defineProperties(r, n), r
4336        }
4337    }
4338    if (Object.defineProperty) {
4339        var E = w({}), S = typeof document == "undefined" || w(document.createElement("div"));
4340        if (!E || !S) var x = Object.defineProperty
4341    }
4342    if (!Object.defineProperty || x) {
4343        var T = "Property description must be an object: ", N = "Object.defineProperty called on non-object: ",
4344            C = "getters & setters can not be defined on this javascript engine";
4345        Object.defineProperty = function (t, n, r) {
4346            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(N + t);
4347            if (typeof r != "object" && typeof r != "function" || r === null) throw new TypeError(T + r);
4348            if (x) try {
4349                return x.call(Object, t, n, r)
4350            } catch (i) {
4351            }
4352            if (f(r, "value")) if (d && (h(t, n) || p(t, n))) {
4353                var s = t.__proto__;
4354                t.__proto__ = o, delete t[n], t[n] = r.value, t.__proto__ = s
4355            } else t[n] = r.value; else {
4356                if (!d) throw new TypeError(C);
4357                f(r, "get") && l(t, n, r.get), f(r, "set") && c(t, n, r.set)
4358            }
4359            return t
4360        }
4361    }
4362    Object.defineProperties || (Object.defineProperties = function (t, n) {
4363        for (var r in n) f(n, r) && Object.defineProperty(t, r, n[r]);
4364        return t
4365    }), Object.seal || (Object.seal = function (t) {
4366        return t
4367    }), Object.freeze || (Object.freeze = function (t) {
4368        return t
4369    });
4370    try {
4371        Object.freeze(function () {
4372        })
4373    } catch (k) {
4374        Object.freeze = function (t) {
4375            return function (n) {
4376                return typeof n == "function" ? n : t(n)
4377            }
4378        }(Object.freeze)
4379    }
4380    Object.preventExtensions || (Object.preventExtensions = function (t) {
4381        return t
4382    }), Object.isSealed || (Object.isSealed = function (t) {
4383        return !1
4384    }), Object.isFrozen || (Object.isFrozen = function (t) {
4385        return !1
4386    }), Object.isExtensible || (Object.isExtensible = function (t) {
4387        if (Object(t) === t) throw new TypeError;
4388        var n = "";
4389        while (f(t, n)) n += "?";
4390        t[n] = !0;
4391        var r = f(t, n);
4392        return delete t[n], r
4393    });
4394    if (!Object.keys) {
4395        var L = !0,
4396            A = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
4397            O = A.length;
4398        for (var M in {toString: null}) L = !1;
4399        Object.keys = function I(e) {
4400            if (typeof e != "object" && typeof e != "function" || e === null) throw new TypeError("Object.keys called on a non-object");
4401            var I = [];
4402            for (var t in e) f(e, t) && I.push(t);
4403            if (L) for (var n = 0, r = O; n < r; n++) {
4404                var i = A[n];
4405                f(e, i) && I.push(i)
4406            }
4407            return I
4408        }
4409    }
4410    Date.now || (Date.now = function () {
4411        return (new Date).getTime()
4412    });
4413    var _ = "	\n\x0b\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";
4414    if (!String.prototype.trim || _.trim()) {
4415        _ = "[" + _ + "]";
4416        var D = new RegExp("^" + _ + _ + "*"), P = new RegExp(_ + _ + "*$");
4417        String.prototype.trim = function () {
4418            return String(this).replace(D, "").replace(P, "")
4419        }
4420    }
4421    var F = function (e) {
4422        if (e == null) throw new TypeError("can't convert " + e + " to object");
4423        return Object(e)
4424    }
4425})
4426
4427"no use strict";
4428!function (e) {
4429    function t(e, t) {
4430        var n = e, r = "";
4431        while (n) {
4432            var i = t[n];
4433            if (typeof i == "string") return i + r;
4434            if (i) return i.location.replace(/\/*$/, "/") + (r || i.main || i.name);
4435            if (i === !1) return "";
4436            var s = n.lastIndexOf("/");
4437            if (s === -1) break;
4438            r = n.substr(s) + r, n = n.slice(0, s)
4439        }
4440        return e
4441    }
4442
4443    if (typeof e.window != "undefined" && e.document) return;
4444    if (e.require && e.define) return;
4445    e.console || (e.console = function () {
4446        var e = Array.prototype.slice.call(arguments, 0);
4447        postMessage({type: "log", data: e})
4448    }, e.console.error = e.console.warn = e.console.log = e.console.trace = e.console), e.window = e, e.ace = e, e.onerror = function (e, t, n, r, i) {
4449        postMessage({type: "error", data: {message: e, data: i.data, file: t, line: n, col: r, stack: i.stack}})
4450    }, e.normalizeModule = function (t, n) {
4451        if (n.indexOf("!") !== -1) {
4452            var r = n.split("!");
4453            return e.normalizeModule(t, r[0]) + "!" + e.normalizeModule(t, r[1])
4454        }
4455        if (n.charAt(0) == ".") {
4456            var i = t.split("/").slice(0, -1).join("/");
4457            n = (i ? i + "/" : "") + n;
4458            while (n.indexOf(".") !== -1 && s != n) {
4459                var s = n;
4460                n = n.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "")
4461            }
4462        }
4463        return n
4464    }, e.require = function (r, i) {
4465        i || (i = r, r = null);
4466        if (!i.charAt) throw new Error("worker.js require() accepts only (parentId, id) as arguments");
4467        i = e.normalizeModule(r, i);
4468        var s = e.require.modules[i];
4469        if (s) return s.initialized || (s.initialized = !0, s.exports = s.factory().exports), s.exports;
4470        if (!e.require.tlns) return console.log("unable to load " + i);
4471        var o = t(i, e.require.tlns);
4472        return o.slice(-3) != ".js" && (o += ".js"), e.require.id = i, e.require.modules[i] = {}, importScripts(o), e.require(r, i)
4473    }, e.require.modules = {}, e.require.tlns = {}, e.define = function (t, n, r) {
4474        arguments.length == 2 ? (r = n, typeof t != "string" && (n = t, t = e.require.id)) : arguments.length == 1 && (r = t, n = [], t = e.require.id);
4475        if (typeof r != "function") {
4476            e.require.modules[t] = {exports: r, initialized: !0};
4477            return
4478        }
4479        n.length || (n = ["require", "exports", "module"]);
4480        var i = function (n) {
4481            return e.require(t, n)
4482        };
4483        e.require.modules[t] = {
4484            exports: {}, factory: function () {
4485                var e = this, t = r.apply(this, n.slice(0, r.length).map(function (t) {
4486                    switch (t) {
4487                        case"require":
4488                            return i;
4489                        case"exports":
4490                            return e.exports;
4491                        case"module":
4492                            return e;
4493                        default:
4494                            return i(t)
4495                    }
4496                }));
4497                return t && (e.exports = t), e
4498            }
4499        }
4500    }, e.define.amd = {}, require.tlns = {}, e.initBaseUrls = function (t) {
4501        for (var n in t) require.tlns[n] = t[n]
4502    }, e.initSender = function () {
4503        var n = e.require("ace/lib/event_emitter").EventEmitter, r = e.require("ace/lib/oop"), i = function () {
4504        };
4505        return function () {
4506            r.implement(this, n), this.callback = function (e, t) {
4507                postMessage({type: "call", id: t, data: e})
4508            }, this.emit = function (e, t) {
4509                postMessage({type: "event", name: e, data: t})
4510            }
4511        }.call(i.prototype), new i
4512    };
4513    var n = e.main = null, r = e.sender = null;
4514    e.onmessage = function (t) {
4515        var i = t.data;
4516        if (i.event && r) r._signal(i.event, i.data); else if (i.command) if (n[i.command]) n[i.command].apply(n, i.args); else {
4517            if (!e[i.command]) throw new Error("Unknown command:" + i.command);
4518            e[i.command].apply(e, i.args)
4519        } else if (i.init) {
4520            e.initBaseUrls(i.tlns), require("ace/lib/es5-shim"), r = e.sender = e.initSender();
4521            var s = require(i.module)[i.classname];
4522            n = e.main = new s(r)
4523        }
4524    }
4525}(this), define("ace/lib/oop", [], function (e, t, n) {
4526    "use strict";
4527    t.inherits = function (e, t) {
4528        e.super_ = t, e.prototype = Object.create(t.prototype, {
4529            constructor: {
4530                value: e,
4531                enumerable: !1,
4532                writable: !0,
4533                configurable: !0
4534            }
4535        })
4536    }, t.mixin = function (e, t) {
4537        for (var n in t) e[n] = t[n];
4538        return e
4539    }, t.implement = function (e, n) {
4540        t.mixin(e, n)
4541    }
4542}), define("ace/lib/lang", [], function (e, t, n) {
4543    "use strict";
4544    t.last = function (e) {
4545        return e[e.length - 1]
4546    }
4546, t.stringReverse = function (e) {
4547        return e.split("").reverse().join("")
4548    }, t.stringRepeat = function (e, t) {
4549        var n = "";
4550        while (t > 0) {
4551            t & 1 && (n += e);
4552            if (t >>= 1) e += e
4553        }
4554        return n
4555    };
4556    var r = /^\s\s*/, i = /\s\s*$/;
4557    t.stringTrimLeft = function (e) {
4558        return e.replace(r, "")
4559    }, t.stringTrimRight = function (e) {
4560        return e.replace(i, "")
4561    }, t.copyObject = function (e) {
4562        var t = {};
4563        for (var n in e) t[n] = e[n];
4564        return t
4565    }, t.copyArray = function (e) {
4566        var t = [];
4567        for (var n = 0, r = e.length; n < r; n++) e[n] && typeof e[n] == "object" ? t[n] = this.copyObject(e[n]) : t[n] = e[n];
4568        return t
4569    }, t.deepCopy = function s(e) {
4570        if (typeof e != "object" || !e) return e;
4571        var t;
4572        if (Array.isArray(e)) {
4573            t = [];
4574            for (var n = 0; n < e.length; n++) t[n] = s(e[n]);
4575            return t
4576        }
4577        if (Object.prototype.toString.call(e) !== "[object Object]") return e;
4578        t = {};
4579        for (var n in e) t[n] = s(e[n]);
4580        return t
4581    }, t.arrayToMap = function (e) {
4582        var t = {};
4583        for (var n = 0; n < e.length; n++) t[e[n]] = 1;
4584        return t
4585    }, t.createMap = function (e) {
4586        var t = Object.create(null);
4587        for (var n in e) t[n] = e[n];
4588        return t
4589    }, t.arrayRemove = function (e, t) {
4590        for (var n = 0; n <= e.length; n++) t === e[n] && e.splice(n, 1)
4591    }, t.escapeRegExp = function (e) {
4592        return e.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1")
4593    }, t.escapeHTML = function (e) {
4594        return ("" + e).replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;")
4595    }, t.getMatchOffsets = function (e, t) {
4596        var n = [];
4597        return e.replace(t, function (e) {
4598            n.push({offset: arguments[arguments.length - 2], length: e.length})
4599        }), n
4600    }, t.deferredCall = function (e) {
4601        var t = null, n = function () {
4602            t = null, e()
4603        }, r = function (e) {
4604            return r.cancel(), t = setTimeout(n, e || 0), r
4605        };
4606        return r.schedule = r, r.call = function () {
4607            return this.cancel(), e(), r
4608        }, r.cancel = function () {
4609            return clearTimeout(t), t = null, r
4610        }, r.isPending = function () {
4611            return t
4612        }, r
4613    }, t.delayedCall = function (e, t) {
4614        var n = null, r = function () {
4615            n = null, e()
4616        }, i = function (e) {
4617            n == null && (n = setTimeout(r, e || t))
4618        };
4619        return i.delay = function (e) {
4620            n && clearTimeout(n), n = setTimeout(r, e || t)
4621        }, i.schedule = i, i.call = function () {
4622            this.cancel(), e()
4623        }, i.cancel = function () {
4624            n && clearTimeout(n), n = null
4625        }, i.isPending = function () {
4626            return n
4627        }, i
4628    }
4629}), define("ace/range", [], function (e, t, n) {
4630    "use strict";
4631    var r = function (e, t) {
4632        return e.row - t.row || e.column - t.column
4633    }, i = function (e, t, n, r) {
4634        this.start = {row: e, column: t}, this.end = {row: n, column: r}
4635    };
4636    (function () {
4637        this.isEqual = function (e) {
4638            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
4639        }, this.toString = function () {
4640            return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"
4641        }, this.contains = function (e, t) {
4642            return this.compare(e, t) == 0
4643        }, this.compareRange = function (e) {
4644            var t, n = e.end, r = e.start;
4645            return t = this.compare(n.row, n.column), t == 1 ? (t = this.compare(r.row, r.column), t == 1 ? 2 : t == 0 ? 1 : 0) : t == -1 ? -2 : (t = this.compare(r.row, r.column), t == -1 ? -1 : t == 1 ? 42 : 0)
4646        }, this.comparePoint = function (e) {
4647            return this.compare(e.row, e.column)
4648        }, this.containsRange = function (e) {
4649            return this.comparePoint(e.start) == 0 && this.comparePoint(e.end) == 0
4650        }, this.intersects = function (e) {
4651            var t = this.compareRange(e);
4652            return t == -1 || t == 0 || t == 1
4653        }, this.isEnd = function (e, t) {
4654            return this.end.row == e && this.end.column == t
4655        }, this.isStart = function (e, t) {
4656            return this.start.row == e && this.start.column == t
4657        }, this.setStart = function (e, t) {
4658            typeof e == "object" ? (this.start.column = e.column, this.start.row = e.row) : (this.start.row = e, this.start.column = t)
4659        }, this.setEnd = function (e, t) {
4660            typeof e == "object" ? (this.end.column = e.column, this.end.row = e.row) : (this.end.row = e, this.end.column = t)
4661        }, this.inside = function (e, t) {
4662            return this.compare(e, t) == 0 ? this.isEnd(e, t) || this.isStart(e, t) ? !1 : !0 : !1
4663        }, this.insideStart = function (e, t) {
4664            return this.compare(e, t) == 0 ? this.isEnd(e, t) ? !1 : !0 : !1
4665        }, this.insideEnd = function (e, t) {
4666            return this.compare(e, t) == 0 ? this.isStart(e, t) ? !1 : !0 : !1
4667        }, this.compare = function (e, t) {
4668            return !this.isMultiLine() && e === this.start.row ? t < this.start.column ? -1 : t > this.end.column ? 1 : 0 : 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
4669        }, this.compareStart = function (e, t) {
4670            return this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
4671        }, this.compareEnd = function (e, t) {
4672            return this.end.row == e && this.end.column == t ? 1 : this.compare(e, t)
4673        }, this.compareInside = function (e, t) {
4674            return this.end.row == e && this.end.column == t ? 1 : this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
4675        }, this.clipRows = function (e, t) {
4676            if (this.end.row > t) var n = {row: t + 1, column: 0}; else if (this.end.row < e) var n = {
4677                row: e,
4678                column: 0
4679            };
4680            if (this.start.row > t) var r = {row: t + 1, column: 0}; else if (this.start.row < e) var r = {
4681                row: e,
4682                column: 0
4683            };
4684            return i.fromPoints(r || this.start, n || this.end)
4685        }, this.extend = function (e, t) {
4686            var n = this.compare(e, t);
4687            if (n == 0) return this;
4688            if (n == -1) var r = {row: e, column: t}; else var s = {row: e, column: t};
4689            return i.fromPoints(r || this.start, s || this.end)
4690        }, this.isEmpty = function () {
4691            return this.start.row === this.end.row && this.start.column === this.end.column
4692        }, this.isMultiLine = function () {
4693            return this.start.row !== this.end.row
4694        }, this.clone = function () {
4695            return i.fromPoints(this.start, this.end)
4696        }, this.collapseRows = function () {
4697            return this.end.column == 0 ? 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)
4698        }, this.toScreenRange = function (e) {
4699            var t = e.documentToScreenPosition(this.start), n = e.documentToScreenPosition(this.end);
4700            return new i(t.row, t.column, n.row, n.column)
4701        }, this.moveBy = function (e, t) {
4702            this.start.row += e, this.start.column += t, this.end.row += e, this.end.column += t
4703        }
4704    }).call(i.prototype), i.fromPoints = function (e, t) {
4705        return new i(e.row, e.column, t.row, t.column)
4706    }, i.comparePoints = r, i.comparePoints = function (e, t) {
4707        return e.row - t.row || e.column - t.column
4708    }, t.Range = i
4709}), define("ace/apply_delta", [], function (e, t, n) {
4710    "use strict";
4711
4712    function r(e, t) {
4713        throw console.log("Invalid Delta:", e), "Invalid Delta: " + t
4714    }
4715
4716    function i(e, t) {
4717        return t.row >= 0 && t.row < e.length && t.column >= 0 && t.column <= e[t.row].length
4718    }
4719
4720    function s(e, t) {
4721        t.action != "insert" && t.action != "remove" && r(t, "delta.action must be 'insert' or 'remove'"), t.lines instanceof Array || r(t, "delta.lines must be an Array"), (!t.start || !t.end) && r(t, "delta.start/end must be an present");
4722        var n = t.start;
4723        i(e, t.start) || r(t, "delta.start must be contained in document");
4724        var s = t.end;
4725        t.action == "remove" && !i(e, s) && r(t, "delta.end must contained in document for 'remove' actions");
4726        var o = s.row - n.row, u = s.column - (o == 0 ? n.column : 0);
4727        (o != t.lines.length - 1 || t.lines[o].length != u) && r(t, "delta.range must match delta lines")
4728    }
4729
4730    t.applyDelta = function (e, t, n) {
4731        var r = t.start.row, i = t.start.column, s = e[r] || "";
4732        switch (t.action) {
4733            case"insert":
4734                var o = t.lines;
4735                if (o.length === 1) e[r] = s.substring(0, i) + t.lines[0] + s.substring(i); else {
4736                    var u = [r, 1].concat(t.lines);
4737                    e.splice.apply(e, u), e[r] = s.substring(0, i) + e[r], e[r + t.lines.length - 1] += s.substring(i)
4738                }
4739                break;
4740            case"remove":
4741                var a = t.end.column, f = t.end.row;
4742                r === f ? e[r] = s.substring(0, i) + s.substring(a) : e.splice(r, f - r + 1, s.substring(0, i) + e[f].substring(a))
4743        }
4744    }
4745}), define("ace/lib/event_emitter", [], function (e, t, n) {
4746    "use strict";
4747    var r = {}, i = function () {
4748        this.propagationStopped = !0
4749    }, s = function () {
4750        this.defaultPrevented = !0
4751    };
4752    r._emit = r._dispatchEvent = function (e, t) {
4753        this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});
4754        var n = this._eventRegistry[e] || [], r = this._defaultHandlers[e];
4755        if (!n.length && !r) return;
4756        if (typeof t != "object" || !t) t = {};
4757        t.type || (t.type = e), t.stopPropagation || (t.stopPropagation = i), t.preventDefault || (t.preventDefault = s), n = n.slice();
4758        for (var o = 0; o < n.length; o++) {
4759            n[o](t, this);
4760            if (t.propagationStopped) break
4761        }
4762        if (r && !t.defaultPrevented) return r(t, this)
4763    }, r._signal = function (e, t) {
4764        var n = (this._eventRegistry || {})[e];
4765        if (!n) return;
4766        n = n.slice();
4767        for (var r = 0; r < n.length; r++) n[r](t, this)
4768    }, r.once = function (e, t) {
4769        var n = this;
4770        this.addEventListener(e, function r() {
4771            n.removeEventListener(e, r), t.apply(null, arguments)
4772        });
4773        if (!t) return new Promise(function (e) {
4774            t = e
4775        })
4776    }, r.setDefaultHandler = function (e, t) {
4777        var n = this._defaultHandlers;
4778        n || (n = this._defaultHandlers = {_disabled_: {}});
4779        if (n[e]) {
4780            var r = n[e], i = n._disabled_[e];
4781            i || (n._disabled_[e] = i = []), i.push(r);
4782            var s = i.indexOf(t);
4783            s != -1 && i.splice(s, 1)
4784        }
4785        n[e] = t
4786    }, r.removeDefaultHandler = function (e, t) {
4787        var n = this._defaultHandlers;
4788        if (!n) return;
4789        var r = n._disabled_[e];
4790        if (n[e] == t) r && this.setDefaultHandler(e, r.pop()); else if (r) {
4791            var i = r.indexOf(t);
4792            i != -1 && r.splice(i, 1)
4793        }
4794    }, r.on = r.addEventListener = function (e, t, n) {
4795        this._eventRegistry = this._eventRegistry || {};
4796        var r = this._eventRegistry[e];
4797        return r || (r = this._eventRegistry[e] = []), r.indexOf(t) == -1 && r[n ? "unshift" : "push"](t), t
4798    }, r.off = r.removeListener = r.removeEventListener = function (e, t) {
4799        this._eventRegistry = this._eventRegistry || {};
4800        var n = this._eventRegistry[e];
4801        if (!n) return;
4802        var r = n.indexOf(t);
4803        r !== -1 && n.splice(r, 1)
4804    }, r.removeAllListeners = function (e) {
4805        this._eventRegistry && (this._eventRegistry[e] = [])
4806    }, t.EventEmitter = r
4807}), define("ace/anchor", [], function (e, t, n) {
4808    "use strict";
4809    var r = e("./lib/oop"), i = e("./lib/event_emitter").EventEmitter, s = t.Anchor = function (e, t, n) {
4810        this.$onChange = this.onChange.bind(this), this.attach(e), typeof n == "undefined" ? this.setPosition(t.row, t.column) : this.setPosition(t, n)
4811    };
4812    (function () {
4813        function e(e, t, n) {
4814            var r = n ? e.column <= t.column : e.column < t.column;
4815            return e.row < t.row || e.row == t.row && r
4816        }
4817
4818        function t(t, n, r) {
4819            var i = t.action == "insert", s = (i ? 1 : -1) * (t.end.row - t.start.row),
4820                o = (i ? 1 : -1) * (t.end.column - t.start.column), u = t.start, a = i ? u : t.end;
4821            return e(n, u, r) ? {row: n.row, column: n.column} : e(a, n, !r) ? {
4822                row: n.row + s,
4823                column: n.column + (n.row == a.row ? o : 0)
4824            } : {row: u.row, column: u.column}
4825        }
4826
4827        r.implement(this, i), this.getPosition = function () {
4828            return this.$clipPositionToDocument(this.row, this.column)
4829        }, this.getDocument = function () {
4830            return this.document
4831        }, this.$insertRight = !1, this.onChange = function (e) {
4832            if (e.start.row == e.end.row && e.start.row != this.row) return;
4833            if (e.start.row > this.row) return;
4834            var n = t(e, {row: this.row, column: this.column}, this.$insertRight);
4835            this.setPosition(n.row, n.column, !0)
4836        }, this.setPosition = function (e, t, n) {
4837            var r;
4838            n ? r = {row: e, column: t} : r = this.$clipPositionToDocument(e, t);
4839            if (this.row == r.row && this.column == r.column) return;
4840            var i = {row: this.row, column: this.column};
4841            this.row = r.row, this.column = r.column, this._signal("change", {old: i, value: r})
4842        }, this.detach = function () {
4843            this.document.removeEventListener("change", this.$onChange)
4844        }, this.attach = function (e) {
4845            this.document = e || this.document, this.document.on("change", this.$onChange)
4846        }, this.$clipPositionToDocument = function (e, t) {
4847            var n = {};
4848            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
4849        }
4850    }).call(s.prototype)
4851}), define("ace/document", [], function (e, t, n) {
4852    "use strict";
4853    var r = e("./lib/oop"), i = e("./apply_delta").applyDelta, s = e("./lib/event_emitter").EventEmitter,
4854        o = e("./range").Range, u = e("./anchor").Anchor, a = function (e) {
4855            this.$lines = [""], e.length === 0 ? this.$lines = [""] : Array.isArray(e) ? this.insertMergedLines({
4856                row: 0,
4857                column: 0
4858            }, e) : this.insert({row: 0, column: 0}, e)
4859        };
4860    (function () {
4861        r.implement(this, s), this.setValue = function (e) {
4862            var t = this.getLength() - 1;
4863            this.remove(new o(0, 0, t, this.getLine(t).length)), this.insert({row: 0, column: 0}, e)
4864        }, this.getValue = function () {
4865            return this.getAllLines().join(this.getNewLineCharacter())
4866        }, this.createAnchor = function (e, t) {
4867            return new u(this, e, t)
4868        }, "aaa".split(/a/).length === 0 ? this.$split = function (e) {
4869            return e.replace(/\r\n|\r/g, "\n").split("\n")
4870        } : this.$split = function (e) {
4871            return e.split(/\r\n|\r|\n/)
4872        }, this.$detectNewLine = function (e) {
4873            var t = e.match(/^.*?(\r\n|\r|\n)/m);
4874            this.$autoNewLine = t ? t[1] : "\n", this._signal("changeNewLineMode")
4875        }, this.getNewLineCharacter = function () {
4876            switch (this.$newLineMode) {
4877                case"windows":
4878                    return "\r\n";
4879                case"unix":
4880                    return "\n";
4881                default:
4882                    return this.$autoNewLine || "\n"
4883            }
4884        }, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function (e) {
4885            if (this.$newLineMode === e) return;
4886            this.$newLineMode = e, this._signal("changeNewLineMode")
4887        }, this.getNewLineMode = function () {
4888            return this.$newLineMode
4889        }, this.isNewLine = function (e) {
4890            return e == "\r\n" || e == "\r" || e == "\n"
4891        }, this.getLine = function (e) {
4892            return this.$lines[e] || ""
4893        }, this.getLines = function (e, t) {
4894            return this.$lines.slice(e, t + 1)
4895        }, this.getAllLines = function () {
4896            return this.getLines(0, this.getLength())
4897        }, this.getLength = function () {
4898            return this.$lines.length
4899        }, this.getTextRange = function (e) {
4900            return this.getLinesForRange(e).join(this.getNewLineCharacter())
4901        }, this.getLinesForRange = function (e) {
4902            var t;
4903            if (e.start.row === e.end.row) t = [this.getLine(e.start.row).substring(e.start.column, e.end.column)]; else {
4904                t = this.getLines(e.start.row, e.end.row), t[0] = (t[0] || "").substring(e.start.column);
4905                var n = t.length - 1;
4906                e.end.row - e.start.row == n && (t[n] = t[n].substring(0, e.end.column))
4907            }
4908            return t
4909        }, this.insertLines = function (e, t) {
4910            return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(e, t)
4911        }, this.removeLines = function (e, t) {
4912            return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(e, t)
4913        }, this.insertNewLine = function (e) {
4914            return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."), this.insertMergedLines(e, ["", ""])
4915        }, this.insert = function (e, t) {
4916            return this.getLength() <= 1 && this.$detectNewLine(t), this.insertMergedLines(e, this.$split(t))
4917        }, this.insertInLine = function (e, t) {
4918            var n = this.clippedPos(e.row, e.column), r = this.pos(e.row, e.column + t.length);
4919            return this.applyDelta({start: n, end: r, action: "insert", lines: [t]}, !0), this.clonePos(r)
4920        }, this.clippedPos = function (e, t) {
4921            var n = this.getLength();
4922            e === undefined ? e = n : e < 0 ? e = 0 : e >= n && (e = n - 1, t = undefined);
4923            var r = this.getLine(e);
4924            return t == undefined && (t = r.length), t = Math.min(Math.max(t, 0), r.length), {row: e, column: t}
4925        }, this.clonePos = function (e) {
4926            return {row: e.row, column: e.column}
4927        }, this.pos = function (e, t) {
4928            return {row: e, column: t}
4929        }, this.$clipPosition = function (e) {
4930            var t = this.getLength();
4931            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
4932        }, this.insertFullLines = function (e, t) {
4933            e = Math.min(Math.max(e, 0), this.getLength());
4934            var n = 0;
4935            e < this.getLength() ? (t = t.concat([""]), n = 0) : (t = [""].concat(t), e--, n = this.$lines[e].length), this.insertMergedLines({
4936                row: e,
4937                column: n
4938            }, t)
4939        }, this.insertMergedLines = function (e, t) {
4940            var n = this.clippedPos(e.row, e.column),
4941                r = {row: n.row + t.length - 1, column: (t.length == 1 ? n.column : 0) + t[t.length - 1].length};
4942            return this.applyDelta({start: n, end: r, action: "insert", lines: t}), this.clonePos(r)
4943        }, this.remove = function (e) {
4944            var t = this.clippedPos(e.start.row, e.start.column), n = this.clippedPos(e.end.row, e.end.column);
4945            return this.applyDelta({
4946                start: t,
4947                end: n,
4948                action: "remove",
4949                lines: this.getLinesForRange({start: t, end: n})
4950            }), this.clonePos(t)
4951        }, this.removeInLine = function (e, t, n) {
4952            var r = this.clippedPos(e, t), i = this.clippedPos(e, n);
4953            return this.applyDelta({
4954                start: r,
4955                end: i,
4956                action: "remove",
4957                lines: this.getLinesForRange({start: r, end: i})
4958            }, !0), this.clonePos(r)
4959        }, this.removeFullLines = function (e, t) {
4960            e = Math.min(Math.max(0, e), this.getLength() - 1), t = Math.min(Math.max(0, t), this.getLength() - 1);
4961            var n = t == this.getLength() - 1 && e > 0, r = t < this.getLength() - 1, i = n ? e - 1 : e,
4962                s = n ? this.getLine(i).length : 0, u = r ? t + 1 : t, a = r ? 0 : this.getLine(u).length,
4963                f = new o(i, s, u, a), l = this.$lines.slice(e, t + 1);
4964            return this.applyDelta({start: f.start, end: f.end, action: "remove", lines: this.getLinesForRange(f)}), l
4965        }, this.removeNewLine = function (e) {
4966            e < this.getLength() - 1 && e >= 0 && this.applyDelta({
4967                start: this.pos(e, this.getLine(e).length),
4968                end: this.pos(e + 1, 0),
4969                action: "remove",
4970                lines: ["", ""]
4971            })
4972        }, this.replace = function (e, t) {
4973            e instanceof o || (e = o.fromPoints(e.start, e.end));
4974            if (t.length === 0 && e.isEmpty()) return e.start;
4975            if (t == this.getTextRange(e)) return e.end;
4976            this.remove(e);
4977            var n;
4978            return t ? n = this.insert(e.start, t) : n = e.start, n
4979        }, this.applyDeltas = function (e) {
4980            for (var t = 0; t < e.length; t++) this.applyDelta(e[t])
4981        }, this.revertDeltas = function (e) {
4982            for (var t = e.length - 1; t >= 0; t--) this.revertDelta(e[t])
4983        }, this.applyDelta = function (e, t) {
4984            var n = e.action == "insert";
4985            if (n ? e.lines.length <= 1 && !e.lines[0] : !o.comparePoints(e.start, e.end)) return;
4986            n && e.lines.length > 2e4 ? this.$splitAndapplyLargeDelta(e, 2e4) : (i(this.$lines, e, t), this._signal("change", e))
4987        }, this.$splitAndapplyLargeDelta = function (e, t) {
4988            var n = e.lines, r = n.length - t + 1, i = e.start.row, s = e.start.column;
4989            for (var o = 0, u = 0; o < r; o = u) {
4990                u += t - 1;
4991                var a = n.slice(o, u);
4992                a.push(""), this.applyDelta({
4993                    start: this.pos(i + o, s),
4994                    end: this.pos(i + u, s = 0),
4995                    action: e.action,
4996                    lines: a
4997                }, !0)
4998            }
4999            e.lines = n.slice(o), e.start.row = i + o, e.start.column = s, this.applyDelta(e, !0)
5000        }, this.revertDelta = function (e) {
5001            this.applyDelta({
5002                start: this.clonePos(e.start),
5003                end: this.clonePos(e.end),
5004                action: e.action == "insert" ? "remove" : "insert",
5005                lines: e.lines.slice()
5006            })
5007        }, this.indexToPosition = function (e, t) {
5008            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length;
5009            for (var i = t || 0, s = n.length; i < s; i++) {
5010                e -= n[i].length + r;
5011                if (e < 0) return {row: i, column: e + n[i].length + r}
5012            }
5013            return {row: s - 1, column: e + n[s - 1].length + r}
5014        }, this.positionToIndex = function (e, t) {
5015            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length, i = 0,
5016                s = Math.min(e.row, n.length);
5017            for (var o = t || 0; o < s; ++o) i += n[o].length + r;
5018            return i + e.column
5019        }
5020    }).call(a.prototype), t.Document = a
5021}), define("ace/worker/mirror", [], function (e, t, n) {
5022    "use strict";
5023    var r = e("../range").Range, i = e("../document").Document, s = e("../lib/lang"), o = t.Mirror = function (e) {
5024        this.sender = e;
5025        var t = this.doc = new i(""), n = this.deferredUpdate = s.delayedCall(this.onUpdate.bind(this)), r = this;
5026        e.on("change", function (e) {
5027            var i = e.data;
5028            if (i[0].start) t.applyDeltas(i); else for (var s = 0; s < i.length; s += 2) {
5029                if (Array.isArray(i[s + 1])) var o = {
5030                    action: "insert",
5031                    start: i[s],
5032                    lines: i[s + 1]
5033                }; else var o = {action: "remove", start: i[s], end: i[s + 1]};
5034                t.applyDelta(o, !0)
5035            }
5036            if (r.$timeout) return n.schedule(r.$timeout);
5037            r.onUpdate()
5038        })
5039    };
5040    (function () {
5041        this.$timeout = 500, this.setTimeout = function (e) {
5042            this.$timeout = e
5043        }, this.setValue = function (e) {
5044            this.doc.setValue(e), this.deferredUpdate.schedule(this.$timeout)
5045        }, this.getValue = function (e) {
5046            this.sender.callback(this.doc.getValue(), e)
5047        }, this.onUpdate = function () {
5048        }, this.isPending = function () {
5049            return this.deferredUpdate.isPending()
5050        }
5051    }).call(o.prototype)
5052}), define("ace/mode/html/saxparser", [], function (e, t, n) {
5053    n.exports = function r(t, n, i) {
5054        function s(u, a) {
5055            if (!n[u]) {
5056                if (!t[u]) {
5057                    var f = typeof e == "function" && e;
5058                    if (!a && f) return f(u, !0);
5059                    if (o) return o(u, !0);
5060                    throw new Error("Cannot find module '" + u + "'")
5061                }
5062                var l = n[u] = {exports: {}};
5063                t[u][0].call(l.exports, function (e) {
5064                    var n = t[u][1][e];
5065                    return s(n ? n : e)
5066                }, l, l.exports, r, t, n, i)
5067            }
5068            return n[u].exports
5069        }
5070
5071        var o = typeof e == "function" && e;
5072        for (var u = 0; u < i.length; u++) s(i[u]);
5073        return s
5074    }({
5075        1: [function (e, t, n) {
5076            function r(e) {
5077                if (e.namespaceURI === "http://www.w3.org/1999/xhtml") return e.localName === "applet" || e.localName === "caption" || e.localName === "marquee" || e.localName === "object" || e.localName === "table" || e.localName === "td" || e.localName === "th";
5078                if (e.namespaceURI === "http://www.w3.org/1998/Math/MathML") return e.localName === "mi" || e.localName === "mo" || e.localName === "mn" || e.localName === "ms" || e.localName === "mtext" || e.localName === "annotation-xml";
5079                if (e.namespaceURI === "http://www.w3.org/2000/svg") return e.localName === "foreignObject" || e.localName === "desc" || e.localName === "title"
5080            }
5081
5082            function i(e) {
5083                return r(e) || e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "ol" || e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "ul"
5084            }
5085
5086            function s(e) {
5087                return e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "table" || e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "html"
5088            }
5089
5090            function o(e) {
5091                return e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "tbody" || e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "tfoot" || e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "thead" || e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "html"
5092            }
5093
5094            function u(e) {
5095                return e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "tr" || e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "html"
5096            }
5097
5098            function a(e) {
5099                return r(e) || e.namespaceURI === "http://www.w3.org/1999/xhtml" && e.localName === "button"
5100            }
5101
5102            function f(e) {
5103                return (e.namespaceURI !== "http://www.w3.org/1999/xhtml" || e.localName !== "optgroup") && (e.namespaceURI !== "http://www.w3.org/1999/xhtml" || e.localName !== "option")
5104            }
5105
5106            function l() {
5107                this.elements = [], this.rootNode = null, this.headElement = null, this.bodyElement = null
5108            }
5109
5110            l.prototype._inScope = function (e, t) {
5111                for (var n = this.elements.length - 1; n >= 0; n--) {
5112                    var r = this.elements[n];
5113                    if (r.localName === e) return !0;
5114                    if (t(r)) return !1
5115                }
5116            }, l.prototype.push = function (e) {
5117                this.elements.push(e)
5118            }, l.prototype.pushHtmlElement = function (e) {
5119                this.rootNode = e.node, this.push(e)
5120            }, l.prototype.pushHeadElement = function (e) {
5121                this.headElement = e.node, this.push(e)
5122            }, l.prototype.pushBodyElement = function (e) {
5123                this.bodyElement = e.node, this.push(e)
5124            }, l.prototype.pop = function () {
5125                return this.elements.pop()
5126            }, l.prototype.remove = function (e) {
5127                this.elements.splice(this.elements.indexOf(e), 1)
5128            }, l.prototype.popUntilPopped = function (e) {
5129                var t;
5130                do t = this.pop(); while (t.localName != e)
5131            }, l.prototype.popUntilTableScopeMarker = function () {
5132                while (!s(this.top)) this.pop()
5133            }, l.prototype.popUntilTableBodyScopeMarker = function () {
5134                while (!o(this.top)) this.pop()
5135            }, l.prototype.popUntilTableRowScopeMarker = function () {
5136                while (!u(this.top)) this.pop()
5137            }, l.prototype.item = function (e) {
5138                return this.elements[e]
5139            }, l.prototype.contains = function (e) {
5140                return this.elements.indexOf(e) !== -1
5141            }, l.prototype.inScope = function (e) {
5142                return this._inScope(e, r)
5143            }, l.prototype.inListItemScope = function (e) {
5144                return this._inScope(e, i)
5145            }, l.prototype.inTableScope = function (e) {
5146                return this._inScope(e, s)
5147            }, l.prototype.inButtonScope = function (e) {
5148                return this._inScope(e, a)
5149            }, l.prototype.inSelectScope = function (e) {
5150                return this._inScope(e, f)
5151            }, l.prototype.hasNumberedHeaderElementInScope = function () {
5152                for (var e = this.elements.length - 1; e >= 0; e--) {
5153                    var t = this.elements[e];
5154                    if (t.isNumberedHeader()) return !0;
5155                    if (r(t)) return !1
5156                }
5157            }, l.prototype.furthestBlockForFormattingElement = function (e) {
5158                var t = null;
5159                for (var n = this.elements.length - 1; n >= 0; n--) {
5160                    var r = this.elements[n];
5161                    if (r.node === e) break;
5162                    r.isSpecial() && (t = r)
5163                }
5164                return t
5165            }, l.prototype.findIndex = function (e) {
5166                for (var t = this.elements.length - 1; t >= 0; t--) if (this.elements[t].localName == e) return t;
5167                return -1
5168            }, l.prototype.remove_openElements_until = function (e) {
5169                var t = !1, n;
5170                while (!t) n = this.elements.pop(), t = e(n);
5171                return n
5172            }, Object.defineProperty(l.prototype, "top", {
5173                get: function () {
5174                    return this.elements[this.elements.length - 1]
5175                }
5176            }), Object.defineProperty(l.prototype, "length", {
5177                get: function () {
5178                    return this.elements.length
5179                }
5180            }), n.ElementStack = l
5181        }, {}], 2: [function (e, t, n) {
5182            function o(e) {
5183                return e >= "0" && e <= "9" || e >= "a" && e <= "z" || e >= "A" && e <= "Z"
5184            }
5185
5186            function u(e) {
5187                return e >= "0" && e <= "9" || e >= "a" && e <= "f" || e >= "A" && e <= "F"
5188            }
5189
5190            function a(e) {
5191                return e >= "0" && e <= "9"
5192            }
5193
5194            var r = e("html5-entities"), i = e("./InputStream").InputStream, s = {};
5195            Object.keys(r).forEach(function (e) {
5196                for (var t = 0; t < e.length; t++) s[e.substring(0, t + 1)] = !0
5197            });
5198            var f = {};
5199            f.consumeEntity = function (e, t, n) {
5200                var f = "", l = "", c = e.char();
5201                if (c === i.EOF) return !1;
5202                l += c;
5203                if (c == "	" || c == "\n" || c == "\x0b" || c == " " || c == "<" || c == "&") return e.unget(l), !1;
5204                if (n === c) return e.unget(l), !1;
5205                if (c == "#") {
5206                    c = e.shift(1);
5207                    if (c === i.EOF) return t._parseError("expected-numeric-entity-but-got-eof"), e.unget(l), !1;
5208                    l += c;
5209                    var h = 10, p = a;
5210                    if (c == "x" || c == "X") {
5211                        h = 16, p = u, c = e.shift(1);
5212                        if (c === i.EOF) return t._parseError("expected-numeric-entity-but-got-eof"), e.unget(l), !1;
5213                        l += c
5214                    }
5215                    if (p(c)) {
5216                        var d = "";
5217                        while (c !== i.EOF && p(c)) d += c, c = e.char();
5218                        d = parseInt(d, h);
5219                        var v = this.replaceEntityNumbers(d);
5220                        v && (t._parseError("invalid-numeric-entity-replaced"), d = v);
5221                        if (d > 65535 && d <= 1114111) {
5222                            d -= 65536;
5223                            var m = ((1047552 & d) >> 10) + 55296, g = (1023 & d) + 56320;
5224                            f = String.fromCharCode(m, g)
5225                        } else f = String.fromCharCode(d);
5226                        return c !== ";" && (t._parseError("numeric-entity-without-semicolon"), e.unget(c)), f
5227                    }
5228                    return e.unget(l), t._parseError("expected-numeric-entity"), !1
5229                }
5230                if (c >= "a" && c <= "z" || c >= "A" && c <= "Z") {
5231                    var y = "";
5232                    while (s[l]) {
5233                        r[l] && (y = l);
5234                        if (c == ";") break;
5235                        c = e.char();
5236                        if (c === i.EOF) break;
5237                        l += c
5238                    }
5239                    return y ? (f = r[y], c === ";" || !n || !o(c) && c !== "=" ? (l.length > y.length && e.unget(l.substring(y.length)), c !== ";" && t._parseError("named-entity-without-semicolon"), f) : (e.unget(l), !1)) : (t._parseError("expected-named-entity"), e.unget(l), !1)
5240                }
5241            }, f.replaceEntityNumbers = function (e) {
5242                switch (e) {
5243                    case 0:
5244                        return 65533;
5245                    case 19:
5246                        return 16;
5247                    case 128:
5248                        return 8364;
5249                    case 129:
5250                        return 129;
5251                    case 130:
5252                        return 8218;
5253                    case 131:
5254                        return 402;
5255                    case 132:
5256                        return 8222;
5257                    case 133:
5258                        return 8230;
5259                    case 134:
5260                        return 8224;
5261                    case 135:
5262                        return 8225;
5263                    case 136:
5264                        return 710;
5265                    case 137:
5266                        return 8240;
5267                    case 138:
5268                        return 352;
5269                    case 139:
5270                        return 8249;
5271                    case 140:
5272                        return 338;
5273                    case 141:
5274                        return 141;
5275                    case 142:
5276                        return 381;
5277                    case 143:
5278                        return 143;
5279                    case 144:
5280                        return 144;
5281                    case 145:
5282                        return 8216;
5283                    case 146:
5284                        return 8217;
5285                    case 147:
5286                        return 8220;
5287                    case 148:
5288                        return 8221;
5289                    case 149:
5290                        return 8226;
5291                    case 150:
5292                        return 8211;
5293                    case 151:
5294                        return 8212;
5295                    case 152:
5296                        return 732;
5297                    case 153:
5298                        return 8482;
5299                    case 154:
5300                        return 353;
5301                    case 155:
5302                        return 8250;
5303                    case 156:
5304                        return 339;
5305                    case 157:
5306                        return 157;
5307                    case 158:
5308                        return 382;
5309                    case 159:
5310                        return 376;
5311                    default:
5312                        if (e >= 55296 && e <= 57343 || e > 1114111) return 65533;
5313                        if (e >= 1 && e <= 8 || e >= 14 && e <= 31 || e >= 127 && e <= 159 || e >= 64976 && e <= 65007 || e == 11 || e == 65534 || e == 131070 || e == 3145726 || e == 196607 || e == 262142 || e == 262143 || e == 327678 || e == 327679 || e == 393214 || e == 393215 || e == 458750 || e == 458751 || e == 524286 || e == 524287 || e == 589822 || e == 589823 || e == 655358 || e == 655359 || e == 720894 || e == 720895 || e == 786430 || e == 786431 || e == 851966 || e == 851967 || e == 917502 || e == 917503 || e == 983038 || e == 983039 || e == 1048574 || e == 1048575 || e == 1114110 || e == 1114111) return e
5314                }
5315            }, n.EntityParser = f
5316        }, {"./InputStream": 3, "html5-entities": 12}], 3: [function (e, t, n) {
5317            function r() {
5318                this.data = "", this.start = 0, this.committed = 0, this.eof = !1, this.lastLocation = {
5319                    line: 0,
5320                    column: 0
5321                }
5322            }
5323
5324            r.EOF = -1, r.DRAIN = -2, r.prototype = {
5325                slice: function () {
5326                    if (this.start >= this.data.length) {
5327                        if (!this.eof) throw r.DRAIN;
5328                        return r.EOF
5329                    }
5330                    return this.data.slice(this.start, this.data.length)
5331                }, "char": function () {
5332                    if (!this.eof && this.start >= this.data.length - 1) throw r.DRAIN;
5333                    if (this.start >= this.data.length) return r.EOF;
5334                    var e = this.data[this.start++];
5335                    return e === "\r" && (e = "\n"), e
5336                }, advance: function (e) {
5337                    this.start += e;
5338                    if (this.start >= this.data.length) {
5339                        if (!this.eof) throw r.DRAIN;
5340                        return r.EOF
5341                    }
5342                    this.committed > this.data.length / 2 && (this.lastLocation = this.location(), this.data = this.data.slice(this.committed), this.start = this.start - this.committed, this.committed = 0)
5343                }, matchWhile: function (e) {
5344                    if (this.eof && this.start >= this.data.length) return "";
5345                    var t = new RegExp("^" + e + "+"), n = t.exec(this.slice());
5346                    if (n) {
5347                        if (!this.eof && n[0].length == this.data.length - this.start) throw r.DRAIN;
5348                        return this.advance(n[0].length), n[0]
5349                    }
5350                    return ""
5351                }, matchUntil: function (e) {
5352                    var t, n;
5353                    n = this.slice();
5354                    if (n === r.EOF) return "";
5355                    if (t = (new RegExp(e + (this.eof ? "|$" : ""))).exec(n)) {
5356                        var i = this.data.slice(this.start, this.start + t.index);
5357                        return this.advance(t.index), i.replace(/\r/g, "\n").replace(/\n{2,}/g, "\n")
5358                    }
5359                    throw r.DRAIN
5360                }, append: function (e) {
5361                    this.data += e
5362                }, shift: function (e) {
5363                    if (!this.eof && this.start + e >= this.data.length) throw r.DRAIN;
5364                    if (this.eof && this.start >= this.data.length) return r.EOF;
5365                    var t = this.data.slice(this.start, this.start + e).toString();
5366                    return this.advance(Math.min(e, this.data.length - this.start)), t
5367                }, peek: function (e) {
5368                    if (!this.eof && this.start + e >= this.data.length) throw r.DRAIN;
5369                    return this.eof && this.start >= this.data.length ? r.EOF : this.data.slice(this.start, Math.min(this.start + e, this.data.length)).toString()
5370                }, length: function () {
5371                    return this.data.length - this.start - 1
5372                }, unget: function (e) {
5373                    if (e === r.EOF) return;
5374                    this.start -= e.length
5375                }, undo: function () {
5376                    this.start = this.committed
5377                }, commit: function () {
5378                    this.committed = this.start
5379                }, location: function () {
5380                    var e = this.lastLocation.line, t = this.lastLocation.column,
5381                        n = this.data.slice(0, this.committed), r = n.match(/\n/g), i = r ? e + r.length : e,
5382                        s = r ? n.length - n.lastIndexOf("\n") - 1 : t + n.length;
5383                    return {line: i, column: s}
5384                }
5385            }, n.InputStream = r
5386        }, {}], 4: [function (e, t, n) {
5387            function i(e, t, n, r) {
5388                this.localName = t, this.namespaceURI = e, this.attributes = n, this.node = r
5389            }
5390
5391            function s(e, t) {
5392                for (var n = 0; n < e.attributes.length; n++) if (e.attributes[n].nodeName == t) return e.attributes[n].nodeValue;
5393                return null
5394            }
5395
5396            var r = {
5397                "http://www.w3.org/1999/xhtml": ["address", "applet", "area", "article", "aside", "base", "basefont", "bgsound", "blockquote", "body", "br", "button", "caption", "center", "col", "colgroup", "dd", "details", "dir", "div", "dl", "dt", "embed", "fieldset", "figcaption", "figure", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "iframe", "img", "input", "isindex", "li", "link", "listing", "main", "marquee", "menu", "menuitem", "meta", "nav", "noembed", "noframes", "noscript", "object", "ol", "p", "param", "plaintext", "pre", "script", "section", "select", "source", "style", "summary", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "title", "tr", "track", "ul", "wbr", "xmp"],
5398                "http://www.w3.org/1998/Math/MathML": ["mi", "mo", "mn", "ms", "mtext", "annotation-xml"],
5399                "http://www.w3.org/2000/svg": ["foreignObject", "desc", "title"]
5400            };
5401            i.prototype.isSpecial = function () {
5402                return this.namespaceURI in r && r[this.namespaceURI].indexOf(this.localName) > -1
5403            }, i.prototype.isFosterParenting = function () {
5404                return this.namespaceURI === "http://www.w3.org/1999/xhtml" ? this.localName === "table" || this.localName === "tbody" || this.localName === "tfoot" || this.localName === "thead" || this.localName === "tr" : !1
5405            }, i.prototype.isNumberedHeader = function () {
5406                return this.namespaceURI === "http://www.w3.org/1999/xhtml" ? this.localName === "h1" || this.localName === "h2" || this.localName === "h3" || this.localName === "h4" || this.localName === "h5" || this.localName === "h6" : !1
5407            }, i.prototype.isForeign = function () {
5408                return this.namespaceURI != "http://www.w3.org/1999/xhtml"
5409            }, i.prototype.isHtmlIntegrationPoint = function () {
5410                if (this.namespaceURI === "http://www.w3.org/1998/Math/MathML") {
5411                    if (this.localName !== "annotation-xml") return !1;
5412                    var e = s(this, "encoding");
5413                    return e ? (e = e.toLowerCase(), e === "text/html" || e === "application/xhtml+xml") : !1
5414                }
5415                return this.namespaceURI === "http://www.w3.org/2000/svg" ? this.localName === "foreignObject" || this.localName === "desc" || this.localName === "title" : !1
5416            }, i.prototype.isMathMLTextIntegrationPoint = function () {
5417                return this.namespaceURI === "http://www.w3.org/1998/Math/MathML" ? this.localName === "mi" || this.localName === "mo" || this.localName === "mn" || this.localName === "ms" || this.localName === "mtext" : !1
5418            }, n.StackItem = i
5419        }, {}], 5: [function (e, t, n) {
5420            function s(e) {
5421                return e === " " || e === "\n" || e === "	" || e === "\r" || e === "\f"
5422            }
5423
5424            function o(e) {
5425                return e >= "A" && e <= "Z" || e >= "a" && e <= "z"
5426            }
5427
5428            function u(e) {
5429                this._tokenHandler = e, this._state = u.DATA, this._inputStream = new r, this._currentToken = null, this._temporaryBuffer = "", this._additionalAllowedCharacter = ""
5430            }
5431
5432            var r = e("./InputStream").InputStream, i = e("./EntityParser").EntityParser;
5433            u.prototype._parseError = function (e, t) {
5434                this._tokenHandler.parseError(e, t)
5435            }, u.prototype._emitToken = function (e) {
5436                if (e.type === "StartTag") for (var t = 1; t < e.data.length; t++) e.data[t].nodeName || e.data.splice(t--, 1); else e.type === "EndTag" && (e.selfClosing && this._parseError("self-closing-flag-on-end-tag"), e.data.length !== 0 && this._parseError("attributes-in-end-tag"));
5437                this._tokenHandler.processToken(e), e.type === "StartTag" && e.selfClosing && !this._tokenHandler.isSelfClosingFlagAcknowledged() && this._parseError("non-void-element-with-trailing-solidus", {name: e.name})
5438            }, u.prototype._emitCurrentToken = function () {
5439                this._state = u.DATA, this._emitToken(this._currentToken)
5440            }, u.prototype._currentAttribute = function () {
5441                return this._currentToken.data[this._currentToken.data.length - 1]
5442            }, u.prototype.setState = function (e) {
5443                this._state = e
5444            }, u.prototype.tokenize = function (e) {
5445                function n(e) {
5446                    var n = e.char();
5447                    if (n === r.EOF) return t._emitToken({type: "EOF", data: null}), !1;
5448                    if (n === "&") t.setState(a); else if (n === "<") t.setState(j); else if (n === "\0") t._emitToken({
5449                        type: "Characters",
5450                        data: n
5451                    }), e.commit(); else {
5452                        var i = e.matchUntil("&|<|\0");
5453                        t._emitToken({type: "Characters", data: n + i}), e.commit()
5454                    }
5455                    return !0
5456                }
5457
5458                function a(e) {
5459                    var r = i.consumeEntity(e, t);
5460                    return t.setState(n), t._emitToken({type: "Characters", data: r || "&"}), !0
5461                }
5462
5463                function f(e) {
5464                    var n = e.char();
5465                    if (n === r.EOF) return t._emitToken({type: "EOF", data: null}), !1;
5466                    if (n === "&") t.setState(l); else if (n === "<") t.setState(d); else if (n === "\0") t._parseError("invalid-codepoint"), t._emitToken({
5467                        type: "Characters",
5468                        data: "\ufffd"
5469                    }), e.commit(); else {
5470                        var i = e.matchUntil("&|<|\0");
5471                        t._emitToken({type: "Characters", data: n + i}), e.commit()
5472                    }
5473                    r
5473eturn !0
5474                }
5475
5476                function l(e) {
5477                    var n = i.consumeEntity(e, t);
5478                    return t.setState(f), t._emitToken({type: "Characters", data: n || "&"}), !0
5479                }
5480
5481                function c(e) {
5482                    var n = e.char();
5483                    if (n === r.EOF) return t._emitToken({type: "EOF", data: null}), !1;
5484                    if (n === "<") t.setState(g); else if (n === "\0") t._parseError("invalid-codepoint"), t._emitToken({
5485                        type: "Characters",
5486                        data: "\ufffd"
5487                    }), e.commit(); else {
5488                        var i = e.matchUntil("<|\0");
5489                        t._emitToken({type: "Characters", data: n + i})
5490                    }
5491                    return !0
5492                }
5493
5494                function h(e) {
5495                    var n = e.char();
5496                    if (n === r.EOF) return t._emitToken({type: "EOF", data: null}), !1;
5497                    if (n === "\0") t._parseError("invalid-codepoint"), t._emitToken({
5498                        type: "Characters",
5499                        data: "\ufffd"
5500                    }), e.commit(); else {
5501                        var i = e.matchUntil("\0");
5502                        t._emitToken({type: "Characters", data: n + i})
5503                    }
5504                    return !0
5505                }
5506
5507                function p(e) {
5508                    var n = e.char();
5509                    if (n === r.EOF) return t._emitToken({type: "EOF", data: null}), !1;
5510                    if (n === "<") t.setState(w); else if (n === "\0") t._parseError("invalid-codepoint"), t._emitToken({
5511                        type: "Characters",
5512                        data: "\ufffd"
5513                    }), e.commit(); else {
5514                        var i = e.matchUntil("<|\0");
5515                        t._emitToken({type: "Characters", data: n + i})
5516                    }
5517                    return !0
5518                }
5519
5520                function d(e) {
5521                    var n = e.char();
5522                    return n === "/" ? (this._temporaryBuffer = "", t.setState(v)) : (t._emitToken({
5523                        type: "Characters",
5524                        data: "<"
5525                    }), e.unget(n), t.setState(f)), !0
5526                }
5527
5528                function v(e) {
5529                    var n = e.char();
5530                    return o(n) ? (this._temporaryBuffer += n, t.setState(m)) : (t._emitToken({
5531                        type: "Characters",
5532                        data: "</"
5533                    }), e.unget(n), t.setState(f)), !0
5534                }
5535
5536                function m(e) {
5537                    var r = t._currentToken && t._currentToken.name === this._temporaryBuffer.toLowerCase(),
5538                        i = e.char();
5539                    return s(i) && r ? (t._currentToken = {
5540                        type: "EndTag",
5541                        name: this._temporaryBuffer,
5542                        data: [],
5543                        selfClosing: !1
5544                    }, t.setState(q)) : i === "/" && r ? (t._currentToken = {
5545                        type: "EndTag",
5546                        name: this._temporaryBuffer,
5547                        data: [],
5548                        selfClosing: !1
5549                    }, t.setState(K)) : i === ">" && r ? (t._currentToken = {
5550                        type: "EndTag",
5551                        name: this._temporaryBuffer,
5552                        data: [],
5553                        selfClosing: !1
5554                    }, t._emitCurrentToken(), t.setState(n)) : o(i) ? (this._temporaryBuffer += i, e.commit()) : (t._emitToken({
5555                        type: "Characters",
5556                        data: "</" + this._temporaryBuffer
5557                    }), e.unget(i), t.setState(f)), !0
5558                }
5559
5560                function g(e) {
5561                    var n = e.char();
5562                    return n === "/" ? (this._temporaryBuffer = "", t.setState(y)) : (t._emitToken({
5563                        type: "Characters",
5564                        data: "<"
5565                    }), e.unget(n), t.setState(c)), !0
5566                }
5567
5568                function y(e) {
5569                    var n = e.char();
5570                    return o(n) ? (this._temporaryBuffer += n, t.setState(b)) : (t._emitToken({
5571                        type: "Characters",
5572                        data: "</"
5573                    }), e.unget(n), t.setState(c)), !0
5574                }
5575
5576                function b(e) {
5577                    var r = t._currentToken && t._currentToken.name === this._temporaryBuffer.toLowerCase(),
5578                        i = e.char();
5579                    return s(i) && r ? (t._currentToken = {
5580                        type: "EndTag",
5581                        name: this._temporaryBuffer,
5582                        data: [],
5583                        selfClosing: !1
5584                    }, t.setState(q)) : i === "/" && r ? (t._currentToken = {
5585                        type: "EndTag",
5586                        name: this._temporaryBuffer,
5587                        data: [],
5588                        selfClosing: !1
5589                    }, t.setState(K)) : i === ">" && r ? (t._currentToken = {
5590                        type: "EndTag",
5591                        name: this._temporaryBuffer,
5592                        data: [],
5593                        selfClosing: !1
5594                    }, t._emitCurrentToken(), t.setState(n)) : o(i) ? (this._temporaryBuffer += i, e.commit()) : (t._emitToken({
5595                        type: "Characters",
5596                        data: "</" + this._temporaryBuffer
5597                    }), e.unget(i), t.setState(c)), !0
5598                }
5599
5600                function w(e) {
5601                    var n = e.char();
5602                    return n === "/" ? (this._temporaryBuffer = "", t.setState(E)) : n === "!" ? (t._emitToken({
5603                        type: "Characters",
5604                        data: "<!"
5605                    }), t.setState(x)) : (t._emitToken({type: "Characters", data: "<"}), e.unget(n), t.setState(p)), !0
5606                }
5607
5608                function E(e) {
5609                    var n = e.char();
5610                    return o(n) ? (this._temporaryBuffer += n, t.setState(S)) : (t._emitToken({
5611                        type: "Characters",
5612                        data: "</"
5613                    }), e.unget(n), t.setState(p)), !0
5614                }
5615
5616                function S(e) {
5617                    var n = t._currentToken && t._currentToken.name === this._temporaryBuffer.toLowerCase(),
5618                        r = e.char();
5619                    return s(r) && n ? (t._currentToken = {
5620                        type: "EndTag",
5621                        name: "script",
5622                        data: [],
5623                        selfClosing: !1
5624                    }, t.setState(q)) : r === "/" && n ? (t._currentToken = {
5625                        type: "EndTag",
5626                        name: "script",
5627                        data: [],
5628                        selfClosing: !1
5629                    }, t.setState(K)) : r === ">" && n ? (t._currentToken = {
5630                        type: "EndTag",
5631                        name: "script",
5632                        data: [],
5633                        selfClosing: !1
5634                    }, t._emitCurrentToken()) : o(r) ? (this._temporaryBuffer += r, e.commit()) : (t._emitToken({
5635                        type: "Characters",
5636                        data: "</" + this._temporaryBuffer
5637                    }), e.unget(r), t.setState(p)), !0
5638                }
5639
5640                function x(e) {
5641                    var n = e.char();
5642                    return n === "-" ? (t._emitToken({
5643                        type: "Characters",
5644                        data: "-"
5645                    }), t.setState(T)) : (e.unget(n), t.setState(p)), !0
5646                }
5647
5648                function T(e) {
5649                    var n = e.char();
5650                    return n === "-" ? (t._emitToken({
5651                        type: "Characters",
5652                        data: "-"
5653                    }), t.setState(k)) : (e.unget(n), t.setState(p)), !0
5654                }
5655
5656                function N(e) {
5657                    var i = e.char();
5658                    if (i === r.EOF) e.unget(i), t.setState(n); else if (i === "-") t._emitToken({
5659                        type: "Characters",
5660                        data: "-"
5661                    }), t.setState(C); else if (i === "<") t.setState(L); else if (i === "\0") t._parseError("invalid-codepoint"), t._emitToken({
5662                        type: "Characters",
5663                        data: "\ufffd"
5664                    }), e.commit(); else {
5665                        var s = e.matchUntil("<|-|\0");
5666                        t._emitToken({type: "Characters", data: i + s})
5667                    }
5668                    return !0
5669                }
5670
5671                function C(e) {
5672                    var i = e.char();
5673                    return i === r.EOF ? (e.unget(i), t.setState(n)) : i === "-" ? (t._emitToken({
5674                        type: "Characters",
5675                        data: "-"
5676                    }), t.setState(k)) : i === "<" ? t.setState(L) : i === "\0" ? (t._parseError("invalid-codepoint"), t._emitToken({
5677                        type: "Characters",
5678                        data: "\ufffd"
5679                    }), t.setState(N)) : (t._emitToken({type: "Characters", data: i}), t.setState(N)), !0
5680                }
5681
5682                function k(e) {
5683                    var i = e.char();
5684                    return i === r.EOF ? (t._parseError("eof-in-script"), e.unget(i), t.setState(n)) : i === "<" ? t.setState(L) : i === ">" ? (t._emitToken({
5685                        type: "Characters",
5686                        data: ">"
5687                    }), t.setState(p)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._emitToken({
5688                        type: "Characters",
5689                        data: "\ufffd"
5690                    }), t.setState(N)) : (t._emitToken({type: "Characters", data: i}), t.setState(N)), !0
5691                }
5692
5693                function L(e) {
5694                    var n = e.char();
5695                    return n === "/" ? (this._temporaryBuffer = "", t.setState(A)) : o(n) ? (t._emitToken({
5696                        type: "Characters",
5697                        data: "<" + n
5698                    }), this._temporaryBuffer = n, t.setState(M)) : (t._emitToken({
5699                        type: "Characters",
5700                        data: "<"
5701                    }), e.unget(n), t.setState(N)), !0
5702                }
5703
5704                function A(e) {
5705                    var n = e.char();
5706                    return o(n) ? (this._temporaryBuffer = n, t.setState(O)) : (t._emitToken({
5707                        type: "Characters",
5708                        data: "</"
5709                    }), e.unget(n), t.setState(N)), !0
5710                }
5711
5712                function O(e) {
5713                    var r = t._currentToken && t._currentToken.name === this._temporaryBuffer.toLowerCase(),
5714                        i = e.char();
5715                    return s(i) && r ? (t._currentToken = {
5716                        type: "EndTag",
5717                        name: "script",
5718                        data: [],
5719                        selfClosing: !1
5720                    }, t.setState(q)) : i === "/" && r ? (t._currentToken = {
5721                        type: "EndTag",
5722                        name: "script",
5723                        data: [],
5724                        selfClosing: !1
5725                    }, t.setState(K)) : i === ">" && r ? (t._currentToken = {
5726                        type: "EndTag",
5727                        name: "script",
5728                        data: [],
5729                        selfClosing: !1
5730                    }, t.setState(n), t._emitCurrentToken()) : o(i) ? (this._temporaryBuffer += i, e.commit()) : (t._emitToken({
5731                        type: "Characters",
5732                        data: "</" + this._temporaryBuffer
5733                    }), e.unget(i), t.setState(N)), !0
5734                }
5735
5736                function M(e) {
5737                    var n = e.char();
5738                    return s(n) || n === "/" || n === ">" ? (t._emitToken({
5739                        type: "Characters",
5740                        data: n
5741                    }), this._temporaryBuffer.toLowerCase() === "script" ? t.setState(_) : t.setState(N)) : o(n) ? (t._emitToken({
5742                        type: "Characters",
5743                        data: n
5744                    }), this._temporaryBuffer += n, e.commit()) : (e.unget(n), t.setState(N)), !0
5745                }
5746
5747                function _(e) {
5748                    var i = e.char();
5749                    return i === r.EOF ? (t._parseError("eof-in-script"), e.unget(i), t.setState(n)) : i === "-" ? (t._emitToken({
5750                        type: "Characters",
5751                        data: "-"
5752                    }), t.setState(D)) : i === "<" ? (t._emitToken({
5753                        type: "Characters",
5754                        data: "<"
5755                    }), t.setState(H)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._emitToken({
5756                        type: "Characters",
5757                        data: "\ufffd"
5758                    }), e.commit()) : (t._emitToken({type: "Characters", data: i}), e.commit()), !0
5759                }
5760
5761                function D(e) {
5762                    var i = e.char();
5763                    return i === r.EOF ? (t._parseError("eof-in-script"), e.unget(i), t.setState(n)) : i === "-" ? (t._emitToken({
5764                        type: "Characters",
5765                        data: "-"
5766                    }), t.setState(P)) : i === "<" ? (t._emitToken({
5767                        type: "Characters",
5768                        data: "<"
5769                    }), t.setState(H)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._emitToken({
5770                        type: "Characters",
5771                        data: "\ufffd"
5772                    }), t.setState(_)) : (t._emitToken({type: "Characters", data: i}), t.setState(_)), !0
5773                }
5774
5775                function P(e) {
5776                    var i = e.char();
5777                    return i === r.EOF ? (t._parseError("eof-in-script"), e.unget(i), t.setState(n)) : i === "-" ? (t._emitToken({
5778                        type: "Characters",
5779                        data: "-"
5780                    }), e.commit()) : i === "<" ? (t._emitToken({
5781                        type: "Characters",
5782                        data: "<"
5783                    }), t.setState(H)) : i === ">" ? (t._emitToken({
5784                        type: "Characters",
5785                        data: ">"
5786                    }), t.setState(p)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._emitToken({
5787                        type: "Characters",
5788                        data: "\ufffd"
5789                    }), t.setState(_)) : (t._emitToken({type: "Characters", data: i}), t.setState(_)), !0
5790                }
5791
5792                function H(e) {
5793                    var n = e.char();
5794                    return n === "/" ? (t._emitToken({
5795                        type: "Characters",
5796                        data: "/"
5797                    }), this._temporaryBuffer = "", t.setState(B)) : (e.unget(n), t.setState(_)), !0
5798                }
5799
5800                function B(e) {
5801                    var n = e.char();
5802                    return s(n) || n === "/" || n === ">" ? (t._emitToken({
5803                        type: "Characters",
5804                        data: n
5805                    }), this._temporaryBuffer.toLowerCase() === "script" ? t.setState(N) : t.setState(_)) : o(n) ? (t._emitToken({
5806                        type: "Characters",
5807                        data: n
5808                    }), this._temporaryBuffer += n, e.commit()) : (e.unget(n), t.setState(_)), !0
5809                }
5810
5811                function j(e) {
5812                    var i = e.char();
5813                    return i === r.EOF ? (t._parseError("bare-less-than-sign-at-eof"), t._emitToken({
5814                        type: "Characters",
5815                        data: "<"
5816                    }), e.unget(i), t.setState(n)) : o(i) ? (t._currentToken = {
5817                        type: "StartTag",
5818                        name: i.toLowerCase(),
5819                        data: []
5820                    }, t.setState(I)) : i === "!" ? t.setState(G) : i === "/" ? t.setState(F) : i === ">"
5820 ? (t._parseError("expected-tag-name-but-got-right-bracket"), t._emitToken({
5821                        type: "Characters",
5822                        data: "<>"
5823                    }), t.setState(n)) : i === "?" ? (t._parseError("expected-tag-name-but-got-question-mark"), e.unget(i), t.setState(Q)) : (t._parseError("expected-tag-name"), t._emitToken({
5824                        type: "Characters",
5825                        data: "<"
5826                    }), e.unget(i), t.setState(n)), !0
5827                }
5828
5829                function F(e) {
5830                    var i = e.char();
5831                    return i === r.EOF ? (t._parseError("expected-closing-tag-but-got-eof"), t._emitToken({
5832                        type: "Characters",
5833                        data: "</"
5834                    }), e.unget(i), t.setState(n)) : o(i) ? (t._currentToken = {
5835                        type: "EndTag",
5836                        name: i.toLowerCase(),
5837                        data: []
5838                    }, t.setState(I)) : i === ">" ? (t._parseError("expected-closing-tag-but-got-right-bracket"), t.setState(n)) : (t._parseError("expected-closing-tag-but-got-char", {data: i}), e.unget(i), t.setState(Q)), !0
5839                }
5840
5841                function I(e) {
5842                    var i = e.char();
5843                    return i === r.EOF ? (t._parseError("eof-in-tag-name"), e.unget(i), t.setState(n)) : s(i) ? t.setState(q) : o(i) ? t._currentToken.name += i.toLowerCase() : i === ">" ? t._emitCurrentToken() : i === "/" ? t.setState(K) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentToken.name += "\ufffd") : t._currentToken.name += i, e.commit(), !0
5844                }
5845
5846                function q(e) {
5847                    var i = e.char();
5848                    if (i === r.EOF) t._parseError("expected-attribute-name-but-got-eof"), e.unget(i), t.setState(n); else {
5849                        if (s(i)) return !0;
5850                        o(i) ? (t._currentToken.data.push({
5851                            nodeName: i.toLowerCase(),
5852                            nodeValue: ""
5853                        }), t.setState(R)) : i === ">" ? t._emitCurrentToken() : i === "/" ? t.setState(K) : i === "'" || i === '"' || i === "=" || i === "<" ? (t._parseError("invalid-character-in-attribute-name"), t._currentToken.data.push({
5854                            nodeName: i,
5855                            nodeValue: ""
5856                        }), t.setState(R)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentToken.data.push({
5857                            nodeName: "\ufffd",
5858                            nodeValue: ""
5859                        })) : (t._currentToken.data.push({nodeName: i, nodeValue: ""}), t.setState(R))
5860                    }
5861                    return !0
5862                }
5863
5864                function R(e) {
5865                    var i = e.char(), u = !0, a = !1;
5866                    i === r.EOF ? (t._parseError("eof-in-attribute-name"), e.unget(i), t.setState(n), a = !0) : i === "=" ? t.setState(z) : o(i) ? (t._currentAttribute().nodeName += i.toLowerCase(), u = !1) : i === ">" ? a = !0 : s(i) ? t.setState(U) : i === "/" ? t.setState(K) : i === "'" || i === '"' ? (t._parseError("invalid-character-in-attribute-name"), t._currentAttribute().nodeName += i, u = !1) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentAttribute().nodeName += "\ufffd") : (t._currentAttribute().nodeName += i, u = !1);
5867                    if (u) {
5868                        var f = t._currentToken.data, l = f[f.length - 1];
5869                        for (var c = f.length - 2; c >= 0; c--) if (l.nodeName === f[c].nodeName) {
5870                            t._parseError("duplicate-attribute", {name: l.nodeName}), l.nodeName = null;
5871                            break
5872                        }
5873                        a && t._emitCurrentToken()
5874                    } else e.commit();
5875                    return !0
5876                }
5877
5878                function U(e) {
5879                    var i = e.char();
5880                    if (i === r.EOF) t._parseError("expected-end-of-tag-but-got-eof"), e.unget(i), t.setState(n); else {
5881                        if (s(i)) return !0;
5882                        i === "=" ? t.setState(z) : i === ">" ? t._emitCurrentToken() : o(i) ? (t._currentToken.data.push({
5883                            nodeName: i,
5884                            nodeValue: ""
5885                        }), t.setState(R)) : i === "/" ? t.setState(K) : i === "'" || i === '"' || i === "<" ? (t._parseError("invalid-character-after-attribute-name"), t._currentToken.data.push({
5886                            nodeName: i,
5887                            nodeValue: ""
5888                        }), t.setState(R)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentToken.data.push({
5889                            nodeName: "\ufffd",
5890                            nodeValue: ""
5891                        })) : (t._currentToken.data.push({nodeName: i, nodeValue: ""}), t.setState(R))
5892                    }
5893                    return !0
5894                }
5895
5896                function z(e) {
5897                    var i = e.char();
5898                    if (i === r.EOF) t._parseError("expected-attribute-value-but-got-eof"), e.unget(i), t.setState(n); else {
5899                        if (s(i)) return !0;
5900                        i === '"' ? t.setState(W) : i === "&" ? (t.setState(V), e.unget(i)) : i === "'" ? t.setState(X) : i === ">" ? (t._parseError("expected-attribute-value-but-got-right-bracket"), t._emitCurrentToken()) : i === "=" || i === "<" || i === "`" ? (t._parseError("unexpected-character-in-unquoted-attribute-value"), t._currentAttribute().nodeValue += i, t.setState(V)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentAttribute().nodeValue += "\ufffd") : (t._currentAttribute().nodeValue += i, t.setState(V))
5901                    }
5902                    return !0
5903                }
5904
5905                function W(e) {
5906                    var i = e.char();
5907                    if (i === r.EOF) t._parseError("eof-in-attribute-value-double-quote"), e.unget(i), t.setState(n); else if (i === '"') t.setState(J); else if (i === "&") this._additionalAllowedCharacter = '"', t.setState($); else if (i === "\0") t._parseError("invalid-codepoint"), t._currentAttribute().nodeValue += "\ufffd"; else {
5908                        var s = e.matchUntil('[\0"&]');
5909                        i += s, t._currentAttribute().nodeValue += i
5910                    }
5911                    return !0
5912                }
5913
5914                function X(e) {
5915                    var i = e.char();
5916                    return i === r.EOF ? (t._parseError("eof-in-attribute-value-single-quote"), e.unget(i), t.setState(n)) : i === "'" ? t.setState(J) : i === "&" ? (this._additionalAllowedCharacter = "'", t.setState($)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentAttribute().nodeValue += "\ufffd") : t._currentAttribute().nodeValue += i + e.matchUntil("\0|['&]"), !0
5917                }
5918
5919                function V(e) {
5920                    var i = e.char();
5921                    if (i === r.EOF) t._parseError("eof-after-attribute-value"), e.unget(i), t.setState(n); else if (s(i)) t.setState(q); else if (i === "&") this._additionalAllowedCharacter = ">", t.setState($); else if (i === ">") t._emitCurrentToken(); else if (i === '"' || i === "'" || i === "=" || i === "`" || i === "<") t._parseError("unexpected-character-in-unquoted-attribute-value"), t._currentAttribute().nodeValue += i, e.commit(); else if (i === "\0") t._parseError("invalid-codepoint"), t._currentAttribute().nodeValue += "\ufffd"; else {
5922                        var o = e.matchUntil("\0|[	\n\x0b\f \r&<>\"'=`]");
5923                        o === r.EOF && (t._parseError("eof-in-attribute-value-no-quotes"), t._emitCurrentToken()), e.commit(), t._currentAttribute().nodeValue += i + o
5924                    }
5925                    return !0
5926                }
5927
5928                function $(e) {
5929                    var n = i.consumeEntity(e, t, this._additionalAllowedCharacter);
5930                    return this._currentAttribute().nodeValue += n || "&", this._additionalAllowedCharacter === '"' ? t.setState(W) : this._additionalAllowedCharacter === "'" ? t.setState(X) : this._additionalAllowedCharacter === ">" && t.setState(V), !0
5931                }
5932
5933                function J(e) {
5934                    var i = e.char();
5935                    return i === r.EOF ? (t._parseError("eof-after-attribute-value"), e.unget(i), t.setState(n)) : s(i) ? t.setState(q) : i === ">" ? (t.setState(n), t._emitCurrentToken()) : i === "/" ? t.setState(K) : (t._parseError("unexpected-character-after-attribute-value"), e.unget(i), t.setState(q)), !0
5936                }
5937
5938                function K(e) {
5939                    var i = e.char();
5940                    return i === r.EOF ? (t._parseError("unexpected-eof-after-solidus-in-tag"), e.unget(i), t.setState(n)) : i === ">" ? (t._currentToken.selfClosing = !0, t.setState(n), t._emitCurrentToken()) : (t._parseError("unexpected-character-after-solidus-in-tag"), e.unget(i), t.setState(q)), !0
5941                }
5942
5943                function Q(e) {
5944                    var r = e.matchUntil(">");
5945                    return r = r.replace(/\u0000/g, "\ufffd"), e.char(), t._emitToken({
5946                        type: "Comment",
5947                        data: r
5948                    }), t.setState(n), !0
5949                }
5950
5951                function G(e) {
5952                    var n = e.shift(2);
5953                    if (n === "--") t._currentToken = {type: "Comment", data: ""}, t.setState(Z); else {
5954                        var i = e.shift(5);
5955                        if (i === r.EOF || n === r.EOF) return t._parseError("expected-dashes-or-doctype"), t.setState(Q), e.unget(n), !0;
5956                        n += i, n.toUpperCase() === "DOCTYPE" ? (t._currentToken = {
5957                            type: "Doctype",
5958                            name: "",
5959                            publicId: null,
5960                            systemId: null,
5961                            forceQuirks: !1
5962                        }, t.setState(st)) : t._tokenHandler.isCdataSectionAllowed() && n === "[CDATA[" ? t.setState(Y) : (t._parseError("expected-dashes-or-doctype"), e.unget(n), t.setState(Q))
5963                    }
5964                    return !0
5965                }
5966
5967                function Y(e) {
5968                    var r = e.matchUntil("]]>");
5969                    return e.shift(3), r && t._emitToken({type: "Characters", data: r}), t.setState(n), !0
5970                }
5971
5972                function Z(e) {
5973                    var i = e.char();
5974                    return i === r.EOF ? (t._parseError("eof-in-comment"), t._emitToken(t._currentToken), e.unget(i), t.setState(n)) : i === "-" ? t.setState(et) : i === ">" ? (t._parseError("incorrect-comment"), t._emitToken(t._currentToken), t.setState(n)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentToken.data += "\ufffd") : (t._currentToken.data += i, t.setState(tt)), !0
5975                }
5976
5977                function et(e) {
5978                    var i = e.char();
5979                    return i === r.EOF ? (t._parseError("eof-in-comment"), t._emitToken(t._currentToken), e.unget(i), t.setState(n)) : i === "-" ? t.setState(rt) : i === ">" ? (t._parseError("incorrect-comment"), t._emitToken(t._currentToken), t.setState(n)) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentToken.data += "\ufffd") : (t._currentToken.data += "-" + i, t.setState(tt)), !0
5980                }
5981
5982                function tt(e) {
5983                    var i = e.char();
5984                    return i === r.EOF ? (t._parseError("eof-in-comment"), t._emitToken(t._currentToken), e.unget(i), t.setState(n)) : i === "-" ? t.setState(nt) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentToken.data += "\ufffd") : (t._currentToken.data += i, e.commit()), !0
5985                }
5986
5987                function nt(e) {
5988                    var i = e.char();
5989                    return i === r.EOF ? (t._parseError("eof-in-comment-end-dash"), t._emitToken(t._currentToken), e.unget(i), t.setState(n)) : i === "-" ? t.setState(rt) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentToken.data += "-\ufffd", t.setState(tt)) : (t._currentToken.data += "-" + i + e.matchUntil("\0|-"), e.char()), !0
5990                }
5991
5992                function rt(e) {
5993                    var i = e.char();
5994                    return i === r.EOF ? (t._parseError("eof-in-comment-double-dash"), t._emitToken(t._currentToken), e.unget(i), t.setState(n)) : i === ">" ? (t._emitToken(t._currentToken), t.setState(n)) : i === "!" ? (t._parseError("unexpected-bang-after-double-dash-in-comment"), t.setState(it)) : i === "-" ? (t._parseError("unexpected-dash-after-double-dash-in-comment"), t._currentToken.data += i) : i === "\0" ? (t._parseError("invalid-codepoint"), t._currentToken.data += "--\ufffd", t.setState(tt)) : (t._parseError("unexpected-char-in-comment"), t._currentToken.data += "--" + i, t.setState(tt)), !0
5995                }
5996
5997                function it(e) {
5998                    var i = e.char();
5999                    return i === r.EOF ? (t._parseError("eof-in-comment-end-bang-state"), t._emitToken(t._currentToken), e.unget(i), t.setState(n)) : i === ">" ? (t._emitToken(t._currentToken), t.setState(n)) : i === "-" ? (t._currentToken.data += "--!", t.setState(nt)) : (t._currentToken.data += "--!" + i, t.setState(tt)), !0
6000                }
6001
6002                function st(e) {
6003                    var i = e.char();
6004                    return i === r.EOF ? (t._parseError("expected-doctype-name-but-got-eof"), t._currentToken.forceQuirks = !0, e.unget(i), t.setState(n), t._emitCurrentToken()) : s(i) ? t.setState(ot) : (t._parseError("need-space-after-doctype"), e.unget(i), t.setState(ot)), !0
6005                }
6006
6007                function ot(e) {
6008                    var i = e.char();
6009                    return i === r.EOF ? (t._parseError("expected-doctype-name-but-got-eof"), t._currentToken.forceQuirks = !0, e.unget(i), t.setState(n), t._emitCurrentToken()) : s(i) || (i === ">" ? (t._parseError("expected-doctype-name-but-got-right-bracket"), t._currentToken.forceQuirks = !0, t.setState(n), t._emitCurrentToken()) : (o(i) && (i = i.toLowerCase()), t._currentToken.name = i, t.setState(ut))), !0
6010                }
6011
6012                function ut(e) {
6013                    var i = e.char();
6014                    return i === r.EOF ? (t._currentToken.forceQuirks = !0, e.unget(i), t._parseError("eof-in-doctype-name"), t.setState(n), t._emitCurrentToken()) : s(i) ? t.setState(at) : i === ">" ? (t.setState(n), t._emitCurrentToken()) : (o(i) && (i = i.toLowerCase()), t._currentToken.name += i, e.commit()), !0
6015                }
6016
6017                function at(e) {
6018                    var i = e.char();
6019                    if (i === r.EOF) t._currentToken.forceQuirks = !0, e.unget(i), t._parseError("eof-in-doctype"), t.setState(n), t._emitCurrentToken(); else if (!s(i)) if (i === ">") t.setState(n), t._emitCurrentToken(); else {
6020                        if (["p", "P"].indexOf(i) > -1) {
6021                            var o = [["u", "U"], ["b", "B"], ["l", "L"], ["i", "I"], ["c", "C"]],
6022                                u = o.every(function (t) {
6023                                    return i = e.char(), t.indexOf(i) > -1
6024                                });
6025                            if (u) return t.setState(ft), !0
6026                        } else if (["s", "S"].indexOf(i) > -1) {
6027                            var o = [["y", "Y"], ["s", "S"], ["t", "T"], ["e", "E"], ["m", "M"]],
6028                                u = o.every(function (t) {
6029                                    return i = e.char(), t.indexOf(i) > -1
6030                                });
6031                            if (u) return t.setState(vt), !0
6032                        }
6033                        e.unget(i), t._currentToken.forceQuirks = !0, i === r.EOF ? (t._parseError("eof-in-doctype"), e.unget(i), t.setState(n), t._emitCurrentToken()) : (t._parseError("expected-space-or-right-bracket-in-doctype", {data: i}), t.setState(wt))
6034                    }
6035                    return !0
6036                }
6037
6038                function ft(e) {
6039                    var i = e.char();
6040                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, e.unget(i), t.setState(n), t._emitCurrentToken()) : s
6040(i) ? t.setState(lt) : i === "'" || i === '"' ? (t._parseError("unexpected-char-in-doctype"), e.unget(i), t.setState(lt)) : (e.unget(i), t.setState(lt)), !0
6041                }
6042
6043                function lt(e) {
6044                    var i = e.char();
6045                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, e.unget(i), t.setState(n), t._emitCurrentToken()) : s(i) || (i === '"' ? (t._currentToken.publicId = "", t.setState(ct)) : i === "'" ? (t._currentToken.publicId = "", t.setState(ht)) : i === ">" ? (t._parseError("unexpected-end-of-doctype"), t._currentToken.forceQuirks = !0, t.setState(n), t._emitCurrentToken()) : (t._parseError("unexpected-char-in-doctype"), t._currentToken.forceQuirks = !0, t.setState(wt))), !0
6046                }
6047
6048                function ct(e) {
6049                    var i = e.char();
6050                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, e.unget(i), t.setState(n), t._emitCurrentToken()) : i === '"' ? t.setState(pt) : i === ">" ? (t._parseError("unexpected-end-of-doctype"), t._currentToken.forceQuirks = !0, t.setState(n), t._emitCurrentToken()) : t._currentToken.publicId += i, !0
6051                }
6052
6053                function ht(e) {
6054                    var i = e.char();
6055                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, e.unget(i), t.setState(n), t._emitCurrentToken()) : i === "'" ? t.setState(pt) : i === ">" ? (t._parseError("unexpected-end-of-doctype"), t._currentToken.forceQuirks = !0, t.setState(n), t._emitCurrentToken()) : t._currentToken.publicId += i, !0
6056                }
6057
6058                function pt(e) {
6059                    var i = e.char();
6060                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), e.unget(i), t.setState(n)) : s(i) ? t.setState(dt) : i === ">" ? (t.setState(n), t._emitCurrentToken()) : i === '"' ? (t._parseError("unexpected-char-in-doctype"), t._currentToken.systemId = "", t.setState(gt)) : i === "'" ? (t._parseError("unexpected-char-in-doctype"), t._currentToken.systemId = "", t.setState(yt)) : (t._parseError("unexpected-char-in-doctype"), t._currentToken.forceQuirks = !0, t.setState(wt)), !0
6061                }
6062
6063                function dt(e) {
6064                    var i = e.char();
6065                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), e.unget(i), t.setState(n)) : s(i) || (i === ">" ? (t._emitCurrentToken(), t.setState(n)) : i === '"' ? (t._currentToken.systemId = "", t.setState(gt)) : i === "'" ? (t._currentToken.systemId = "", t.setState(yt)) : (t._parseError("unexpected-char-in-doctype"), t._currentToken.forceQuirks = !0, t.setState(wt))), !0
6066                }
6067
6068                function vt(e) {
6069                    var i = e.char();
6070                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), e.unget(i), t.setState(n)) : s(i) ? t.setState(mt) : i === "'" || i === '"' ? (t._parseError("unexpected-char-in-doctype"), e.unget(i), t.setState(mt)) : (e.unget(i), t.setState(mt)), !0
6071                }
6072
6073                function mt(e) {
6074                    var i = e.char();
6075                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), e.unget(i), t.setState(n)) : s(i) || (i === '"' ? (t._currentToken.systemId = "", t.setState(gt)) : i === "'" ? (t._currentToken.systemId = "", t.setState(yt)) : i === ">" ? (t._parseError("unexpected-end-of-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), t.setState(n)) : (t._parseError("unexpected-char-in-doctype"), t._currentToken.forceQuirks = !0, t.setState(wt))), !0
6076                }
6077
6078                function gt(e) {
6079                    var i = e.char();
6080                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), e.unget(i), t.setState(n)) : i === '"' ? t.setState(bt) : i === ">" ? (t._parseError("unexpected-end-of-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), t.setState(n)) : t._currentToken.systemId += i, !0
6081                }
6082
6083                function yt(e) {
6084                    var i = e.char();
6085                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), e.unget(i), t.setState(n)) : i === "'" ? t.setState(bt) : i === ">" ? (t._parseError("unexpected-end-of-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), t.setState(n)) : t._currentToken.systemId += i, !0
6086                }
6087
6088                function bt(e) {
6089                    var i = e.char();
6090                    return i === r.EOF ? (t._parseError("eof-in-doctype"), t._currentToken.forceQuirks = !0, t._emitCurrentToken(), e.unget(i), t.setState(n)) : s(i) || (i === ">" ? (t._emitCurrentToken(), t.setState(n)) : (t._parseError("unexpected-char-in-doctype"), t.setState(wt))), !0
6091                }
6092
6093                function wt(e) {
6094                    var i = e.char();
6095                    return i === r.EOF ? (e.unget(i), t._emitCurrentToken(), t.setState(n)) : i === ">" && (t._emitCurrentToken(), t.setState(n)), !0
6096                }
6097
6098                u.DATA = n, u.RCDATA = f, u.RAWTEXT = c, u.SCRIPT_DATA = p, u.PLAINTEXT = h, this._state = u.DATA, this._inputStream.append(e), this._tokenHandler.startTokenization(this), this._inputStream.eof = !0;
6099                var t = this;
6100                while (this._state.call(this, this._inputStream)) ;
6101            }, Object.defineProperty(u.prototype, "lineNumber", {
6102                get: function () {
6103                    return this._inputStream.location().line
6104                }
6105            }), Object.defineProperty(u.prototype, "columnNumber", {
6106                get: function () {
6107                    return this._inputStream.location().column
6108                }
6109            }), n.Tokenizer = u
6110        }, {"./EntityParser": 2, "./InputStream": 3}], 6: [function (e, t, n) {
6111            function c(e) {
6112                return e === " " || e === "\n" || e === "	" || e === "\r" || e === "\f"
6113            }
6114
6115            function h(e) {
6116                return c(e) || e === "\ufffd"
6117            }
6118
6119            function p(e) {
6120                for (var t = 0; t < e.length; t++) {
6121                    var n = e[t];
6122                    if (!c(n)) return !1
6123                }
6124                return !0
6125            }
6126
6127            function d(e) {
6128                for (var t = 0; t < e.length; t++) {
6129                    var n = e[t];
6130                    if (!h(n)) return !1
6131                }
6132                return !0
6133            }
6134
6135            function v(e, t) {
6136                for (var n = 0; n < e.attributes.length; n++) {
6137                    var r = e.attributes[n];
6138                    if (r.nodeName === t) return r
6139                }
6140                return null
6141            }
6142
6143            function m(e) {
6144                this.characters = e, this.current = 0, this.end = this.characters.length
6145            }
6146
6147            function g() {
6148                this.tokenizer = null, this.errorHandler = null, this.scriptingEnabled = !1, this.document = null, this.head = null, this.form = null, this.openElements = new a, this.activeFormattingElements = [], this.insertionMode = null, this.insertionModeName = "", this.originalInsertionMode = "", this.inQuirksMode = !1, this.compatMode = "no quirks", this.framesetOk = !0, this.redirectAttachToFosterParent = !1, this.selfClosingFlagAcknowledged = !1, this.context = "", this.pendingTableCharacters = [], this.shouldSkipLeadingNewline = !1;
6149                var e = this, t = this.insertionModes = {};
6150                t.base = {
6151                    end_tag_handlers: {"-default": "endTagOther"},
6152                    start_tag_handlers: {"-default": "startTagOther"},
6153                    processEOF: function () {
6154                        e.generateImpliedEndTags(), e.openElements.length > 2 ? e.parseError("expected-closing-tag-but-got-eof") : e.openElements.length == 2 && e.openElements.item(1).localName != "body" ? e.parseError("expected-closing-tag-but-got-eof") : e.context && e.openElements.length > 1
6155                    },
6156                    processComment: function (t) {
6157                        e.insertComment(t, e.currentStackItem().node)
6158                    },
6159                    processDoctype: function (t, n, r, i) {
6160                        e.parseError("unexpected-doctype")
6161                    },
6162                    processStartTag: function (e, t, n) {
6163                        if (this[this.start_tag_handlers[e]]) this[this.start_tag_handlers[e]](e, t, n); else {
6164                            if (!this[this.start_tag_handlers["-default"]]) throw new Error("No handler found for " + e);
6165                            this[this.start_tag_handlers["-default"]](e, t, n)
6166                        }
6167                    },
6168                    processEndTag: function (e) {
6169                        if (this[this.end_tag_handlers[e]]) this[this.end_tag_handlers[e]](e); else {
6170                            if (!this[this.end_tag_handlers["-default"]]) throw new Error("No handler found for " + e);
6171                            this[this.end_tag_handlers["-default"]](e)
6172                        }
6173                    },
6174                    startTagHtml: function (e, n) {
6175                        t.inBody.startTagHtml(e, n)
6176                    }
6177                }, t.initial = Object.create(t.base), t.initial.processEOF = function () {
6178                    e.parseError("expected-doctype-but-got-eof"), this.anythingElse(), e.insertionMode.processEOF()
6179                }, t.initial.processComment = function (t) {
6180                    e.insertComment(t, e.document)
6181                }, t.initial.processDoctype = function (t, n, r, i) {
6182                    function s(e) {
6183                        return n.toLowerCase().indexOf(e) === 0
6184                    }
6185
6186                    e.insertDoctype(t || "", n || "", r || ""), i || t != "html" || n != null && (["+//silmaril//dtd html pro v0r11 19970101//", "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", "-/
6186/as//dtd html 3.0 aswedit + extensions//", "-//ietf//dtd html 2.0 level 1//", "-//ietf//dtd html 2.0 level 2//", "-//ietf//dtd html 2.0 strict level 1//", "-//ietf//dtd html 2.0 strict level 2//", "-//ietf//dtd html 2.0 strict//", "-//ietf//dtd html 2.0//", "-//ietf//dtd html 2.1e//", "-//ietf//dtd html 3.0//", "-//ietf//dtd html 3.0//", "-//ietf//dtd html 3.2 final//", "-//ietf//dtd html 3.2//", "-//ietf//dtd html 3//", "-//ietf//dtd html level 0//", "-//ietf//dtd html level 0//", "-//ietf//dtd html level 1//", "-//ietf//dtd html level 1//", "-//ietf//dtd html level 2//", "-//ietf//dtd html level 2//", "-//ietf//dtd html level 3//", "-//ietf//dtd html level 3//", "-//ietf//dtd html strict level 0//", "-//ietf//dtd html strict level 0//", "-//ietf//dtd html strict level 1//", "-//ietf//dtd html strict level 1//", "-//ietf//dtd html strict level 2//", "-//ietf//dtd html strict level 2//", "-//ietf//dtd html strict level 3//", "-//ietf//dtd html strict level 3//", "-//ietf//dtd html strict//", "-//ietf//dtd html strict//", "-//ietf//dtd html strict//", "-//ietf//dtd html//", "-//ietf//dtd html//", "-//ietf//dtd html//", "-//metrius//dtd metrius presentational//", "-//microsoft//dtd internet explorer 2.0 html strict//", "-//microsoft//dtd internet explorer 2.0 html//", "-//microsoft//dtd internet explorer 2.0 tables//", "-//microsoft//dtd internet explorer 3.0 html strict//", "-//microsoft//dtd internet explorer 3.0 html//", "-//microsoft//dtd internet explorer 3.0 tables//", "-//netscape comm. corp.//dtd html//", "-//netscape comm. corp.//dtd strict html//", "-//o'reilly and associates//dtd html 2.0//", "-//o'reilly and associates//dtd html extended 1.0//", "-//spyglass//dtd html 2.0 extended//", "-//sq//dtd html 2.0 hotmetal + extensions//", "-/
6186/sun microsystems corp.//dtd hotjava html//", "-//sun microsystems corp.//dtd hotjava strict html//", "-//w3c//dtd html 3 1995-03-24//", "-//w3c//dtd html 3.2 draft//", "-//w3c//dtd html 3.2 final//", "-//w3c//dtd html 3.2//", "-//w3c//dtd html 3.2s draft//", "-//w3c//dtd html 4.0 frameset//", "-//w3c//dtd html 4.0 transitional//", "-//w3c//dtd html experimental 19960712//", "-//w3c//dtd html experimental 970421//", "-//w3c//dtd w3 html//", "-//w3o//dtd w3 html 3.0//", "-//webtechs//dtd mozilla html 2.0//", "-//webtechs//dtd mozilla html//", "html"].some(s) || ["-//w3o//dtd w3 html strict 3.0//en//", "-/w3c/dtd html 4.0 transitional/en", "html"].indexOf(n.toLowerCase()) > -1 || r == null && ["-//w3c//dtd html 4.01 transitional//", "-//w3c//dtd html 4.01 frameset//"].some(s)) || r != null && r.toLowerCase() == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" ? (e.compatMode = "quirks", e.parseError("quirky-doctype")) : n != null && (["-//w3c//dtd xhtml 1.0 transitional//", "-//w3c//dtd xhtml 1.0 frameset//"].some(s) || r != null && ["-//w3c//dtd html 4.01 transitional//", "-//w3c//dtd html 4.01 frameset//"].indexOf(n.toLowerCase()) > -1) ? (e.compatMode = "limited quirks", e.parseError("almost-standards-doctype")) : n == "-//W3C//DTD HTML 4.0//EN" && (r == null || r == "http://www.w3.org/TR/REC-html40/strict.dtd") || n == "-//W3C//DTD HTML 4.01//EN" && (r == null || r == "http://www.w3.org/TR/html4/strict.dtd") || n == "-//W3C//DTD XHTML 1.0 Strict//EN" && r == "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" || n == "-//W3C//DTD XHTML 1.1//EN" && r == "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" || (r != null && r != "about:legacy-compat" || n != null) && e.parseError("unknown-doctype"), e.setInsertionMode("beforeHTML")
6187                }, t.initial.processCharacters = function (t) {
6188                    t.skipLeadingWhitespace();
6189                    if (!t.length) return;
6190                    e.parseError("expected-doctype-but-got-chars"), this.anythingElse(), e.insertionMode.processCharacters(t)
6191                }, t.initial.processStartTag = function (t, n, r) {
6192                    e.parseError("expected-doctype-but-got-start-tag", {name: t}), this.anythingElse(), e.insertionMode.processStartTag(t, n, r)
6193                }, t.initial.processEndTag = function (t) {
6194                    e.parseError("expected-doctype-but-got-end-tag", {name: t}), this.anythingElse(), e.insertionMode.processEndTag(t)
6195                }, t.initial.anythingElse = function () {
6196                    e.compatMode = "quirks", e.setInsertionMode("beforeHTML")
6197                }, t.beforeHTML = Object.create(t.base), t.beforeHTML.start_tag_handlers = {
6198                    html: "startTagHtml",
6199                    "-default": "startTagOther"
6200                }, t.beforeHTML.processEOF = function () {
6201                    this.anythingElse(), e.insertionMode.processEOF()
6202                }, t.beforeHTML.processComment = function (t) {
6203                    e.insertComment(t, e.document)
6204                }, t.beforeHTML.processCharacters = function (t) {
6205                    t.skipLeadingWhitespace();
6206                    if (!t.length) return;
6207                    this.anythingElse(), e.insertionMode.processCharacters(t)
6208                }, t.beforeHTML.startTagHtml = function (t, n, r) {
6209                    e.insertHtmlElement(n), e.setInsertionMode("beforeHead")
6210                }, t.beforeHTML.startTagOther = function (t, n, r) {
6211                    this.anythingElse(), e.insertionMode.processStartTag(t, n, r)
6212                }, t.beforeHTML.processEndTag = function (t) {
6213                    this.anythingElse(), e.insertionMode.processEndTag(t)
6214                }, t.beforeHTML.anythingElse = function () {
6215                    e.insertHtmlElement(), e.setInsertionMode("beforeHead")
6216                }, t.afterAfterBody = Object.create(t.base), t.afterAfterBody.start_tag_handlers = {
6217                    html: "startTagHtml",
6218                    "-default": "startTagOther"
6219                }, t.afterAfterBody.processComment = function (t) {
6220                    e.insertComment(t, e.document)
6221                }, t.afterAfterBody.processDoctype = function (e) {
6222                    t.inBody.processDoctype(e)
6223                }, t.afterAfterBody.startTagHtml = function (e, n) {
6224                    t.inBody.startTagHtml(e, n)
6225                }, t.afterAfterBody.startTagOther = function (t, n, r) {
6226                    e.parseError("unexpected-start-tag", {name: t}), e.setInsertionMode("inBody"), e.insertionMode.processStartTag(t, n, r)
6227                }, t.afterAfterBody.endTagOther = function (t) {
6228                    e.parseError("unexpected-end-tag", {name: t}), e.setInsertionMode("inBody"), e.insertionMode.processEndTag(t)
6229                }, t.afterAfterBody.processCharacters = function (n) {
6230                    if (!p(n.characters)) return e.parseError("unexpected-char-after-body"), e.setInsertionMode("inBody"), e.insertionMode.processCharacters(n);
6231                    t.inBody.processCharacters(n)
6232                }, t.afterBody = Object.create(t.base), t.afterBody.end_tag_handlers = {
6233                    html: "endTagHtml",
6234                    "-default": "endTagOther"
6235                }, t.afterBody.processComment = function (t) {
6236                    e.insertComment(t, e.openElements.rootNode)
6237                }, t.afterBody.processCharacters = function (n) {
6238                    if (!p(n.characters)) return e.parseError("unexpected-char-after-body"), e.setInsertionMode("inBody"), e.insertionMode.processCharacters(n);
6239                    t.inBody.processCharacters(n)
6240                }, t.afterBody.processStartTag = function (t, n, r) {
6241                    e.parseError("unexpected-start-tag-after-body", {name: t}), e.setInsertionMode("inBody"), e.insertionMode.processStartTag(t, n, r)
6242                }, t.afterBody.endTagHtml = function (t) {
6243                    e.context ? e.parseError("end-html-in-innerhtml") : e.setInsertionMode("afterAfterBody")
6244                }, t.afterBody.endTagOther = function (t) {
6245                    e.parseError("unexpected-end-tag-after-body", {name: t}), e.setInsertionMode("inBody"), e.insertionMode.processEndTag(t)
6246                }, t.afterFrameset = Object.create(t.base), t.afterFrameset.start_tag_handlers = {
6247                    html: "startTagHtml",
6248                    noframes: "startTagNoframes",
6249                    "-default": "startTagOther"
6250                }, t.afterFrameset.end_tag_handlers = {
6251                    html: "endTagHtml",
6252                    "-default": "endTagOther"
6253                }, t.afterFrameset.processCharacters = function (t) {
6254                    var n = t.takeRemaining(), r = "";
6255                    for (var i = 0; i < n.length; i++) {
6256                        var s = n[i];
6257                        c(s) && (r += s)
6258                    }
6259                    r && e.insertText(r), r.length < n.length && e.parseError("expected-eof-but-got-char")
6260                }, t.afterFrameset.startTagNoframes = function (e, n) {
6261                    t.inHead.processStartTag(e, n)
6262                }, t.afterFrameset.startTagOther = function (t, n) {
6263                    e.parseError("unexpected-start-tag-after-frameset", {name: t})
6264                }, t.afterFrameset.endTagHtml = function (t) {
6265                    e.setInsertionMode("afterAfterFrameset")
6266                }, t.afterFrameset.endTagOther = function (t) {
6267                    e.parseError("unexpected-end-tag-after-frameset", {name: t})
6268                }, t.beforeHead = Object.create(t.base), t.beforeHead.start_tag_handlers = {
6269                    html: "startTagHtml",
6270                    head: "startTagHead",
6271                    "-default": "startTagOther"
6272                }, t.beforeHead.end_tag_handlers = {
6273                    html: "endTagImplyHead",
6274                    head: "endTagImplyHead",
6275                    body: "endTagImplyHead",
6276                    br: "endTagImplyHead",
6277                    "-default": "endTagOther"
6278                }, t.beforeHead.processEOF = function () {
6279                    this.startTagHead("head", []), e.insertionMode.processEOF()
6280                }, t.beforeHead.processCharacters = function (t) {
6281                    t.skipLeadingWhitespace();
6282                    if (!t.length) return;
6283                    this.startTagHead("head", []), e.insertionMode.processCharacters(t)
6284                }, t.beforeHead.startTagHead = function (t, n) {
6285                    e.insertHeadElement(n), e.setInsertionMode("inHead")
6286                }, t.beforeHead.startTagOther = function (t, n, r) {
6287                    this.startTagHead("head", []), e.insertionMode.processStartTag(t, n, r)
6288                }, t.beforeHead.endTagImplyHead = function (t) {
6289                    this.startTagHead("head", []), e.insertionMode.processEndTag(t)
6290                }, t.beforeHead.endTagOther = function (t) {
6291                    e.parseError("end-tag-after-implied-root", {name: t})
6292                }, t.inHead = Object.create(t.base), t.inHead.start_tag_handlers = {
6293                    html: "startTagHtml",
6294                    head: "startTagHead",
6295                    title: "startTagTitle",
6296                    script: "startTagScript",
6297                    style: "startTagNoFramesStyle",
6298                    noscript: "startTagNoScript",
6299                    noframes: "startTagNoFramesStyle",
6300                    base: "startTagBaseBasefontBgsoundLink",
6301                    basefont: "startTagBaseBasefontBgsoundLink",
6302                    bgsound: "startTagBaseBasefontBgsoundLink",
6303                    link: "startTagBaseBasefontBgsoundLink",
6304                    meta: "startTagMeta",
6305                    "-default": "startTagOther"
6306                }, t.inHead.end_tag_handlers = {
6307                    head: "endTagHead",
6308                    html: "endTagHtmlBodyBr",
6309                    body: "endTagHtmlBodyBr",
6310                    br: "endTagHtmlBodyBr",
6311                    "-default": "endTagOther"
6312                }, t.inHead.processEOF = function () {
6313                    var t = e.currentStackItem().localName;
6314                    ["title", "style", "script"].indexOf(t) != -1 && (e.parseError("expected-named-closing-tag-but-got-eof", {name: t}), e.popElement()), this.anythingElse(), e.insertionMode.processEOF()
6315                }, t.inHead.processCharacters = function (t) {
6316                    var n = t.takeLeadingWhitespace();
6317                    n && e.insertText(n);
6318                    if (!t.length) return;
6319                    this.anythingElse(), e.insertionMode.processCharacters(t)
6320                }, t.inHead.startTagHtml = function (e, n) {
6321                    t.inBody.processStartTag(e, n)
6322                }, t.inHead.startTagHead = function (t, n) {
6323                    e.parseError("two-heads-are-not-better-than-one")
6324                }, t.inHead.startTagTitle = function (t, n) {
6325                    e.processGenericRCDATAStartTag(t, n)
6326                }, t.inHead.startTagNoScript = function (t, n) {
6327                    if (e.scriptingEnabled) return e.processGenericRawTextStartTag(t, n);
6328                    e.insertElement(t, n), e.setInsertionMode("inHeadNoscript")
6329                }, t.inHead.startTagNoFramesStyle = function (t, n) {
6330                    e.processGenericRawTextStartTag(t, n)
6331                }, t.inHead.startTagScript = function (t, n) {
6332                    e.insertElement(t, n), e.tokenizer.setState(u.SCRIPT_DATA), e.originalInsertionMode = e.insertionModeName, e.setInsertionMode("text")
6333                }, t.inHead.startTagBaseBasefontBgsoundLink = function (t, n) {
6334                    e.insertSelfClosingElement(t, n)
6335                }, t.inHead.startTagMeta = function (t, n) {
6336                    e.insertSelfClosingElement(t, n)
6337                }, t.inHead.startTagOther = function (t, n, r) {
6338                    this.anythingElse(), e.insertionMode.processStartTag(t, n, r)
6339                }, t.inHead.endTagHead = function (t) {
6340                    e.openElements.item(e.openElements.length - 1).localName == "head" ? e.o
6340penElements.pop() : e.parseError("unexpected-end-tag", {name: "head"}), e.setInsertionMode("afterHead")
6341                }, t.inHead.endTagHtmlBodyBr = function (t) {
6342                    this.anythingElse(), e.insertionMode.processEndTag(t)
6343                }, t.inHead.endTagOther = function (t) {
6344                    e.parseError("unexpected-end-tag", {name: t})
6345                }, t.inHead.anythingElse = function () {
6346                    this.endTagHead("head")
6347                }, t.afterHead = Object.create(t.base), t.afterHead.start_tag_handlers = {
6348                    html: "startTagHtml",
6349                    head: "startTagHead",
6350                    body: "startTagBody",
6351                    frameset: "startTagFrameset",
6352                    base: "startTagFromHead",
6353                    link: "startTagFromHead",
6354                    meta: "startTagFromHead",
6355                    script: "startTagFromHead",
6356                    style: "startTagFromHead",
6357                    title: "startTagFromHead",
6358                    "-default": "startTagOther"
6359                }, t.afterHead.end_tag_handlers = {
6360                    body: "endTagBodyHtmlBr",
6361                    html: "endTagBodyHtmlBr",
6362                    br: "endTagBodyHtmlBr",
6363                    "-default": "endTagOther"
6364                }, t.afterHead.processEOF = function () {
6365                    this.anythingElse(), e.insertionMode.processEOF()
6366                }, t.afterHead.processCharacters = function (t) {
6367                    var n = t.takeLeadingWhitespace();
6368                    n && e.insertText(n);
6369                    if (!t.length) return;
6370                    this.anythingElse(), e.insertionMode.processCharacters(t)
6371                }, t.afterHead.startTagHtml = function (e, n) {
6372                    t.inBody.processStartTag(e, n)
6373                }, t.afterHead.startTagBody = function (t, n) {
6374                    e.framesetOk = !1, e.insertBodyElement(n), e.setInsertionMode("inBody")
6375                }, t.afterHead.startTagFrameset = function (t, n) {
6376                    e.insertElement(t, n), e.setInsertionMode("inFrameset")
6377                }, t.afterHead.startTagFromHead = function (n, r, i) {
6378                    e.parseError("unexpected-start-tag-out-of-my-head", {name: n}), e.openElements.push(e.head), t.inHead.processStartTag(n, r, i), e.openElements.remove(e.head)
6379                }, t.afterHead.startTagHead = function (t, n, r) {
6380                    e.parseError("unexpected-start-tag", {name: t})
6381                }, t.afterHead.startTagOther = function (t, n, r) {
6382                    this.anythingElse(), e.insertionMode.processStartTag(t, n, r)
6383                }, t.afterHead.endTagBodyHtmlBr = function (t) {
6384                    this.anythingElse(), e.insertionMode.processEndTag(t)
6385                }, t.afterHead.endTagOther = function (t) {
6386                    e.parseError("unexpected-end-tag", {name: t})
6387                }, t.afterHead.anythingElse = function () {
6388                    e.insertBodyElement([]), e.setInsertionMode("inBody"), e.framesetOk = !0
6389                }, t.inBody = Object.create(t.base), t.inBody.start_tag_handlers = {
6390                    html: "startTagHtml",
6391                    head: "startTagMisplaced",
6392                    base: "startTagProcessInHead",
6393                    basefont: "startTagProcessInHead",
6394                    bgsound: "startTagProcessInHead",
6395                    link: "startTagProcessInHead",
6396                    meta: "startTagProcessInHead",
6397                    noframes: "startTagProcessInHead",
6398                    script: "startTagProcessInHead",
6399                    style: "startTagProcessInHead",
6400                    title: "startTagProcessInHead",
6401                    body: "startTagBody",
6402                    form: "startTagForm",
6403                    plaintext: "startTagPlaintext",
6404                    a: "startTagA",
6405                    button: "startTagButton",
6406                    xmp: "startTagXmp",
6407                    table: "startTagTable",
6408                    hr: "startTagHr",
6409                    image: "startTagImage",
6410                    input: "startTagInput",
6411                    textarea: "startTagTextarea",
6412                    select: "startTagSelect",
6413                    isindex: "startTagIsindex",
6414                    applet: "startTagAppletMarqueeObject",
6415                    marquee: "startTagAppletMarqueeObject",
6416                    object: "startTagAppletMarqueeObject",
6417                    li: "startTagListItem",
6418                    dd: "startTagListItem",
6419                    dt: "startTagListItem",
6420                    address: "startTagCloseP",
6421                    article: "startTagCloseP",
6422                    aside: "startTagCloseP",
6423                    blockquote: "startTagCloseP",
6424                    center: "startTagCloseP",
6425                    details: "startTagCloseP",
6426                    dir: "startTagCloseP",
6427                    div: "startTagCloseP",
6428                    dl: "startTagCloseP",
6429                    fieldset: "startTagCloseP",
6430                    figcaption: "startTagCloseP",
6431                    figure: "startTagCloseP",
6432                    footer: "startTagCloseP",
6433                    header: "startTagCloseP",
6434                    hgroup: "startTagCloseP",
6435                    main: "startTagCloseP",
6436                    menu: "startTagCloseP",
6437                    nav: "startTagCloseP",
6438                    ol: "startTagCloseP",
6439                    p: "startTagCloseP",
6440                    section: "startTagCloseP",
6441                    summary: "startTagCloseP",
6442                    ul: "startTagCloseP",
6443                    listing: "startTagPreListing",
6444                    pre: "startTagPreListing",
6445                    b: "startTagFormatting",
6446                    big: "startTagFormatting",
6447                    code: "startTagFormatting",
6448                    em: "startTagFormatting",
6449                    font: "startTagFormatting",
6450                    i: "startTagFormatting",
6451                    s: "startTagFormatting",
6452                    small: "startTagFormatting",
6453                    strike: "startTagFormatting",
6454                    strong: "startTagFormatting",
6455                    tt: "startTagFormatting",
6456                    u: "startTagFormatting",
6457                    nobr: "startTagNobr",
6458                    area: "startTagVoidFormatting",
6459                    br: "startTagVoidFormatting",
6460                    embed: "startTagVoidFormatting",
6461                    img: "startTagVoidFormatting",
6462                    keygen: "startTagVoidFormatting",
6463                    wbr: "startTagVoidFormatting",
6464                    param: "startTagParamSourceTrack",
6465                    source: "startTagParamSourceTrack",
6466                    track: "startTagParamSourceTrack",
6467                    iframe: "startTagIFrame",
6468                    noembed: "startTagRawText",
6469                    noscript: "startTagRawText",
6470                    h1: "startTagHeading",
6471                    h2: "startTagHeading",
6472                    h3: "startTagHeading",
6473                    h4: "startTagHeading",
6474                    h5: "startTagHeading",
6475                    h6: "startTagHeading",
6476                    caption: "startTagMisplaced",
6477                    col: "startTagMisplaced",
6478                    colgroup: "startTagMisplaced",
6479                    frame: "startTagMisplaced",
6480                    frameset: "startTagFrameset",
6481                    tbody: "startTagMisplaced",
6482                    td: "startTagMisplaced",
6483                    tfoot: "startTagMisplaced",
6484                    th: "startTagMisplaced",
6485                    thead: "startTagMisplaced",
6486                    tr: "startTagMisplaced",
6487                    option: "startTagOptionOptgroup",
6488                    optgroup: "startTagOptionOptgroup",
6489                    math: "startTagMath",
6490                    svg: "startTagSVG",
6491                    rt: "startTagRpRt",
6492                    rp: "startTagRpRt",
6493                    "-default": "startTagOther"
6494                }, t.inBody.end_tag_handlers = {
6495                    p: "endTagP",
6496                    body: "endTagBody",
6497                    html: "endTagHtml",
6498                    address: "endTagBlock",
6499                    article: "endTagBlock",
6500                    aside: "endTagBlock",
6501                    blockquote: "endTagBlock",
6502                    button: "endTagBlock",
6503                    center: "endTagBlock",
6504                    details: "endTagBlock",
6505                    dir: "endTagBlock",
6506                    div: "endTagBlock",
6507                    dl: "endTagBlock",
6508                    fieldset: "endTagBlock",
6509                    figcaption: "endTagBlock",
6510                    figure: "endTagBlock",
6511                    footer: "endTagBlock",
6512                    header: "endTagBlock",
6513                    hgroup: "endTagBlock",
6514                    listing: "endTagBlock",
6515                    main: "endTagBlock",
6516                    menu: "endTagBlock",
6517                    nav: "endTagBlock",
6518                    ol: "endTagBlock",
6519                    pre: "endTagBlock",
6520                    section: "endTagBlock",
6521                    summary: "endTagBlock",
6522                    ul: "endTagBlock",
6523                    form: "endTagForm",
6524                    applet: "endTagAppletMarqueeObject",
6525                    marquee: "endTagAppletMarqueeObject",
6526                    object: "endTagAppletMarqueeObject",
6527                    dd: "endTagListItem",
6528                    dt: "endTagListItem",
6529                    li: "endTagListItem",
6530                    h1: "endTagHeading",
6531                    h2: "endTagHeading",
6532                    h3: "endTagHeading",
6533                    h4: "endTagHeading",
6534                    h5: "endTagHeading",
6535                    h6: "endTagHeading",
6536                    a: "endTagFormatting",
6537                    b: "endTagFormatting",
6538                    big: "endTagFormatting",
6539                    code: "endTagFormatting",
6540                    em: "endTagFormatting",
6541                    font: "endTagFormatting",
6542                    i: "endTagFormatting",
6543                    nobr: "endTagFormatting",
6544                    s: "endTagFormatting",
6545                    small: "endTagFormatting",
6546                    strike: "endTagFormatting",
6547                    strong: "endTagFormatting",
6548                    tt: "endTagFormatting",
6549                    u: "endTagFormatting",
6550                    br: "endTagBr",
6551                    "-default": "endTagOther"
6552                }, t.inBody.processCharacters = function (t) {
6553                    e.shouldSkipLeadingNewline && (e.shouldSkipLeadingNewline = !1, t.skipAtMostOneLeadingNewline()), e.reconstructActiveFormattingElements();
6554                    var n = t.takeRemaining();
6555                    n = n.replace(/\u0000/g, function (t, n) {
6556                        return e.parseError("invalid-codepoint"), ""
6557                    });
6558                    if (!n) return;
6559                    e.insertText(n), e.framesetOk && !d(n) && (e.framesetOk = !1)
6560                }, t.inBody.startTagHtml = function (t, n) {
6561                    e.parseError("non-html-root"), e.addAttributesToElement(e.openElements.rootNode, n)
6562                }, t.inBody.startTagProcessInHead = function (e, n) {
6563                    t.inHead.processStartTag(e, n)
6564                }, t.inBody.startTagBody = function (t, n) {
6565                    e.parseError("unexpected-start-tag", {name: "body"}), e.openElements.length == 1 || e.openElements.item(1).localName != "body" ? r.ok(e.context) : (e.framesetOk = !1, e.addAttributesToElement(e.openElements.bodyElement, n))
6566                }, t.inBody.startTagFrameset = function (t, n) {
6567                    e.parseError("unexpected-start-tag", {name: "frameset"});
6568                    if (e.openElements.length == 1 || e.openElements.item(1).localName != "body") r.ok(e.context); else if (e.framesetOk) {
6569                        e.detachFromParent(e.openElements.bodyElement);
6570                        while (e.openElements.length > 1) e.openElements.pop();
6571                        e.insertElement(t, n), e.setInsertionMode("inFrameset")
6572                    }
6573                }, t.inBody.startTagCloseP = function (t, n) {
6574                    e.openElements.inButtonScope("p") && this.endTagP("p"), e.insertElement(t, n)
6575                }, t.inBody.startTagPreListing = function (t, n) {
6576                    e.openElements.inButtonScope("p") && this.endTagP("p"), e.insertElement(t, n), e.framesetOk = !1, e.shouldSkipLeadingNewline = !0
6577                }, t.inBody.startTagForm = function (t, n) {
6578                    e.form ? e.parseError("unexpected-start-tag", {name: t}) : (e.openElements.inButtonScope("p") && this.endTagP("p"), e.insertElement(t, n), e.form = e.currentStackItem())
6579                }, t.inBody.startTagRpRt = function (t, n) {
6580                    e.openElements.inScope("ruby") && (e.generateImpliedEndTags(), e.currentStackItem().localName != "ruby" && e.parseError("unexpected-start-tag", {name: t})), e.insertElement(t, n)
6581                }, t.inBody.startTagListItem = function (t, n) {
6582                    var r = {li: ["li"], dd: ["dd", "dt"], dt: ["dd", "dt"]}, i = r[t], s = e.openElements;
6583                    for (var o = s.length - 1; o >= 0; o--) {
6584                        var u = s.item(o);
6585                        if (i.indexOf(u.localName) != -1) {
6586                            e.insertionMode.processEndTag(u.localName);
6587                            break
6588                        }
6589                        if (u.isSpecial() && u.localName !== "p" && u.localName !== "address" && u.localName !== "div") break
6590                    }
6591                    e.openElements.inButtonScope("p") && this.endTagP("p"), e.insertElement(t, n), e.framesetOk = !1
6592                }, t.inBody.startTagPlaintext = function (t, n) {
6593                    e.openElements.inButtonScope("p") && this.endTagP("p"), e.insertElement(t, n), e.tokenizer.setState(u.PLAINTEXT)
6594                }, t.inBody.startTagHeading = function (t, n) {
6595                    e.openElements.inButtonScope("p") && this.endTagP("p"), e.currentStackItem().isNumberedHeader() && (e.parseError("unexpected-start-tag", {name: t}), e.popElement()), e.insertElement(t, n)
6596                }, t.inBody.startTagA = function (t, n) {
6597                    var r = e.elementInActiveFormattingElements("a");
6598                    r && (e.parseError("unexpected-start-tag-implies-end-tag", {
6599                        startName: "a",
6600                        endName: "a"
6601                    }), e.adoptionAgencyEndTag("a"), e.openElements.contains(r) && e.openElements.remove(r), e.removeElementFromActiveFormattingElements(r)), e.reconstructActiveFormattingElements(), e.insertFormattingElement(t, n)
6602                }, t.inBody.startTagFormatting = function (t, n) {
6603                    e.reconstructActiveFormattingElements(), e.insertFormattingElement(t, n)
6604                }, t.inBody.startTagNobr = function (t, n) {
6605                    e.reconstructActiveFormattingElements(), e.o
6605penElements.inScope("nobr") && (e.parseError("unexpected-start-tag-implies-end-tag", {
6606                        startName: "nobr",
6607                        endName: "nobr"
6608                    }), this.processEndTag("nobr"), e.reconstructActiveFormattingElements()), e.insertFormattingElement(t, n)
6609                }, t.inBody.startTagButton = function (t, n) {
6610                    e.openElements.inScope("button") ? (e.parseError("unexpected-start-tag-implies-end-tag", {
6611                        startName: "button",
6612                        endName: "button"
6613                    }), this.processEndTag("button"), e.insertionMode.processStartTag(t, n)) : (e.framesetOk = !1, e.reconstructActiveFormattingElements(), e.insertElement(t, n))
6614                },t.inBody.startTagAppletMarqueeObject = function (t, n) {
6615                    e.reconstructActiveFormattingElements(), e.insertElement(t, n), e.activeFormattingElements.push(l), e.framesetOk = !1
6616                },t.inBody.endTagAppletMarqueeObject = function (t) {
6617                    e.openElements.inScope(t) ? (e.generateImpliedEndTags(), e.currentStackItem().localName != t && e.parseError("end-tag-too-early", {name: t}), e.openElements.popUntilPopped(t), e.clearActiveFormattingElements()) : e.parseError("unexpected-end-tag", {name: t})
6618                },t.inBody.startTagXmp = function (t, n) {
6619                    e.openElements.inButtonScope("p") && this.processEndTag("p"), e.reconstructActiveFormattingElements(), e.processGenericRawTextStartTag(t, n), e.framesetOk = !1
6620                },t.inBody.startTagTable = function (t, n) {
6621                    e.compatMode !== "quirks" && e.openElements.inButtonScope("p") && this.processEndTag("p"), e.insertElement(t, n), e.setInsertionMode("inTable"), e.framesetOk = !1
6622                },t.inBody.startTagVoidFormatting = function (t, n) {
6623                    e.reconstructActiveFormattingElements(), e.insertSelfClosingElement(t, n), e.framesetOk = !1
6624                },t.inBody.startTagParamSourceTrack = function (t, n) {
6625                    e.insertSelfClosingElement(t, n)
6626                },t.inBody.startTagHr = function (t, n) {
6627                    e.openElements.inButtonScope("p") && this.endTagP("p"), e.insertSelfClosingElement(t, n), e.framesetOk = !1
6628                },t.inBody.startTagImage = function (t, n) {
6629                    e.parseError("unexpected-start-tag-treated-as", {
6630                        originalName: "image",
6631                        newName: "img"
6632                    }), this.processStartTag("img", n)
6633                },t.inBody.startTagInput = function (t, n) {
6634                    var r = e.framesetOk;
6635                    this.startTagVoidFormatting(t, n);
6636                    for (var i in n) if (n[i].nodeName == "type") {
6637                        n[i].nodeValue.toLowerCase() == "hidden" && (e.framesetOk = r);
6638                        break
6639                    }
6640                },t.inBody.startTagIsindex = function (t, n) {
6641                    e.parseError("deprecated-tag", {name: "isindex"}), e.selfClosingFlagAcknowledged = !0;
6642                    if (e.form) return;
6643                    var r = [], i = [], s = "This is a searchable index. Enter search keywords: ";
6644                    for (var o in n) switch (n[o].nodeName) {
6645                        case"action":
6646                            r.push({nodeName: "action", nodeValue: n[o].nodeValue});
6647                            break;
6648                        case"prompt":
6649                            s = n[o].nodeValue;
6650                            break;
6651                        case"name":
6652                            break;
6653                        default:
6654                            i.push({nodeName: n[o].nodeName, nodeValue: n[o].nodeValue})
6655                    }
6656                    i.push({
6657                        nodeName: "name",
6658                        nodeValue: "isindex"
6659                    }), this.processStartTag("form", r), this.processStartTag("hr"), this.processStartTag("label"), this.processCharacters(new m(s)), this.processStartTag("input", i), this.processEndTag("label"), this.processStartTag("hr"), this.processEndTag("form")
6660                },t.inBody.startTagTextarea = function (t, n) {
6661                    e.insertElement(t, n), e.tokenizer.setState(u.RCDATA), e.originalInsertionMode = e.insertionModeName, e.shouldSkipLeadingNewline = !0, e.framesetOk = !1, e.setInsertionMode("text")
6662                },t.inBody.startTagIFrame = function (t, n) {
6663                    e.framesetOk = !1, this.startTagRawText(t, n)
6664                },t.inBody.startTagRawText = function (t, n) {
6665                    e.processGenericRawTextStartTag(t, n)
6666                },t.inBody.startTagSelect = function (t, n) {
6667                    e.reconstructActiveFormattingElements(), e.insertElement(t, n), e.framesetOk = !1;
6668                    var r = e.insertionModeName;
6669                    r == "inTable" || r == "inCaption" || r == "inColumnGroup" || r == "inTableBody" || r == "inRow" || r == "inCell" ? e.setInsertionMode("inSelectInTable") : e.setInsertionMode("inSelect")
6670                },t.inBody.startTagMisplaced = function (t, n) {
6671                    e.parseError("unexpected-start-tag-ignored", {name: t})
6672                },t.inBody.endTagMisplaced = function (t) {
6673                    e.parseError("unexpected-end-tag", {name: t})
6674                },t.inBody.endTagBr = function (t) {
6675                    e.parseError("unexpected-end-tag-treated-as", {
6676                        originalName: "br",
6677                        newName: "br element"
6678                    }), e.reconstructActiveFormattingElements(), e.insertElement(t, []), e.popElement()
6679                },t.inBody.startTagOptionOptgroup = function (t, n) {
6680                    e.currentStackItem().localName == "option" && e.popElement(), e.reconstructActiveFormattingElements(), e.insertElement(t, n)
6681                },t.inBody.startTagOther = function (t, n) {
6682                    e.reconstructActiveFormattingElements(), e.insertElement(t, n)
6683                },t.inBody.endTagOther = function (t) {
6684                    var n;
6685                    for (var r = e.openElements.length - 1; r > 0; r--) {
6686                        n = e.openElements.item(r);
6687                        if (n.localName == t) {
6688                            e.generateImpliedEndTags(t), e.currentStackItem().localName != t && e.parseError("unexpected-end-tag", {name: t}), e.openElements.remove_openElements_until(function (e) {
6689                                return e === n
6690                            });
6691                            break
6692                        }
6693                        if (n.isSpecial()) {
6694                            e.parseError("unexpected-end-tag", {name: t});
6695                            break
6696                        }
6697                    }
6698                },t.inBody.startTagMath = function (t, n, r) {
6699                    e.reconstructActiveFormattingElements(), n = e.adjustMathMLAttributes(n), n = e.adjustForeignAttributes(n), e.insertForeignElement(t, n, "http://www.w3.org/1998/Math/MathML", r)
6700                },t.inBody.startTagSVG = function (t, n, r) {
6701                    e.reconstructActiveFormattingElements(), n = e.adjustSVGAttributes(n), n = e.adjustForeignAttributes(n), e.insertForeignElement(t, n, "http://www.w3.org/2000/svg", r)
6702                },t.inBody.endTagP = function (t) {
6703                    e.openElements.inButtonScope("p") ? (e.generateImpliedEndTags("p"), e.currentStackItem().localName != "p" && e.parseError("unexpected-implied-end-tag", {name: "p"}
6703), e.openElements.popUntilPopped(t)) : (e.parseError("unexpected-end-tag", {name: "p"}), this.startTagCloseP("p", []), this.endTagP("p"))
6704                },t.inBody.endTagBody = function (t) {
6705                    if (!e.openElements.inScope("body")) {
6706                        e.parseError("unexpected-end-tag", {name: t});
6707                        return
6708                    }
6709                    e.currentStackItem().localName != "body" && e.parseError("expected-one-end-tag-but-got-another", {
6710                        expectedName: e.currentStackItem().localName,
6711                        gotName: t
6712                    }), e.setInsertionMode("afterBody")
6713                },t.inBody.endTagHtml = function (t) {
6714                    if (!e.openElements.inScope("body")) {
6715                        e.parseError("unexpected-end-tag", {name: t});
6716                        return
6717                    }
6718                    e.currentStackItem().localName != "body" && e.parseError("expected-one-end-tag-but-got-another", {
6719                        expectedName: e.currentStackItem().localName,
6720                        gotName: t
6721                    }), e.setInsertionMode("afterBody"), e.insertionMode.processEndTag(t)
6722                },t.inBody.endTagBlock = function (t) {
6723                    e.openElements.inScope(t) ? (e.generateImpliedEndTags(), e.currentStackItem().localName != t && e.parseError("end-tag-too-early", {name: t}), e.openElements.popUntilPopped(t)) : e.parseError("unexpected-end-tag", {name: t})
6724                },t.inBody.endTagForm = function (t) {
6725                    var n = e.form;
6726                    e.form = null, !n || !e.openElements.inScope(t) ? e.parseError("unexpected-end-tag", {name: t}) : (e.generateImpliedEndTags(), e.currentStackItem() != n && e.parseError("end-tag-too-early-ignored", {name: "form"}), e.openElements.remove(n))
6727                },t.inBody.endTagListItem = function (t) {
6728                    e.openElements.inListItemScope(t) ? (e.generateImpliedEndTags(t), e.currentStackItem().localName != t && e.parseError("end-tag-too-early", {name: t}), e.openElements.popUntilPopped(t)) : e.parseError("unexpected-end-tag", {name: t})
6729                },t.inBody.endTagHeading = function (t) {
6730                    if (!e.openElements.hasNumberedHeaderElementInScope()) {
6731                        e.parseError("unexpected-end-tag", {name: t});
6732                        return
6733                    }
6734                    e.generateImpliedEndTags(), e.currentStackItem().localName != t && e.parseError("end-tag-too-early", {name: t}), e.openElements.remove_openElements_until(function (e) {
6735                        return e.isNumberedHeader()
6736                    })
6737                },t.inBody.endTagFormatting = function (t, n) {
6738                    e.adoptionAgencyEndTag(t) || this.endTagOther(t, n)
6739                },t.inCaption = Object.create(t.base),t.inCaption.start_tag_handlers = {
6740                    html: "startTagHtml",
6741                    caption: "startTagTableElement",
6742                    col: "startTagTableElement",
6743                    colgroup: "startTagTableElement",
6744                    tbody: "startTagTableElement",
6745                    td: "startTagTableElement",
6746                    tfoot: "startTagTableElement",
6747                    thead: "startTagTableElement",
6748                    tr: "startTagTableElement",
6749                    "-default": "startTagOther"
6750                },t.inCaption.end_tag_handlers = {
6751                    caption: "endTagCaption",
6752                    table: "endTagTable",
6753                    body: "endTagIgnore",
6754                    col: "endTagIgnore",
6755                    colgroup: "endTagIgnore",
6756                    html: "endTagIgnore",
6757                    tbody: "endTagIgnore",
6758                    td: "endTagIgnore",
6759                    tfood: "endTagIgnore",
6760                    thead: "endTagIgnore",
6761                    tr: "endTagIgnore",
6762                    "-default": "endTagOther"
6763                },t.inCaption.processCharacters = function (e) {
6764                    t.inBody.processCharacters(e)
6765                },t.inCaption.startTagTableElement = function (t, n) {
6766                    e.parseError("unexpected-end-tag", {name: t});
6767                    var r = !e.openElements.inTableScope("caption");
6768                    e.insertionMode.processEndTag("caption"), r || e.insertionMode.processStartTag(t, n)
6769                },t.inCaption.startTagOther = function (e, n, r) {
6770                    t.inBody.processStartTag(e, n, r)
6771                },t.inCaption.endTagCaption = function (t) {
6772                    e.openElements.inTableScope("caption") ? (e.generateImpliedEndTags(), e.currentStackItem().localName != "caption" && e.parseError("expected-one-end-tag-but-got-another", {
6773                        gotName: "caption",
6774                        expectedName: e.currentStackItem().localName
6775                    }
6775), e.openElements.popUntilPopped("caption"), e.clearActiveFormattingElements(), e.setInsertionMode("inTable")) : (r.ok(e.context), e.parseError("unexpected-end-tag", {name: t}))
6776                },t.inCaption.endTagTable = function (t) {
6777                    e.parseError("unexpected-end-table-in-caption");
6778                    var n = !e.openElements.inTableScope("caption");
6779                    e.insertionMode.processEndTag("caption"), n || e.insertionMode.processEndTag(t)
6780                },t.inCaption.endTagIgnore = function (t) {
6781                    e.parseError("unexpected-end-tag", {name: t})
6782                },t.inCaption.endTagOther = function (e) {
6783                    t.inBody.processEndTag(e)
6784                },t.inCell = Object.create(t.base),t.inCell.start_tag_handlers = {
6785                    html: "startTagHtml",
6786                    caption: "startTagTableOther",
6787                    col: "startTagTableOther",
6788                    colgroup: "startTagTableOther",
6789                    tbody: "startTagTableOther",
6790                    td: "startTagTableOther",
6791                    tfoot: "startTagTableOther",
6792                    th: "startTagTableOther",
6793                    thead: "startTagTableOther",
6794                    tr: "startTagTableOther",
6795                    "-default": "startTagOther"
6796                },t.inCell.end_tag_handlers = {
6797                    td: "endTagTableCell",
6798                    th: "endTagTableCell",
6799                    body: "endTagIgnore",
6800                    caption: "endTagIgnore",
6801                    col: "endTagIgnore",
6802                    colgroup: "endTagIgnore",
6803                    html: "endTagIgnore",
6804                    table: "endTagImply",
6805                    tbody: "endTagImply",
6806                    tfoot: "endTagImply",
6807                    thead: "endTagImply",
6808                    tr: "endTagImply",
6809                    "-default": "endTagOther"
6810                },t.inCell.processCharacters = function (e) {
6811                    t.inBody.processCharacters(e)
6812                },t.inCell.startTagTableOther = function (t, n, r) {
6813                    e.openElements.inTableScope("td") || e.openElements.inTableScope("th") ? (this.closeCell(), e.insertionMode.processStartTag(t, n, r)) : e.parseError("unexpected-start-tag", {name: t})
6814                },t.inCell.startTagOther = function (e, n, r) {
6815                    t.inBody.processStartTag(e, n, r)
6816                },t.inCell.endTagTableCell = function (t) {
6817                    e.openElements.inTableScope(t) ? (e.generateImpliedEndTags(t), e.currentStackItem().localName != t.toLowerCase() ? (e.parseError("unexpected-cell-end-tag", {name: t}), e.openElements.popUntilPopped(t)) : e.popElement(), e.clearActiveFormattingElements(), e.setInsertionMode("inRow")) : e.parseError("unexpected-end-tag", {name: t})
6818                },t.inCell.endTagIgnore = function (t) {
6819                    e.parseError("unexpected-end-tag", {name: t})
6820                },t.inCell.endTagImply = function (t) {
6821                    e.openElements.inTableScope(t) ? (this.closeCell(), e.insertionMode.processEndTag(t)) : e.parseError("unexpected-end-tag", {name: t})
6822                },t.inCell.endTagOther = function (e) {
6823                    t.inBody.processEndTag(e)
6824                },t.inCell.closeCell = function () {
6825                    e.openElements.inTableScope("td") ? this.endTagTableCell("td") : e.openElements.inTableScope("th") && this.endTagTableCell("th")
6826                },t.inColumnGroup = Object.create(t.base),t.inColumnGroup.start_tag_handlers = {
6827                    html: "startTagHtml",
6828                    col: "startTagCol",
6829                    "-default": "startTagOther"
6830                },t.inColumnGroup.end_tag_handlers = {
6831                    colgroup: "endTagColgroup",
6832                    col: "endTagCol",
6833                    "-default": "endTagOther"
6834                },t.inColumnGroup.ignoreEndTagColgroup = function () {
6835                    return e.currentStackItem().localName == "html"
6836                },t.inColumnGroup.processCharacters = function (t) {
6837                    var n = t.takeLeadingWhitespace();
6838                    n && e.insertText(n);
6839                    if (!t.length) return;
6840                    var r = this.ignoreEndTagColgroup();
6841                    this.endTagColgroup("colgroup"), r || e.insertionMode.processCharacters(t)
6842                },t.inColumnGroup.startTagCol = function (t, n) {
6843                    e.insertSelfClosingElement(t, n)
6844                },t.inColumnGroup.startTagOther = function (t, n, r) {
6845                    var i = this.ignoreEndTagColgroup();
6846                    this.endTagColgroup("colgroup"), i || e.insertionMode.processStartTag(t, n, r)
6847                },t.inColumnGroup.endTagColgroup = function (t) {
6848                    this.ignoreEndTagColgroup() ? (r.ok(e.context), e.parseError("unexpected-end-tag", {name: t})) : (e.popElement(), e.setInsertionMode("inTable"))
6849                },t.inColumnGroup.endTagCol = function (t) {
6850                    e.parseError("no-end-tag", {name: "col"})
6851                },t.inColumnGroup.endTagOther = function (t) {
6852                    var n = this.ignoreEndTagColgroup();
6853                    this.endTagColgroup("colgroup"), n || e.insertionMode.processEndTag(t)
6854                },t.inForeignContent = Object.create(t.base),t.inForeignContent.processStartTag = function (t, n, r) {
6855                    if (["b", "big", "blockquote", "body", "br", "center", "code", "dd", "div", "dl", "dt", "em", "embed", "h1", "h2", "h3", "h4", "h5", "h6", "head", "hr", "i", "img", "li", "listing", "menu", "meta", "nobr", "ol", "p", "pre", "ruby", "s", "small", "span", "strong", "strike", "sub", "sup", "table", "tt", "u", "ul", "var"].indexOf(t) != -1 || t == "font" && n.some(function (e) {
6856                        return ["color", "face", "size"].indexOf(e.nodeName) >= 0
6857                    })) {
6858                        e.parseError("unexpected-html-element-in-foreign-content", {name: t});
6859                        while (e.currentStackItem().isForeign() && !e.currentStackItem().isHtmlIntegrationPoint() && !e.currentStackItem().isMathMLTextIntegrationPoint()) e.openElements.pop();
6860                        e.insertionMode.processStartTag(t, n, r);
6861                        return
6862                    }
6863                    e.currentStackItem().namespaceURI == "http://www.w3.org/1998/Math/MathML" && (n = e.adjustMathMLAttributes(n)), e.currentStackItem().namespaceURI == "http://www.w3.org/2000/svg" && (t = e.adjustSVGTagNameCase(t), n = e.adjustSVGAttributes(n)), n = e.adjustForeignAttributes(n), e.insertForeignElement(t, n, e.currentStackItem().namespaceURI, r)
6864                },t.inForeignContent.processEndTag = function (t) {
6865                    var n = e.currentStackItem(), r = e.openElements.length - 1;
6866                    n.localName.toLowerCase() != t && e.parseError("unexpected-end-tag", {name: t});
6867                    for (; ;) {
6868                        if (r === 0) break;
6869                        if (n.localName.toLowerCase() == t) {
6870                            while (e.openElements.pop() != n) ;
6871                            break
6872                        }
6873                        r -= 1, n = e.openElements.item(r);
6874                        if (n.isForeign()) continue;
6875                        e.insertionMode.processEndTag(t);
6876                        break
6877                    }
6878                },t.inForeignContent.processCharacters = function (t) {
6879                    var n = t.takeRemaining();
6880                    n = n.replace(/\u0000/g, function (t, n) {
6881                        return e.parseError("invalid-codepoint"), "\ufffd"
6882                    }), e.framesetOk && !d(n) && (e.framesetOk = !1), e.insertText(n)
6883                },t.inHeadNoscript = Object.create(t.base),t.inHeadNoscript.start_tag_handlers = {
6884                    html: "startTagHtml",
6885                    basefont: "startTagBasefontBgsoundLinkMetaNoframesStyle",
6886                    bgsound: "startTagBasefontBgsoundLinkMetaNoframesStyle",
6887                    link: "startTagBasefontBgsoundLinkMetaNoframesStyle",
6888                    meta: "startTagBasefontBgsoundLinkMetaNoframesStyle",
6889                    noframes: "startTagBasefontBgsoundLinkMetaNoframesStyle",
6890                    style: "startTagBasefontBgsoundLinkMetaNoframesStyle",
6891                    head: "startTagHeadNoscript",
6892                    noscript: "startTagHeadNoscript",
6893                    "-default": "startTagOther"
6894                },t.inHeadNoscript.end_tag_handlers = {
6895                    noscript: "endTagNoscript",
6896                    br: "endTagBr",
6897                    "-default": "endTagOther"
6898                },t.inHeadNoscript.processCharacters = function (t) {
6899                    var n = t.takeLeadingWhitespace();
6900                    n && e.insertText(n);
6901                    if (!t.length) return;
6902                    e.parseError("unexpected-char-in-frameset"), this.anythingElse(), e.insertionMode.processCharacters(t)
6903                },t.inHeadNoscript.processComment = function (e) {
6904                    t.inHead.processComment(e)
6905                },t.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle = function (e, n) {
6906                    t.inHead.processStartTag(e, n)
6907                },t.inHeadNoscript.startTagHeadNoscript = function (t, n) {
6908                    e.parseError("unexpected-start-tag-in-frameset", {name: t})
6909                },t.inHeadNoscript.startTagOther = function (t, n) {
6910                    e.parseError("unexpected-start-tag-in-frameset", {name: t}), this.anythingElse(), e.insertionMode.processStartTag(t, n)
6911                },t.inHeadNoscript.endTagBr = function (t, n) {
6912                    e.parseError("unexpected-end-tag-in-frameset", {name: t}), this.anythingElse(), e.insertionMode.processEndTag(t, n)
6913                },t.inHeadNoscript.endTagNoscript = function (t, n) {
6914                    e.popElement(), e.setInsertionMode("inHead")
6915                },t.inHeadNoscript.endTagOther = function (t, n) {
6916                    e.parseError("unexpected-end-tag-in-frameset", {name: t})
6917                },t.inHeadNoscript.anythingElse = function () {
6918                    e.popElement(), e.setInsertionMode("inHead")
6919                },t.inFrameset = Object.create(t.base),t.inFrameset.start_tag_handlers = {
6920                    html: "startTagHtml",
6921                    frameset: "startTagFrameset",
6922                    frame: "startTagFrame",
6923                    noframes: "startTagNoframes",
6924                    "-default": "startTagOther"
6925                },t.inFrameset.end_tag_handlers = {
6926                    frameset: "endTagFrameset",
6927                    noframes: "endTagNoframes",
6928                    "-default": "endTagOther"
6929                },t.inFrameset.processCharacters = function (t) {
6930                    e.parseError("unexpected-char-in-frameset")
6931                },t.inFrameset.startTagFrameset = function (t, n) {
6932                    e.insertElement(t, n)
6933                },t.inFrameset.startTagFrame = function (t, n) {
6934                    e.insertSelfClosingElement(t, n)
6935                },t.inFrameset.startTagNoframes = function (e, n) {
6936                    t.inBody.processStartTag(e, n)
6937                },t.inFrameset.startTagOther = function (t, n) {
6938                    e.parseError("unexpected-start-tag-in-frameset", {name: t})
6939                },t.inFrameset.endTagFrameset = function (t, n) {
6940                    e.currentStackItem().localName == "html" ? e.parseError("unexpected-frameset-in-frameset-innerhtml") : e.popElement(), !e.context && e.currentStackItem().localName != "frameset" && e.setInsertionMode("afterFrameset")
6941                },t.inFrameset.endTagNoframes = function (e) {
6942                    t.inBody.processEndTag(e)
6943                },t.inFrameset.endTagOther = function (t) {
6944                    e.parseError("unexpected-end-tag-in-frameset", {name: t})
6945                },t.inTable = Object.create(t.base),t.inTable.start_tag_handlers = {
6946                    html: "startTagHtml",
6947                    caption: "startTagCaption",
6948                    colgroup: "startTagColgroup",
6949                    col: "startTagCol",
6950                    table: "startTagTable",
6951                    tbody: "startTagRowGroup",
6952                    tfoot: "startTagRowGroup",
6953                    thead: "startTagRowGroup",
6954                    td: "startTagImplyTbody",
6955                    th: "startTagImplyTbody",
6956                    tr: "startTagImplyTbody",
6957                    style: "startTagStyleScript",
6958                    script: "startTagStyleScript",
6959                    input: "startTagInput",
6960                    form: "startTagForm",
6961                    "-default": "startTagOther"
6962                },t.inTable.end_tag_handlers = {
6963                    table: "endTagTable",
6964                    body: "endTagIgnore",
6965                    caption: "endTagIgnore",
6966                    col: "endTagIgnore",
6967                    colgroup: "endTagIgnore",
6968                    html: "endTagIgnore",
6969                    tbody: "endTagIgnore",
6970                    td: "endTagIgnore",
6971                    tfoot: "endTagIgnore",
6972                    th: "endTagIgnore",
6973                    thead: "endTagIgnore",
6974                    tr: "endTagIgnore",
6975                    "-default": "endTagOther"
6976                },t.inTable.processCharacters = function (n) {
6977                    if (e.currentStackItem().isFosterParenting()) {
6978                        var r = e.insertionModeName;
6979                        e.setInsertionMode("inTableText"), e.originalInsertionMode = r, e.insertionMode.processCharacters(n)
6980                    } else e.redirectAttachToFosterParent = !0, t.inBody.processCharacters(n), e.redirectAttachToFosterParent = !1
6981                },t.inTable.startTagCaption = function (t, n) {
6982                    e.openElements.popUntilTableScopeMarker(), e.activeFormattingElements.push(l), e.
6982insertElement(t, n), e.setInsertionMode("inCaption")
6983                },t.inTable.startTagColgroup = function (t, n) {
6984                    e.openElements.popUntilTableScopeMarker(), e.insertElement(t, n), e.setInsertionMode("inColumnGroup")
6985                },t.inTable.startTagCol = function (t, n) {
6986                    this.startTagColgroup("colgroup", []), e.insertionMode.processStartTag(t, n)
6987                },t.inTable.startTagRowGroup = function (t, n) {
6988                    e.openElements.popUntilTableScopeMarker(), e.insertElement(t, n), e.setInsertionMode("inTableBody")
6989                },t.inTable.startTagImplyTbody = function (t, n) {
6990                    this.startTagRowGroup("tbody", []), e.insertionMode.processStartTag(t, n)
6991                },t.inTable.startTagTable = function (t, n) {
6992                    e.parseError("unexpected-start-tag-implies-end-tag", {
6993                        startName: "table",
6994                        endName: "table"
6995                    }), e.insertionMode.processEndTag("table"), e.context || e.insertionMode.processStartTag(t, n)
6996                },t.inTable.startTagStyleScript = function (e, n) {
6997                    t.inHead.processStartTag(e, n)
6998                },t.inTable.startTagInput = function (t, n) {
6999                    for (var r in n) if (n[r].nodeName.toLowerCase() == "type") {
7000                        if (n[r].nodeValue.toLowerCase() == "hidden") {
7001                            e.parseError("unexpected-hidden-input-in-table"), e.insertElement(t, n), e.openElements.pop();
7002                            return
7003                        }
7004                        break
7005                    }
7006                    this.startTagOther(t, n)
7007                },t.inTable.startTagForm = function (t, n) {
7008                    e.parseError("unexpected-form-in-table"), e.form || (e.insertElement(t, n), e.form = e.currentStackItem(), e.openElements.pop())
7009                },t.inTable.startTagOther = function (n, r, i) {
7010                    e.parseError("unexpected-start-tag-implies-table-voodoo", {name: n}), e.redirectAttachToFosterParent = !0, t.inBody.processStartTag(n, r, i), e.redirectAttachToFosterParent = !1
7011                },t.inTable.endTagTable = function (t) {
7012                    e.openElements.inTableScope(t) ? (e.generateImpliedEndTags(), e.currentStackItem().localName != t && e.parseError("end-tag-too-early-named", {
7013                        gotName: "table",
7014                        expectedName: e.currentStackItem().localName
7015                    }
7015), e.openElements.popUntilPopped("table"), e.resetInsertionMode()) : (r.ok(e.context), e.parseError("unexpected-end-tag", {name: t}))
7016                },t.inTable.endTagIgnore = function (t) {
7017                    e.parseError("unexpected-end-tag", {name: t})
7018                },t.inTable.endTagOther = function (n) {
7019                    e.parseError("unexpected-end-tag-implies-table-voodoo", {name: n}), e.redirectAttachToFosterParent = !0, t.inBody.processEndTag(n), e.redirectAttachToFosterParent = !1
7020                },t.inTableText = Object.create(t.base),t.inTableText.flushCharacters = function () {
7021                    var t = e.pendingTableCharacters.join("");
7022                    p(t) ? e.insertText(t) : (e.redirectAttachToFosterParent = !0, e.reconstructActiveFormattingElements(), e.insertText(t), e.framesetOk = !1, e.redirectAttachToFosterParent = !1), e.pendingTableCharacters = []
7023                },t.inTableText.processComment = function (t) {
7024                    this.flushCharacters(), e.setInsertionMode(e.originalInsertionMode), e.insertionMode.processComment(t)
7025                },t.inTableText.processEOF = function (t) {
7026                    this.flushCharacters(), e.setInsertionMode(e.originalInsertionMode), e.insertionMode.processEOF()
7027                },t.inTableText.processCharacters = function (t) {
7028                    var n = t.takeRemaining();
7029                    n = n.replace(/\u0000/g, function (t, n) {
7030                        return e.parseError("invalid-codepoint"), ""
7031                    });
7032                    if (!n) return;
7033                    e.pendingTableCharacters.push(n)
7034                },t.inTableText.processStartTag = function (t, n, r) {
7035                    this.flushCharacters(), e.setInsertionMode(e.originalInsertionMode), e.insertionMode.processStartTag(t, n, r)
7036                },t.inTableText.processEndTag = function (t, n) {
7037                    this.flushCharacters(), e.setInsertionMode(e.originalInsertionMode), e.insertionMode.processEndTag(t, n)
7038                },t.inTableBody = Object.create(t.base),t.inTableBody.start_tag_handlers = {
7039                    html: "startTagHtml",
7040                    tr: "startTagTr",
7041                    td: "startTagTableCell",
7042                    th: "startTagTableCell",
7043                    caption: "startTagTableOther",
7044                    col: "startTagTableOther",
7045                    colgroup: "startTagTableOther",
7046                    tbody: "startTagTableOther",
7047                    tfoot: "startTagTableOther",
7048                    thead: "startTagTableOther",
7049                    "-default": "startTagOther"
7050                },t.inTableBody.end_tag_handlers = {
7051                    table: "endTagTable",
7052                    tbody: "endTagTableRowGroup",
7053                    tfoot: "endTagTableRowGroup",
7054                    thead: "endTagTableRowGroup",
7055                    body: "endTagIgnore",
7056                    caption: "endTagIgnore",
7057                    col: "endTagIgnore",
7058                    colgroup: "endTagIgnore",
7059                    html: "endTagIgnore",
7060                    td: "endTagIgnore",
7061                    th: "endTagIgnore",
7062                    tr: "endTagIgnore",
7063                    "-default": "endTagOther"
7064                },t.inTableBody.processCharacters = function (e) {
7065                    t.inTable.processCharacters(e)
7066                },t.inTableBody.startTagTr = function (t, n) {
7067                    e.openElements.popUntilTableBodyScopeMarker(), e.insertElement(t, n), e.setInsertionMode("inRow")
7068                },t.inTableBody.startTagTableCell = function (t, n) {
7069                    e.parseError("unexpected-cell-in-table-body", {name: t}), this.startTagTr("tr", []), e.insertionMode.processStartTag(t, n)
7070                },t.inTableBody.startTagTableOther = function (t, n) {
7071                    e.openElements.inTableScope("tbody") || e.openElements.inTableScope("thead") || e.openElements.inTableScope("tfoot") ? (e.openElements.popUntilTableBodyScopeMarker(), this.endTagTableRowGroup(e.currentStackItem().localName), e.insertionMode.processStartTag(t, n)) : e.parseError("unexpected-start-tag", {name: t})
7072                },t.inTableBody.startTagOther = function (e, n) {
7073                    t.inTable.processStartTag(e, n)
7074                },t.inTableBody.endTagTableRowGroup = function (t) {
7075                    e.openElements.inTableScope(t) ? (e.openElements.popUntilTableBodyScopeMarker(), e.popElement(), e.setInsertionMode("inTable")) : e.parseError("unexpected-end-tag-in-table-body", {name: t})
7076                },t.inTableBody.endTagTable = function (t) {
7077                    e.openElements.inTableScope("tbody") || e.openElements.inTableScope("thead") || e.openElements.inTableScope("tfoot") ? (e.openElements.popUntilTableBodyScopeMarker(), this.endTagTableRowGroup(e.currentStackItem().localName), e.insertionMode.processEndTag(t)) : e.parseError("unexpected-end-tag", {name: t})
7078                },t.inTableBody.endTagIgnore = function (t) {
7079                    e.parseError("unexpected-end-tag-in-table-body", {name: t})
7080                },t.inTableBody.endTagOther = function (e) {
7081                    t.inTable.processEndTag(e)
7082                },t.inSelect = Object.create(t.base),t.inSelect.start_tag_handlers = {
7083                    html: "startTagHtml",
7084                    option: "startTagOption",
7085                    optgroup: "startTagOptgroup",
7086                    select: "startTagSelect",
7087                    input: "startTagInput",
7088                    keygen: "startTagInput",
7089                    textarea: "startTagInput",
7090                    script: "startTagScript",
7091                    "-default": "startTagOther"
7092                },t.inSelect.end_tag_handlers = {
7093                    option: "endTagOption",
7094                    optgroup: "endTagOptgroup",
7095                    select: "endTagSelect",
7096                    caption: "endTagTableElements",
7097                    table: "endTagTableElements",
7098                    tbody: "endTagTableElements",
7099                    tfoot: "endTagTableElements",
7100                    thead: "endTagTableElements",
7101                    tr: "endTagTableElements",
7102                    td: "endTagTableElements",
7103                    th: "endTagTableElements",
7104                    "-default": "endTagOther"
7105                },t.inSelect.processCharacters = function (t) {
7106                    var n = t.takeRemaining();
7107                    n = n.replace(/\u0000/g, function (t, n) {
7108                        return e.parseError("invalid-codepoint"), ""
7109                    });
7110                    if (!n) return;
7111                    e.insertText(n)
7112                },t.inSelect.startTagOption = function (t, n) {
7113                    e.currentStackItem().localName == "option" && e.popElement(), e.insertElement(t, n)
7114                },t.inSelect.startTagOptgroup = function (t, n) {
7115                    e.currentStackItem().localName == "option" && e.popElement(), e.currentStackItem().localName == "optgroup" && e.popElement(), e.insertElement(t, n)
7116                },t.inSelect.endTagOption = function (t) {
7117                    if (e.currentStackItem().localName !== "option") {
7118                        e.parseError("unexpected-end-tag-in-select", {name: t});
7119                        return
7120                    }
7121                    e.popElement()
7122                },t.inSelect.endTagOptgroup = function (t) {
7123                    e.currentStackItem().localName == "option" && e.openElements.item(e.openElements.length - 2).localName == "optgroup" && e.popElement(), e.currentStackItem().localName == "optgroup" ? e.popElement() : e.parseError("unexpected-end-tag-in-select", {name: "optgroup"})
7124                },t.inSelect.startTagSelect = function (t) {
7125                    e.parseError("unexpected-select-in-select"), this.endTagSelect("select")
7126                },t.inSelect.endTagSelect = function (t) {
7127                    e.openElements.inTableScope("select") ? (e.openElements.popUntilPopped("select"), e.resetInsertionMode()) : e.parseError("unexpected-end-tag", {name: t})
7128                },t.inSelect.startTagInput = function (t, n) {
7129                    e.parseError("unexpected-input-in-select"), e.openElements.inSelectScope("select") && (this.endTagSelect("select"), e.insertionMode.processStartTag(t, n))
7130                },t.inSelect.startTagScript = function (e, n) {
7131                    t.inHead.processStartTag(e, n)
7132                },t.inSelect.endTagTableElements = function (t) {
7133                    e.parseError("unexpected-end-tag-in-select", {name: t}), e.openElements.inTableScope(t) && (this.endTagSelect("select"), e.insertionMode.processEndTag(t))
7134                },t.inSelect.startTagOther = function (t, n) {
7135                    e.parseError("unexpected-start-tag-in-select", {name: t})
7136                },t.inSelect.endTagOther = function (t) {
7137                    e.parseError("unexpected-end-tag-in-select", {name: t})
7138                },t.inSelectInTable = Object.create(t.base),t.inSelectInTable.start_tag_handlers = {
7139                    caption: "startTagTable",
7140                    table: "startTagTable",
7141                    tbody: "startTagTable",
7142                    tfoot: "startTagTable",
7143                    thead: "startTagTable",
7144                    tr: "startTagTable",
7145                    td: "startTagTable",
7146                    th: "startTagTable",
7147                    "-default": "startTagOther"
7148                },t.inSelectInTable.end_tag_handlers = {
7149                    caption: "endTagTable",
7150                    table: "endTagTable",
7151                    tbody: "endTagTable",
7152                    tfoot: "endTagTable",
7153                    thead: "endTagTable",
7154                    tr: "endTagTable",
7155                    td: "endTagTable",
7156                    th: "endTagTable",
7157                    "-default": "endTagOther"
7158                },t.inSelectInTable.processCharacters = function (e) {
7159                    t.inSelect.processCharacters(e)
7160                },t.inSelectInTable.startTagTable = function (t, n) {
7161                    e.parseError("unexpected-table-element-start-tag-in-select-in-table", {name: t}), this.endTagOther("select"), e.insertionMode.processStartTag(t, n)
7162                },t.inSelectInTable.startTagOther = function (e, n, r) {
7163                    t.inSelect.processStartTag(e, n, r)
7164                },t.inSelectInTable.endTagTable = function (t) {
7165                    e.parseError("unexpected-table-element-end-tag-in-select-in-table", {name: t}), e.openElements.inTableScope(t) && (this.endTagOther("select"), e.insertionMode.processEndTag(t))
7166                },t.inSelectInTable.endTagOther = function (e) {
7167                    t.inSelect.processEndTag(e)
7168                },t.inRow = Object.create(t.base),t.inRow.start_tag_handlers = {
7169                    html: "startTagHtml",
7170                    td: "startTagTableCell",
7171                    th: "startTagTableCell",
7172                    caption: "startTagTableOther",
7173                    col: "startTagTableOther",
7174                    colgroup: "startTagTableOther",
7175                    tbody: "startTagTableOther",
7176                    tfoot: "startTagTableOther",
7177                    thead: "startTagTableOther",
7178                    tr: "startTagTableOther",
7179                    "-default": "startTagOther"
7180                },t.inRow.end_tag_handlers = {
7181                    tr: "endTagTr",
7182                    table: "endTagTable",
7183                    tbody: "endTagTableRowGroup",
7184                    tfoot: "endTagTableRowGroup",
7185                    thead: "endTagTableRowGroup",
7186                    body: "endTagIgnore",
7187                    caption: "endTagIgnore",
7188                    col: "endTagIgnore",
7189                    colgroup: "endTagIgnore",
7190                    html: "endTagIgnore",
7191                    td: "endTagIgnore",
7192                    th: "endTagIgnore",
7193                    "-default": "endTagOther"
7194                },t.inRow.processCharacters = function (e) {
7195                    t.inTable.processCharacters(e)
7196                },t.inRow.startTagTableCell = function (t, n) {
7197                    e.openElements.popUntilTableRowScopeMarker(), e.insertElement(t, n), e.setInsertionMode("inCell"), e.activeFormattingElements.push(l)
7198                },t.inRow.startTagTableOther = function (t, n) {
7199                    var r = this.ignoreEndTagTr();
7200                    this.endTagTr("tr"), r || e.insertionMode.processStartTag(t, n)
7201                },t.inRow.startTagOther = function (e, n, r) {
7202                    t.inTable.processStartTag(e, n, r)
7203                },t.inRow.endTagTr = function (t) {
7204                    this.ignoreEndTagTr() ? (r.ok(e.context), e.parseError("unexpected-end-tag", {name: t})) : (e.openElements.popUntilTableRowScopeMarker(), e.popElement(), e.setInsertionMode("inTableBody"))
7205                },t.inRow.endTagTable = function (t) {
7206                    var n = this.ignoreEndTagTr();
7207                    this.endTagTr("tr"), n || e.insertionMode.processEndTag(t)
7208                },t.inRow.endTagTableRowGroup = function (t) {
7209                    e.openElements.inTableScope(t) ? (this.endTagTr("tr"), e.insertionMode.processEndTag(t)) : e.parseError("unexpected-end-tag", {name: t})
7210                },t.inRow.endTagIgnore = function (t) {
7211                    e.parseError("unexpected-end-tag-in-table-row", {name: t})
7212                },t.inRow.endTagOther = function (e) {
7213                    t.inTable.processEndTag(e)
7214                },t.inRow.ignoreEndTagTr = function () {
7215                    return !e.openElements.inTableScope("tr")
7216                },t.afterAfterFrameset = Object.create(t.base),t.afterAfterFrameset.start_tag_handlers = {
7217                    html: "startTagHtml",
7218                    noframes: "startTagNoFrames",
7219                    "-default": "startTagOther"
7220                },t.afterAfterFrameset.processEOF = function () {
7221                },t.afterAfterFrameset.processComment = function (t) {
7222                    e.insertComment(t, e.document)
7223                },t.afterAfterFrameset.processCharacters = function (t) {
7224                    var n = t.takeRemaining(), r = "";
7225                    for (var i = 0; i < n.length; i++) {
7226                        var s = n[i];
7227                        c(s) && (r += s)
7228                    }
7229                    r && (e.reconstructActiveFormattingElements(), e.insertText(r)), r.length < n.length && e.parseError("expected-eof-but-got-char")
7230                },t.afterAfterFrameset.startTagNoFrames = function (e, n) {
7231                    t.inHead.processStartTag(e, n)
7232                },t.afterAfterFrameset.startTagOther = function (t, n, r) {
7233                    e.parseError("expected-eof-but-got-start-tag", {name: t})
7234                },t.afterAfterFrameset.processEndTag = function (t, n) {
7235                    e.parseError("expected-eof-but-got-end-tag", {name: t})
7236                },t.text = Object.create(t.base),t.text.start_tag_handlers = {"-default": "startTagOther"},t.text.end_tag_handlers = {
7237                    script: "endTagScript",
7238                    "-default": "endTagOther"
7239                },t.text.processCharacters = function (t) {
7240                    e.shouldSkipLeadingNewline && (e.shouldSkipLeadingNewline = !1, t.skipAtMostOneLeadingNewline());
7241                    var n = t.takeRemaining();
7242                    if (!n) return;
7243                    e.insertText(n)
7244                },t.text.processEOF = function () {
7245                    e.parseError("expected-named-closing-tag-but-got-eof", {name: e.currentStackItem().localName}
7245), e.openElements.pop(), e.setInsertionMode(e.originalInsertionMode), e.insertionMode.processEOF()
7246                },t.text.startTagOther = function (e) {
7247                    throw"Tried to process start tag " + e + " in RCDATA/RAWTEXT mode"
7248                },t.text.endTagScript = function (t) {
7249                    var n = e.openElements.pop();
7250                    r.ok(n.localName == "script"), e.setInsertionMode(e.originalInsertionMode)
7251                },t.text.endTagOther = function (t) {
7252                    e.openElements.pop(), e.setInsertionMode(e.originalInsertionMode)
7253                }
7254            }
7255
7256            function y(e, t) {
7257                return e.replace(new RegExp("{[0-9a-z-]+}", "gi"), function (e) {
7258                    return t[e.slice(1, -1)] || e
7259                })
7260            }
7261
7262            var r = e("assert"), i = e("./messages.json"), s = e("./constants"), o = e("events").EventEmitter,
7263                u = e("./Tokenizer").Tokenizer, a = e("./ElementStack").ElementStack, f = e("./StackItem").StackItem,
7264                l = {};
7265            m.prototype.skipAtMostOneLeadingNewline = function () {
7266                this.characters[this.current] === "\n" && this.current++
7267            }, m.prototype.skipLeadingWhitespace = function () {
7268                while (c(this.characters[this.current])) if (++this.current == this.end) return
7269            }, m.prototype.skipLeadingNonWhitespace = function () {
7270                while (!c(this.characters[this.current])) if (++this.current == this.end) return
7271            }, m.prototype.takeRemaining = function () {
7272                return this.characters.substring(this.current)
7273            }, m.prototype.takeLeadingWhitespace = function () {
7274                var e = this.current;
7275                return this.skipLeadingWhitespace(), e === this.current ? "" : this.characters.substring(e, this.current - e)
7276            }, Object.defineProperty(m.prototype, "length", {
7277                get: function () {
7278                    return this.end - this.current
7279                }
7280            }), g.prototype.setInsertionMode = function (e) {
7281                this.insertionMode = this.insertionModes[e], this.insertionModeName = e
7282            }, g.prototype.adoptionAgencyEndTag = function (e) {
7283                function i(e) {
7284                    return e === r
7285                }
7286
7287                var t = 8, n = 3, r, s = 0;
7288                while (s++ < t) {
7289                    r = this.elementInActiveFormattingElements(e);
7290                    if (!r || this.openElements.contains(r) && !this.openElements.inScope(r.localName)) return this.parseError("adoption-agency-1.1", {name: e}), !1;
7291                    if (!this.openElements.contains(r)) return this.parseError("adoption-agency-1.2", {name: e}), this.removeElementFromActiveFormattingElements(r), !0;
7292                    this.openElements.inScope(r.localName) || this.parseError("adoption-agency-4.4", {name: e}), r != this.currentStackItem() && this.parseError("adoption-agency-1.3", {name: e});
7293                    var o = this.openElements.furthestBlockForFormattingElement(r.node);
7294                    if (!o) return this.openElements.remove_openElements_until(i), this.removeElementFromActiveFormattingElements(r), !0;
7295                    var u = this.openElements.elements.indexOf(r), a = this.openElements.item(u - 1),
7296                        l = this.activeFormattingElements.indexOf(r), c = o, h = o,
7297                        p = this.openElements.elements.indexOf(c), d = 0;
7298                    while (d++ < n) {
7299                        p -= 1, c = this.openElements.item(p);
7300                        if (this.activeFormattingElements.indexOf(c) < 0) {
7301                            this.openElements.elements.splice(p, 1);
7302                            continue
7303                        }
7304                        if (c == r) break;
7305                        h == o && (l = this.activeFormattingElements.indexOf(c) + 1);
7306                        var v = this.createElement(c.namespaceURI, c.localName, c.attributes),
7307                            m = new f(c.namespaceURI, c.localName, c.attributes, v);
7308                        this.activeFormattingElements[this.activeFormattingElements.indexOf(c)] = m, this.openElements.elements[this.openElements.elements.indexOf(c)] = m, c = m, this.detachFromParent(h.node), this.attachNode(h.node, c.node), h = c
7309                    }
7310                    this.detachFromParent(h.node), a.isFosterParenting() ? this.insertIntoFosterParent(h.node) : this.attachNode(h.node, a.node);
7311                    var v = this.createElement("http://www.w3.org/1999/xhtml", r.localName, r.attributes),
7312                        g = new f(r.namespaceURI, r.localName, r.attributes, v);
7313                    this.reparentChildren(o.node, v), this.attachNode(v, o.node), this.removeElementFromActiveFormattingElements(r), this.activeFormattingElements.splice(Math.min(l, this.activeFormattingElements.length), 0, g), this.openElements.remove(r), this.openElements.elements.splice(this.openElements.elements.indexOf(o) + 1, 0, g)
7314                }
7315                return !0
7316            }, g.prototype.start = function () {
7317                throw"Not mplemented"
7318            }, g.prototype.startTokenization = function (e) {
7319                this.tokenizer = e, this.compatMode = "no quirks", this.originalInsertionMode = "initial", this.framesetOk = !0, this.openElements = new a, this.activeFormattingElements = [], this.start();
7320                if (this.context) {
7321                    switch (this.context) {
7322                        case"title":
7323                        case"textarea":
7324                            this.tokenizer.setState(u.RCDATA);
7325                            break;
7326                        case"style":
7327                        case"xmp":
7328                        case"iframe":
7329                        case"noembed":
7330                        case"noframes":
7331                            this.tokenizer.setState(u.RAWTEXT);
7332                            break;
7333                        case"script":
7334                            this.tokenizer.setState(u.SCRIPT_DATA);
7335                            break;
7336                        case"noscript":
7337                            this.scriptingEnabled && this.tokenizer.setState(u.RAWTEXT);
7338                            break;
7339                        case"plaintext":
7340                            this.tokenizer.setState(u.PLAINTEXT)
7341                    }
7342                    this.insertHtmlElement(), this.resetInsertionMode()
7343                } else this.setInsertionMode("initial")
7344            }, g.prototype.processToken = function (e) {
7345                this.selfClosingFlagAcknowledged = !1;
7346                var t = this.openElements.top || null, n;
7347                !t || !t.isForeign() || t.isMathMLTextIntegrationPoint() && (e.type == "StartTag" && !(e.name in {
7348                    mglyph: 0,
7349                    malignmark: 0
7350                }) || e.type === "Characters") || t.namespaceURI == "http://www.w3.org/1998/Math/MathML" && t.localName == "annotation-xml" && e.type == "StartTag" && e.name == "svg" || t.isHtmlIntegrationPoint() && e.type in {
7351                    StartTag: 0,
7352                    Characters: 0
7353                } || e.type == "EOF" ? n = this.insertionMode : n = this.insertionModes.inForeignContent;
7354                switch (e.type) {
7355                    case"Characters":
7356                        var r = new m(e.data);
7357                        n.processCharacters(r);
7358                        break;
7359                    case"Comment":
7360                        n.processComment(e.data);
7361                        break;
7362                    case"StartTag":
7363                        n.processStartTag(e.name, e.data, e.selfClosing);
7364                        break;
7365                    case"EndTag":
7366                        n.processEndTag(e.name);
7367                        break;
7368                    case"Doctype":
7369                        n.processDoctype(e.name, e.publicId, e.systemId, e.forceQuirks);
7370                        break;
7371                    case"EOF":
7372                        n.processEOF()
7373                }
7374            }, g.prototype.isCdataSectionAllowed = function () {
7375                return this.openElements.length > 0 && this.currentStackItem().isForeign()
7376            }, g.prototype.isSelfClosingFlagAcknowledged = function () {
7377                return this.selfClosingFlagAcknowledged
7378            }, g.prototype.createElement = function (e, t, n) {
7379                throw new Error("Not implemented")
7380            }, g.prototype.attachNode = function (e, t) {
7381                throw new Error("Not implemented")
7382            }, g.prototype.attachNodeToFosterParent = function (e, t, n) {
7383                throw new Error("Not implemented")
7384            }, g.prototype.detachFromParent = function (e) {
7385                throw new Error("Not implemented")
7386            }, g.prototype.addAttributesToElement = function (e, t) {
7387                throw new Error("Not implemented")
7388            }, g.prototype.insertHtmlElement = function (e) {
7389                var t = this.createElement("http://www.w3.org/1999/xhtml", "html", e);
7390                return this.attachNode(t, this.document), this.openElements.pushHtmlElement(new f("http://www.w3.org/1999/xhtml", "html", e, t)), t
7391            }, g.prototype.insertHeadElement = function (e) {
7392                var t = this.createElement("http://www.w3.org/1999/xhtml", "head", e);
7393                return this.head = new f("http://www.w3.org/1999/xhtml", "head", e, t), this.attachNode(t, this.openElements.top.node), this.openElements.pushHeadElement(this.head), t
7394            }, g.prototype.insertBodyElement = function (e) {
7395                var t = this.createElement("http://www.w3.org/1999/xhtml", "body", e);
7396                return this.attachNode(t, this.openElements.top.node), this.openElements.pushBodyElement(new f("http://www.w3.org/1999/xhtml", "body", e, t)), t
7397            }, g.prototype.insertIntoFosterParent = function (e) {
7398                var t = this.openElements.findIndex("table"), n = this.openElements.item(t).node;
7399                if (t === 0) return this.attachNode(e, n);
7400                this.attachNodeToFosterParent(e, n, this.openElements.item(t - 1).node)
7401            }, g.prototype.insertElement = function (e, t, n, r) {
7402                n || (n = "http://www.w3.org/1999/xhtml");
7403                var i = this.createElement(n, e, t);
7404                this.shouldFosterParent() ? this.insertIntoFosterParent(i) : this.attachNode(i, this.openElements.top.node), r || this.openElements.push(new f(n, e, t, i))
7405            }, g.prototype.insertFormattingElement = function (e, t) {
7406                this.insertElement(e, t, "http://www.w3.org/1999/xhtml"), this.appendElementToActiveFormattingElements(this.currentStackItem())
7407            }, g.prototype.insertSelfClosingElement = function (e, t) {
7408                this.selfClosingFlagAcknowledged = !0, this.insertElement(e, t, "http://www.w3.org/1999/xhtml", !0)
7409            }, g.prototype.insertForeignElement = function (e, t, n, r) {
7410                r && (this.selfClosingFlagAcknowledged = !0), this.insertElement(e, t, n, r)
7411            }, g.prototype.insertComment = function (e, t) {
7412                throw new Error("Not implemented")
7413            }, g.prototype.insertDoctype = function (e, t, n) {
7414                throw new Error("Not implemented")
7415            }, g.prototype.insertText = function (e) {
7416                throw new Error("Not implemented")
7417            }, g.prototype.currentStackItem = function () {
7418                return this.openElements.top
7419            }, g.prototype.popElement = function () {
7420                return this.openElements.pop()
7421            }, g.prototype.shouldFosterParent = function () {
7422                return this.redirectAttachToFosterParent && this.currentStackItem().isFosterParenting()
7423            }, g.prototype.generateImpliedEndTags = function (e) {
7424                var t = this.openElements.top.localName;
7425                ["dd", "dt", "li", "option", "optgroup", "p", "rp", "rt"].indexOf(t) != -1 && t != e && (this.popElement(), this.generateImpliedEndTags(e))
7426            }, g.prototype.reconstructActiveFormattingElements = function () {
7427                if (this.activeFormattingElements.length === 0) return;
7428                var e = this.activeFormattingElements.length - 1, t = this.activeFormattingElements[e];
7429                if (t == l || this.openElements.contains(t)) return;
7430                while (t != l && !this.openElements.contains(t)) {
7431                    e -= 1, t = this.activeFormattingElements[e];
7432                    if (!t) break
7433                }
7434                for (; ;) {
7435                    e += 1, t = this.activeFormattingElements[e], this.insertElement(t.localName, t.attributes);
7436                    var n = this.currentStackItem();
7437                    this.activeFormattingElements[e] = n;
7438                    if (n == this.activeFormattingElements[this.activeFormattingElements.length - 1]) break
7439                }
7440            }, g.prototype.ensureNoahsArkCondition = function (e) {
7441                var t = 3;
7442                if (this.activeFormattingElements.length < t) return;
7443                var n = [], r = e.attributes.length;
7444                for (var i = this.activeFormattingElements.length - 1; i >= 0; i--) {
7445                    var s = this.activeFormattingElements[i];
7446                    if (s === l) break;
7447                    if (e.localName !== s.localName || e.namespaceURI !== s.namespaceURI) continue;
7448                    if (s.attributes.length != r) continue;
7449                    n.push(s)
7450                }
7451                if (n.length < t) return;
7452                var o = [], u = e.attributes;
7453                for (var i = 0; i < u.length; i++) {
7454                    var a = u[i];
7455                    for (var f = 0; f < n.length; f++) {
7456                        var s = n[f], c = v(s, a.nodeName);
7457                        c && c.nodeValue === a.nodeValue && o.push(s)
7458                    }
7459                    if (o.length < t) return;
7460                    n = o, o = []
7461                }
7462                for (var i = t - 1; i < n.length; i++) this.removeElementFromActiveFormattingElements(n[i])
7463            }, g.prototype.appendElementToActiveFormattingElements = function (e) {
7464                this.ensureNoahsArkCondition(e), this.activeFormattingElements.push(e)
7465            }, g.prototype.removeElementFromActiveFormattingElements = function (e) {
7466                var t = this.activeFormattingElements.indexOf(e);
7467                t >= 0 && this.activeFormattingElements.splice(t, 1)
7468            }, g.prototype.elementInActiveFormattingElements = function (e) {
7469                var t = this.activeFormattingElements;
7470                for (var n = t.length - 1; n >= 0; n--) {
7471                    if (t[n] == l) break;
7472                    if (t[n].localName == e) return t[n]
7473                }
7474                return !1
7475            }, g.prototype.clearActiveFormattingElements = function () {
7476                while (this.activeFormattingElements.length !== 0 && this.activeFormattingElements.pop() != l) ;
7477            }, g.prototype.reparentChildren = function (e, t) {
7478                throw new Error("Not implemented")
7479            }, g.prototype.setFragmentContext = function (e) {
7480                this.context = e
7481            }, g.prototype.parseError = function (e, t) {
7482                if (!this.errorHandler) return;
7483                var n = y(i[e], t);
7484                this.errorHandler.error(n, this.tokenizer._inputStream.location(), e)
7485            }, g.prototype.resetInsertionMode = function () {
7486                var e = !1, t = null;
7487                for (var n = this.openElements.length - 1; n >= 0; n--) {
7488                    t = this.openElements.item(n), n === 0 && (r.ok(this.context), e = !0, t = new f("http://www.w3.org/1999/xhtml", this.context, [], null));
7489                    if (t.namespaceURI === "http://www.w3.org/1999/xhtml") {
7490                        if (t.localName === "select") return this.setInsertionMode("inSelect");
7491                        if (t.localName === "td" || t.localName === "th") return this.setInsertionMode("inCell");
7492                        if (t.localName === "tr") return this.setInsertionMode("inRow");
7493                        if (t.localName === "tbody" || t.localName 
7493=== "thead" || t.localName === "tfoot") return this.setInsertionMode("inTableBody");
7494                        if (t.localName === "caption") return this.setInsertionMode("inCaption");
7495                        if (t.localName === "colgroup") return this.setInsertionMode("inColumnGroup");
7496                        if (t.localName === "table") return this.setInsertionMode("inTable");
7497                        if (t.localName === "head" && !e) return this.setInsertionMode("inHead");
7498                        if (t.localName === "body") return this.setInsertionMode("inBody");
7499                        if (t.localName === "frameset") return this.setInsertionMode("inFrameset");
7500                        if (t.localName === "html") return this.openElements.headElement ? this.setInsertionMode("afterHead") : this.setInsertionMode("beforeHead")
7501                    }
7502                    if (e) return this.setInsertionMode("inBody")
7503                }
7504            }, g.prototype.processGenericRCDATAStartTag = function (e, t) {
7505                this.insertElement(e, t), this.tokenizer.setState(u.RCDATA), this.originalInsertionMode = this.insertionModeName, this.setInsertionMode("text")
7506            }, g.prototype.processGenericRawTextStartTag = function (e, t) {
7507                this.insertElement(e, t), this.tokenizer.setState(u.RAWTEXT), this.originalInsertionMode = this.insertionModeName, this.setInsertionMode("text")
7508            }, g.prototype.adjustMathMLAttributes = function (e) {
7509                return e.forEach(function (e) {
7510                    e.namespaceURI = "http://www.w3.org/1998/Math/MathML", s.MATHMLAttributeMap[e.nodeName] && (e.nodeName = s.MATHMLAttributeMap[e.nodeName])
7511                }), e
7512            }, g.prototype.adjustSVGTagNameCase = function (e) {
7513                return s.SVGTagMap[e] || e
7514            }, g.prototype.adjustSVGAttributes = function (e) {
7515                return e.forEach(function (e) {
7516                    e.namespaceURI = "http://www.w3.org/2000/svg", s.SVGAttributeMap[e.nodeName] && (e.nodeName = s.SVGAttributeMap[e.nodeName])
7517                }), e
7518            }, g.prototype.adjustForeignAttributes = function (e) {
7519                for (var t = 0; t < e.length; t++) {
7520                    var n = e[t], r = s.ForeignAttributeMap[n.nodeName];
7521                    r && (n.nodeName = r.localName, n.prefix = r.prefix, n.namespaceURI = r.namespaceURI)
7522                }
7523                return e
7524            }, n.TreeBuilder = g
7525        }, {
7526            "./ElementStack": 1,
7527            "./StackItem": 4,
7528            "./Tokenizer": 5,
7529            "./constants": 7,
7530            "./messages.json": 8,
7531            assert: 13,
7532            events: 16
7533        }], 7: [function (e, t, n) {
7534            n.SVGTagMap = {
7535                altglyph: "altGlyph",
7536                altglyphdef: "altGlyphDef",
7537                altglyphitem: "altGlyphItem",
7538                animatecolor: "animateColor",
7539                animatemotion: "animateMotion",
7540                animatetransform: "animateTransform",
7541                clippath: "clipPath",
7542                feblend: "feBlend",
7543                fecolormatrix: "feColorMatrix",
7544                fecomponenttransfer: "feComponentTransfer",
7545                fecomposite: "feComposite",
7546                feconvolvematrix: "feConvolveMatrix",
7547                fediffuselighting: "feDiffuseLighting",
7548                fedisplacementmap: "feDisplacementMap",
7549                fedistantlight: "feDistantLight",
7550                feflood: "feFlood",
7551                fefunca: "feFuncA",
7552                fefuncb: "feFuncB",
7553                fefuncg: "feFuncG",
7554                fefuncr: "feFuncR",
7555                fegaussianblur: "feGaussianBlur",
7556                feimage: "feImage",
7557                femerge: "feMerge",
7558                femergenode: "feMergeNode",
7559                femorphology: "feMorphology",
7560                feoffset: "feOffset",
7561                fepointlight: "fePointLight",
7562                fespecularlighting: "feSpecularLighting",
7563                fespotlight: "feSpotLight",
7564                fetile: "feTile",
7565                feturbulence: "feTurbulence",
7566                foreignobject: "foreignObject",
7567                glyphref: "glyphRef",
7568                lineargradient: "linearGradient",
7569                radialgradient: "radialGradient",
7570                textpath: "textPath"
7571            }, n.MATHMLAttributeMap = {definitionurl: "definitionURL"}, n.SVGAttributeMap = {
7572                attributename: "attributeName",
7573                attributetype: "attributeType",
7574                basefrequency: "baseFrequency",
7575                baseprofile: "baseProfile",
7576                calcmode: "calcMode",
7577                clippathunits: "clipPathUnits",
7578                contentscripttype: "contentScriptType",
7579                contentstyletype: "contentStyleType",
7580                diffuseconstant: "diffuseConstant",
7581                edgemode: "edgeMode",
7582                externalresourcesrequired: "externalResourcesRequired",
7583                filterres: "filterRes",
7584                filterunits: "filterUnits",
7585                glyphref: "glyphRef",
7586                gradienttransform: "gradientTransform",
7587                gradientunits: "gradientUnits",
7588                kernelmatrix: "kernelMatrix",
7589                kernelunitlength: "kernelUnitLength",
7590                keypoints: "keyPoints",
7591                keysplines: "keySplines",
7592                keytimes: "keyTimes",
7593                lengthadjust: "lengthAdjust",
7594                limitingconeangle: "limitingConeAngle",
7595                markerheight: "markerHeight",
7596                markerunits: "markerUnits",
7597                markerwidth: "markerWidth",
7598                maskcontentunits: "maskContentUnits",
7599                maskunits: "maskUnits",
7600                numoctaves: "numOctaves",
7601                pathlength: "pathLength",
7602                patterncontentunits: "patternContentUnits",
7603                patterntransform: "patternTransform",
7604                patternunits: "patternUnits",
7605                pointsatx: "pointsAtX",
7606                pointsaty: "pointsAtY",
7607                pointsatz: "pointsAtZ",
7608                preservealpha: "preserveAlpha",
7609                preserveaspectratio: "preserveAspectRatio",
7610                primitiveunits: "primitiveUnits",
7611                refx: "refX",
7612                refy: "refY",
7613                repeatcount: "repeatCount",
7614                repeatdur: "repeatDur",
7615                requiredextensions: "requiredExtensions",
7616                requiredfeatures: "requiredFeatures",
7617                specularconstant: "specularConstant",
7618                specularexponent: "specularExponent",
7619                spreadmethod: "spreadMethod",
7620                startoffset: "startOffset",
7621                stddeviation: "stdDeviation",
7622                stitchtiles: "stitchTiles",
7623                surfacescale: "surfaceScale",
7624                systemlanguage: "systemLanguage",
7625                tablevalues: "tableValues",
7626                targetx: "targetX",
7627                targety: "targetY",
7628                textlength: "textLength",
7629                viewbox: "viewBox",
7630                viewtarget: "viewTarget",
7631                xchannelselector: "xChannelSelector",
7632                ychannelselector: "yChannelSelector",
7633                zoomandpan: "zoomAndPan"
7634            }, n.ForeignAttributeMap = {
7635                "xlink:actuate": {prefix: "xlink", localName: "actuate", namespaceURI: "http://www.w3.org/1999/xlink"},
7636                "xlink:arcrole": {prefix: "xlink", localName: "arcrole", namespaceURI: "http://www.w3.org/1999/xlink"},
7637                "xlink:href": {prefix: "xlink", localName: "href", namespaceURI: "http://www.w3.org/1999/xlink"},
7638                "xlink:role": {prefix: "xlink", localName: "role", namespaceURI: "http://www.w3.org/1999/xlink"},
7639                "xlink:show": {prefix: "xlink", localName: "show", namespaceURI: "http://www.w3.org/1999/xlink"},
7640                "xlink:title": {prefix: "xlink", localName: "title", namespaceURI: "http://www.w3.org/1999/xlink"},
7641                "xlink:type": {prefix: "xlink", localName: "title", namespaceURI: "http://www.w3.org/1999/xlink"},
7642                "xml:base": {prefix: "xml", localName: "base", namespaceURI: "http://www.w3.org/XML/1998/namespace"},
7643                "xml:lang": {prefix: "xml", localName: "lang", namespaceURI: "http://www.w3.org/XML/1998/namespace"},
7644                "xml:space": {prefix: "xml", localName: "space", namespaceURI: "http://www.w3.org/XML/1998/namespace"},
7645                xmlns: {prefix: null, localName: "xmlns", namespaceURI: "http://www.w3.org/2000/xmlns/"},
7646                "xmlns:xlink": {prefix: "xmlns", localName: "xlink", namespaceURI: "http://www.w3.org/2000/xmlns/"}
7647            }
7648        }, {}], 8: [function (e, t, n) {
7649            t.exports = {
7650                "null-character": "Null character in input stream, replaced with U+FFFD.",
7651                "invalid-codepoint": "Invalid codepoint in stream",
7652                "incorrectly-placed-solidus": "Solidus (/) incorrectly placed in tag.",
7653                "incorrect-cr-newline-entity": "Incorrect CR newline entity, replaced with LF.",
7654                "illegal-windows-1252-entity": "Entity used with illegal number (windows-1252 reference).",
7655                "cant-convert-numeric-entity": "Numeric entity couldn't be converted to character (codepoint U+{charAsInt}).",
7656                "invalid-numeric-entity-replaced": "Numeric entity represents an illegal codepoint. Expanded to the C1 controls range.",
7657                "numeric-entity-without-semicolon": "Numeric entity didn't end with ';'.",
7658                "expected-numeric-entity-but-got-eof": "Numeric entity expected. Got end of file instead.",
7659                "expected-numeric-entity": "Numeric entity expected but none found.",
7660                "named-entity-without-semicolon": "Named entity didn't end with ';'.",
7661                "expected-named-entity": "Named entity expected. Got none.",
7662                "attributes-in-end-tag": "End tag contains unexpected attributes.",
7663                "self-closing-flag-on-end-tag": "End tag contains unexpected self-closing flag.",
7664                "bare-less-than-sign-at-eof": "End of file after <.",
7665                "expected-tag-name-but-got-right-bracket": "Expected tag name. Got '>' instead.",
7666                "expected-tag-name-but-got-question-mark": "Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)",
7667                "expected-tag-name": "Expected tag name. Got something else instead.",
7668                "expected-closing-tag-but-got-right-bracket": "Expected closing tag. Got '>' instead. Ignoring '</>'.",
7669                "expected-closing-tag-but-got-eof": "Expected closing tag. Unexpected end of file.",
7670                "expected-closing-tag-but-got-char": "Expected closing tag. Unexpected character '{data}' found.",
7671                "eof-in-tag-name": "Unexpected end of file in the tag name.",
7672                "expected-attribute-name-but-got-eof": "Unexpected end of file. Expected attribute name instead.",
7673                "eof-in-attribute-name": "Unexpected end of file in attribute name.",
7674                "invalid-character-in-attribute-name": "Invalid character in attribute name.",
7675                "duplicate-attribute": "Dropped duplicate attribute '{name}' on tag.",
7676                "expected-end-of-tag-but-got-eof": "Unexpected end of file. Expected = or end of tag.",
7677                "expected-attribute-value-but-got-eof": "Unexpected end of file. Expected attribute value.",
7678                "expected-attribute-value-but-got-right-bracket": "Expected attribute value. Got '>' instead.",
7679                "unexpected-character-in-unquoted-attribute-value": "Unexpected character in unquoted attribute",
7680                "invalid-character-after-attribute-name": "Unexpected character after attribute name.",
7681                "unexpected-character-after-attribute-value": "Unexpected character after attribute value.",
7682                "eof-in-attribute-value-double-quote": 'Unexpected end of file in attribute value (").',
7683                "eof-in-attribute-value-single-quote": "Unexpected end of file in attribute value (').",
7684                "eof-in-attribute-value-no-quotes": "Unexpected end of file in attribute value.",
7685                "eof-after-attribute-value": "Unexpected end of file after attribute value.",
7686                "unexpected-eof-after-solidus-in-tag": "Unexpected end of file in tag. Expected >.",
7687                "unexpected-character-after-solidus-in-tag": "Unexpected character after / in tag. Expected >.",
7688                "expected-dashes-or-doctype": "Expected '--' or 'DOCTYPE'. Not found.",
7689                "unexpected-bang-after-double-dash-in-comment": "Unexpected ! after -- in comment.",
7690                "incorrect-comment": "Incorrect comment.",
7691                "eof-in-comment": "Unexpected end of file in comment.",
7692                "eof-in-comment-end-dash": "Unexpected end of file in comment (-).",
7693                "unexpected-dash-after-double-dash-in-comment": "Unexpected '-' after '--' found in comment.",
7694                "eof-in-comment-double-dash": "Unexpected end of file in comment (--).",
7695                "eof-in-comment-end-bang-state": "Unexpected end of file in comment.",
7696                "unexpected-char-in-comment": "Unexpected character in comment found.",
7697                "need-space-after-doctype": "No space after literal string 'DOCTYPE'.",
7698                "expected-doctype-name-but-got-right-bracket": "Unexpected > character. Expected DOCTYPE name.",
7699                "expected-doctype-name-but-got-eof": "Unexpected end of file. Expected DOCTYPE name.",
7700                "eof-in-doctype-name": "Unexpected end of file in DOCTYPE name.",
7701                "eof-in-doctype": "Unexpected end of file in DOCTYPE.",
7702                "expected-space-or-right-bracket-in-doctype": "Expected space or '>'. Got '{data}'.",
7703                "unexpected-end-of-doctype": "Unexpected end of DOCTYPE.",
7704                "unexpected-char-in-doctype": "Unexpected character in DOCTYPE.",
7705                "eof-in-bogus-doctype": "Unexpected end of file in bogus doctype.",
7706                "eof-in-innerhtml": "Unexpected EOF in inner html mode.",
7707                "unexpected-doctype": "Unexpected DOCTYPE. Ignored.",
7708                "non-html-root": "html needs to be the first start tag.",
7709                "expected-doctype-but-got-eof": "Unexpected End of file. Expected DOCTYPE.",
7710                "unknown-doctype": "Erroneous DOCTYPE. Expected <!DOCTYPE html>.",
7711                "quirky-doctype": "Quirky doctype. Expected <!DOCTYPE html>.",
7712                "almost-standards-doctype": "Almost standards mode doctype. Expected <!DOCTYPE html>.",
7713                "obsolete-doctype": "Obsolete doctype. Expected <!DOCTYPE html>.",
7714                "expected-doctype-but-got-chars": "Non-space characters found without seeing a doctype first. Expected e.g. <!DOCTYPE html>.",
7715                "expected-doctype-but-got-start-tag": "Start tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.",
7716                "expected-doctype-but-got-end-tag": "End tag seen without seeing a doctype first. Expected e.g. <!DOCTYPE html>.",
7717                "end-tag-after-implied-root": "Unexpected end tag ({name}) after the (implied) root element.",
7718                "expected-named-closing-tag-but-got-eof": "Unexpected end of file. Expected end tag ({name}).",
7719                "two-heads-are-not-better-than-one": "Unexpected start tag head in existing head. Ignored.",
7720                "unexpected-end-tag": "Unexpected end tag ({name}). Ignored.",
7721                "unexpected-implied-end-tag": "End tag {name} implied, but there were open elements.",
7722                "unexpected-start-tag-out-of-my-head": "Unexpected start tag ({name}) that can be in head. Moved.",
7723                "unexpected-start-tag": "Unexpected start tag ({name}).",
7724                "missing-end-tag": "Missing end tag ({name}).",
7725                "missing-end-tags": "Missing end tags ({name}).",
7726                "unexpected-start-tag-implies-end-tag": "Unexpected start tag ({startName}) implies end tag ({endName}).",
7727                "unexpected-start-tag-treated-as": "Unexpected start tag ({originalName}). Treated as {newName}.",
7728                "de
7728precated-tag": "Unexpected start tag {name}. Don't use it!",
7729                "unexpected-start-tag-ignored": "Unexpected start tag {name}. Ignored.",
7730                "expected-one-end-tag-but-got-another": "Unexpected end tag ({gotName}). Missing end tag ({expectedName}).",
7731                "end-tag-too-early": "End tag ({name}) seen too early. Expected other end tag.",
7732                "end-tag-too-early-named": "Unexpected end tag ({gotName}). Expected end tag ({expectedName}.",
7733                "end-tag-too-early-ignored": "End tag ({name}) seen too early. Ignored.",
7734                "adoption-agency-1.1": "End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.",
7735                "adoption-agency-1.2": "End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.",
7736                "adoption-agency-1.3": "End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.",
7737                "adoption-agency-4.4": "End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.",
7738                "unexpected-end-tag-treated-as": "Unexpected end tag ({originalName}). Treated as {newName}.",
7739                "no-end-tag": "This element ({name}) has no end tag.",
7740                "unexpected-implied-end-tag-in-table": "Unexpected implied end tag ({name}) in the table phase.",
7741                "unexpected-implied-end-tag-in-table-body": "Unexpected implied end tag ({name}) in the table body phase.",
7742                "unexpected-char-implies-table-voodoo": "Unexpected non-space characters in table context caused voodoo mode.",
7743                "unexpected-hidden-input-in-table": "Unexpected input with type hidden in table context.",
7744                "unexpected-form-in-table": "Unexpected form in table context.",
7745                "unexpected-start-tag-implies-table-voodoo": "Unexpected start tag ({name}) in table context caused voodoo mode.",
7746                "unexpected-end-tag-implies-table-voodoo": "Unexpected end tag ({name}) in table context caused voodoo mode.",
7747                "unexpected-cell-in-table-body": "Unexpected table cell start tag ({name}) in the table body phase.",
7748                "unexpected-cell-end-tag": "Got table cell end tag ({name}) while required end tags are missing.",
7749                "unexpected-end-tag-in-table-body": "Unexpected end tag ({name}) in the table body phase. Ignored.",
7750                "unexpected-implied-end-tag-in-table-row": "Unexpected implied end tag ({name}) in the table row phase.",
7751                "unexpected-end-tag-in-table-row": "Unexpected end tag ({name}) in the table row phase. Ignored.",
7752                "unexpected-select-in-select": "Unexpected select start tag in the select phase treated as select end tag.",
7753                "unexpected-input-in-select": "Unexpected input start tag in the select phase.",
7754                "unexpected-start-tag-in-select": "Unexpected start tag token ({name}) in the select phase. Ignored.",
7755                "unexpected-end-tag-in-select": "Unexpected end tag ({name}) in the select phase. Ignored.",
7756                "unexpected-table-element-start-tag-in-select-in-table": "Unexpected table element start tag ({name}) in the select in table phase.",
7757                "unexpected-table-element-end-tag-in-select-in-table": "Unexpected table element end tag ({name}) in the select in table phase.",
7758                "unexpected-char-after-body": "Unexpected non-space characters in the after body phase.",
7759                "unexpected-start-tag-after-body": "Unexpected start tag token ({name}) in the after body phase.",
7760                "unexpected-end-tag-after-body": "Unexpected end tag token ({name}) in the after body phase.",
7761                "unexpected-char-in-frameset": "Unepxected characters in the frameset phase. Characters ignored.",
7762                "unexpected-start-tag-in-frameset": "Unexpected start tag token ({name}) in the frameset phase. Ignored.",
7763                "unexpected-frameset-in-frameset-innerhtml": "Unexpected end tag token (frameset in the frameset phase (innerHTML).",
7764                "unexpected-end-tag-in-frameset": "Unexpected end tag token ({name}) in the frameset phase. Ignored.",
7765                "unexpected-char-after-frameset": "Unexpected non-space characters in the after frameset phase. Ignored.",
7766                "unexpected-start-tag-after-frameset": "Unexpected start tag ({name}) in the after frameset phase. Ignored.",
7767                "unexpected-end-tag-after-frameset": "Unexpected end tag ({name}) in the after frameset phase. Ignored.",
7768                "expected-eof-but-got-char": "Unexpected non-space characters. Expected end of file.",
7769                "expected-eof-but-got-start-tag": "Unexpected start tag ({name}). Expected end of file.",
7770                "expected-eof-but-got-end-tag": "Unexpected end tag ({name}). Expected end of file.",
7771                "unexpected-end-table-in-caption": "Unexpected end table tag in caption. Generates implied end caption.",
7772                "end-html-in-innerhtml": "Unexpected html end tag in inner html mode.",
7773                "eof-in-table": "Unexpected end of file. Expected table content.",
7774                "eof-in-script": "Unexpected end of file. Expected script content.",
7775                "non-void-element-with-trailing-solidus": "Trailing solidus not allowed on element {name}.",
7776                "unexpected-html-element-in-foreign-content": 'HTML start tag "{name}" in a foreign namespace context.',
7777                "unexpected-start-tag-in-table": "Unexpected {name}. Expected table content."
7778            }
7779        }, {}], 9: [function (e, t, n) {
7780            function o() {
7781                this.contentHandler = null, this._errorHandler = null, this._treeBuilder = new r, this._tokenizer = new i(this._treeBuilder), this._scriptingEnabled = !1
7782            }
7783
7784            var r = e("./SAXTreeBuilder").SAXTreeBuilder, i = e("../Tokenizer").Tokenizer,
7785                s = e("./TreeParser").TreeParser;
7786            o.prototype.parse = function (e) {
7787                this._tokenizer.tokenize(e);
7788                var t = this._treeBuilder.document;
7789                t && (new s(this.contentHandler)).parse(t)
7790            }, o.prototype.parseFragment = function (e, t) {
7791                this._treeBuilder.setFragmentContext(t), this._tokenizer.tokenize(e);
7792                var n = this._treeBuilder.getFragment();
7793                n && (new s(this.contentHandler)).parse(n)
7794            }, Object.defineProperty(o.prototype, "scriptingEnabled", {
7795                get: function () {
7796                    return this._scriptingEnabled
7797                }, set: function (e) {
7798                    this._scriptingEnabled = e, this._treeBuilder.scriptingEnabled = e
7799                }
7800            }), Object.defineProperty(o.prototype, "errorHandler", {
7801                get: function () {
7802                    return this._errorHandler
7803                }, set: function (e) {
7804                    this._errorHandler = e, this._treeBuilder.errorHandler = e
7805                }
7806            }), n.SAXParser = o
7807        }, {"../Tokenizer": 5, "./SAXTreeBuilder": 10, "./TreeParser": 11}], 10: [function (e, t, n) {
7808            function s() {
7809                i.call(this)
7810            }
7811
7812            function o(e, t) {
7813                for (var n = 0; n < e.attributes.length; n++) {
7814                    var r = e.attributes[n];
7815                    if (r.nodeName === t) return r.nodeValue
7816                }
7817            }
7818
7819            function a(e) {
7820                e ? (this.columnNumber = e.columnNumber, this.lineNumber = e.lineNumber) : (this.columnNumber = -1, this.lineNumber = -1), this.parentNode = null, this.nextSibling = null, this.firstChild = null
7821            }
7822
7823            function f(e) {
7824                a.call(this, e), this.lastChild = null, this._endLocator = null
7825            }
7826
7827            function l(e) {
7828                f.call(this, e), this.nodeType = u.DOCUMENT
7829            }
7830
7831            function c() {
7832                f.call(this, new Locator), this.nodeType = u.DOCUMENT_FRAGMENT
7833            }
7834
7835            function h(e, t, n, r, i, s) {
7836                f.call(this, e), this.uri = t, this.localName = n, this.qName = r, this.attributes = i, this.prefixMappings = s, this.nodeType = u.ELEMENT
7837            }
7838
7839            function p(e, t) {
7840                a.call(this, e), this.data = t, this.nodeType = u.CHARACTERS
7841            }
7842
7843            function d(e, t) {
7844                a.call(this, e), this.data = t, this.nodeType = u.IGNORABLE_WHITESPACE
7845            }
7846
7847            function v(e, t) {
7848                a.call(this, e), this.data = t, this.nodeType = u.COMMENT
7849            }
7850
7851            function m(e) {
7852                f.call(this, e), this.nodeType = u.CDATA
7853            }
7854
7855            function g(e) {
7856                f.call(this), this.name = e, this.nodeType = u.ENTITY
7857            }
7858
7859            function y(e) {
7860                a.call(this), this.name = e, this.nodeType = u.SKIPPED_ENTITY
7861            }
7862
7863            function b(e, t) {
7864                a.call(this), this.target = e, this.data = t
7865            }
7866
7867            function w(e, t, n) {
7868                f.call(this), this.name = e, this.publicIdentifier = t, this.systemIdentifier = n, this.nodeType = u.DTD
7869            }
7870
7871            var r = e("util"), i = e("../TreeBuilder").TreeBuilder;
7872            r.inherits(s, i), s.prototype.start = function (e) {
7873                this.document = new l(this.tokenizer)
7874            }, s.prototype.end = function () {
7875                this.document.endLocator = this.tokenizer
7876            }, s.prototype.insertDoctype = function (e, t, n) {
7877                var r = new w(this.tokenizer, e, t, n);
7878                r.endLocator = this.tokenizer, this.document.appendChild(r)
7879            }, s.prototype.createElement = function (e, t, n) {
7880                var r = new h(this.tokenizer, e, t, t, n || []);
7881                return r
7882            }, s.prototype.insertComment = function (e, t) {
7883                t || (t = this.currentStackItem());
7884                var n = new v(this.tokenizer, e);
7885                t.appendChild(n)
7886            }, s.prototype.appendCharacters = function (e, t) {
7887                var n = new p(this.tokenizer, t);
7888                e.appendChild(n)
7889            }, s.prototype.insertText = function (e) {
7890                if (this.redirectAttachToFosterParent && this.openElements.top.isFosterParenting()) {
7891                    var t = this.openElements.findIndex("table"), n = this.openElements.item(t), r = n.node;
7892                    if (t === 0) return this.appendCharacters(r, e);
7893                    var i = new p(this.tokenizer, e), s = r.parentNode;
7894                    if (s) {
7895                        s.insertBetween(i, r.previousSibling, r);
7896                        return
7897                    }
7898                    var o = this.openElements.item(t - 1).node;
7899                    o.appendChild(i);
7900                    return
7901                }
7902                this.appendCharacters(this.currentStackItem().node, e)
7903            }, s.prototype.attachNode = function (e, t) {
7904                t.appendChild(e)
7905            }, s.prototype.attachNodeToFosterParent = function (e, t, n) {
7906                var r = t.parentNode;
7907                r ? r.insertBetween(e, t.previousSibling, t) : n.appendChild(e)
7908            }, s.prototype.detachFromParent = function (e) {
7909                e.detach()
7910            }, s.prototype.reparentChildren = function (e, t) {
7911                t.appendChildren(e.firstChild)
7912            }, s.prototype.getFragment = function () {
7913                var e = new c;
7914                return this.reparentChildren(this.openElements.rootNode, e), e
7915            }, s.prototype.addAttributesToElement = function (e, t) {
7916                for (var n = 0; n < t.length; n++) {
7917                    var r = t[n];
7918                    o(e, r.nodeName) || e.attributes.push(r)
7919                }
7920            };
7921            var u = {
7922                CDATA: 1,
7923                CHARACTERS: 2,
7924                COMMENT: 3,
7925                DOCUMENT: 4,
7926                DOCUMENT_FRAGMENT: 5,
7927                DTD: 6,
7928                ELEMENT: 7,
7929                ENTITY: 8,
7930                IGNORABLE_WHITESPACE: 9,
7931                PROCESSING_INSTRUCTION: 10,
7932                SKIPPED_ENTITY: 11
7933            };
7934            a.prototype.visit = function (e) {
7935                throw new Error("Not Implemented")
7936            }, a.prototype.revisit = function (e) {
7937                return
7938            }, a.prototype.detach = function () {
7939                this.parentNode !== null && (this.parentNode.removeChild(this), this.parentNode = null)
7940            }, Object.defineProperty(a.prototype, "previousSibling", {
7941                get: function () {
7942                    var e = null, t = this.parentNode.firstChild;
7943                    for (; ;) {
7944                        if (this == t) return e;
7945                        e = t, t = t.nextSibling
7946                    }
7947                }
7948            }), f.prototype = Object.create(a.prototype), f.prototype.insertBefore = function (e, t) {
7949                if (!t) return this.appendChild(e);
7950                e.detach(), e.parentNode = this;
7951                if (this.firstChild == t) e.nextSibling = t, this.firstChild = e; else {
7952                    var n = this.firstChild, r = this.firstChild.nextSibling;
7953                    while (r != t) n = r, r = r.nextSibling;
7954                    n.nextSibling = e, e.nextSibling = r
7955                }
7956                return e
7957            }, f.prototype.insertBetween = function (e, t, n) {
7958                return n ? (e.detach(), e.parentNode = this, e.nextSibling = n, t ? t.nextSibling = e : firstChild = e, e) : this.appendChild(e)
7959            }, f.prototype.appendChild = function (e) {
7960                return e.detach(), e.parentNode = this, this.firstChild ? this.lastChild.nextSibling = e : this.firstChild = e, this.lastChild = e, e
7961            }, f.prototype.appendChildren = function (e) {
7962                var t = e.firstChild;
7963                if (!t) return;
7964                var n = e;
7965                this.firstChild ? this.lastChild.nextSibling = t : this.firstChild = t, this.lastChild = n.lastChild;
7966                do t.parentNode = this; while (t = t.nextSibling);
7967                n.firstChild = null, n.lastChild = null
7968            }, f.prototype.removeChild = function (e) {
7969                if (this.firstChild == e) this.firstChild = e.nextSibling, this.lastChild == e && (this.lastChild = null); else {
7970                    var t = this.firstChild, n = this.firstChild.nextSibling;
7971                    while (n != e) t = n, n = n.nextSibling;
7972                    t.nextSibling = e.nextSibling, this.lastChild == e && (this.lastChild = t)
7973                }
7974                return e.parentNode = null, e
7975            }, Object.defineProperty(f.prototype, "endLocator", {
7976                get: function () {
7977                    return this._endLocator
7978                }, set: function (e) {
7979                    this._endLocator = {lineNumber: e.lineNumber, 
7979columnNumber: e.columnNumber}
7980                }
7981            }), l.prototype = Object.create(f.prototype), l.prototype.visit = function (e) {
7982                e.startDocument(this)
7983            }, l.prototype.revisit = function (e) {
7984                e.endDocument(this.endLocator)
7985            }, c.prototype = Object.create(f.prototype), c.prototype.visit = function (e) {
7986            }, h.prototype = Object.create(f.prototype), h.prototype.visit = function (e) {
7987                if (this.prefixMappings) for (var t in prefixMappings) {
7988                    var n = prefixMappings[t];
7989                    e.startPrefixMapping(n.getPrefix(), n.getUri(), this)
7990                }
7991                e.startElement(this.uri, this.localName, this.qName, this.attributes, this)
7992            }, h.prototype.revisit = function (e) {
7993                e.endElement(this.uri, this.localName, this.qName, this.endLocator);
7994                if (this.prefixMappings) for (var t in prefixMappings) {
7995                    var n = prefixMappings[t];
7996                    e.endPrefixMapping(n.getPrefix(), this.endLocator)
7997                }
7998            }, p.prototype = Object.create(a.prototype), p.prototype.visit = function (e) {
7999                e.characters(this.data, 0, this.data.length, this)
8000            }, d.prototype = Object.create(a.prototype), d.prototype.visit = function (e) {
8001                e.ignorableWhitespace(this.data, 0, this.data.length, this)
8002            }, v.prototype = Object.create(a.prototype), v.prototype.visit = function (e) {
8003                e.comment(this.data, 0, this.data.length, this)
8004            }, m.prototype = Object.create(f.prototype), m.prototype.visit = function (e) {
8005                e.startCDATA(this)
8006            }, m.prototype.revisit = function (e) {
8007                e.endCDATA(this.endLocator)
8008            }, g.prototype = Object.create(f.prototype), g.prototype.visit = function (e) {
8009                e.startEntity(this.name, this)
8010            }, g.prototype.revisit = function (e) {
8011                e.endEntity(this.name)
8012            }, y.prototype = Object.create(a.prototype), y.prototype.visit = function (e) {
8013                e.skippedEntity(this.name, this)
8014            }, b.prototype = Object.create(a.prototype), b.prototype.visit = function (e) {
8015                e.processingInstruction(this.target, this.data, this)
8016            }, b.prototype.getNodeType = function () {
8017                return u.PROCESSING_INSTRUCTION
8018            }, w.prototype = Object.create(f.prototype), w.prototype.visit = function (e) {
8019                e.startDTD(this.name, this.publicIdentifier, this.systemIdentifier, this)
8020            }, w.prototype.revisit = function (e) {
8021                e.endDTD()
8022            }, n.SAXTreeBuilder = s
8023        }, {"../TreeBuilder": 6, util: 20}], 11: [function (e, t, n) {
8024            function r(e, t) {
8025                this.contentHandler, this.lexicalHandler, this.locatorDelegate;
8026                if (!e) throw new IllegalArgumentException("contentHandler was null.");
8027                this.contentHandler = e, t ? this.lexicalHandler = t : this.lexicalHandler = new i
8028            }
8029
8030            function i() {
8031            }
8032
8033            r.prototype.parse = function (e) {
8034                this.contentHandler.documentLocator = this;
8035                var t = e, n;
8036                for (; ;) {
8037                    t.visit(this);
8038                    if (n = t.firstChild) {
8039                        t = n;
8040                        continue
8041                    }
8042                    for (; ;) {
8043                        t.revisit(this);
8044                        if (t == e) return;
8045                        if (n = t.nextSibling) {
8046                            t = n;
8047                            break
8048                        }
8049                        t = t.parentNode
8050                    }
8051                }
8052            }, r.prototype.characters = function (e, t, n, r) {
8053                this.locatorDelegate = r, this.contentHandler.characters(e, t, n)
8054            }, r.prototype.endDocument = function (e) {
8055                this.locatorDelegate = e, this.contentHandler.endDocument()
8056            }, r.prototype.endElement = function (e, t, n, r) {
8057                this.locatorDelegate = r, this.contentHandler.endElement(e, t, n)
8058            }, r.prototype.endPrefixMapping = function (e, t) {
8059                this.locatorDelegate = t, this.contentHandler.endPrefixMapping(e)
8060            }, r.prototype.ignorableWhitespace = function (e, t, n, r) {
8061                this.locatorDelegate = r, this.contentHandler.ignorableWhitespace(e, t, n)
8062            }, r.prototype.processingInstruction = function (e, t, n) {
8063                this.locatorDelegate = n, this.contentHandler.processingInstruction(e, t)
8064            }, r.prototype.skippedEntity = function (e, t) {
8065                this.locatorDelegate = t, this.contentHandler.ski
8065ppedEntity(e)
8066            }, r.prototype.startDocument = function (e) {
8067                this.locatorDelegate = e, this.contentHandler.startDocument()
8068            }, r.prototype.startElement = function (e, t, n, r, i) {
8069                this.locatorDelegate = i, this.contentHandler.startElement(e, t, n, r)
8070            }, r.prototype.startPrefixMapping = function (e, t, n) {
8071                this.locatorDelegate = n, this.contentHandler.startPrefixMapping(e, t)
8072            }, r.prototype.comment = function (e, t, n, r) {
8073                this.locatorDelegate = r, this.lexicalHandler.comment(e, t, n)
8074            }, r.prototype.endCDATA = function (e) {
8075                this.locatorDelegate = e, this.lexicalHandler.endCDATA()
8076            }, r.prototype.endDTD = function (e) {
8077                this.locatorDelegate = e, this.lexicalHandler.endDTD()
8078            }, r.prototype.endEntity = function (e, t) {
8079                this.locatorDelegate = t, this.lexicalHandler.endEntity(e)
8080            }, r.prototype.startCDATA = function (e) {
8081                this.locatorDelegate = e, this.lexicalHandler.startCDATA()
8082            }, r.prototype.startDTD = function (e, t, n, r) {
8083                this.locatorDelegate = r, this.lexicalHandler.startDTD(e, t, n)
8084            }, r.prototype.startEntity = function (e, t) {
8085                this.locatorDelegate = t, this.lexicalHandler.startEntity(e)
8086            }, Object.defineProperty(r.prototype, "columnNumber", {
8087                get: function () {
8088                    return this.locatorDelegate ? this.locatorDelegate.columnNumber : -1
8089                }
8090            }), Object.defineProperty(r.prototype, "lineNumber", {
8091                get: function () {
8092                    return this.locatorDelegate ? this.locatorDelegate.lineNumber : -1
8093                }
8094            }), i.prototype.comment = function () {
8095            }, i.prototype.endCDATA = function () {
8096            }, i.prototype.endDTD = function () {
8097            }, i.prototype.endEntity = function () {
8098            }, i.prototype.startCDATA = function () {
8099            }, i.prototype.startDTD = function () {
8100            }, i.prototype.startEntity = function () {
8101            }, n.TreeParser = r
8102        }, {}], 12: [function (e, t, n) {
8103            t.exports = {
8104                "Aacute;": "\u00c1",
8105                Aacute: "\u00c1",
8106                "aacute;": "\u00e1",
8107                aacute: "\u00e1",
8108                "Abreve;": "\u0102",
8109                "abreve;": "\u0103",
8110                "ac;": "\u223e",
8111                "acd;": "\u223f",
8112                "acE;": "\u223e\u0333",
8113                "Acirc;": "\u00c2",
8114                Acirc: "\u00c2",
8115                "acirc;": "\u00e2",
8116                acirc: "\u00e2",
8117                "acute;": "\u00b4",
8118                acute: "\u00b4",
8119                "Acy;": "\u0410",
8120                "acy;
8120": "\u0430",
8121                "AElig;": "\u00c6",
8122                AElig: "\u00c6",
8123                "aelig;": "\u00e6",
8124                aelig: "\u00e6",
8125                "af;": "\u2061",
8126                "Afr;": "\ud835\udd04",
8127                "afr;": "\ud835\udd1e",
8128                "Agrave;": "\u00c0",
8129                Agrave: "\u00c0",
8130                "agrave;": "\u00e0",
8131                agrave: "\u00e0",
8132                "alefsym;": "\u2135",
8133                "aleph;": "\u2135",
8134                "Alpha;": "\u0391",
8135                "alpha;": "\u03b1",
8136                "Amacr;": "\u0100",
8137                "amacr;": "\u0101",
8138                "amalg;": "\u2a3f",
8139                "amp;": "&",
8140                amp: "&",
8141                "AMP;": "&",
8142                AMP: "&",
8143                "andand;": "\u2a55",
8144                "And;": "\u2a53",
8145                "and;": "\u2227",
8146                "andd;": "\u2a5c",
8147                "andslope;": "\u2a58",
8148                "andv;": "\u2a5a",
8149                "ang;": "\u2220",
8150                "ange;": "\u29a4",
8151                "angle;": "\u2220",
8152                "angmsdaa;": "\u29a8",
8153                "angmsdab;": "\u29a9",
8154                "angmsdac;": "\u29aa",
8155                "angmsdad;": "\u29ab",
8156                "angmsdae;": "\u29ac",
8157                "angmsdaf;": "\u29ad",
8158                "angmsdag;": "\u29ae",
8159                "angmsdah;": "\u29af",
8160                "angmsd;": "\u2221",
8161                "angrt;": "\u221f",
8162                "angrtvb;": "\u22be",
8163                "angrtvbd;": "\u299d",
8164                "angsph;": "\u2222",
8165                "angst;": "\u00c5",
8166                "angzarr;": "\u237c",
8167                "Aogon;": "\u0104",
8168                "aogon;": "\u0105",
8169                "Aopf;": "\ud835\udd38",
8170                "aopf;": "\ud835\udd52",
8171                "apacir;": "\u2a6f",
8172                "ap;": "\u2248",
8173                "apE;": "\u2a70",
8174                "ape;": "\u224a",
8175                "apid;": "\u224b",
8176                "apos;": "'",
8177                "ApplyFunction;": "\u2061",
8178                "approx;": "\u2248",
8179                "approxeq;": "\u224a",
8180                "Aring;": "\u00c5",
8181                Aring: "\u00c5",
8182                "aring;": "\u00e5",
8183                aring: "\u00e5",
8184                "Ascr;": "\ud835\udc9c",
8185                "ascr;": "\ud835\udcb6",
8186                "Assign;": "\u2254",
8187                "ast;": "*",
8188                "asymp;": "\u2248",
8189                "asympeq;": "\u224d",
8190                "Atilde;": "\u00c3",
8191                Atilde: "\u00c3",
8192                "atilde;": "\u00e3",
8193                atilde: "\u00e3",
8194                "Auml;": "\u00c4",
8195                Auml: "\u00c4",
8196                "auml;": "\u00e4",
8197                auml: "\u00e4",
8198                "awconint;": "\u2233",
8199                "awint;": "\u2a11",
8200                "backcong;": "\u224c",
8201                "backepsilon;": "\u03f6",
8202                "backprime;": "\u2035",
8203                "backsim;": "\u223d",
8204                "backsimeq;": "\u22cd",
8205                "Backslash;": "\u2216",
8206                "Barv;": "\u2ae7",
8207                "barvee;": "\u22bd",
8208                "barwed;": "\u2305",
8209                "Barwed;": "\u2306",
8210                "barwedge;": "\u2305",
8211                "bbrk;": "\u23b5",
8212                "bbrktbrk;": "\u23b6",
8213                "bcong;": "\u224c",
8214                "Bcy;": "\u0411",
8215                "bcy;": "\u0431",
8216                "bdquo;": "\u201e",
8217                "becaus;": "\u2235",
8218                "because;": "\u2235",
8219                "Because;": "\u2235",
8220                "bemptyv;": "\u29b0",
8221                "bepsi;": "\u03f6",
8222                "bernou;": "\u212c",
8223                "Bernoullis;": "\u212c",
8224                "Beta;": "\u0392",
8225                "beta;": "\u03b2",
8226                "beth;": "\u2136",
8227                "between;": "\u226c",
8228                "Bfr;": "\ud835\udd05",
8229                "bfr;": "\ud835\udd1f",
8230                "bigcap;": "\u22c2",
8231                "bigcirc;": "\u25ef",
8232                "bigcup;": "\u22c3",
8233                "bigodot;": "\u2a00",
8234                "bigoplus;": "\u2a01",
8235                "bigotimes;": "\u2a02",
8236                "bigsqcup;": "\u2a06",
8237                "bigstar;": "\u2605",
8238                "bigtriangledown;": "\u25bd",
8239                "bigtriangleup;": "\u25b3",
8240                "biguplus;": "\u2a04",
8241                "bigvee;": "\u22c1",
8242                "bigwedge;": "\u22c0",
8243                "bkarow;": "\u290d",
8244                "blacklozenge;": "\u29eb",
8245                "blacksquare;": "\u25aa",
8246                "blacktriangle;": "\u25b4",
8247                "blacktriangledown;": "\u25be",
8248                "blacktriangleleft;": "\u25c2",
8249                "blacktriangleright;": "\u25b8",
8250                "blank;": "\u2423",
8251                "blk12;": "\u2592",
8252                "blk14;": "\u2591",
8253                "blk34;": "\u2593",
8254                "block;": "\u2588",
8255                "bne;": "=\u20e5",
8256                "bnequiv;": "\u2261\u20e5",
8257                "bNot;": "\u2aed",
8258                "bnot;": "\u2310",
8259                "Bopf;": "\ud835\udd39",
8260                "bopf;": "\ud835\udd53",
8261                "bot;": "\u22a5",
8262                "bottom;": "\u22a5",
8263                "bowtie;": "\u22c8",
8264                "boxbox;": "\u29c9",
8265                "boxdl;": "\u2510",
8266                "boxdL;": "\u2555",
8267                "boxDl;": "\u2556",
8268                "boxDL;": "\u2557",
8269                "boxdr;": "\u250c",
8270                "boxdR;": "\u2552",
8271                "boxDr;": "\u2553",
8272                "boxDR;": "\u2554",
8273                "boxh;": "\u2500",
8274                "boxH;": "\u2550",
8275                "boxhd;": "\u252c",
8276                "boxHd;": "\u2564",
8277                "boxhD;": "\u2565",
8278                "boxHD;": "\u2566",
8279                "boxhu;": "\u2534",
8280                "boxHu;": "\u2567",
8281                "boxhU;": "\u2568",
8282                "boxHU;": "\u2569",
8283                "boxminus;": "\u229f",
8284                "boxplus;": "\u229e",
8285                "boxtimes;": "\u22a0",
8286                "boxul;": "\u2518",
8287                "boxuL;": "\u255b",
8288                "boxUl;": "\u255c",
8289                "boxUL;": "\u255d",
8290                "boxur;": "\u2514",
8291                "boxuR;": "\u2558",
8292                "boxUr;": "\u2559",
8293                "boxUR;": "\u255a",
8294                "boxv;": "\u2502",
8295                "boxV;": "\u2551",
8296                "boxvh;": "\u253c",
8297                "boxvH;": "\u256a",
8298                "boxVh;": "\u256b",
8299                "boxVH;": "\u256c",
8300                "boxvl;": "\u2524",
8301                "boxvL;": "\u2561",
8302                "boxVl;": "\u2562",
8303                "boxVL;": "\u2563",
8304                "boxvr;": "\u251c",
8305                "boxvR;": "\u255e",
8306                "boxVr;": "\u255f",
8307                "boxVR;": "\u2560",
8308                "bprime;": "\u2035",
8309                "breve;": "\u02d8",
8310                "Breve;": "\u02d8",
8311                "brvbar;": "\u00a6",
8312                brvbar: "\u00a6",
8313                "bscr;": "\ud835\udcb7",
8314                "Bscr;": "\u212c",
8315                "bsemi;": "\u204f",
8316                "bsim;": "\u223d",
8317                "bsime;": "\u22cd",
8318                "bsolb;": "\u29c5",
8319                "bsol;": "\\",
8320                "bsolhsub;": "\u27c8",
8321                "bull;": "\u2022",
8322                "bullet;": "\u2022",
8323                "bump;": "\u224e",
8324                "bumpE;": "\u2aae",
8325                "bumpe;": "\u224f",
8326                "Bumpeq;": "\u224e",
8327                "bumpeq;": "\u224f",
8328                "Cacute;": "\u0106",
8329                "cacute;": "\u0107",
8330                "capand;": "\u2a44",
8331                "capbrcup;": "\u2a49",
8332                "capcap;": "\u2a4b",
8333                "cap;": "\u2229",
8334                "Cap;": "\u22d2",
8335                "capcup;": "\u2a47",
8336                "capdot;": "\u2a40",
8337                "CapitalDifferentialD;": "\u2145",
8338                "caps;": "\u2229\ufe00",
8339                "caret;": "\u2041",
8340                "caron;": "\u02c7",
8341                "Cayleys;": "\u212d",
8342                "ccaps;": "\u2a4d",
8343                "Ccaron;": "\u010c",
8344                "ccaron;": "\u010d",
8345                "Ccedil;": "\u00c7",
8346                Ccedil: "\u00c7",
8347                "ccedil;": "\u00e7",
8348                ccedil: "\u00e7",
8349                "Ccirc;": "\u0108",
8350                "ccirc;": "\u0109",
8351                "Cconint;": "\u2230",
8352                "ccups;": "\u2a4c",
8353                "ccupssm;": "\u2a50",
8354                "Cdot;": "\u010a",
8355                "cdot;": "\u010b",
8356                "cedil;": "\u00b8",
8357                cedil: "\u00b8",
8358                "Cedilla;": "\u00b8",
8359                "cemptyv;": "\u29b2",
8360                "cent;": "\u00a2",
8361                cent: "\u00a2",
8362                "centerdot;": "\u00b7",
8363                "CenterDot;": "\u00b7",
8364                "cfr;": "\ud835\udd20",
8365                "Cfr;": "\u212d",
8366                "CHcy;": "\u0427",
8367                "chcy;": "\u0447",
8368                "check;": "\u2713",
8369                "checkmark;": "\u2713",
8370                "Chi;": "\u03a7",
8371                "chi;": "\u03c7",
8372                "circ;": "\u02c6",
8373                "circeq;": "\u2257",
8374                "circlearrowleft;": "\u21ba",
8375                "circlearrowright;": "\u21bb",
8376                "circledast;": "\u229b",
8377                "circledcirc;": "\u229a",
8378                "circleddash;": "\u229d",
8379                "CircleDot;": "\u2299",
8380                "circledR;": "\u00ae",
8381                "circledS;": "\u24c8",
8382                "CircleMinus;": "\u2296",
8383                "CirclePlus;": "\u2295",
8384                "CircleTimes;": "\u2297",
8385                "cir;": "\u25cb",
8386                "cirE;": "\u29c3",
8387                "cire;": "\u2257",
8388                "cirfnint;": "\u2a10",
8389                "cirmid;": "\u2aef",
8390                "cirscir;": "\u29c2",
8391                "ClockwiseContourIntegral;": "\u2232",
8392                "CloseCurlyDoubleQuote;": "\u201d",
8393                "CloseCurlyQuote;": "\u2019",
8394                "clubs;": "\u2663",
8395                "clubsuit;": "\u2663",
8396                "colon;": ":",
8397                "Colon;": "\u2237",
8398                "Colone;": "\u2a74",
8399                "colone;": "\u2254",
8400                "coloneq;": "\u2254",
8401                "comma;": ",",
8402                "commat;": "@",
8403                "comp;": "\u2201",
8404                "compfn;": "\u2218",
8405                "complement;": "\u2201",
8406                "complexes;": "\u2102",
8407                "cong;": "\u2245",
8408                "congdot;": "\u2a6d",
8409                "Congruent;": "\u2261",
8410                "conint;": "\u222e",
8411                "Conint;": "\u222f",
8412                "ContourIntegral;": "\u222e",
8413                "copf;": "\ud835\udd54",
8414                "Copf;": "\u2102",
8415                "coprod;": "\u2210",
8416                "Coproduct;": "\u2210",
8417                "copy;": "\u00a9",
8418                copy: "\u00a9",
8419                "COPY;": "\u00a9",
8420                COPY: "\u00a9",
8421                "copysr;": "\u2117",
8422                "CounterClockwiseContourIntegral;": "\u2233",
8423                "crarr;": "\u21b5",
8424                "cross;": "\u2717",
8425                "Cross;": "\u2a2f",
8426                "Cscr;": "\ud835\udc9e",
8427                "cscr;": "\ud835\udcb8",
8428                "csub;": "\u2acf",
8429                "csube;": "\u2ad1",
8430                "csup;": "\u2ad0",
8431                "csupe;": "\u2ad2",
8432                "ctdot;": "\u22ef",
8433                "cudarrl;": "\u2938",
8434                "cudarrr;": "\u2935",
8435                "cuepr;": "\u22de",
8436                "cuesc;": "\u22df",
8437                "cularr;": "\u21b6",
8438                "cularrp;": "\u293d",
8439                "cupbrcap;": "\u2a48",
8440                "cupcap;": "\u2a46",
8441                "CupCap;": "\u224d",
8442                "cup;": "\u222a",
8443                "Cup;": "\u22d3",
8444                "cupcup;": "\u2a4a",
8445                "cupdot;": "\u228d",
8446                "cupor;": "\u2a45",
8447                "cups;": "\u222a\ufe00",
8448                "curarr;": "\u21b7",
8449                "curarrm;": "\u293c",
8450                "curlyeqprec;": "\u22de",
8451                "curlyeqsucc;": "\u22df",
8452                "curlyvee;": "\u22ce",
8453                "curlywedge;": "\u22cf",
8454                "curren;": "\u00a4",
8455                curren: "\u00a4",
8456                "curvearrowleft;": "\u21b6",
8457                "curvearrowright;": "\u21b7",
8458                "cuvee;": "\u22ce",
8459                "cuwed;": "\u22cf",
8460                "cwconint;": "\u2232",
8461                "cwint;": "\u2231",
8462                "cylcty;": "\u232d",
8463                "dagger;": "\u2020",
8464                "Dagger;": "\u2021",
8465                "daleth;": "\u2138",
8466                "darr;": "\u2193",
8467                "Darr;": "\u21a1",
8468                "dArr;": "\u21d3",
8469                "dash;": "\u2010",
8470                "Dashv;": "\u2ae4",
8471                "dashv;": "\u22a3",
8472                "dbkarow;": "\u290f",
8473                "dblac;": "\u02dd",
8474                "Dcaron;": "\u010e",
8475                "dcaron;": "\u010f",
8476                "Dcy;": "\u0414",
8477                "dcy;": "\u0434",
8478                "ddagger;": "\u2021",
8479                "ddarr;": "\u21ca",
8480                "DD;": "\u2145",
8481                "dd;": "\u2146",
8482                "DDotrahd;": "\u2911",
8483                "ddotseq;": "\u2a77",
8484                "deg;": "\u00b0",
8485                deg: "\u00b0",
8486                "Del;": "\u2207",
8487                "Delta;": "\u0394",
8488                "delta;": "\u03b4",
8489                "demptyv;": "\u29b1",
8490                "dfisht;": "\u297f",
8491                "Dfr;": "\ud835\udd07",
8492                "dfr;": "\ud835\udd21",
8493                "dHar;": "\u2965",
8494                "dharl;": "\u21c3",
8495                "dharr;": "\u21c2",
8496                "DiacriticalAcute;": "\u00b4",
8497                "DiacriticalDot;": "\u02d9",
8498                "DiacriticalDoubleAcute;": "\u02dd",
8499                "DiacriticalGrave;": "`",
8500                "DiacriticalTilde;": "\u02dc",
8501                "diam;": "\u22c4",
8502                "diamond;": "\u22c4",
8503                "Diamond;": "\u22c4",
8504                "diamondsuit;": "\u2666",
8505                "diams;": "\u2666",
8506                "die;": "\u00a8",
8507                "DifferentialD;
8507": "\u2146",
8508                "digamma;": "\u03dd",
8509                "disin;": "\u22f2",
8510                "div;": "\u00f7",
8511                "divide;": "\u00f7",
8512                divide: "\u00f7",
8513                "divideontimes;": "\u22c7",
8514                "divonx;": "\u22c7",
8515                "DJcy;": "\u0402",
8516                "djcy;": "\u0452",
8517                "dlcorn;": "\u231e",
8518                "dlcrop;": "\u230d",
8519                "dollar;": "$",
8520                "Dopf;": "\ud835\udd3b",
8521                "dopf;": "\ud835\udd55",
8522                "Dot;": "\u00a8",
8523                "dot;": "\u02d9",
8524                "DotDot;": "\u20dc",
8525                "doteq;": "\u2250",
8526                "doteqdot;": "\u2251",
8527                "DotEqual;": "\u2250",
8528                "dotminus;": "\u2238",
8529                "dotplus;": "\u2214",
8530                "dotsquare;": "\u22a1",
8531                "doublebarwedge;": "\u2306",
8532                "DoubleContourIntegral;": "\u222f",
8533                "DoubleDot;": "\u00a8",
8534                "DoubleDownArrow;": "\u21d3",
8535                "DoubleLeftArrow;": "\u21d0",
8536                "DoubleLeftRightArrow;": "\u21d4",
8537                "DoubleLeftTee;": "\u2ae4",
8538                "DoubleLongLeftArrow;": "\u27f8",
8539                "DoubleLongLeftRightArrow;": "\u27fa",
8540                "DoubleLongRightArrow;": "\u27f9",
8541                "DoubleRightArrow;": "\u21d2",
8542                "DoubleRightTee;": "\u22a8",
8543                "DoubleUpArrow;": "\u21d1",
8544                "DoubleUpDownArrow;": "\u21d5",
8545                "DoubleVerticalBar;": "\u2225",
8546                "DownArrowBar;": "\u2913",
8547                "downarrow;": "\u2193",
8548                "DownArrow;": "\u2193",
8549                "Downarrow;": "\u21d3",
8550                "DownArrowUpArrow;": "\u21f5",
8551                "DownBreve;": "\u0311",
8552                "downdownarrows;": "\u21ca",
8553                "downharpoonleft;": "\u21c3",
8554                "downharpoonright;": "\u21c2",
8555                "DownLeftRightVector;": "\u2950",
8556                "DownLeftTeeVector;": "\u295e",
8557                "DownLeftVectorBar;": "\u2956",
8558                "DownLeftVector;": "\u21bd",
8559                "DownRightTeeVector;": "\u295f",
8560                "DownRightVectorBar;": "\u2957",
8561                "DownRightVector;": "\u21c1",
8562                "DownTeeArrow;": "\u21a7",
8563                "DownTee;": "\u22a4",
8564                "drbkarow;": "\u2910",
8565                "drcorn;": "\u231f",
8566                "drcrop;": "\u230c",
8567                "Dscr;": "\ud835\udc9f",
8568                "dscr;": "\ud835\udcb9",
8569                "DScy;": "\u0405",
8570                "dscy;": "\u0455",
8571                "dsol;": "\u29f6",
8572                "Dstrok;": "\u0110",
8573                "dstrok;": "\u0111",
8574                "dtdot;": "\u22f1",
8575                "dtri;": "\u25bf",
8576                "dtrif;": "\u25be",
8577                "duarr;": "\u21f5",
8578                "duhar;": "\u296f",
8579                "dwangle;": "\u29a6",
8580                "DZcy;": "\u040f",
8581                "dzcy;": "\u045f",
8582                "dzigrarr;": "\u27ff",
8583                "Eacute;": "\u00c9",
8584                Eacute: "\u00c9",
8585                "eacute;": "\u00e9",
8586                eacute: "\u00e9",
8587                "easter;": "\u2a6e",
8588                "Ecaron;": "\u011a",
8589                "ecaron;": "\u011b",
8590                "Ecirc;": "\u00ca",
8591                Ecirc: "\u00ca",
8592                "ecirc;": "\u00ea",
8593                ecirc: "\u00ea",
8594                "ecir;": "\u2256",
8595                "ecolon;": "\u2255",
8596                "Ecy;": "\u042d",
8597                "ecy;": "\u044d",
8598                "eDDot;": "\u2a77",
8599                "Edot;": "\u0116",
8600                "edot;": "\u0117",
8601                "eDot;": "\u2251",
8602                "ee;": "\u2147",
8603                "efDot;": "\u2252",
8604                "Efr;": "\ud835\udd08",
8605                "efr;": "\ud835\udd22",
8606                "eg;": "\u2a9a",
8607                "Egrave;": "\u00c8",
8608                Egrave: "\u00c8",
8609                "egrave;": "\u00e8",
8610                egrave: "\u00e8",
8611                "egs;": "\u2a96",
8612                "egsdot;": "\u2a98",
8613                "el;": "\u2a99",
8614                "Element;": "\u2208",
8615                "elinters;": "\u23e7",
8616                "ell;": "\u2113",
8617                "els;": "\u2a95",
8618                "elsdot;": "\u2a97",
8619                "Emacr;": "\u0112",
8620                "emacr;": "\u0113",
8621                "empty;": "\u2205",
8622                "emptyset;": "\u2205",
8623                "EmptySmallSquare;": "\u25fb",
8624                "emptyv;": "\u2205",
8625                "EmptyVerySmallSquare;": "\u25ab",
8626                "emsp13;": "\u2004",
8627                "emsp14;": "\u2005",
8628                "emsp;": "\u2003",
8629                "ENG;": "\u014a",
8630                "eng;": "\u014b",
8631                "ensp;": "\u2002",
8632                "Eogon;": "\u0118",
8633                "eogon;": "\u0119",
8634                "Eopf;": "\ud835\udd3c",
8635                "eopf;": "\ud835\udd56",
8636                "epar;": "\u22d5",
8637                "eparsl;": "\u29e3",
8638                "eplus;": "\u2a71",
8639                "epsi;": "\u03b5",
8640                "Epsilon;": "\u0395",
8641                "epsilon;": "\u03b5",
8642                "epsiv;": "\u03f5",
8643                "eqcirc;": "\u2256",
8644                "eqcolon;": "\u2255",
8645                "eqsim;": "\u2242",
8646                "eqslantgtr;": "\u2a96",
8647                "eqslantless;": "\u2a95",
8648                "Equal;": "\u2a75",
8649                "equals;": "=",
8650                "EqualTilde;": "\u2242",
8651                "equest;": "\u225f",
8652                "Equilibrium;": "\u21cc",
8653                "equiv;": "\u2261",
8654                "equivDD;": "\u2a78",
8655                "eqvparsl;": "\u29e5",
8656                "erarr;": "\u2971",
8657                "erDot;": "\u2253",
8658                "escr;": "\u212f",
8659                "Escr;": "\u2130",
8660                "esdot;": "\u2250",
8661                "Esim;": "\u2a73",
8662                "esim;": "\u2242",
8663                "Eta;": "\u0397",
8664                "eta;": "\u03b7",
8665                "ETH;": "\u00d0",
8666                ETH: "\u00d0",
8667                "eth;": "\u00f0",
8668                eth: "\u00f0",
8669                "Euml;": "\u00cb",
8670                Euml: "\u00cb",
8671                "euml;": "\u00eb",
8672                euml: "\u00eb",
8673                "euro;": "\u20ac",
8674                "excl;": "!",
8675                "exist;": "\u2203",
8676                "Exists;": "\u2203",
8677                "expectation;": "\u2130",
8678                "exponentiale;": "\u2147",
8679                "ExponentialE;": "\u2147",
8680                "fallingdotseq;": "\u2252",
8681                "Fcy;": "\u0424",
8682                "fcy;": "\u0444",
8683                "female;": "\u2640",
8684                "ffilig;": "\ufb03",
8685                "fflig;": "\ufb00",
8686                "ffllig;": "\ufb04",
8687                "Ffr;": "\ud835\udd09",
8688                "ffr;": "\ud835\udd23",
8689                "filig;": "\ufb01",
8690                "FilledSmallSquare;": "\u25fc",
8691                "FilledVerySmallSquare;": "\u25aa",
8692                "fjlig;": "fj",
8693                "flat;": "\u266d",
8694                "fllig;": "\ufb02",
8695                "fltns;": "\u25b1",
8696                "fnof;": "\u0192",
8697                "Fopf;": "\ud835\udd3d",
8698                "fopf;": "\ud835\udd57",
8699                "forall;": "\u2200",
8700                "ForAll;": "\u2200",
8701                "fork;": "\u22d4",
8702                "forkv;": "\u2ad9",
8703                "Fouriertrf;": "\u2131",
8704                "fpartint;": "\u2a0d",
8705                "frac12;": "\u00bd",
8706                frac12: "\u00bd",
8707                "frac13;": "\u2153",
8708                "frac14;": "\u00bc",
8709                frac14: "\u00bc",
8710                "frac15;": "\u2155",
8711                "frac16;": "\u2159",
8712                "frac18;": "\u215b",
8713                "frac23;": "\u2154",
8714                "frac25;": "\u2156",
8715                "frac34;": "\u00be",
8716                frac34: "\u00be",
8717                "frac35;": "\u2157",
8718                "frac38;": "\u215c",
8719                "frac45;": "\u2158",
8720                "frac56;": "\u215a",
8721                "frac58;": "\u215d",
8722                "frac78;": "\u215e",
8723                "frasl;": "\u2044",
8724                "frown;": "\u2322",
8725                "fscr;": "\ud835\udcbb",
8726                "Fscr;": "\u2131",
8727                "gacute;": "\u01f5",
8728                "Gamma;": "\u0393",
8729                "gamma;": "\u03b3",
8730                "Gammad;": "\u03dc",
8731                "gammad;": "\u03dd",
8732                "gap;": "\u2a86",
8733                "Gbreve;": "\u011e",
8734                "gbreve;": "\u011f",
8735                "Gcedil;": "\u0122",
8736                "Gcirc;": "\u011c",
8737                "gcirc;": "\u011d",
8738                "Gcy;": "\u0413",
8739                "gcy;": "\u0433",
8740                "Gdot;": "\u0120",
8741                "gdot;": "\u0121",
8742                "ge;": "\u2265",
8743                "gE;": "\u2267",
8744                "gEl;": "\u2a8c",
8745                "gel;": "\u22db",
8746                "geq;": "\u2265",
8747                "geqq;": "\u2267",
8748                "geqslant;": "\u2a7e",
8749                "gescc;": "\u2aa9",
8750                "ges;": "\u2a7e",
8751                "gesdot;": "\u2a80",
8752                "gesdoto;": "\u2a82",
8753                "gesdotol;": "\u2a84",
8754                "gesl;": "\u22db\ufe00",
8755                "gesles;": "\u2a94",
8756                "Gfr;": "\ud835\udd0a",
8757                "gfr;": "\ud835\udd24",
8758                "gg;": "\u226b",
8759                "Gg;": "\u22d9",
8760                "ggg;": "\u22d9",
8761                "gimel;": "\u2137",
8762                "GJcy;": "\u0403",
8763                "gjcy;": "\u0453",
8764                "gla;": "\u2aa5",
8765                "gl;": "\u2277",
8766                "glE;": "\u2a92",
8767                "glj;": "\u2aa4",
8768                "gnap;": "\u2a8a",
8769                "gnapprox;": "\u2a8a",
8770                "gne;": "\u2a88",
8771                "gnE;": "\u2269",
8772                "gneq;": "\u2a88",
8773                "gneqq;": "\u2269",
8774                "gnsim;": "\u22e7",
8775                "Gopf;": "\ud835\udd3e",
8776                "gopf;": "\ud835\udd58",
8777                "grave;": "`",
8778                "GreaterEqual;": "\u2265",
8779                "GreaterEqualLess;": "\u22db",
8780                "GreaterFullEqual;": "\u2267",
8781                "GreaterGreater;": "\u2aa2",
8782                "GreaterLess;": "\u2277",
8783                "GreaterSlantEqual;": "\u2a7e",
8784                "GreaterTilde;": "\u2273",
8785                "Gscr;": "\ud835\udca2",
8786                "gscr;": "\u210a",
8787                "gsim;": "\u2273",
8788                "gsime;": "\u2a8e",
8789                "gsiml;": "\u2a90",
8790                "gtcc;": "\u2aa7",
8791                "gtcir;": "\u2a7a",
8792                "gt;": ">",
8793                gt: ">",
8794                "GT;": ">",
8795                GT: ">",
8796                "Gt;": "\u226b",
8797                "gtdot;": "\u22d7",
8798                "gtlPar;": "\u2995",
8799                "gtquest;": "\u2a7c",
8800                "gtrapprox;": "\u2a86",
8801                "gtrarr;": "\u2978",
8802                "gtrdot;": "\u22d7",
8803                "gtreqless;": "\u22db",
8804                "gtreqqless;": "\u2a8c",
8805                "gtrless;": "\u2277",
8806                "gtrsim;": "\u2273",
8807                "gvertneqq;": "\u2269\ufe00",
8808                "gvnE;": "\u2269\ufe00",
8809                "Hacek;": "\u02c7",
8810                "hairsp;": "\u200a",
8811                "half;": "\u00bd",
8812                "hamilt;": "\u210b",
8813                "HARDcy;": "\u042a",
8814                "hardcy;": "\u044a",
8815                "harrcir;": "\u2948",
8816                "harr;": "\u2194",
8817                "hArr;": "\u21d4",
8818                "harrw;": "\u21ad",
8819                "Hat;": "^",
8820                "hbar;": "\u210f",
8821                "Hcirc;": "\u0124",
8822                "hcirc;": "\u0125",
8823                "hearts;": "\u2665",
8824                "heartsuit;": "\u2665",
8825                "hellip;": "\u2026",
8826                "hercon;": "\u22b9",
8827                "hfr;": "\ud835\udd25",
8828                "Hfr;": "\u210c",
8829                "HilbertSpace;": "\u210b",
8830                "hksearow;": "\u2925",
8831                "hkswarow;": "\u2926",
8832                "hoarr;": "\u21ff",
8833                "homtht;": "\u223b",
8834                "hookleftarrow;": "\u21a9",
8835                "hookrightarrow;": "\u21aa",
8836                "hopf;": "\ud835\udd59",
8837                "Hopf;": "\u210d",
8838                "horbar;": "\u2015",
8839                "HorizontalLine;": "\u2500",
8840                "hscr;": "\ud835\udcbd",
8841                "Hscr;": "\u210b",
8842                "hslash;": "\u210f",
8843                "Hstrok;": "\u0126",
8844                "hstrok;": "\u0127",
8845                "HumpDownHump;": "\u224e",
8846                "HumpEqual;": "\u224f",
8847                "hybull;": "\u2043",
8848                "hyphen;": "\u2010",
8849                "Iacute;": "\u00cd",
8850                Iacute: "\u00cd",
8851                "iacute;": "\u00ed",
8852                iacute: "\u00ed",
8853                "ic;": "\u2063",
8854                "Icirc;": "\u00ce",
8855                Icirc: "\u00ce",
8856                "icirc;": "\u00ee",
8857                icirc: "\u00ee",
8858                "Icy;": "\u0418",
8859                "icy;": "\u0438",
8860                "Idot;": "\u0130",
8861                "IEcy;": "\u0415",
8862                "iecy;": "\u0435",
8863                "iexcl;": "\u00a1",
8864                iexcl: "\u00a1",
8865                "iff;": "\u21d4",
8866                "ifr;": "\ud835\udd26",
8867                "Ifr;": "\u2111",
8868                "Igrave;": "\u00cc",
8869                Igrave: "\u00cc",
8870                "igrave;": "\u00ec",
8871                igrave: "\u00ec",
8872                "ii;": "\u2148",
8873                "iiiint;": "\u2a0c",
8874                "iiint;": "\u222d",
8875                "iinfin;": "\u29dc",
8876                "iiota;": "\u2129",
8877                "IJlig;": "\u0132",
8878                "ijlig;": "\u0133",
8879                "Imacr;": "\u012a",
8880                "imacr;": "\u012b",
8881                "image;": "\u2111",
8882                "ImaginaryI;": "\u2148",
8883                "imagline;": "\u2110",
8884                "imagpart;": "\u2111",
8885                "imath;": "\u0131",
8886                "Im;": "\u2111",
8887                "imof;": "\u22b7",
8888                "imped;": "\u01b5",
8889                "Implies;": "\u21d2",
8890                "incare;": "\u2105",
8891                "in;": "\u2208",
8892                "infin;": "\u221e",
8893                "infintie;": "\u29dd",
8894                "inodot;": "\u0131",
8895                "intcal;": "\u22ba",
8896                "int;": "\u222b",
8897                "Int;": "\u222c",
8898                "integers;": "\u2124",
8899                "Integral;": "\u222b",
8900                "intercal;": "\u22ba",
8901                "Intersection;": "\u22c2",
8902                "intlarhk;": "\u2a17",
8903                "intprod;": "\u2a3c",
8904                "InvisibleComma;": "\u2063",
8905                "InvisibleTimes;": "\u2062",
8906                "IOcy;": "\u0401",
8907                "iocy;": "\u0451",
8908                "Iogon;": "\u012e",
8909                "iogon;": "\u012f",
8910                "Iopf;": "\ud835\udd40",
8911                "iopf;": "\ud835\udd5a",
8912                "Iota;": "\u0399",
8913                "iota;": "\u03b9",
8914                "iprod;": "\u2a3c",
8915                "iquest;": "\u00bf",
8916                iquest: "\u00bf",
8917                "iscr;": "\ud835\udcbe",
8918                "Iscr;": "\u2110",
8919                "isin;": "\u2208",
8920                "isindot;": "\u22f5",
8921                "isinE;": "\u22f9",
8922                "isins;": "\u22f4",
8923                "isinsv;": "\u22f3",
8924                "isinv;": "\u2208",
8925                "it;": "\u2062",
8926                "Itilde;": "\u0128",
8927                "itilde;": "\u0129",
8928                "Iukcy;": "\u0406",
8929                "iukcy;": "\u0456",
8930                "Iuml;": "\u00cf",
8931                Iuml: "\u00cf",
8932                "iuml;": "\u00ef",
8933                iuml: "\u00ef",
8934                "Jcirc;": "\u0134",
8935                "jcirc;": "\u0135",
8936                "Jcy;": "\u0419",
8937                "jcy;": "\u0439",
8938                "Jfr;": "\ud835\udd0d",
8939                "jfr;": "\ud835\udd27",
8940                "jmath;": "\u0237",
8941                "Jopf;": "\ud835\udd41",
8942                "jopf;": "\ud835\udd5b",
8943                "Jscr;": "\ud835\udca5",
8944                "jscr;": "\ud835\udcbf",
8945                "Jsercy;": "\u0408",
8946                "jsercy;": "\u0458",
8947                "Jukcy;": "\u0404",
8948                "jukcy;": "\u0454",
8949                "Kappa;": "\u039a",
8950                "kappa;": "\u03ba",
8951                "kappav;": "\u03f0",
8952                "Kcedil;": "\u0136",
8953                "kcedil;": "\u0137",
8954                "Kcy;": "\u041a",
8955                "kcy;": "\u043a",
8956                "Kfr;": "\ud835\udd0e",
8957                "kfr;": "\ud835\udd28",
8958                "kgreen;": "\u0138",
8959                "KHcy;": "\u0425",
8960                "khcy;": "\u0445",
8961                "KJcy;": "\u040c",
8962                "kjcy;": "\u045c",
8963                "Kopf;": "\ud835\udd42",
8964                "kopf;": "\ud835\udd5c",
8965                "Kscr;": "\ud835\udca6",
8966                "kscr;": "\ud835\udcc0",
8967                "lAarr;": "\u21da",
8968                "Lacute;": "\u0139",
8969                "lacute;": "\u013a",
8970                "laemptyv;": "\u29b4",
8971                "lagran;": "\u2112",
8972                "Lambda;": "\u039b",
8973                "lambda;": "\u03bb",
8974                "lang;": "\u27e8",
8975                "Lang;": "\u27ea",
8976                "langd;": "\u2991",
8977                "langle;": "\u27e8",
8978                "lap;": "\u2a85",
8979                "Laplacetrf;": "\u2112",
8980                "laquo;": "\u00ab",
8981                laquo: "\u00ab",
8982                "larrb;": "\u21e4",
8983                "larrbfs;": "\u291f",
8984                "larr;": "\u2190",
8985                "Larr;": "\u219e",
8986                "lArr;": "\u21d0",
8987                "larrfs;": "\u291d",
8988                "larrhk;": "\u21a9",
8989                "larrlp;": "\u21ab",
8990                "larrpl;": "\u2939",
8991                "larrsim;": "\u2973",
8992                "larrtl;": "\u21a2",
8993                "latail;": "\u2919",
8994                "lAtail;": "\u291b",
8995                "lat;": "\u2aab",
8996                "late;": "\u2aad",
8997                "lates;": "\u2aad\ufe00",
8998                "lbarr;": "\u290c",
8999                "lBarr;": "\u290e",
9000                "lbbrk;": "\u2772",
9001                "lbrace;": "{",
9002                "lbrack;": "[",
9003                "lbrke;": "\u298b",
9004                "lbrksld;": "\u298f",
9005                "lbrkslu;": "\u298d",
9006                "Lcaron;": "\u013d",
9007                "lcaron;": "\u013e",
9008                "Lcedil;": "\u013b",
9009                "lcedil;": "\u013c",
9010                "lceil;": "\u2308",
9011                "lcub;": "{",
9012                "Lcy;": "\u041b",
9013                "lcy;": "\u043b",
9014                "ldca;": "\u2936",
9015                "ldquo;": "\u201c",
9016                "ldquor;": "\u201e",
9017                "ldrdhar;": "\u2967",
9018                "ldrushar;": "\u294b",
9019                "ldsh;": "\u21b2",
9020                "le;": "\u2264",
9021                "lE;": "\u2266",
9022                "LeftAngleBracket;": "\u27e8",
9023                "LeftArrowBar;": "\u21e4",
9024                "leftarrow;": "\u2190",
9025                "LeftArrow;
9025": "\u2190",
9026                "Leftarrow;": "\u21d0",
9027                "LeftArrowRightArrow;": "\u21c6",
9028                "leftarrowtail;": "\u21a2",
9029                "LeftCeiling;": "\u2308",
9030                "LeftDoubleBracket;": "\u27e6",
9031                "LeftDownTeeVector;": "\u2961",
9032                "LeftDownVectorBar;": "\u2959",
9033                "LeftDownVector;": "\u21c3",
9034                "LeftFloor;": "\u230a",
9035                "leftharpoondown;": "\u21bd",
9036                "leftharpoonup;": "\u21bc",
9037                "leftleftarrows;": "\u21c7",
9038                "leftrightarrow;": "\u2194",
9039                "LeftRightArrow;": "\u2194",
9040                "Leftrightarrow;": "\u21d4",
9041                "leftrightarrows;": "\u21c6",
9042                "leftrightharpoons;": "\u21cb",
9043                "leftrightsquigarrow;": "\u21ad",
9044                "LeftRightVector;": "\u294e",
9045                "LeftTeeArrow;": "\u21a4",
9046                "LeftTee;": "\u22a3",
9047                "LeftTeeVector;": "\u295a",
9048                "leftthreetimes;": "\u22cb",
9049                "LeftTriangleBar;": "\u29cf",
9050                "LeftTriangle;": "\u22b2",
9051                "LeftTriangleEqual;": "\u22b4",
9052                "LeftUpDownVector;": "\u2951",
9053                "LeftUpTeeVector;": "\u2960",
9054                "LeftUpVectorBar;": "\u2958",
9055                "LeftUpVector;": "\u21bf",
9056                "LeftVectorBar;": "\u2952",
9057                "LeftVector;": "\u21bc",
9058                "lEg;": "\u2a8b",
9059                "leg;": "\u22da",
9060                "leq;": "\u2264",
9061                "leqq;": "\u2266",
9062                "leqslant;": "\u2a7d",
9063                "lescc;": "\u2aa8",
9064                "les;": "\u2a7d",
9065                "lesdot;": "\u2a7f",
9066                "lesdoto;": "\u2a81",
9067                "lesdotor;": "\u2a83",
9068                "lesg;": "\u22da\ufe00",
9069                "lesges;": "\u2a93",
9070                "lessapprox;": "\u2a85",
9071                "lessdot;": "\u22d6",
9072                "lesseqgtr;": "\u22da",
9073                "lesseqqgtr;": "\u2a8b",
9074                "LessEqualGreater;": "\u22da",
9075                "LessFullEqual;": "\u2266",
9076                "LessGreater;": "\u2276",
9077                "lessgtr;": "\u2276",
9078                "LessLess;": "\u2aa1",
9079                "lesssim;": "\u2272",
9080                "LessSlantEqual;": "\u2a7d",
9081                "LessTilde;": "\u2272",
9082                "lfisht;": "\u297c",
9083                "lfloor;": "\u230a",
9084                "Lfr;": "\ud835\udd0f",
9085                "lfr;": "\ud835\udd29",
9086                "lg;": "\u2276",
9087                "lgE;": "\u2a91",
9088                "lHar;": "\u2962",
9089                "lhard;": "\u21bd",
9090                "lharu;": "\u21bc",
9091                "lharul;": "\u296a",
9092                "lhblk;": "\u2584",
9093                "LJcy;": "\u0409",
9094                "ljcy;": "\u0459",
9095                "llarr;": "\u21c7",
9096                "ll;": "\u226a",
9097                "Ll;": "\u22d8",
9098                "llcorner;": "\u231e",
9099                "Lleftarrow;": "\u21da",
9100                "llhard;": "\u296b",
9101                "lltri;": "\u25fa",
9102                "Lmidot;": "\u013f",
9103                "lmidot;": "\u0140",
9104                "lmoustache;": "\u23b0",
9105                "lmoust;": "\u23b0",
9106                "lnap;": "\u2a89",
9107                "lnapprox;": "\u2a89",
9108                "lne;": "\u2a87",
9109                "lnE;": "\u2268",
9110                "lneq;": "\u2a87",
9111                "lneqq;": "\u2268",
9112                "lnsim;": "\u22e6",
9113                "loang;": "\u27ec",
9114                "loarr;": "\u21fd",
9115                "lobrk;": "\u27e6",
9116                "longleftarrow;": "\u27f5",
9117                "LongLeftArrow;": "\u27f5",
9118                "Longleftarrow;": "\u27f8",
9119                "longleftrightarrow;": "\u27f7",
9120                "LongLeftRightArrow;": "\u27f7",
9121                "Longleftrightarrow;": "\u27fa",
9122                "longmapsto;": "\u27fc",
9123                "longrightarrow;": "\u27f6",
9124                "LongRightArrow;": "\u27f6",
9125                "Longrightarrow;": "\u27f9",
9126                "looparrowleft;": "\u21ab",
9127                "looparrowright;": "\u21ac",
9128                "lopar;": "\u2985",
9129                "Lopf;": "\ud835\udd43",
9130                "lopf;": "\ud835\udd5d",
9131                "loplus;": "\u2a2d",
9132                "lotimes;": "\u2a34",
9133                "lowast;": "\u2217",
9134                "lowbar;": "_",
9135                "LowerLeftArrow;
9135": "\u2199",
9136                "LowerRightArrow;": "\u2198",
9137                "loz;": "\u25ca",
9138                "lozenge;": "\u25ca",
9139                "lozf;": "\u29eb",
9140                "lpar;": "(",
9141                "lparlt;": "\u2993",
9142                "lrarr;": "\u21c6",
9143                "lrcorner;": "\u231f",
9144                "lrhar;": "\u21cb",
9145                "lrhard;": "\u296d",
9146                "lrm;": "\u200e",
9147                "lrtri;": "\u22bf",
9148                "lsaquo;": "\u2039",
9149                "lscr;": "\ud835\udcc1",
9150                "Lscr;": "\u2112",
9151                "lsh;": "\u21b0",
9152                "Lsh;": "\u21b0",
9153                "lsim;": "\u2272",
9154                "lsime;": "\u2a8d",
9155                "lsimg;": "\u2a8f",
9156                "lsqb;": "[",
9157                "lsquo;": "\u2018",
9158                "lsquor;": "\u201a",
9159                "Lstrok;": "\u0141",
9160                "lstrok;": "\u0142",
9161                "ltcc;": "\u2aa6",
9162                "ltcir;": "\u2a79",
9163                "lt;": "<",
9164                lt: "<",
9165                "LT;": "<",
9166                LT: "<",
9167                "Lt;": "\u226a",
9168                "ltdot;": "\u22d6",
9169                "lthree;": "\u22cb",
9170                "ltimes;": "\u22c9",
9171                "ltlarr;": "\u2976",
9172                "ltquest;": "\u2a7b",
9173                "ltri;": "\u25c3",
9174                "ltrie;": "\u22b4",
9175                "ltrif;": "\u25c2",
9176                "ltrPar;": "\u2996",
9177                "lurdshar;": "\u294a",
9178                "luruhar;": "\u2966",
9179                "lvertneqq;": "\u2268\ufe00",
9180                "lvnE;": "\u2268\ufe00",
9181                "macr;": "\u00af",
9182                macr: "\u00af",
9183                "male;": "\u2642",
9184                "malt;": "\u2720",
9185                "maltese;": "\u2720",
9186                "Map;": "\u2905",
9187                "map;": "\u21a6",
9188                "mapsto;": "\u21a6",
9189                "mapstodown;": "\u21a7",
9190                "mapstoleft;": "\u21a4",
9191                "mapstoup;": "\u21a5",
9192                "marker;": "\u25ae",
9193                "mcomma;": "\u2a29",
9194                "Mcy;": "\u041c",
9195                "mcy;": "\u043c",
9196                "mdash;": "\u2014",
9197                "mDDot;": "\u223a",
9198                "measuredangle;": "\u2221",
9199                "MediumSpace;": "\u205f",
9200                "Mellintrf;": "\u2133",
9201                "Mfr;": "\ud835\udd10",
9202                "mfr;": "\ud835\udd2a",
9203                "mho;": "\u2127",
9204                "micro;": "\u00b5",
9205                micro: "\u00b5",
9206                "midast;": "*",
9207                "midcir;": "\u2af0",
9208                "mid;": "\u2223",
9209                "middot;": "\u00b7",
9210                middot: "\u00b7",
9211                "minusb;": "\u229f",
9212                "minus;": "\u2212",
9213                "minusd;": "\u2238",
9214                "minusdu;": "\u2a2a",
9215                "MinusPlus;": "\u2213",
9216                "mlcp;": "\u2adb",
9217                "mldr;": "\u2026",
9218                "mnplus;": "\u2213",
9219                "models;": "\u22a7",
9220                "Mopf;": "\ud835\udd44",
9221                "mopf;": "\ud835\udd5e",
9222                "mp;": "\u2213",
9223                "mscr;": "\ud835\udcc2",
9224                "Mscr;": "\u2133",
9225                "mstpos;": "\u223e",
9226                "Mu;": "\u039c",
9227                "mu;": "\u03bc",
9228                "multimap;": "\u22b8",
9229                "mumap;": "\u22b8",
9230                "nabla;": "\u2207",
9231                "Nacute;": "\u0143",
9232                "nacute;": "\u0144",
9233                "nang;": "\u2220\u20d2",
9234                "nap;": "\u2249",
9235                "napE;": "\u2a70\u0338",
9236                "napid;": "\u224b\u0338",
9237                "napos;": "\u0149",
9238                "napprox;": "\u2249",
9239                "natural;": "\u266e",
9240                "naturals;": "\u2115",
9241                "natur;": "\u266e",
9242                "nbsp;": "\u00a0",
9243                nbsp: "\u00a0",
9244                "nbump;": "\u224e\u0338",
9245                "nbumpe;": "\u224f\u0338",
9246                "ncap;": "\u2a43",
9247                "Ncaron;": "\u0147",
9248                "ncaron;": "\u0148",
9249                "Ncedil;": "\u0145",
9250                "ncedil;": "\u0146",
9251                "ncong;": "\u2247",
9252                "ncongdot;": "\u2a6d\u0338",
9253                "ncup;": "\u2a42",
9254                "Ncy;": "\u041d",
9255                "ncy;": "\u043d",
9256                "ndash;": "\u2013",
9257                "nearhk;": "\u2924",
9258                "nearr;": "\u2197",
9259                "neArr;": "\u21d7",
9260                "nearrow;": "\u2197",
9261                "ne;": "\u2260",
9262                "nedot;": "\u2250\u0338",
9263                "NegativeMediumSpace;": "\u200b",
9264                "NegativeThickSpace;": "\u200b",
9265                "NegativeThinSpace;": "\u200b",
9266                "NegativeVeryThinSpace;": "\u200b",
9267                "nequiv;": "\u2262",
9268                "nesear;": "\u2928",
9269                "nesim;": "\u2242\u0338",
9270                "NestedGreaterGreater;": "\u226b",
9271                "NestedLessLess;": "\u226a",
9272                "NewLine;": "\n",
9273                "nexist;": "\u2204",
9274                "nexists;": "\u2204",
9275                "Nfr;": "\ud835\udd11",
9276                "nfr;": "\ud835\udd2b",
9277                "ngE;": "\u2267\u0338",
9278                "nge;": "\u2271",
9279                "ngeq;": "\u2271",
9280                "ngeqq;": "\u2267\u0338",
9281                "ngeqslant;": "\u2a7e\u0338",
9282                "nges;": "\u2a7e\u0338",
9283                "nGg;": "\u22d9\u0338",
9284                "ngsim;": "\u2275",
9285                "nGt;": "\u226b\u20d2",
9286                "ngt;": "\u226f",
9287                "ngtr;": "\u226f",
9288                "nGtv;": "\u226b\u0338",
9289                "nharr;": "\u21ae",
9290                "nhArr;": "\u21ce",
9291                "nhpar;": "\u2af2",
9292                "ni;": "\u220b",
9293                "nis;": "\u22fc",
9294                "nisd;": "\u22fa",
9295                "niv;": "\u220b",
9296                "NJcy;": "\u040a",
9297                "njcy;": "\u045a",
9298                "nlarr;": "\u219a",
9299                "nlArr;": "\u21cd",
9300                "nldr;": "\u2025",
9301                "nlE;": "\u2266\u0338",
9302                "nle;": "\u2270",
9303                "nleftarrow;": "\u219a",
9304                "nLeftarrow;": "\u21cd",
9305                "nleftrightarrow;": "\u21ae",
9306                "nLeftrightarrow;": "\u21ce",
9307                "nleq;": "\u2270",
9308                "nleqq;": "\u2266\u0338",
9309                "nleqslant;
9309": "\u2a7d\u0338",
9310                "nles;": "\u2a7d\u0338",
9311                "nless;": "\u226e",
9312                "nLl;": "\u22d8\u0338",
9313                "nlsim;": "\u2274",
9314                "nLt;": "\u226a\u20d2",
9315                "nlt;": "\u226e",
9316                "nltri;": "\u22ea",
9317                "nltrie;": "\u22ec",
9318                "nLtv;": "\u226a\u0338",
9319                "nmid;": "\u2224",
9320                "NoBreak;": "\u2060",
9321                "NonBreakingSpace;": "\u00a0",
9322                "nopf;": "\ud835\udd5f",
9323                "Nopf;": "\u2115",
9324                "Not;": "\u2aec",
9325                "not;": "\u00ac",
9326                not: "\u00ac",
9327                "NotCongruent;": "\u2262",
9328                "NotCupCap;": "\u226d",
9329                "NotDoubleVerticalBar;": "\u2226",
9330                "NotElement;": "\u2209",
9331                "NotEqual;": "\u2260",
9332                "NotEqualTilde;": "\u2242\u0338",
9333                "NotExists;": "\u2204",
9334                "NotGreater;": "\u226f",
9335                "NotGreaterEqual;": "\u2271",
9336                "NotGreaterFullEqual;": "\u2267\u0338",
9337                "NotGreaterGreater;": "\u226b\u0338",
9338                "NotGreaterLess;": "\u2279",
9339                "NotGreaterSlantEqual;": "\u2a7e\u0338",
9340                "NotGreaterTilde;": "\u2275",
9341                "NotHumpDownHump;": "\u224e\u0338",
9342                "NotHumpEqual;": "\u224f\u0338",
9343                "notin;": "\u2209",
9344                "notindot;": "\u22f5\u0338",
9345                "notinE;": "\u22f9\u0338",
9346                "notinva;": "\u2209",
9347                "notinvb;": "\u22f7",
9348                "notinvc;": "\u22f6",
9349                "NotLeftTriangleBar;": "\u29cf\u0338",
9350                "NotLeftTriangle;": "\u22ea",
9351                "NotLeftTriangleEqual;": "\u22ec",
9352                "NotLess;": "\u226e",
9353                "NotLessEqual;": "\u2270",
9354                "NotLessGreater;": "\u2278",
9355                "NotLessLess;": "\u226a\u0338",
9356                "NotLessSlantEqual;": "\u2a7d\u0338",
9357                "NotLessTilde;": "\u2274",
9358                "NotNestedGreaterGreater;": "\u2aa2\u0338",
9359                "NotNestedLessLess;": "\u2aa1\u0338",
9360                "notni;": "\u220c",
9361                "notniva;": "\u220c",
9362                "notnivb;": "\u22fe",
9363                "notnivc;": "\u22fd",
9364                "NotPrecedes;": "\u2280",
9365                "NotPrecedesEqual;": "\u2aaf\u0338",
9366                "NotPrecedesSlantEqual;": "\u22e0",
9367                "NotReverseElement;": "\u220c",
9368                "NotRightTriangleBar;": "\u29d0\u0338",
9369                "NotRightTriangle;": "\u22eb",
9370                "NotRightTriangleEqual;": "\u22ed",
9371                "NotSquareSubset;": "\u228f\u0338",
9372                "NotSquareSubsetEqual;": "\u22e2",
9373                "NotSquareSuperset;": "\u2290\u0338",
9374                "NotSquareSupersetEqual;": "\u22e3",
9375                "NotSubset;": "\u2282\u20d2",
9376                "NotSubsetEqual;": "\u2288",
9377                "NotSucceeds;": "\u2281",
9378                "NotSucceedsEqual;": "\u2ab0\u0338",
9379                "NotSucceedsSlantEqual;": "\u22e1",
9380                "NotSucceedsTilde;": "\u227f\u0338",
9381                "NotSuperset;": "\u2283\u20d2",
9382                "NotSupersetEqual;": "\u2289",
9383                "NotTilde;": "\u2241",
9384                "NotTildeEqual;": "\u2244",
9385                "NotTildeFullEqual;": "\u2247",
9386                "NotTildeTilde;": "\u2249",
9387                "NotVerticalBar;": "\u2224",
9388                "nparallel;": "\u2226",
9389                "npar;": "\u2226",
9390                "nparsl;": "\u2afd\u20e5",
9391                "npart;": "\u2202\u0338",
9392                "npolint;": "\u2a14",
9393                "npr;": "\u2280",
9394                "nprcue;": "\u22e0",
9395                "nprec;": "\u2280",
9396                "npreceq;": "\u2aaf\u0338",
9397                "npre;": "\u2aaf\u0338",
9398                "nrarrc;": "\u2933\u0338",
9399                "nrarr;": "\u219b",
9400                "nrArr;": "\u21cf",
9401                "nrarrw;": "\u219d\u0338",
9402                "nrightarrow;": "\u219b",
9403                "nRightarrow;": "\u21cf",
9404                "nrtri;": "\u22eb",
9405                "nrtrie;": "\u22ed",
9406                "nsc;": "\u2281",
9407                "nsccue;": "\u22e1",
9408                "nsce;": "\u2ab0\u0338",
9409                "Nscr;": "\ud835\udca9",
9410                "nscr;": "\ud835\udcc3",
9411                "nshortmid;": "\u2224",
9412                "nshortparallel;": "\u2226",
9413                "nsim;": "\u2241",
9414                "nsime;": "\u2244",
9415                "nsimeq;": "\u2244",
9416                "nsmid;": "\u2224",
9417                "nspar;": "\u2226",
9418                "nsqsube;": "\u22e2",
9419                "nsqsupe;": "\u22e3",
9420                "nsub;": "\u2284",
9421                "nsubE;": "\u2ac5\u0338",
9422                "nsube;": "\u2288",
9423                "nsubset;": "\u2282\u20d2",
9424                "nsubseteq;": "\u2288",
9425                "nsubseteqq;": "\u2ac5\u0338",
9426                "nsucc;": "\u2281",
9427                "nsucceq;": "\u2ab0\u0338",
9428                "nsup;": "\u2285",
9429                "nsupE;": "\u2ac6\u0338",
9430                "nsupe;": "\u2289",
9431                "nsupset;": "\u2283\u20d2",
9432                "nsupseteq;": "\u2289",
9433                "nsupseteqq;": "\u2ac6\u0338",
9434                "ntgl;": "\u2279",
9435                "Ntilde;": "\u00d1",
9436                Ntilde: "\u00d1",
9437                "ntilde;": "\u00f1",
9438                ntilde: "\u00f1",
9439                "ntlg;": "\u2278",
9440                "ntriangleleft;": "\u22ea",
9441                "ntrianglelefteq;": "\u22ec",
9442                "ntriangleright;": "\u22eb",
9443                "ntrianglerighteq;": "\u22ed",
9444                "Nu;": "\u039d",
9445                "nu;": "\u03bd",
9446                "num;": "#",
9447                "numero;": "\u2116",
9448                "numsp;": "\u2007",
9449                "nvap;": "\u224d\u20d2",
9450                "nvdash;": "\u22ac",
9451                "nvDash;": "\u22ad",
9452                "nVdash;": "\u22ae",
9453                "nVDash;": "\u22af",
9454                "nvge;": "\u2265\u20d2",
9455                "nvgt;": ">\u20d2",
9456                "nvHarr;": "\u2904",
9457                "nvinfin;": "\u29de",
9458                "nvlArr;": "\u2902",
9459                "nvle;": "\u2264\u20d2",
9460                "nvlt;": "<\u20d2",
9461                "nvltrie;": "\u22b4\u20d2",
9462                "nvrArr;": "\u2903",
9463                "nvrtrie;": "\u22b5\u20d2",
9464                "nvsim;": "\u223c\u20d2",
9465                "nwarhk;": "\u2923",
9466                "nwarr;": "\u2196",
9467                "nwArr;": "\u21d6",
9468                "nwarrow;": "\u2196",
9469                "nwnear;": "\u2927",
9470                "Oacute;": "\u00d3",
9471                Oacute: "\u00d3",
9472                "oacute;": "\u00f3",
9473                oacute: "\u00f3",
9474                "oast;": "\u229b",
9475                "Ocirc;": "\u00d4",
9476                Ocirc: "\u00d4",
9477                "ocirc;": "\u00f4",
9478                ocirc: "\u00f4",
9479                "ocir;": "\u229a",
9480                "Ocy;": "\u041e",
9481                "ocy;
9481": "\u043e",
9482                "odash;": "\u229d",
9483                "Odblac;": "\u0150",
9484                "odblac;": "\u0151",
9485                "odiv;": "\u2a38",
9486                "odot;": "\u2299",
9487                "odsold;": "\u29bc",
9488                "OElig;": "\u0152",
9489                "oelig;": "\u0153",
9490                "ofcir;": "\u29bf",
9491                "Ofr;": "\ud835\udd12",
9492                "ofr;": "\ud835\udd2c",
9493                "ogon;": "\u02db",
9494                "Ograve;": "\u00d2",
9495                Ograve: "\u00d2",
9496                "ograve;": "\u00f2",
9497                ograve: "\u00f2",
9498                "ogt;": "\u29c1",
9499                "ohbar;": "\u29b5",
9500                "ohm;": "\u03a9",
9501                "oint;": "\u222e",
9502                "olarr;": "\u21ba",
9503                "olcir;": "\u29be",
9504                "olcross;": "\u29bb",
9505                "oline;": "\u203e",
9506                "olt;": "\u29c0",
9507                "Omacr;": "\u014c",
9508                "omacr;": "\u014d",
9509                "Omega;": "\u03a9",
9510                "omega;": "\u03c9",
9511                "Omicron;": "\u039f",
9512                "omicron;": "\u03bf",
9513                "omid;": "\u29b6",
9514                "ominus;": "\u2296",
9515                "Oopf;": "\ud835\udd46",
9516                "oopf;": "\ud835\udd60",
9517                "opar;": "\u29b7",
9518                "OpenCurlyDoubleQuote;": "\u201c",
9519                "OpenCurlyQuote;": "\u2018",
9520                "operp;": "\u29b9",
9521                "oplus;": "\u2295",
9522                "orarr;": "\u21bb",
9523                "Or;": "\u2a54",
9524                "or;": "\u2228",
9525                "ord;": "\u2a5d",
9526                "order;": "\u2134",
9527                "orderof;": "\u2134",
9528                "ordf;": "\u00aa",
9529                ordf: "\u00aa",
9530                "ordm;": "\u00ba",
9531                ordm: "\u00ba",
9532                "origof;": "\u22b6",
9533                "oror;": "\u2a56",
9534                "orslope;": "\u2a57",
9535                "orv;": "\u2a5b",
9536                "oS;": "\u24c8",
9537                "Oscr;": "\ud835\udcaa",
9538                "oscr;": "\u2134",
9539                "Oslash;": "\u00d8",
9540                Oslash: "\u00d8",
9541                "oslash;": "\u00f8",
9542                oslash: "\u00f8",
9543                "osol;": "\u2298",
9544                "Otilde;": "\u00d5",
9545                Otilde: "\u00d5",
9546                "otilde;": "\u00f5",
9547                otilde: "\u00f5",
9548                "otimesas;": "\u2a36",
9549                "Otimes;": "\u2a37",
9550                "otimes;": "\u2297",
9551                "Ouml;": "\u00d6",
9552                Ouml: "\u00d6",
9553                "ouml;": "\u00f6",
9554                ouml: "\u00f6",
9555                "ovbar;": "\u233d",
9556                "OverBar;": "\u203e",
9557                "OverBrace;": "\u23de",
9558                "OverBracket;": "\u23b4",
9559                "OverParenthesis;": "\u23dc",
9560                "para;": "\u00b6",
9561                para: "\u00b6",
9562                "parallel;": "\u2225",
9563                "par;": "\u2225",
9564                "parsim;": "\u2af3",
9565                "parsl;": "\u2afd",
9566                "part;": "\u2202",
9567                "PartialD;": "\u2202",
9568                "Pcy;": "\u041f",
9569                "pcy;": "\u043f",
9570                "percnt;": "%",
9571                "period;": ".",
9572                "permil;": "\u2030",
9573                "perp;": "\u22a5",
9574                "pertenk;": "\u2031",
9575                "Pfr;": "\ud835\udd13",
9576                "pfr;": "\ud835\udd2d",
9577                "Phi;": "\u03a6",
9578                "phi;": "\u03c6",
9579                "phiv;": "\u03d5",
9580                "phmmat;": "\u2133",
9581                "phone;": "\u260e",
9582                "Pi;": "\u03a0",
9583                "pi;": "\u03c0",
9584                "pitchfork;": "\u22d4",
9585                "piv;": "\u03d6",
9586                "planck;": "\u210f",
9587                "planckh;": "\u210e",
9588                "plankv;": "\u210f",
9589                "plusacir;": "\u2a23",
9590                "plusb;": "\u229e",
9591                "pluscir;": "\u2a22",
9592                "plus;": "+",
9593                "plusdo;": "\u2214",
9594                "plusdu;": "\u2a25",
9595                "pluse;": "\u2a72",
9596                "PlusMinus;": "\u00b1",
9597                "plusmn;": "\u00b1",
9598                plusmn: "\u00b1",
9599                "plussim;": "\u2a26",
9600                "plustwo;": "\u2a27",
9601                "pm;": "\u00b1",
9602                "Poincareplane;": "\u210c",
9603                "pointint;": "\u2a15",
9604                "popf;": "\ud835\udd61",
9605                "Popf;": "\u2119",
9606                "pound;": "\u00a3",
9607                pound: "\u00a3",
9608                "prap;": "\u2ab7",
9609                "Pr;": "\u2abb",
9610                "pr;": "\u227a",
9611                "prcue;": "\u227c",
9612                "precapprox;": "\u2ab7",
9613                "prec;": "\u227a",
9614                "preccurlyeq;": "\u227c",
9615                "Precedes;": "\u227a",
9616                "PrecedesEqual;": "\u2aaf",
9617                "PrecedesSlantEqual;": "\u227c",
9618                "PrecedesTilde;": "\u227e",
9619                "preceq;": "\u2aaf",
9620                "precnapprox;": "\u2ab9",
9621                "precneqq;": "\u2ab5",
9622                "precnsim;": "\u22e8",
9623                "pre;": "\u2aaf",
9624                "prE;": "\u2ab3",
9625                "precsim;": "\u227e",
9626                "prime;": "\u2032",
9627                "Prime;": "\u2033",
9628                "primes;": "\u2119",
9629                "prnap;": "\u2ab9",
9630                "prnE;": "\u2ab5",
9631                "prnsim;": "\u22e8",
9632                "prod;": "\u220f",
9633                "Product;": "\u220f",
9634                "profalar;": "\u232e",
9635                "profline;": "\u2312",
9636                "profsurf;": "\u2313",
9637                "prop;": "\u221d",
9638                "Proportional;": "\u221d",
9639                "Proportion;": "\u2237",
9640                "propto;": "\u221d",
9641                "prsim;": "\u227e",
9642                "prurel;": "\u22b0",
9643                "Pscr;": "\ud835\udcab",
9644                "pscr;": "\ud835\udcc5",
9645                "Psi;": "\u03a8",
9646                "psi;": "\u03c8",
9647                "puncsp;": "\u2008",
9648                "Qfr;": "\ud835\udd14",
9649                "qfr;": "\ud835\udd2e",
9650                "qint;": "\u2a0c",
9651                "qopf;": "\ud835\udd62",
9652                "Qopf;": "\u211a",
9653                "qprime;": "\u2057",
9654                "Qscr;": "\ud835\udcac",
9655                "qscr;": "\ud835\udcc6",
9656                "quaternions;": "\u210d",
9657                "quatint;": "\u2a16",
9658                "quest;": "?",
9659                "questeq;": "\u225f",
9660                "quot;": '"',
9661                quot: '"',
9662                "QUOT;": '"',
9663                QUOT: '"',
9664                "rAarr;": "\u21db",
9665                "race;": "\u223d\u0331",
9666                "Racute;": "\u0154",
9667                "racute;": "\u0155",
9668                "radic;": "\u221a",
9669                "raemptyv;": "\u29b3",
9670                "rang;": "\u27e9",
9671                "Rang;": "\u27eb",
9672                "rangd;": "\u2992",
9673                "range;": "\u29a5",
9674                "rangle;": "\u27e9",
9675                "raquo;": "\u00bb",
9676                raquo: "\u00bb",
9677                "rarrap;": "\u2975",
9678                "rarrb;": "\u21e5",
9679                "rarrbfs;": "\u2920",
9680                "rarrc;": "\u2933",
9681                "rarr;": "\u2192",
9682                "Rarr;": "\u21a0",
9683                "rArr;": "\u21d2",
9684                "rarrfs;": "\u291e",
9685                "rarrhk;": "\u21aa",
9686                "rarrlp;": "\u21ac",
9687                "rarrpl;": "\u2945",
9688                "rarrsim;": "\u2974",
9689                "Rarrtl;": "\u2916",
9690                "rarrtl;": "\u21a3",
9691                "rarrw;": "\u219d",
9692                "ratail;": "\u291a",
9693                "rAtail;": "\u291c",
9694                "ratio;": "\u2236",
9695                "rationals;": "\u211a",
9696                "rbarr;": "\u290d",
9697                "rBarr;": "\u290f",
9698                "RBarr;": "\u2910",
9699                "rbbrk;": "\u2773",
9700                "rbrace;": "}",
9701                "rbrack;": "]",
9702                "rbrke;": "\u298c",
9703                "rbrksld;": "\u298e",
9704                "rbrkslu;": "\u2990",
9705                "Rcaron;": "\u0158",
9706                "rcaron;": "\u0159",
9707                "Rcedil;": "\u0156",
9708                "rcedil;": "\u0157",
9709                "rceil;": "\u2309",
9710                "rcub;": "}",
9711                "Rcy;": "\u0420",
9712                "rcy;": "\u0440",
9713                "rdca;": "\u2937",
9714                "rdldhar;": "\u2969",
9715                "rdquo;": "\u201d",
9716                "rdquor;": "\u201d",
9717                "rdsh;": "\u21b3",
9718                "real;": "\u211c",
9719                "realine;": "\u211b",
9720                "realpart;": "\u211c",
9721                "reals;": "\u211d",
9722                "Re;": "\u211c",
9723                "rect;": "\u25ad",
9724                "reg;": "\u00ae",
9725                reg: "\u00ae",
9726                "REG;": "\u00ae",
9727                REG: "\u00ae",
9728                "ReverseElement;": "\u220b",
9729                "ReverseEquilibrium;": "\u21cb",
9730                "ReverseUpEquilibrium;": "\u296f",
9731                "rfisht;": "\u297d",
9732                "rfloor;": "\u230b",
9733                "rfr;": "\ud835\udd2f",
9734                "Rfr;": "\u211c",
9735                "rHar;": "\u2964",
9736                "rhard;": "\u21c1",
9737                "rharu;": "\u21c0",
9738                "rharul;": "\u296c",
9739                "Rho;": "\u03a1",
9740                "rho;": "\u03c1",
9741                "rhov;": "\u03f1",
9742                "RightAngleBracket;": "\u27e9",
9743                "RightArrowBar;": "\u21e5",
9744                "rightarrow;": "\u2192",
9745                "RightArrow;": "\u2192",
9746                "Rightarrow;": "\u21d2",
9747                "RightArrowLeftArrow;
9747": "\u21c4",
9748                "rightarrowtail;": "\u21a3",
9749                "RightCeiling;": "\u2309",
9750                "RightDoubleBracket;": "\u27e7",
9751                "RightDownTeeVector;": "\u295d",
9752                "RightDownVectorBar;": "\u2955",
9753                "RightDownVector;": "\u21c2",
9754                "RightFloor;": "\u230b",
9755                "rightharpoondown;": "\u21c1",
9756                "rightharpoonup;": "\u21c0",
9757                "rightleftarrows;": "\u21c4",
9758                "rightleftharpoons;": "\u21cc",
9759                "rightrightarrows;": "\u21c9",
9760                "rightsquigarrow;": "\u219d",
9761                "RightTeeArrow;": "\u21a6",
9762                "RightTee;": "\u22a2",
9763                "RightTeeVector;": "\u295b",
9764                "rightthreetimes;": "\u22cc",
9765                "RightTriangleBar;": "\u29d0",
9766                "RightTriangle;": "\u22b3",
9767                "RightTriangleEqual;": "\u22b5",
9768                "RightUpDownVector;": "\u294f",
9769                "RightUpTeeVector;": "\u295c",
9770                "RightUpVectorBar;": "\u2954",
9771                "RightUpVector;": "\u21be",
9772                "RightVectorBar;": "\u2953",
9773                "RightVector;": "\u21c0",
9774                "ring;": "\u02da",
9775                "risingdotseq;": "\u2253",
9776                "rlarr;": "\u21c4",
9777                "rlhar;": "\u21cc",
9778                "rlm;": "\u200f",
9779                "rmoustache;": "\u23b1",
9780                "rmoust;": "\u23b1",
9781                "rnmid;": "\u2aee",
9782                "roang;": "\u27ed",
9783                "roarr;": "\u21fe",
9784                "robrk;": "\u27e7",
9785                "ropar;": "\u2986",
9786                "ropf;": "\ud835\udd63",
9787                "Ropf;": "\u211d",
9788                "roplus;": "\u2a2e",
9789                "rotimes;": "\u2a35",
9790                "RoundImplies;": "\u2970",
9791                "rpar;": ")",
9792                "rpargt;": "\u2994",
9793                "rppolint;": "\u2a12",
9794                "rrarr;": "\u21c9",
9795                "Rrightarrow;": "\u21db",
9796                "rsaquo;": "\u203a",
9797                "rscr;": "\ud835\udcc7",
9798                "Rscr;": "\u211b",
9799                "rsh;": "\u21b1",
9800                "Rsh;": "\u21b1",
9801                "rsqb;": "]",
9802                "rsquo;": "\u2019",
9803                "rsquor;": "\u2019",
9804                "rthree;": "\u22cc",
9805                "rtimes;": "\u22ca",
9806                "rtri;": "\u25b9",
9807                "rtrie;": "\u22b5",
9808                "rtrif;": "\u25b8",
9809                "rtriltri;": "\u29ce",
9810                "RuleDelayed;": "\u29f4",
9811                "ruluhar;": "\u2968",
9812                "rx;": "\u211e",
9813                "Sacute;": "\u015a",
9814                "sacute;": "\u015b",
9815                "sbquo;": "\u201a",
9816                "scap;": "\u2ab8",
9817                "Scaron;": "\u0160",
9818                "scaron;": "\u0161",
9819                "Sc;": "\u2abc",
9820                "sc;": "\u227b",
9821                "sccue;": "\u227d",
9822                "sce;": "\u2ab0",
9823                "scE;": "\u2ab4",
9824                "Scedil;": "\u015e",
9825                "scedil;": "\u015f",
9826                "Scirc;": "\u015c",
9827                "scirc;": "\u015d",
9828                "scnap;": "\u2aba",
9829                "scnE;": "\u2ab6",
9830                "scnsim;": "\u22e9",
9831                "scpolint;": "\u2a13",
9832                "scsim;": "\u227f",
9833                "Scy;": "\u0421",
9834                "scy;": "\u0441",
9835                "sdotb;": "\u22a1",
9836                "sdot;": "\u22c5",
9837                "sdote;": "\u2a66",
9838                "searhk;": "\u2925",
9839                "searr;": "\u2198",
9840                "seArr;": "\u21d8",
9841                "searrow;": "\u2198",
9842                "sect;": "\u00a7",
9843                sect: "\u00a7",
9844                "semi;": ";",
9845                "seswar;": "\u2929",
9846                "setminus;": "\u2216",
9847                "setmn;": "\u2216",
9848                "sext;": "\u2736",
9849                "Sfr;": "\ud835\udd16",
9850                "sfr;": "\ud835\udd30",
9851                "sfrown;": "\u2322",
9852                "sharp;": "\u266f",
9853                "SHCHcy;": "\u0429",
9854                "shchcy;": "\u0449",
9855                "SHcy;": "\u0428",
9856                "shcy;": "\u0448",
9857                "ShortDownArrow;": "\u2193",
9858                "ShortLeftArrow;
9858": "\u2190",
9859                "shortmid;": "\u2223",
9860                "shortparallel;": "\u2225",
9861                "ShortRightArrow;": "\u2192",
9862                "ShortUpArrow;": "\u2191",
9863                "shy;": "\u00ad",
9864                shy: "\u00ad",
9865                "Sigma;": "\u03a3",
9866                "sigma;": "\u03c3",
9867                "sigmaf;": "\u03c2",
9868                "sigmav;": "\u03c2",
9869                "sim;": "\u223c",
9870                "simdot;": "\u2a6a",
9871                "sime;": "\u2243",
9872                "simeq;": "\u2243",
9873                "simg;": "\u2a9e",
9874                "simgE;": "\u2aa0",
9875                "siml;": "\u2a9d",
9876                "simlE;": "\u2a9f",
9877                "simne;": "\u2246",
9878                "simplus;": "\u2a24",
9879                "simrarr;": "\u2972",
9880                "slarr;": "\u2190",
9881                "SmallCircle;": "\u2218",
9882                "smallsetminus;": "\u2216",
9883                "smashp;": "\u2a33",
9884                "smeparsl;": "\u29e4",
9885                "smid;": "\u2223",
9886                "smile;": "\u2323",
9887                "smt;": "\u2aaa",
9888                "smte;": "\u2aac",
9889                "smtes;": "\u2aac\ufe00",
9890                "SOFTcy;": "\u042c",
9891                "softcy;": "\u044c",
9892                "solbar;": "\u233f",
9893                "solb;": "\u29c4",
9894                "sol;": "/",
9895                "Sopf;": "\ud835\udd4a",
9896                "sopf;": "\ud835\udd64",
9897                "spades;": "\u2660",
9898                "spadesuit;": "\u2660",
9899                "spar;": "\u2225",
9900                "sqcap;": "\u2293",
9901                "sqcaps;": "\u2293\ufe00",
9902                "sqcup;": "\u2294",
9903                "sqcups;": "\u2294\ufe00",
9904                "Sqrt;": "\u221a",
9905                "sqsub;": "\u228f",
9906                "sqsube;": "\u2291",
9907                "sqsubset;": "\u228f",
9908                "sqsubseteq;": "\u2291",
9909                "sqsup;": "\u2290",
9910                "sqsupe;": "\u2292",
9911                "sqsupset;": "\u2290",
9912                "sqsupseteq;": "\u2292",
9913                "square;": "\u25a1",
9914                "Square;": "\u25a1",
9915                "SquareIntersection;": "\u2293",
9916                "SquareSubset;": "\u228f",
9917                "SquareSubsetEqual;": "\u2291",
9918                "SquareSuperset;": "\u2290",
9919                "SquareSupersetEqual;": "\u2292",
9920                "SquareUnion;": "\u2294",
9921                "squarf;": "\u25aa",
9922                "squ;": "\u25a1",
9923                "squf;": "\u25aa",
9924                "srarr;": "\u2192",
9925                "Sscr;": "\ud835\udcae",
9926                "sscr;": "\ud835\udcc8",
9927                "ssetmn;": "\u2216",
9928                "ssmile;": "\u2323",
9929                "sstarf;": "\u22c6",
9930                "Star;": "\u22c6",
9931                "star;": "\u2606",
9932                "starf;": "\u2605",
9933                "straightepsilon;": "\u03f5",
9934                "straightphi;": "\u03d5",
9935                "strns;": "\u00af",
9936                "sub;": "\u2282",
9937                "Sub;": "\u22d0",
9938                "subdot;": "\u2abd",
9939                "subE;": "\u2ac5",
9940                "sube;": "\u2286",
9941                "subedot;": "\u2ac3",
9942                "submult;": "\u2ac1",
9943                "subnE;": "\u2acb",
9944                "subne;": "\u228a",
9945                "subplus;": "\u2abf",
9946                "subrarr;": "\u2979",
9947                "subset;": "\u2282",
9948                "Subset;": "\u22d0",
9949                "subseteq;": "\u2286",
9950                "subseteqq;": "\u2ac5",
9951                "SubsetEqual;": "\u2286",
9952                "subsetneq;": "\u228a",
9953                "subsetneqq;": "\u2acb",
9954                "subsim;": "\u2ac7",
9955                "subsub;": "\u2ad5",
9956                "subsup;": "\u2ad3",
9957                "succapprox;": "\u2ab8",
9958                "succ;": "\u227b",
9959                "succcurlyeq;": "\u227d",
9960                "Succeeds;": "\u227b",
9961                "SucceedsEqual;": "\u2ab0",
9962                "SucceedsSlantEqual;": "\u227d",
9963                "SucceedsTilde;": "\u227f",
9964                "succeq;": "\u2ab0",
9965                "succnapprox;": "\u2aba",
9966                "succneqq;": "\u2ab6",
9967                "succnsim;": "\u22e9",
9968                "succsim;": "\u227f",
9969                "SuchThat;": "\u220b",
9970                "sum;": "\u2211",
9971                "Sum;": "\u2211",
9972                "sung;": "\u266a",
9973                "sup1;": "\u00b9",
9974                sup1: "\u00b9",
9975                "sup2;": "\u00b2",
9976                sup2: "\u00b2",
9977                "sup3;": "\u00b3",
9978                sup3: "\u00b3",
9979                "sup;": "\u2283",
9980                "Sup;": "\u22d1",
9981                "supdot;": "\u2abe",
9982                "supdsub;": "\u2ad8",
9983                "supE;": "\u2ac6",
9984                "supe;": "\u2287",
9985                "supedot;": "\u2ac4",
9986                "Superset;": "\u2283",
9987                "SupersetEqual;": "\u2287",
9988                "suphsol;": "\u27c9",
9989                "suphsub;": "\u2ad7",
9990                "suplarr;": "\u297b",
9991                "supmult;": "\u2ac2",
9992                "supnE;": "\u2acc",
9993                "supne;": "\u228b",
9994                "supplus;": "\u2ac0",
9995                "supset;": "\u2283",
9996                "Supset;": "\u22d1",
9997                "supseteq;": "\u2287",
9998                "supseteqq;": "\u2ac6",
9999                "supsetneq;": "\u228b",
10000                "supsetneqq;": "\u2acc",
10001                "supsim;": "\u2ac8",
10002                "supsub;": "\u2ad4",
10003                "supsup;": "\u2ad6",
10004                "swarhk;": "\u2926",
10005                "swarr;": "\u2199",
10006                "swArr;": "\u21d9",
10007                "swarrow;": "\u2199",
10008                "swnwar;": "\u292a",
10009                "szlig;": "\u00df",
10010                szlig: "\u00df",
10011                "Tab;": "	",
10012                "target;": "\u2316",
10013                "Tau;": "\u03a4",
10014                "tau;": "\u03c4",
10015                "tbrk;": "\u23b4",
10016                "Tcaron;": "\u0164",
10017                "tcaron;": "\u0165",
10018                "Tcedil;": "\u0162",
10019                "tcedil;": "\u0163",
10020                "Tcy;": "\u0422",
10021                "tcy;": "\u0442",
10022                "tdot;": "\u20db",
10023                "telrec;": "\u2315",
10024                "Tfr;": "\ud835\udd17",
10025                "tfr;": "\ud835\udd31",
10026                "there4;": "\u2234",
10027                "therefore;": "\u2234",
10028                "Therefore;": "\u2234",
10029                "Theta;
10029": "\u0398",
10030                "theta;": "\u03b8",
10031                "thetasym;": "\u03d1",
10032                "thetav;": "\u03d1",
10033                "thickapprox;": "\u2248",
10034                "thicksim;": "\u223c",
10035                "ThickSpace;": "\u205f\u200a",
10036                "ThinSpace;": "\u2009",
10037                "thinsp;": "\u2009",
10038                "thkap;": "\u2248",
10039                "thksim;": "\u223c",
10040                "THORN;": "\u00de",
10041                THORN: "\u00de",
10042                "thorn;": "\u00fe",
10043                thorn: "\u00fe",
10044                "tilde;": "\u02dc",
10045                "Tilde;": "\u223c",
10046                "TildeEqual;": "\u2243",
10047                "TildeFullEqual;": "\u2245",
10048                "TildeTilde;": "\u2248",
10049                "timesbar;": "\u2a31",
10050                "timesb;": "\u22a0",
10051                "times;": "\u00d7",
10052                times: "\u00d7",
10053                "timesd;": "\u2a30",
10054                "tint;": "\u222d",
10055                "toea;": "\u2928",
10056                "topbot;": "\u2336",
10057                "topcir;": "\u2af1",
10058                "top;": "\u22a4",
10059                "Topf;": "\ud835\udd4b",
10060                "topf;": "\ud835\udd65",
10061                "topfork;": "\u2ada",
10062                "tosa;": "\u2929",
10063                "tprime;": "\u2034",
10064                "trade;": "\u2122",
10065                "TRADE;": "\u2122",
10066                "triangle;": "\u25b5",
10067                "triangledown;": "\u25bf",
10068                "triangleleft;": "\u25c3",
10069                "trianglelefteq;": "\u22b4",
10070                "triangleq;": "\u225c",
10071                "triangleright;": "\u25b9",
10072                "trianglerighteq;": "\u22b5",
10073                "tridot;": "\u25ec",
10074                "trie;": "\u225c",
10075                "triminus;": "\u2a3a",
10076                "TripleDot;": "\u20db",
10077                "triplus;": "\u2a39",
10078                "trisb;": "\u29cd",
10079                "tritime;": "\u2a3b",
10080                "trpezium;": "\u23e2",
10081                "Tscr;": "\ud835\udcaf",
10082                "tscr;": "\ud835\udcc9",
10083                "TScy;": "\u0426",
10084                "tscy;": "\u0446",
10085                "TSHcy;": "\u040b",
10086                "tshcy;": "\u045b",
10087                "Tstrok;": "\u0166",
10088                "tstrok;": "\u0167",
10089                "twixt;": "\u226c",
10090                "twoheadleftarrow;": "\u219e",
10091                "twoheadrightarrow;": "\u21a0",
10092                "Uacute;": "\u00da",
10093                Uacute: "\u00da",
10094                "uacute;": "\u00fa",
10095                uacute: "\u00fa",
10096                "uarr;": "\u2191",
10097                "Uarr;": "\u219f",
10098                "uArr;": "\u21d1",
10099                "Uarrocir;": "\u2949",
10100                "Ubrcy;": "\u040e",
10101                "ubrcy;": "\u045e",
10102                "Ubreve;": "\u016c",
10103                "ubreve;": "\u016d",
10104                "Ucirc;": "\u00db",
10105                Ucirc: "\u00db",
10106                "ucirc;": "\u00fb",
10107                ucirc: "\u00fb",
10108                "Ucy;": "\u0423",
10109                "ucy;": "\u0443",
10110                "udarr;": "\u21c5",
10111                "Udblac;": "\u0170",
10112                "udblac;": "\u0171",
10113                "udhar;": "\u296e",
10114                "ufisht;": "\u297e",
10115                "Ufr;": "\ud835\udd18",
10116                "ufr;": "\ud835\udd32",
10117                "Ugrave;": "\u00d9",
10118                Ugrave: "\u00d9",
10119                "ugrave;": "\u00f9",
10120                ugrave: "\u00f9",
10121                "uHar;": "\u2963",
10122                "uharl;": "\u21bf",
10123                "uharr;": "\u21be",
10124                "uhblk;": "\u2580",
10125                "ulcorn;": "\u231c",
10126                "ulcorner;": "\u231c",
10127                "ulcrop;": "\u230f",
10128                "ultri;": "\u25f8",
10129                "Umacr;": "\u016a",
10130                "umacr;": "\u016b",
10131                "uml;": "\u00a8",
10132                uml: "\u00a8",
10133                "UnderBar;": "_",
10134                "UnderBrace;": "\u23df",
10135                "UnderBracket;": "\u23b5",
10136                "UnderParenthesis;": "\u23dd",
10137                "Union;": "\u22c3",
10138                "UnionPlus;": "\u228e",
10139                "Uogon;": "\u0172",
10140                "uogon;": "\u0173",
10141                "Uopf;": "\ud835\udd4c",
10142                "uopf;": "\ud835\udd66",
10143                "UpArrowBar;": "\u2912",
10144                "uparrow;": "\u2191",
10145                "UpArrow;": "\u2191",
10146                "Uparrow;": "\u21d1",
10147                "UpArrowDownArrow;": "\u21c5",
10148                "updownarrow;": "\u2195",
10149                "UpDownArrow;": "\u2195",
10150                "Updownarrow;": "\u21d5",
10151                "UpEquilibrium;": "\u296e",
10152                "upharpoonleft;": "\u21bf",
10153                "upharpoonright;": "\u21be",
10154                "uplus;": "\u228e",
10155                "UpperLeftArrow;
10155": "\u2196",
10156                "UpperRightArrow;": "\u2197",
10157                "upsi;": "\u03c5",
10158                "Upsi;": "\u03d2",
10159                "upsih;": "\u03d2",
10160                "Upsilon;": "\u03a5",
10161                "upsilon;": "\u03c5",
10162                "UpTeeArrow;": "\u21a5",
10163                "UpTee;": "\u22a5",
10164                "upuparrows;": "\u21c8",
10165                "urcorn;": "\u231d",
10166                "urcorner;": "\u231d",
10167                "urcrop;": "\u230e",
10168                "Uring;": "\u016e",
10169                "uring;": "\u016f",
10170                "urtri;": "\u25f9",
10171                "Uscr;": "\ud835\udcb0",
10172                "uscr;": "\ud835\udcca",
10173                "utdot;": "\u22f0",
10174                "Utilde;": "\u0168",
10175                "utilde;": "\u0169",
10176                "utri;": "\u25b5",
10177                "utrif;": "\u25b4",
10178                "uuarr;": "\u21c8",
10179                "Uuml;": "\u00dc",
10180                Uuml: "\u00dc",
10181                "uuml;": "\u00fc",
10182                uuml: "\u00fc",
10183                "uwangle;": "\u29a7",
10184                "vangrt;": "\u299c",
10185                "varepsilon;": "\u03f5",
10186                "varkappa;": "\u03f0",
10187                "varnothing;": "\u2205",
10188                "varphi;": "\u03d5",
10189                "varpi;": "\u03d6",
10190                "varpropto;": "\u221d",
10191                "varr;": "\u2195",
10192                "vArr;": "\u21d5",
10193                "varrho;": "\u03f1",
10194                "varsigma;": "\u03c2",
10195                "varsubsetneq;": "\u228a\ufe00",
10196                "varsubsetneqq;": "\u2acb\ufe00",
10197                "varsupsetneq;": "\u228b\ufe00",
10198                "varsupsetneqq;": "\u2acc\ufe00",
10199                "vartheta;": "\u03d1",
10200                "vartriangleleft;": "\u22b2",
10201                "vartriangleright;": "\u22b3",
10202                "vBar;": "\u2ae8",
10203                "Vbar;": "\u2aeb",
10204                "vBarv;": "\u2ae9",
10205                "Vcy;": "\u0412",
10206                "vcy;": "\u0432",
10207                "vdash;": "\u22a2",
10208                "vDash;": "\u22a8",
10209                "Vdash;": "\u22a9",
10210                "VDash;": "\u22ab",
10211                "Vdashl;": "\u2ae6",
10212                "veebar;": "\u22bb",
10213                "vee;": "\u2228",
10214                "Vee;": "\u22c1",
10215                "veeeq;": "\u225a",
10216                "vellip;": "\u22ee",
10217                "verbar;": "|",
10218                "Verbar;": "\u2016",
10219                "vert;": "|",
10220                "Vert;": "\u2016",
10221                "VerticalBar;": "\u2223",
10222                "VerticalLine;": "|",
10223                "VerticalSeparator;": "\u2758",
10224                "VerticalTilde;": "\u2240",
10225                "VeryThinSpace;": "\u200a",
10226                "Vfr;": "\ud835\udd19",
10227                "vfr;": "\ud835\udd33",
10228                "vltri;": "\u22b2",
10229                "vnsub;": "\u2282\u20d2",
10230                "vnsup;": "\u2283\u20d2",
10231                "Vopf;": "\ud835\udd4d",
10232                "vopf;": "\ud835\udd67",
10233                "vprop;": "\u221d",
10234                "vrtri;": "\u22b3",
10235                "Vscr;": "\ud835\udcb1",
10236                "vscr;": "\ud835\udccb",
10237                "vsubnE;": "\u2acb\ufe00",
10238                "vsubne;": "\u228a\ufe00",
10239                "vsupnE;": "\u2acc\ufe00",
10240                "vsupne;": "\u228b\ufe00",
10241                "Vvdash;": "\u22aa",
10242                "vzigzag;": "\u299a",
10243                "Wcirc;": "\u0174",
10244                "wcirc;": "\u0175",
10245                "wedbar;": "\u2a5f",
10246                "wedge;": "\u2227",
10247                "Wedge;": "\u22c0",
10248                "wedgeq;": "\u2259",
10249                "weierp;": "\u2118",
10250                "Wfr;": "\ud835\udd1a",
10251                "wfr;": "\ud835\udd34",
10252                "Wopf;": "\ud835\udd4e",
10253                "wopf;": "\ud835\udd68",
10254                "wp;": "\u2118",
10255                "wr;": "\u2240",
10256                "wreath;
10256": "\u2240",
10257                "Wscr;": "\ud835\udcb2",
10258                "wscr;": "\ud835\udccc",
10259                "xcap;": "\u22c2",
10260                "xcirc;": "\u25ef",
10261                "xcup;": "\u22c3",
10262                "xdtri;": "\u25bd",
10263                "Xfr;": "\ud835\udd1b",
10264                "xfr;": "\ud835\udd35",
10265                "xharr;": "\u27f7",
10266                "xhArr;": "\u27fa",
10267                "Xi;": "\u039e",
10268                "xi;": "\u03be",
10269                "xlarr;": "\u27f5",
10270                "xlArr;": "\u27f8",
10271                "xmap;": "\u27fc",
10272                "xnis;": "\u22fb",
10273                "xodot;": "\u2a00",
10274                "Xopf;": "\ud835\udd4f",
10275                "xopf;": "\ud835\udd69",
10276                "xoplus;": "\u2a01",
10277                "xotime;": "\u2a02",
10278                "xrarr;": "\u27f6",
10279                "xrArr;": "\u27f9",
10280                "Xscr;": "\ud835\udcb3",
10281                "xscr;": "\ud835\udccd",
10282                "xsqcup;": "\u2a06",
10283                "xuplus;": "\u2a04",
10284                "xutri;": "\u25b3",
10285                "xvee;": "\u22c1",
10286                "xwedge;": "\u22c0",
10287                "Yacute;": "\u00dd",
10288                Yacute: "\u00dd",
10289                "yacute;": "\u00fd",
10290                yacute: "\u00fd",
10291                "YAcy;": "\u042f",
10292                "yacy;": "\u044f",
10293                "Ycirc;": "\u0176",
10294                "ycirc;": "\u0177",
10295                "Ycy;": "\u042b",
10296                "ycy;": "\u044b",
10297                "yen;": "\u00a5",
10298                yen: "\u00a5",
10299                "Yfr;": "\ud835\udd1c",
10300                "yfr;": "\ud835\udd36",
10301                "YIcy;": "\u0407",
10302                "yicy;": "\u0457",
10303                "Yopf;": "\ud835\udd50",
10304                "yopf;": "\ud835\udd6a",
10305                "Yscr;": "\ud835\udcb4",
10306                "yscr;": "\ud835\udcce",
10307                "YUcy;": "\u042e",
10308                "yucy;": "\u044e",
10309                "yuml;": "\u00ff",
10310                yuml: "\u00ff",
10311                "Yuml;": "\u0178",
10312                "Zacute;": "\u0179",
10313                "zacute;": "\u017a",
10314                "Zcaron;": "\u017d",
10315                "zcaron;": "\u017e",
10316                "Zcy;": "\u0417",
10317                "zcy;": "\u0437",
10318                "Zdot;": "\u017b",
10319                "zdot;": "\u017c",
10320                "zeetrf;": "\u2128",
10321                "ZeroWidthSpace;": "\u200b",
10322                "Zeta;": "\u0396",
10323                "zeta;": "\u03b6",
10324                "zfr;": "\ud835\udd37",
10325                "Zfr;": "\u2128",
10326                "ZHcy;": "\u0416",
10327                "zhcy;": "\u0436",
10328                "zigrarr;": "\u21dd",
10329                "zopf;": "\ud835\udd6b",
10330                "Zopf;": "\u2124",
10331                "Zscr;": "\ud835\udcb5",
10332                "zscr;": "\ud835\udccf",
10333                "zwj;": "\u200d",
10334                "zwnj;": "\u200c"
10335            }
10336        }, {}], 13: [function (e, t, n) {
10337            function u(e, t) {
10338                return r.isUndefined(t) ? "" + t : r.isNumber(t) && (isNaN(t) || !isFinite(t)) ? t.toString() : r.isFunction(t) || r.isRegExp(t) ? t.toString() : t
10339            }
10340
10341            function a(e, t) {
10342                return r.isString(e) ? e.length < t ? e : e.slice(0, t) : e
10343            }
10344
10345            function f(e) {
10346                return a(JSON.stringify(e.actual, u), 128) + " " + e.operator + " " + a(JSON.stringify(e.expected, u), 128)
10347            }
10348
10349            function l(e, t, n, r, i) {
10350                throw new o.AssertionError({message: n, actual: e, expected: t, operator: r, stackStartFunction: i})
10351            }
10352
10353            function c(e, t) {
10354                e || l(e, !0, t, "==", o.ok)
10355            }
10356
10357            function h(e, t) {
10358                if (e === t) return !0;
10359                if (r.isBuffer(e) && r.isBuffer(t)) {
10360                    if (e.length != t.length) return !1;
10361                    for (var n = 0; n < e.length; n++) if (e[n] !== t[n]) return !1;
10362                    return !0
10363                }
10364                return r.isDate(e) && r.isDate(t) ? e.getTime() === t.getTime() : r.isRegExp(e) && r.isRegExp(t) ? e.source === t.source && e.global === t.global && e.multiline === t.multiline && e.lastIndex === t.lastIndex && e.ignoreCase === t.ignoreCase : !r.isObject(e) && !r.isObject(t) ? e == t : d(e, t)
10365            }
10366
10367            function p(e) {
10368                return Object.prototype.toString.call(e) == "[object Arguments]"
10369            }
10370
10371            function d(e, t) {
10372                if (r.isNullOrUndefined(e) || r.isNullOrUndefined(t)) return !1;
10373                if (e.prototype !== t.prototype) return !1;
10374                if (p(e)) return p(t) ? (e = i.call(e), t = i.call(t), h(e, t)) : !1;
10375                try {
10376                    var n = g(e), s = g(t), o, u
10377                } catch (a) {
10378                    return !1
10379                }
10380                if (n.length != s.length) return !1;
10381                n.sort(), s.sort();
10382                for (u = n.length - 1; u >= 0; u--) if (n[u] != s[u]) return !1;
10383                for (u = n.length - 1; u >= 0; u--) {
10384                    o = n[u];
10385                    if (!h(e[o], t[o])) return !1
10386                }
10387                return !0
10388            }
10389
10390            function v(e, t) {
10391                return !e || !t ? !1 : Object.prototype.toString.call(t) == "[object RegExp]" ? t.test(e) : e instanceof t ? !0 : t.call({}, e) === !0 ? !0 : !1
10392            }
10393
10394            function m(e, t, n, i) {
10395                var s;
10396                r.isString(n) && (i = n, n = null);
10397                try {
10398                    t()
10399                } catch (o) {
10400                    s = o
10401                }
10402                i = (n && n.name ? " (" + n.name + ")." : ".") + (i ? " " + i : "."), e && !s && l(s, n, "Missing expected exception" + i), !e && v(s, n) && l(s, n, "Got unwanted exception" + i);
10403                if (e && s && n && !v(s, n) || !e && s) throw s
10404            }
10405
10406            var r = e("util/"), i = Array.prototype.slice, s = Object.prototype.hasOwnProperty, o = t.exports = c;
10407            o.AssertionError = function (t) {
10408                this.name = "AssertionError", this.actual = t.actual, this.expected = t.expected, this.operator = t.operator, t.message ? (this.message = t.message, this.generatedMessage = !1) : (this.message = f(this), this.generatedMessage = !0);
10409                var n = t.stackStartFunction || l;
10410                if (Error.captureStackTrace) Error.captureStackTrace(this, n); else {
10411                    var r = new Error;
10412                    if (r.stack) {
10413                        var i = r.stack, s = n.name, o = i.indexOf("\n" + s);
10414                        if (o >= 0) {
10415                            var u = i.indexOf("\n", o + 1);
10416                            i = i.substring(u + 1)
10417                        }
10418                        this.stack = i
10419                    }
10420                }
10421            }, r.inherits(o.AssertionError, Error), o.fail = l, o.ok = c, o.equal = function (t, n, r) {
10422                t != n && l(t, n, r, "==", o.equal)
10423            }, o.notEqual = function (t, n, r) {
10424                t == n && l(t, n, r, "!=", o.notEqual)
10425            }, o.deepEqual = function (t, n, r) {
10426                h(t, n) || l(t, n, r, "deepEqual", o.deepEqual)
10427            }, o.notDeepEqual = function (t, n, r) {
10428                h(t, n) && l(t, n, r, "notDeepEqual", o.notDeepEqual)
10429            }, o.strictEqual = function (t, n, r) {
10430                t !== n && l(t, n, r, "===", o.strictEqual)
10431            }
10431, o.notStrictEqual = function (t, n, r) {
10432                t === n && l(t, n, r, "!==", o.notStrictEqual)
10433            }, o.throws = function (e, t, n) {
10434                m.apply(this, [!0].concat(i.call(arguments)))
10435            }, o.doesNotThrow = function (e, t) {
10436                m.apply(this, [!1].concat(i.call(arguments)))
10437            }, o.ifError = function (e) {
10438                if (e) throw e
10439            };
10440            var g = Object.keys || function (e) {
10441                var t = [];
10442                for (var n in e) s.call(e, n) && t.push(n);
10443                return t
10444            }
10445        }, {"util/": 15}], 14: [function (e, t, n) {
10446            t.exports = function (t) {
10447                return t && typeof t == "object" && typeof t.copy == "function" && typeof t.fill == "function" && typeof t.readUInt8 == "function"
10448            }
10449        }, {}], 15: [function (e, t, n) {
10450            (function (t, r) {
10451                function u(e, t) {
10452                    var r = {seen: [], stylize: f};
10453                    return arguments.length >= 3 && (r.depth = arguments[2]), arguments.length >= 4 && (r.colors = arguments[3]), y(t) ? r.showHidden = t : t && n._extend(r, t), T(r.showHidden) && (r.showHidden = !1), T(r.depth) && (r.depth = 2), T(r.colors) && (r.colors = !1), T(r.customInspect) && (r.customInspect = !0), r.colors && (r.stylize = a), c(r, e, r.depth)
10454                }
10455
10456                function a(e, t) {
10457                    var n = u.styles[t];
10458                    return n ? "�[" + u.colors[n][0] + "m" + e + "�[" + u.colors[n][1] + "m" : e
10459                }
10460
10461                function f(e, t) {
10462                    return e
10463                }
10464
10465                function l(e) {
10466                    var t = {};
10467                    return e.forEach(function (e, n) {
10468                        t[e] = !0
10469                    }), t
10470                }
10471
10472                function c(e, t, r) {
10473                    if (e.customInspect && t && A(t.inspect) && t.inspect !== n.inspect && (!t.constructor || t.constructor.prototype !== t)) {
10474                        var i = t.inspect(r, e);
10475                        return S(i) || (i = c(e, i, r)), i
10476                    }
10477                    var s = h(e, t);
10478                    if (s) return s;
10479                    var o = Object.keys(t), u = l(o);
10480                    e.showHidden && (o = Object.getOwnPropertyNames(t));
10481                    if (L(t) && (o.indexOf("message") >= 0 || o.indexOf("description") >= 0)) return p(t);
10482                    if (o.length === 0) {
10483                        if (A(t)) {
10484                            var a = t.name ? ": " + t.name : "";
10485                            return e.stylize("[Function" + a + "]", "special")
10486                        }
10487                        if (N(t)) return e.stylize(RegExp.prototype.toString.call(t), "regexp");
10488                        if (k(t)) return e.stylize(Date.prototype.toString.call(t), "date");
10489                        if (L(t)) return p(t)
10490                    }
10491                    var f = "", y = !1, b = ["{", "}"];
10492                    g(t) && (y = !0, b = ["[", "]"]);
10493                    if (A(t)) {
10494                        var w = t.name ? ": " + t.name : "";
10495                        f = " [Function" + w + "]"
10496                    }
10497                    N(t) && (f = " " + RegExp.prototype.toString.call(t)), k(t) && (f = " " + Date.prototype.toUTCString.call(t)), L(t) && (f = " " + p(t));
10498                    if (o.length !== 0 || !!y && t.length != 0) {
10499                        if (r < 0) return N(t) ? e.stylize(RegExp.prototype.toString.call(t), "regexp") : e.stylize("[Object]", "special");
10500                        e.seen.push(t);
10501                        var E;
10502                        return y ? E = d(e, t, r, u, o) : E = o.map(function (n) {
10503                            return v(e, t, r, u, n, y)
10504                        }), e.seen.pop(), m(E, f, b)
10505                    }
10506                    return b[0] + f + b[1]
10507                }
10508
10509                function h(e, t) {
10510                    if (T(t)) return e.stylize("undefined", "undefined");
10511                    if (S(t)) {
10512                        var n = "'" + JSON.stringify(t).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
10513                        return e.stylize(n, "string")
10514                    }
10515                    if (E(t)) return e.stylize("" + t, "number");
10516                    if (y(t)) return e.stylize("" + t, "boolean");
10517                    if (b(t)) return e.stylize("null", "null")
10518                }
10519
10520                function p(e) {
10521                    return "[" + Error.prototype.toString.call(e) + "]"
10522                }
10523
10524                function d(e, t, n, r, i) {
10525                    var s = [];
10526                    for (var o = 0, u = t.length; o < u; ++o) H(t, String(o)) ? s.push(v(e, t, n, r, String(o), !0)) : s.push("");
10527                    return i.forEach(function (i) {
10528                        i.match(/^\d+$/) || s.push(v(e, t, n, r, i, !0))
10529                    }), s
10530                }
10531
10532                function v(e, t, n, r, i, s) {
10533                    var o, u, a;
10534                    a = Object.getOwnPropertyDescriptor(t, i) || {value: t[i]}, a.get ? a.set ? u = e.stylize("[Getter/Setter]", "special") : u = e.stylize("[Getter]", "special") : a.set && (u = e.stylize("[Setter]", "special")), H(r, i) || (o = "[" + i + "]"), u || (e.seen.indexOf(a.value) < 0 ? (b(n) ? u = c(e, a.value, null) : u = c(e, a.value, n - 1), u.indexOf("\n") > -1 && (s ? u = u.split("\n").map(function (e) {
10535                        return "  " + e
10536                    }).join("\n").substr(2) : u = "\n" + u.split("\n").map(function (e) {
10537                        return "   " + e
10538                    }).join("\n"))) : u = e.stylize("[Circular]", "special"));
10539                    if (T(o)) {
10540                        if (s && i.match(/^\d+$/)) return u;
10541                        o = JSON.stringify("" + i), o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (o = o.substr(1, o.length - 2), o = e.stylize(o, "name")) : (o = o.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), o = e.stylize(o, "string"))
10542                    }
10543                    return o + ": " + u
10544                }
10545
10546                function m(e, t, n) {
10547                    var r = 0, i = e.reduce(function (e, t) {
10548                        return r++, t.indexOf("\n") >= 0 && r++, e + t.replace(/\u001b\[\d\d?m/g, "").length + 1
10549                    }, 0);
10550                    return i > 60 ? n[0] + (t === "" ? "" : t + "\n ") + " " + e.join(",\n  ") + " " + n[1] : n[0] + t + " " + e.join(", ") + " " + n[1]
10551                }
10552
10553                function g(e) {
10554                    return Array.isArray(e)
10555                }
10556
10557                function y(e) {
10558                    return typeof e == "boolean"
10559                }
10560
10561                function b(e) {
10562                    return e === null
10563                }
10564
10565                function w(e) {
10566                    return e == null
10567                }
10568
10569                function E(e) {
10570                    return typeof e == "number"
10571                }
10572
10573                function S(e) {
10574                    return typeof e == "string"
10575                }
10576
10577                function x(e) {
10578                    return typeof e == "symbol"
10579                }
10580
10581                function T(e) {
10582                    return e === void 0
10583                }
10584
10585                function N(e) {
10586                    return C(e) && M(e) === "[object RegExp]"
10587                }
10588
10589                function C(e) {
10590                    return typeof e == "object" && e !== null
10591                }
10592
10593                function k(e) {
10594                    return C(e) && M(e) === "[object Date]"
10595                }
10596
10597                function L(e) {
10598                    return C(e) && (M(e) === "[object Error]" || e instanceof Error)
10599                }
10600
10601                function A(e) {
10602                    return typeof e == "function"
10603                }
10604
10605                function O(e) {
10606                    return e === null || typeof e == "boolean" || typeof e == "number" || typeof e == "string" || typeof e == "symbol" || typeof e == "undefined"
10607                }
10608
10609                function M(e) {
10610                    return Object.prototype.toString.call(e)
10611                }
10612
10613                function _(e) {
10614                    return e < 10 ? "0" + e.toString(10) : e.toString(10)
10615                }
10616
10617                function P() {
10618                    var e = new Date, t = [_(e.getHours()), _(e.getMinutes()), _(e.getSeconds())].join(":");
10619                    return [e.getDate(), D[e.getMonth()], t].join(" ")
10620                }
10621
10622                function H(e, t) {
10623                    return Object.prototype.hasOwnProperty.call(e, t)
10624                }
10625
10626                var i = /%[sdj%]/g;
10627                n.format = function (e) {
10628                    if (!S(e)) {
10629                        var t = [];
10630                        for (var n = 0; n < arguments.length; n++) t.push(u(arguments[n]));
10631                        return t.join(" ")
10632                    }
10633                    var n = 1, r = arguments, s = r.length, o = String(e).replace(i, function (e) {
10634                        if (e === "%%") return "%";
10635                        if (n >= s) return e;
10636                        switch (e) {
10637                            case"%s":
10638                                return String(r[n++]);
10639                            case"%d":
10640                                return Number(r[n++]);
10641                            case"%j":
10642                                try {
10643                                    return JSON.stringify(r[n++])
10644                                } catch (t) {
10645                                    return "[Circular]"
10646                                }
10647                                ;
10648                            default:
10649                                return e
10650                        }
10651                    });
10652                    for (var a = r[n]; n < s; a = r[++n]) b(a) || !C(a) ? o += " " + a : o += " " + u(a);
10653                    return o
10654                }, n.deprecate = function (e, i) {
10655                    function o() {
10656                        if (!s) {
10657                            if (t.throwDeprecation) throw new Error(i);
10658                            t.traceDeprecation ? console.trace(i) : console.error(i), s = !0
10659                        }
10660                        return e.apply(this, arguments)
10661                    }
10662
10663                    if (T(r.process)) return function () {
10664                        return n.deprecate(e, i).apply(this, arguments)
10665                    };
10666                    if (t.noDeprecation === !0) return e;
10667                    var s = !1;
10668                    return o
10669                };
10670                var s = {}, o;
10671                n.debuglog = function (e) {
10672                    T(o) && (o = t.env.NODE_DEBUG || ""), e = e.toUpperCase();
10673                    if (!s[e]) if ((new RegExp("\\b" + e + "\\b", "i")).test(o)) {
10674                        var r = t.pid;
10675                        s[e] = function () {
10676                            var t = n.format.apply(n, arguments);
10677                            console.error("%s %d: %s", e, r, t)
10678                        }
10679                    } else s[e] = function () {
10680                    };
10681                    return s[e]
10682                }, n.inspect = u, u.colors = {
10683                    bold: [1, 22],
10684                    italic: [3, 23],
10685                    underline: [4, 24],
10686                    inverse: [7, 27],
10687                    white: [37, 39],
10688                    grey: [90, 39],
10689                    black: [30, 39],
10690                    blue: [34, 39],
10691                    cyan: [36, 39],
10692                    green: [32, 39],
10693                    magenta: [35, 39],
10694                    red: [31, 39],
10695                    yellow: [33, 39]
10696                }, u.styles = {
10697                    special: "cyan",
10698                    number: "yellow",
10699                    "boolean": "yellow",
10700                    "undefined": "grey",
10701                    "null": "bold",
10702                    string: "green",
10703                    date: "magenta",
10704                    regexp: "red"
10705                }, n.isArray = g, n.isBoolean = y, n.isNull = b, n.isNullOrUndefined = w, n.isNumber = E, n.isString = S, n.isSymbol = x, n.isUndefined = T, n.isRegExp = N, n.isObject = C, n.isDate = k, n.isError = L, n.isFunction = A, n.isPrimitive = O, n.isBuffer = e("./support/isBuffer");
10706                var D = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
10707                n.log = function () {
10708                    console.log("%s - %s", P(), n.format.apply(n, arguments))
10709                }, n.inherits = e("inherits"), n._extend = function (e, t) {
10710                    if (!t || !C(t)) return e;
10711                    var n = Object.keys(t), r = n.length;
10712                    while (r--) e[n[r]] = t[n[r]];
10713                    return e
10714                }
10715            }).call(this, e("/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"), typeof self != "undefined" ? self : typeof window != "undefined" ? window : {})
10716        }, {
10717            "./support/isBuffer": 14,
10718            "/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js": 18,
10719            inherits: 17
10720        }], 16: [function (e, t, n) {
10721            function r() {
10722                this._events = this._events || {}, this._maxListeners = this._maxListeners || undefined
10723            }
10724
10725            function i(e) {
10726                return typeof e == "function"
10727            }
10728
10729            function s(e) {
10730                return typeof e == "number"
10731            }
10732
10733            function o(e) {
10734                return typeof e == "object" && e !== null
10735            }
10736
10737            function u(e) {
10738                return e === void 0
10739            }
10740
10741            t.exports = r, r.EventEmitter = r, r.prototype._events = undefined, r.prototype._maxListeners = undefined, r.defaultMaxListeners = 10, r.prototype.setMaxListeners = function (e) {
10742                if (!s(e) || e < 0 || isNaN(e)) throw TypeError("n must be a positive number");
10743                return this._maxListeners = e, this
10744            }, r.prototype.emit = function (e) {
10745                var t, n, r, s, a, f;
10746                this._events || (this._events = {});
10747                if (e === "error") if (!this._events.error || o(this._events.error) && !this._events.error.length) throw t = arguments[1], t instanceof Error ? t : TypeError('Uncaught, unspecified "error" event.');
10748                n = this._events[e];
10749                if (u(n)) return !1;
10750                if (i(n)) switch (arguments.length) {
10751                    case 1:
10752                        n.call(this);
10753                        break;
10754                    case 2:
10755                        n.call(this, arguments[1]);
10756                        break;
10757                    case 3:
10758                        n.call(this, arguments[1], arguments[2]);
10759                        break;
10760                    default:
10761                        r = arguments.length, s = new Array(r - 1);
10762                        for (a = 1; a < r; a++) s[a - 1] = arguments[a];
10763                        n.apply(this, s)
10764                } else if (o(n)) {
10765                    r = arguments.length, s = new Array(r - 1);
10766                    for (a = 1; a < r; a++) s[a - 1] = arguments[a];
10767                    f = n.slice(), r = f.length;
10768                    for (a = 0; a < r; a++) f[a].apply(this, s)
10769                }
10770                return !0
10771            }, r.prototype.addListener = function (e, t) {
10772                var n;
10773                if (!i(t)) throw TypeError("listener must be a function");
10774                this._events || (this._events = {}
10774), this._events.newListener && this.emit("newListener", e, i(t.listener) ? t.listener : t), this._events[e] ? o(this._events[e]) ? this._events[e].push(t) : this._events[e] = [this._events[e], t] : this._events[e] = t;
10775                if (o(this._events[e]) && !this._events[e].warned) {
10776                    var n;
10777                    u(this._maxListeners) ? n = r.defaultMaxListeners : n = this._maxListeners, n && n > 0 && this._events[e].length > n && (this._events[e].warned = !0, console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[e].length), console.trace())
10778                }
10779                return this
10780            }, r.prototype.on = r.prototype.addListener, r.prototype.once = function (e, t) {
10781                function r() {
10782                    this.removeListener(e, r), n || (n = !0, t.apply(this, arguments))
10783                }
10784
10785                if (!i(t)) throw TypeError("listener must be a function");
10786                var n = !1;
10787                return r.listener = t, this.on(e, r), this
10788            }, r.prototype.removeListener = function (e, t) {
10789                var n, r, s, u;
10790                if (!i(t)) throw TypeError("listener must be a function");
10791                if (!this._events || !this._events[e]) return this;
10792                n = this._events[e], s = n.length, r = -1;
10793                if (n === t || i(n.listener) && n.listener === t) delete this._events[e], this._events.removeListener && this.emit("removeListener", e, t); else if (o(n)) {
10794                    for (u = s; u-- > 0;) if (n[u] === t || n[u].listener && n[u].listener === t) {
10795                        r = u;
10796                        break
10797                    }
10798                    if (r < 0) return this;
10799                    n.length === 1 ? (n.length = 0, delete this._events[e]) : n.splice(r, 1), this._events.removeListener && this.emit("removeListener", e, t)
10800                }
10801                return this
10802            }, r.prototype.removeAllListeners = function (e) {
10803                var t, n;
10804                if (!this._events) return this;
10805                if (!this._events.removeListener) return arguments.length === 0 ? this._events = {} : this._events[e] && delete this._events[e], this;
10806                if (arguments.length === 0) {
10807                    for (t in this._events) {
10808                        if (t === "removeListener") continue;
10809                        this.removeAllListeners(t)
10810                    }
10811                    return this.removeAllListeners("removeListener"), this._events = {}, this
10812                }
10813                n = this._events[e];
10814                if (i(n)) this.removeListener(e, n); else while (n.length) this.removeListener(e, n[n.length - 1]);
10815                return delete this._events[e], this
10816            }, r.prototype.listeners = function (e) {
10817                var t;
10818                return !this._events || !this._events[e] ? t = [] : i(this._events[e]) ? t = [this._events[e]] : t = this._events[e].slice(), t
10819            }, r.listenerCount = function (e, t) {
10820                var n;
10821                return !e._events || !e._events[t] ? n = 0 : i(e._events[t]) ? n = 1 : n = e._events[t].length, n
10822            }
10823        }, {}], 17: [function (e, t, n) {
10824            typeof Object.create == "function" ? t.exports = function (t, n) {
10825                t.super_ = n, t.prototype = Object.create(n.prototype, {
10826                    constructor: {
10827                        value: t,
10828                        enumerable: !1,
10829                        writable: !0,
10830                        configurable: !0
10831                    }
10832                })
10833            } : t.exports = function (t, n) {
10834                t.super_ = n;
10835                var r = function () {
10836                };
10837                r.prototype = n.prototype, t.prototype = new r, t.prototype.constructor = t
10838            }
10839        }, {}], 18: [function (e, t, n) {
10840            function i() {
10841            }
10842
10843            var r = t.exports = {};
10844            r.nextTick = function () {
10845                var e = typeof window != "undefined" && window.setImmediate,
10846                    t = typeof window != "undefined" && window.postMessage && window.addEventListener;
10847                if (e) return function (e) {
10848                    return window.setImmediate(e)
10849                };
10850                if (t) {
10851                    var n = [];
10852                    return window.addEventListener("message", function (e) {
10853                        var t = e.source;
10854                        if ((t === window || t === null) && e.data === "process-tick") {
10855                            e.stopPropagation();
10856                            if (n.length > 0) {
10857                                var r = n.shift();
10858                                r()
10859                            }
10860                        }
10861                    }, !0), function (t) {
10862                        n.push(t), window.postMessage("process-tick", "*")
10863                    }
10864                }
10865                return function (t) {
10866                    setTimeout(t, 0)
10867                }
10868            }(), r.title = "browser", r.browser = !0, r.env = {}, r.argv = [], r.on = i, r.once = i, r.off = i, r.emit = i, r.binding = function (e) {
10869                throw new Error("process.binding is not supported")
10870            }, r.cwd = function () {
10871                return "/"
10872            }, r.chdir = function (e) {
10873                throw new Error("process.chdir is not supported")
10874            }
10875        }, {}], 19: [function (e, t, n) {
10876            t.exports = e(14)
10877        }, {}], 20: [function (e, t, n) {
10878            t.exports = e(15)
10879        }, {
10880            "./support/isBuffer": 19,
10881            "/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js": 18,
10882            inherits: 17
10883        }]
10884    }, {}, [9])(9)
10885}), define("ace/mode/html_worker", [], function (e, t, n) {
10886    "use strict";
10887    var r = e("../lib/oop"), i = e("../lib/lang"), s = e("../wor
10887ker/mirror").Mirror,
10888        o = e("./html/saxparser").SAXParser, u = {
10889            "expected-doctype-but-got-start-tag": "info",
10890            "expected-doctype-but-got-chars": "info",
10891            "non-html-root": "info"
10892        }, a = t.Worker = function (e) {
10893            s.call(this, e), this.setTimeout(400), this.context = null
10894        };
10895    r.inherits(a, s), function () {
10896        this.setOptions = function (e) {
10897            this.context = e.context
10898        }, this.onUpdate = function () {
10899            var e = this.doc.getValue();
10900            if (!e) return;
10901            var t = new o, n = [], r = function () {
10902            };
10903            t.contentHandler = {
10904                startDocument: r,
10905                endDocument: r,
10906                startElement: r,
10907                endElement: r,
10908                characters: r
10909            }, t.errorHandler = {
10910                error: function (e, t, r) {
10911                    n.push({row: t.line, column: t.column, text: e, type: u[r] || "error"})
10912                }
10913            }, this.context ? t.parseFragment(e, this.context) : t.parse(e), this.sender.emit("error", n)
10914        }
10915    }.call(a.prototype)
10916}), define("ace/lib/es5-shim", [], function (e, t, n) {
10917    function r() {
10918    }
10919
10920    function w(e) {
10921        try {
10922            return Object.defineProperty(e, "sentinel", {}), "sentinel" in e
10923        } catch (t) {
10924        }
10925    }
10926
10927    function H(e) {
10928        return e = +e, e !== e ? e = 0 : e !== 0 && e !== 1 / 0 && e !== -1 / 0 && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), e
10929    }
10930
10931    function B(e) {
10932        var t = typeof e;
10933        return e === null || t === "undefined" || t === "boolean" || t === "number" || t === "string"
10934    }
10935
10936    function j(e) {
10937        var t, n, r;
10938        if (B(e)) return e;
10939        n = e.valueOf;
10940        if (typeof n == "function") {
10941            t = n.call(e);
10942            if (B(t)) return t
10943        }
10944        r = e.toString;
10945        if (typeof r == "function") {
10946            t = r.call(e);
10947            if (B(t)) return t
10948        }
10949        throw new TypeError
10950    }
10951
10952    Function.prototype.bind || (Function.prototype.bind = function (t) {
10953        var n = this;
10954        if (typeof n != "function") throw new TypeError("Function.prototype.bind called on incompatible " + n);
10955        var i = u.call(arguments, 1), s = function () {
10956            if (this instanceof s) {
10957                var e = n.apply(this, i.concat(u.call(arguments)));
10958                return Object(e) === e ? e : this
10959            }
10960            return n.apply(t, i.concat(u.call(arguments)))
10961        };
10962        return n.prototype && (r.prototype = n.prototype, s.prototype = new r, r.prototype = null), s
10963    });
10964    var i = Function.prototype.call, s = Array.prototype, o = Object.prototype, u = s.slice, a = i.bind(o.toString),
10965        f = i.bind(o.hasOwnProperty), l, c, h, p, d;
10966    if (d = f(o, "__defineGetter__")) l = i.bind(o.__defineGetter__), c = i.bind(o.__defineSetter__), h = i.bind(o.__lookupGetter__), p = i.bind(o.__lookupSetter__);
10967    if ([1, 2].splice(0).length != 2) if (!function () {
10968        function e(e) {
10969            var t = new Array(e + 2);
10970            return t[0] = t[1] = 0, t
10971        }
10972
10973        var t = [], n;
10974        t.splice.apply(t, e(20)), t.splice.apply(t, e(26)), n = t.length, t.splice(5, 0, "XXX"), n + 1 == t.length;
10975        if (n + 1 == t.length) return !0
10976    }()) Array.prototype.splice = function (e, t) {
10977        var n = this.length;
10978        e > 0 ? e > n && (e = n) : e == void 0 ? e = 0 : e < 0 && (e = Math.max(n + e, 0)), e + t < n || (t = n - e);
10979        var r = this.slice(e, e + t), i = u.call(arguments, 2), s = i.length;
10980        if (e === n) s && this.push.apply(this, i); else {
10981            var o = Math.min(t, n - e), a = e + o, f = a + s - o, l = n - a, c = n - o;
10982            if (f < a) for (var h = 0; h < l; ++h) this[f + h] = this[a + h]; else if (f > a) for (h = l; h--;) this[f + h] = this[a + h];
10983            if (s && e === c) this.length = c, this.push.apply(this, i); else {
10984                this.length = c + s;
10985                for (h = 0; h < s; ++h) this[e + h] = i[h]
10986            }
10987        }
10988        return r
10989    }; else {
10990        var v = Array.prototype.splice;
10991        Array.prototype.splice = function (e, t) {
10992            return arguments.length ? v.apply(this, [e === void 0 ? 0 : e, t === void 0 ? this.length - e : t].concat(u.call(arguments, 2))) : []
10993        }
10994    }
10995    Array.isArray || (Array.isArray = function (t) {
10996        return a(t) == "[object Array]"
10997    });
10998    var m = Object("a"), g = m[0] != "a" || !(0 in m);
10999    Array.prototype.forEach || (Array.prototype.forEach = function (t) {
11000        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = arguments[1], s = -1,
11001            o = r.length >>> 0;
11002        if (a(t) != "[object Function]") throw new TypeError;
11003        while (++s < o) s in r && t.call(i, r[s], s, n)
11004    }), Array.prototype.map || (Array.prototype.map = function (t) {
11005        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = Array(i),
11006            o = arguments[1];
11007        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11008        for (var u = 0; u < i; u++) u in r && (s[u] = t.call(o, r[u], u, n));
11009        return s
11010    }), Array.prototype.filter || (Array.prototype.filter = function (t) {
11011        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = [], o,
11012            u = arguments[1];
11013        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11014        for (var f = 0; f < i; f++) f in r && (o = r[f], t.call(u, o, f, n) && s.push(o));
11015        return s
11016    }), Array.prototype.every || (Array.prototype.every = function (t) {
11017        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
11018            s = arguments[1];
11019        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11020        for (var o = 0; o < i; o++) if (o in r && !t.call(s, r[o], o, n)) return !1;
11021        return !0
11022    }), Array.prototype.some || (Array.prototype.some = function (t) {
11023        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
11024            s = arguments[1];
11025        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11026        for (var o = 0; o < i; o++) if (o in r && t.call(s, r[o], o, n)) return !0;
11027        return !1
11028    }), Array.prototype.reduce || (Array.prototype.reduce = function (t) {
11029        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
11030        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11031        if (!i && arguments.length == 1) throw new TypeError("reduce of empty array with 
11031no initial value");
11032        var s = 0, o;
11033        if (arguments.length >= 2) o = arguments[1]; else do {
11034            if (s in r) {
11035                o = r[s++];
11036                break
11037            }
11038            if (++s >= i) throw new TypeError("reduce of empty array with no initial value")
11039        } while (!0);
11040        for (; s < i; s++) s in r && (o = t.call(void 0, o, r[s], s, n));
11041        return o
11042    }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function (t) {
11043        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
11044        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11045        if (!i && arguments.length == 1) throw new TypeError("reduceRight of empty array with no initial value");
11046        var s, o = i - 1;
11047        if (arguments.length >= 2) s = arguments[1]; else do {
11048            if (o in r) {
11049                s = r[o--];
11050                break
11051            }
11052            if (--o < 0) throw new TypeError("reduceRight of empty array with no initial value")
11053        } while (!0);
11054        do o in this && (s = t.call(void 0, s, r[o], o, n)); while (o--);
11055        return s
11056    });
11057    if (!Array.prototype.indexOf || [0, 1].indexOf(1, 2) != -1) Array.prototype.indexOf = function (t) {
11058        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
11059        if (!r) return -1;
11060        var i = 0;
11061        arguments.length > 1 && (i = H(arguments[1])), i = i >= 0 ? i : Math.max(0, r + i);
11062        for (; i < r; i++) if (i in n && n[i] === t) return i;
11063        return -1
11064    };
11065    if (!Array.prototype.lastIndexOf || [0, 1].lastIndexOf(0, -3) != -1) Array.prototype.lastIndexOf = function (t) {
11066        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
11067        if (!r) return -1;
11068        var i = r - 1;
11069        arguments.length > 1 && (i = Math.min(i, H(arguments[1]))), i = i >= 0 ? i : r - Math.abs(i);
11070        for (; i >= 0; i--) if (i in n && t === n[i]) return i;
11071        return -1
11072    };
11073    Object.getPrototypeOf || (Object.getPrototypeOf = function (t) {
11074        return t.__proto__ || (t.constructor ? t.constructor.prototype : o)
11075    });
11076    if (!Object.getOwnPropertyDescriptor) {
11077        var y = "Object.getOwnPropertyDescriptor called on a non-object: ";
11078        Object.getOwnPropertyDescriptor = function (t, n) {
11079            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(y + t);
11080            if (!f(t, n)) return;
11081            var r, i, s;
11082            r = {enumerable: !0, configurable: !0};
11083            if (d) {
11084                var u = t.__proto__;
11085                t.__proto__ = o;
11086                var i = h(t, n), s = p(t, n);
11087                t.__proto__ = u;
11088                if (i || s) return i && (r.get = i), s && (r.set = s), r
11089            }
11090            return r.value = t[n], r
11091        }
11092    }
11093    Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function (t) {
11094        return Object.keys(t)
11095    });
11096    if (!Object.create) {
11097        var b;
11098        Object.prototype.__proto__ === null ? b = function () {
11099            return {__proto__: null}
11100        } : b = function () {
11101            var e = {};
11102            for (var t in e) e[t] = null;
11103            return e.constructor = e.hasOwnProperty = e.propertyIsEnumerable = e.isPrototypeOf = e.toLocaleString = e.toString = e.valueOf = e.__proto__ = null, e
11104        }, Object.create = function (t, n) {
11105            var r;
11106            if (t === null) r = b(); else {
11107                if (typeof t != "object") throw new TypeError("typeof prototype[" + typeof t + "] != 'object'");
11108                var i = function () {
11109                };
11110                i.prototype = t, r = new i, r.__proto__ = t
11111            }
11112            return n !== void 0 && Object.defineProperties(r, n), r
11113        }
11114    }
11115    if (Object.defineProperty) {
11116        var E = w({}), S = typeof document == "undefined" || w(document.createElement("div"));
11117        if (!E || !S) var x = Object.defineProperty
11118    }
11119    if (!Object.defineProperty || x) {
11120        var T = "Property description must be an object: ", N = "Object.defineProperty called on non-object: ",
11121            C = "getters & setters can not be defined on this javascript engine";
11122        Object.defineProperty = function (t, n, r) {
11123            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(N + t);
11124            if (typeof r != "object" && typeof r != "function" || r === null) throw new TypeError(T + r);
11125            if (x) try {
11126                return x.call(Object, t, n, r)
11127            } catch (i) {
11128            }
11129            if (f(r, "value")) if (d && (h(t, n) || p(t, n))) {
11130                var s = t.__proto__;
11131                t.__proto__ = o, delete t[n], t[n] = r.value, t.__proto__ = s
11132            } else t[n] = r.value; else {
11133                if (!d) throw new TypeError(C);
11134                f(r, "get") && l(t, n, r.get), f(r, "set") && c(t, n, r.set)
11135            }
11136            return t
11137        }
11138    }
11139    Object.defineProperties || (Object.defineProperties = function (t, n) {
11140        for (var r in n) f(n, r) && Object.defineProperty(t, r, n[r]);
11141        return t
11142    }), Object.seal || (Object.seal = function (t) {
11143        return t
11144    }), Object.freeze || (Object.freeze = function (t) {
11145        return t
11146    });
11147    try {
11148        Object.freeze(function () {
11149        })
11150    } catch (k) {
11151        Object.freeze = function (t) {
11152            return function (n) {
11153                return typeof n == "function" ? n : t(n)
11154            }
11155        }(Object.freeze)
11156    }
11157    Object.preventExtensions || (Object.preventExtensions = function (t) {
11158        return t
11159    }), Object.isSealed || (Object.isSealed = function (t) {
11160        return !1
11161    }), Object.isFrozen || (Object.isFrozen = function (t) {
11162        return !1
11163    }), Object.isExtensible || (Object.isExtensible = function (t) {
11164        if (Object(t) === t) throw new TypeError;
11165        var n = "";
11166        while (f(t, n)) n += "?";
11167        t[n] = !0;
11168        var r = f(t, n);
11169        return delete t[n], r
11170    });
11171    if (!Object.keys) {
11172        var L = !0,
11173            A = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
11174            O = A.length;
11175        for (var M in {toString: null}) L = !1;
11176        Object.keys = function I(e) {
11177            if (typeof e != "object" && typeof e != "function" || e === null) throw new TypeError("Object.keys called on a non-object");
11178            var I = [];
11179            for (var t in e) f(e, t) && I.push(t);
11180            if (L) for (var n = 0, r = O; n < r; n++) {
11181                var i = A[n];
11182                f(e, i) && I.push(i)
11183            }
11184            return I
11185        }
11186    }
11187    Date.now || (Date.now = function () {
11188        return (new Date).getTime()
11189    });
11190    var _ = "	\n\x0b\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";
11191    if (!String.prototype.trim || _.trim()) {
11192        _ = "[" + _ + "]";
11193        var D = new RegExp("^" + _ + _ + "*"), P = new RegExp(_ + _ + "*$");
11194        String.prototype.trim = function () {
11195            return String(this).replace(D, "").replace(P, "")
11196        }
11197    }
11198    var F = function (e) {
11199        if (e == null) throw new TypeError("can't convert " + e + " to object");
11200        return Object(e)
11201    }
11202})
11203
11204"no use strict";
11205(function (e) {
11206    function t(e, t) {
11207        var n = e, r = "";
11208        while (n) {
11209            var i = t[n];
11210            if (typeof i == "string") return i + r;
11211            if (i) return i.location.replace(/\/*$/, "/") + (r || i.main || i.name);
11212            if (i === !1) return "";
11213            var s = n.lastIndexOf("/");
11214            if (s === -1) break;
11215            r = n.substr(s) + r, n = n.slice(0, s)
11216        }
11217        return e
11218    }
11219
11220    if (typeof e.window != "undefined" && e.document) return;
11221    if (e.require && e.define) return;
11222    e.console || (e.console = function () {
11223        var e = Array.prototype.slice.call(arguments, 0);
11224        postMessage({type: "log", data: e})
11225    }, e.console.error = e.console.warn = e.console.log = e.console.trace = e.console), e.window = e, e.ace = e, e.onerror = function (e, t, n, r, i) {
11226        postMessage({type: "error", data: {message: e, data: i.data, file: t, line: n, col: r, stack: i.stack}})
11227    }, e.normalizeModule = function (t, n) {
11228        if (n.indexOf("!") !== -1) {
11229            var r = n.split("!");
11230            return e.normalizeModule(t, r[0]) + "!" + e.normalizeModule(t, r[1])
11231        }
11232        if (n.charAt(0) == ".") {
11233            var i = t.split("/").slice(0, -1).join("/");
11234            n = (i ? i + "/" : "") + n;
11235            while (n.indexOf(".") !== -1 && s != n) {
11236                var s = n;
11237                n = n.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "")
11238            }
11239        }
11240        return n
11241    }, e.require = function (r, i) {
11242        i || (i = r, r = null);
11243        if (!i.charAt) throw new Error("worker.js require() accepts only (parentId, id) as arguments");
11244        i = e.normalizeModule(r, i);
11245        var s = e.require.modules[i];
11246        if (s) return s.initialized || (s.initialized = !0, s.exports = s.factory().exports), s.exports;
11247        if (!e.require.tlns) return console.log("unable to load " + i);
11248        var o = t(i, e.require.tlns);
11249        return o.slice(-3) != ".js" && (o += ".js"), e.require.id = i, e.require.modules[i] = {}, importScripts(o), e.require(r, i)
11250    }, e.require.modules = {}, e.require.tlns = {}, e.define = function (t, n, r) {
11251        arguments.length == 2 ? (r = n, typeof t != "string" && (n = t, t = e.require.id)) : arguments.length == 1 && (r = t, n = [], t = e.require.id);
11252        if (typeof r != "function") {
11253            e.require.modules[t] = {exports: r, initialized: !0};
11254            return
11255        }
11256        n.length || (n = ["require", "exports", "module"]);
11257        var i = function (n) {
11258            return e.require(t, n)
11259        };
11260        e.require.modules[t] = {
11261            exports: {}, factory: function () {
11262                var e = this, t = r.apply(this, n.map(function (t) {
11263                    switch (t) {
11264                        case"require":
11265                            return i;
11266                        case"exports":
11267                            return e.exports;
11268                        case"module":
11269                            return e;
11270                        default:
11271                            return i(t)
11272                    }
11273                }));
11274                return t && (e.exports = t), e
11275            }
11276        }
11277    }, e.define.amd = {}, require.tlns = {}, e.initBaseUrls = function (t) {
11278        for (var n in t) require.tlns[n] = t[n]
11279    }, e.initSender = function () {
11280        var n = e.require("ace/lib/event_emitter").EventEmitter, r = e.require("ace/lib/oop"), i = function () {
11281        };
11282        return function () {
11283            r.implement(this, n), this.callback = function (e, t) {
11284                postMessage({type: "call", id: t, data: e})
11285            }, this.emit = function (e, t) {
11286                postMessage({type: "event", name: e, data: t})
11287            }
11288        }.call(i.prototype), new i
11289    };
11290    var n = e.main = null, r = e.sender = null;
11291    e.onmessage = function (t) {
11292        var i = t.data;
11293        if (i.event && r) r._signal(i.event, i.data); else if (i.command) if (n[i.command]) n[i.command].apply(n, i.args); else {
11294            if (!e[i.command]) throw new Error("Unknown command:" + i.command);
11295            e[i.command].apply(e, i.args)
11296        } else if (i.init) {
11297            e.initBaseUrls(i.tlns), require("ace/lib/es5-shim"), r = e.sender = e.initSender();
11298            var s = require(i.module)[i.classname];
11299            n = e.main = new s(r)
11300        }
11301    }
11302})(this), define("ace/lib/oop", ["require", "exports", "module"], function (e, t, n) {
11303    "use strict";
11304    t.inherits = function (e, t) {
11305        e.super_ = t, e.prototype = Object.create(t.prototype, {
11306            constructor: {
11307                value: e,
11308                enumerable: !1,
11309                writable: !0,
11310                configurable: !0
11311            }
11312        })
11313    }, t.mixin = function (e, t) {
11314        for (var n in t) e[n] = t[n];
11315        return e
11316    }, t.implement = function (e, n) {
11317        t.mixin(e, n)
11318    }
11319}), define("ace/range", ["require", "exports", "module"], function (e, t, n) {
11320    "use strict";
11321    var r = function (e, t) {
11322        return e.row - t.row || e.column - t.column
11323    }, i = function (e, t, n, r) {
11324        this.start = {row: e, column: t}, this.end = {row: n, column: r}
11325    };
11326    (function () {
11327        this.isEqual = function (e) {
11328            return this.start.row === e.start.row && this.end.row 
11328=== e.end.row && this.start.column === e.start.column && this.end.column === e.end.column
11329        }, this.toString = function () {
11330            return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"
11331        }, this.contains = function (e, t) {
11332            return this.compare(e, t) == 0
11333        }, this.compareRange = function (e) {
11334            var t, n = e.end, r = e.start;
11335            return t = this.compare(n.row, n.column), t == 1 ? (t = this.compare(r.row, r.column), t == 1 ? 2 : t == 0 ? 1 : 0) : t == -1 ? -2 : (t = this.compare(r.row, r.column), t == -1 ? -1 : t == 1 ? 42 : 0)
11336        }, this.comparePoint = function (e) {
11337            return this.compare(e.row, e.column)
11338        }, this.containsRange = function (e) {
11339            return this.comparePoint(e.start) == 0 && this.comparePoint(e.end) == 0
11340        }, this.intersects = function (e) {
11341            var t = this.compareRange(e);
11342            return t == -1 || t == 0 || t == 1
11343        }, this.isEnd = function (e, t) {
11344            return this.end.row == e && this.end.column == t
11345        }, this.isStart = function (e, t) {
11346            return this.start.row == e && this.start.column == t
11347        }, this.setStart = function (e, t) {
11348            typeof e == "object" ? (this.start.column = e.column, this.start.row = e.row) : (this.start.row = e, this.start.column = t)
11349        }, this.setEnd = function (e, t) {
11350            typeof e == "object" ? (this.end.column = e.column, this.end.row = e.row) : (this.end.row = e, this.end.column = t)
11351        }, this.inside = function (e, t) {
11352            return this.compare(e, t) == 0 ? this.isEnd(e, t) || this.isStart(e, t) ? !1 : !0 : !1
11353        }, this.insideStart = function (e, t) {
11354            return this.compare(e, t) == 0 ? this.isEnd(e, t) ? !1 : !0 : !1
11355        }, this.insideEnd = function (e, t) {
11356            return this.compare(e, t) == 0 ? this.isStart(e, t) ? !1 : !0 : !1
11357        }, this.compare = function (e, t) {
11358            return !this.isMultiLine() && e === this.start.row ? t < this.start.column ? -1 : t > this.end.column ? 1 : 0 : 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
11359        }, this.compareStart = function (e, t) {
11360            return this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
11361        }, this.compareEnd = function (e, t) {
11362            return this.end.row == e && this.end.column == t ? 1 : this.compare(e, t)
11363        }, this.compareInside = function (e, t) {
11364            return this.end.row == e && this.end.column == t ? 1 : this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
11365        }, this.clipRows = function (e, t) {
11366            if (this.end.row > t) var n = {row: t + 1, column: 0}; else if (this.end.row < e) var n = {
11367                row: e,
11368                column: 0
11369            };
11370            if (this.start.row > t) var r = {row: t + 1, column: 0}; else if (this.start.row < e) var r = {
11371                row: e,
11372                column: 0
11373            };
11374            return i.fromPoints(r || this.start, n || this.end)
11375        }, this.extend = function (e, t) {
11376            var n = this.compare(e, t);
11377            if (n == 0) return this;
11378            if (n == -1) var r = {row: e, column: t}; else var s = {row: e, column: t};
11379            return i.fromPoints(r || this.start, s || this.end)
11380        }, this.isEmpty = function () {
11381            return this.start.row === this.end.row && this.start.column === this.end.column
11382        }, this.isMultiLine = function () {
11383            return this.start.row !== this.end.row
11384        }, this.clone = function () {
11385            return i.fromPoints(this.start, this.end)
11386        }, this.collapseRows = function () {
11387            return this.end.column == 0 ? 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)
11388        }, this.toScreenRange = function (e) {
11389            var t = e.documentToScreenPosition(this.start), n = e.documentToScreenPosition(this.end);
11390            return new i(t.row, t.column, n.row, n.column)
11391        }, this.moveBy = function (e, t) {
11392            this.start.row += e, this.start.column += t, this.end.row += e, this.end.column += t
11393        }
11394    }).call(i.prototype), i.fromPoints = function (e, t) {
11395        return new i(e.row, e.column, t.row, t.column)
11396    }, i.comparePoints = r, i.comparePoints = function (e, t) {
11397        return e.row - t.row || e.column - t.column
11398    }, t.Range = i
11399}), define("ace/apply_delta", ["require", "exports", "module"], function (e, t, n) {
11400    "use strict";
11401
11402    function r(e, t) {
11403        throw console.log("Invalid Delta:", e), "Invalid Delta: " + t
11404    }
11405
11406    function i(e, t) {
11407        return t.row >= 0 && t.row < e.length && t.column >= 0 && t.column <= e[t.row].length
11408    }
11409
11410    function s(e, t) {
11411        t.action != "insert" && t.action != "remove" && r(t, "delta.action must be 'insert' or 'remove'"), t.lines instanceof Array || r(t, "delta.lines must be an Array"), (!t.start || !t.end) && r(t, "delta.start/end must be an present");
11412        var n = t.start;
11413        i(e, t.start) || r(t, "delta.start must be contained in document");
11414        var s = t.end;
11415        t.action == "remove" && !i(e, s) && r(t, "delta.end must contained in document for 'remove' actions");
11416        var o = s.row - n.row, u = s.column - (o == 0 ? n.column : 0);
11417        (o != t.lines.length - 1 || t.lines[o].length != u) && r(t, "delta.range must match delta lines")
11418    }
11419
11420    t.applyDelta = function (e, t, n) {
11421        var r = t.start.row, i = t.start.column, s = e[r] || "";
11422        switch (t.action) {
11423            case"insert":
11424                var o = t.lines;
11425                if (o.length === 1) e[r] = s.substring(0, i) + t.lines[0] + s.substring(i); else {
11426                    var u = [r, 1].concat(t.lines);
11427                    e.splice.apply(e, u), e[r] = s.substring(0, i) + e[r], e[r + t.lines.length - 1] += s.substring(i)
11428                }
11429                break;
11430            case"remove":
11431                var a = t.end.column, f = t.end.row;
11432                r === f ? e[r] = s.substring(0, i) + s.substring(a) : e.splice(r, f - r + 1, s.substring(0, i) + e[f].substring(a))
11433        }
11434    }
11435}), define("ace/lib/event_emitter", ["require", "exports", "module"], function (e, t, n) {
11436    "use strict";
11437    var r = {}, i = function () {
11438        this.propagationStopped = !0
11439    }, s = function () {
11440        this.defaultPrevented = !0
11441    };
11442    r._emit = r._dispatchEvent = function (e, t) {
11443        this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});
11444        var n = this._eventRegistry[e] || [], r = this._defaultHandlers[e];
11445        if (!n.length && !r) return;
11446        if (typeof t != "object" || !t) t = {};
11447        t.type || (t.type = e), t.stopPropagation || (t.stopPropagation = i), t.preventDefault || (t.preventDefault = s), n = n.slice();
11448        for (var o = 0; o < n.length; o++) {
11449            n[o](t, this);
11450            if (t.propagationStopped) break
11451        }
11452        if (r && !t.defaultPrevented) return r(t, this)
11453    }, r._signal = function (e, t) {
11454        var n = (this._eventRegistry || {})[e];
11455        if (!n) return;
11456        n = n.slice();
11457        for (var r = 0; r < n.length; r++) n[r](t, this)
11458    }, r.once = function (e, t) {
11459        var n = this;
11460        t && this.addEventListener(e, function r() {
11461            n.removeEventListener(e, r), t.apply(null, arguments)
11462        })
11463    }, r.setDefaultHandler = function (e, t) {
11464        var n = this._defaultHandlers;
11465        n || (n = this._defaultHandlers = {_disabled_: {}});
11466        if (n[e]) {
11467            var r = n[e], i = n._disabled_[e];
11468            i || (n._disabled_[e] = i = []), i.push(r);
11469            var s = i.indexOf(t);
11470            s != -1 && i.splice(s, 1)
11471        }
11472        n[e] = t
11473    }, r.removeDefaultHandler = function (e, t) {
11474        var n = this._defaultHandlers;
11475        if (!n) return;
11476        var r = n._disabled_[e];
11477        if (n[e] == t) {
11478            var i = n[e];
11479            r && this.setDefaultHandler(e, r.pop())
11480        } else if (r) {
11481            var s = r.indexOf(t);
11482            s != -1 && r.splice(s, 1)
11483        }
11484    }, r.on = r.addEventListener = function (e, t, n) {
11485        this._eventRegistry = this._eventRegistry || {};
11486        var r = this._eventRegistry[e];
11487        return r || (r = this._eventRegistry[e] = []), r.indexOf(t) == -1 && r[n ? "unshift" : "push"](t), t
11488    }, r.off = r.removeListener = r.removeEventListener = function (e, t) {
11489        this._eventRegistry = this._eventRegistry || {};
11490        var n = this._eventRegistry[e];
11491        if (!n) return;
11492        var r = n.indexOf(t);
11493        r !== -1 && n.splice(r, 1)
11494    }, r.removeAllListeners = function (e) {
11495        this._eventRegistry && (this._eventRegistry[e] = [])
11496    }, t.EventEmitter = r
11497}), define("ace/anchor", ["require", "exports", "module", "ace/lib/oop", "ace/lib/event_emitter"], function (e, t, n) {
11498    "use strict";
11499    var r = e("./lib/oop"), i = e("./lib/event_emitter").EventEmitter, s = t.Anchor = function (e, t, n) {
11500        this.$onChange = this.onChange.bind(this), this.attach(e), typeof n == "undefined" ? this.setPosition(t.row, t.column) : this.setPosition(t, n)
11501    };
11502    (function () {
11503        function e(e, t, n) {
11504            var r = n ? e.column <= t.column : e.column < t.column;
11505            return e.row < t.row || e.row == t.row && r
11506        }
11507
11508        function t(t, n, r) {
11509            var i = t.action == "insert", s = (i ? 1 : -1) * (t.end.row - t.start.row),
11510                o = (i ? 1 : -1) * (t.end.column - t.start.column), u = t.start, a = i ? u : t.end;
11511            return e(n, u, r) ? {row: n.row, column: n.column} : e(a, n, !r) ? {
11512                row: n.row + s,
11513                column: n.column + (n.row == a.row ? o : 0)
11514            } : {row: u.row, column: u.column}
11515        }
11516
11517        r.implement(this, i), this.getPosition = function () {
11518            return this.$clipPositionToDocument(this.row, this.column)
11519        }, this.getDocument = function () {
11520            return this.document
11521        }, this.$insertRight = !1, this.onChange = function (e) {
11522            if (e.start.row == e.end.row && e.start.row != this.row) return;
11523            if (e.start.row > this.row) return;
11524            var n = t(e, {row: this.row, column: this.column}, this.$insertRight);
11525            this.setPosition(n.row, n.column, !0)
11526        }, this.setPosition = function (e, t, n) {
11527            var r;
11528            n ? r = {row: e, column: t} : r = this.$clipPositionToDocument(e, t);
11529            if (this.row == r.row && this.column == r.column) return;
11530            var i = {row: this.row, column: this.column};
11531            this.row = r.row, this.column = r.column, this._signal("change", {old: i, value: r})
11532        }, this.detach = function () {
11533            this.document.removeEventListener("change", this.$onChange)
11534        }, this.attach = function (e) {
11535            this.document = e || this.document, this.document.on("change", this.$onChange)
11536        }, this.$clipPositionToDocument = function (e, t) {
11537            var n = {};
11538            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
11539        }
11540    }).call(s.prototype)
11541}), define("ace/document", ["require", "exports", "module", "ace/lib/oop", "ace/apply_delta", "ace/lib/event_emitter", "ace/range", "ace/anchor"], function (e, t, n) {
11542    "use strict";
11543    var r = e("./lib/oop"), i = e("./apply_delta").applyDelta, s = e("./lib/event_emitter").EventEmitter,
11544        o = e("./range").Range, u = e("./anchor").Anchor, a = function (e) {
11545            this.$lines = [""], e.length === 0 ? this.$lines = [""] : Array.isArray(e) ? this.insertMergedLines({
11546                row: 0,
11547                column: 0
11548            }, e) : this.insert({row: 0, column: 0}, e)
11549        };
11550    (function () {
11551        r.implement(this, s), this.setValue = function (e) {
11552            var t = this.getLength() - 1;
11553            this.remove(new o(0, 0, t, this.getLine(t).length)), this.insert({row: 0, column: 0}, e)
11554        }, this.getValue = function () {
11555            return this.getAllLines().join(this.getNewLineCharacter())
11556        }, this.createAnchor = function (e, t) {
11557            return new u(this, e, t)
11558        }, "aaa".split(/a/).length === 0 ? this.$split = function (e) {
11559            return e.replace(/\r\n|\r/g, "\n").split("\n")
11560        } : this.$split = function (e) {
11561            return e.split(/\r\n|\r|\n/)
11562        }, this.$detectNewLine = function (e) {
11563            var t = e.match(/^.*?(\r\n|\r|\n)/m);
11564            this.$autoNewLine = t ? t[1] : "\n", this._signal("changeNewLineMode")
11565        }, this.getNewLineCharacter = function () {
11566            switch (this.$newLineMode) {
11567                case"windows":
11568                    return "\r\n";
11569                case"unix":
11570                    return "\n";
11571                default:
11572                    return this.$autoNewLine || "\n"
11573            }
11574        }, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function (e) {
11575            if (this.$newLineMode === e) return;
11576            this.$newLineMode = e, this._signal("changeNewLineMode")
11577        }, this.getNewLineMode = function () {
11578            return this.$newLineMode
11579        }, this.isNewLine = function (e) {
11580            return e == "\r\n" || e == "\r" || e == "\n"
11581        }, this.getLine = function (e) {
11582            return this.$lines[e] || ""
11583        }, this.getLines = function (e, t) {
11584            return this.$lines.slice(e, t + 1)
11585        }, this.getAllLines = function () {
11586            return this.getLines(0, this.getLength())
11587        }, this.getLength = function () {
11588            return this.$lines.length
11589        }, this.getTextRange = function (e) {
11590            return this.getLinesForRange(e).join(this.getNewLineCharacter())
11591        }, this.getLinesForRange = function (e) {
11592            var t;
11593            if (e.start.row === e.end.row) t = [this.getLine(e.start.row).substring(e.start.column, e.end.column)]; else {
11594                t = this.getLines(e.start.row, e.end.row), t[0] = (t[0] || "").substring(e.start.column);
11595                var n = t.length - 1;
11596                e.end.row - e.start.row == n && (t[n] = t[n].substring(0, e.end.column))
11597            }
11598            return t
11599        }, this.insertLines = function (e, t) {
11600            return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(e, t)
11601        }, this.removeLines = function (e, t) {
11602            return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(e, t)
11603        }, this.insertNewLine = function (e) {
11604            return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."), this.insertMergedLines(e, ["", ""])
11605        }, this.insert = function (e, t) {
11606            return this.getLength() <= 1 && this.$detectNewLine(t), this.insertMergedLines(e, this.$split(t))
11607        }, this.insertInLine = function (e, t) {
11608            var n = this.clippedPos(e.row, e.column), r = this.pos(e.row, e.column + t.length);
11609            return this.applyDelta({start: n, end: r, action: "insert", lines: [t]}, !0), this.clonePos(r)
11610        }, this.clippedPos = function (e, t) {
11611            var n = this.getLength();
11612            e === undefined ? e = n : e < 0 ? e = 0 : e >= n && (e = n - 1, t = undefined);
11613            var r = this.getLine(e);
11614            return t == undefined && (t = r.length), t = Math.min(Math.max(t, 0), r.length), {row: e, column: t}
11615        }, this.clonePos = function (e) {
11616            return {row: e.row, column: e.column}
11617        }, this.pos = function (e, t) {
11618            return {row: e, column: t}
11619        }, this.$clipPosition = function (e) {
11620            var t = this.getLength();
11621            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
11622        }, this.insertFullLines = function (e, t) {
11623            e = Math.min(Math.max(e, 0), this.getLength());
11624            var n = 0;
11625            e < this.getLength() ? (t = t.concat([""]), n = 0) : (t = [""].concat(t), e--, n = this.$lines[e].length), this.insertMergedLines({
11626                row: e,
11627                column: n
11628            }, t)
11629        }, this.insertMergedLines = function (e, t) {
11630            var n = this.clippedPos(e.row, e.column),
11631                r = {row: n.row + t.length - 1, column: (t.length == 1 ? n.column : 0) + t[t.length - 1].length};
11632            return this.applyDelta({start: n, end: r, action: "insert", lines: t}), this.clonePos(r)
11633        }, this.remove = function (e) {
11634            var t = this.clippedPos(e.start.row, e.start.column), n = this.clippedPos(e.end.row, e.end.column);
11635            return this.applyDelta({
11636                start: t,
11637                end: n,
11638                action: "remove",
11639                lines: this.getLinesForRange({start: t, end: n})
11640            }), this.clonePos(t)
11641        }, this.removeInLine = function (e, t, n) {
11642            var r = this.clippedPos(e, t), i = this.clippedPos(e, n);
11643            return this.applyDelta({
11644                start: r,
11645                end: i,
11646                action: "remove",
11647                lines: this.getLinesForRange({start: r, end: i})
11648            }, !0), this.clonePos(r)
11649        }, this.removeFullLines = function (e, t) {
11650            e = Math.min(Math.max(0, e), this.getLength() - 1), t = Math.min(Math.max(0, t), this.getLength() - 1);
11651            var n = t == this.getLength() - 1 && e > 0, r = t < this.getLength() - 1, i = n ? e - 1 : e,
11652                s = n ? this.getLine(i).length : 0, u = r ? t + 1 : t, a = r ? 0 : this.getLine(u).length,
11653                f = new o(i, s, u, a), l = this.$lines.slice(e, t + 1);
11654            return this.applyDelta({start: f.start, end: f.end, action: "remove", lines: this.getLinesForRange(f)}), l
11655        }, this.removeNewLine = function (e) {
11656            e < this.getLength() - 1 && e >= 0 && this.applyDelta({
11657                start: this.pos(e, this.getLine(e).length),
11658                end: this.pos(e + 1, 0),
11659                action: "remove",
11660                lines: ["", ""]
11661            })
11662        }, this.replace = function (e, t) {
11663            e instanceof o || (e = o.fromPoints(e.start, e.end));
11664            if (t.length === 0 && e.isEmpty()) return e.start;
11665            if (t == this.getTextRange(e)) return e.end;
11666            this.remove(e);
11667            var n;
11668            return t ? n = this.insert(e.start, t) : n = e.start, n
11669        }, this.applyDeltas = function (e) {
11670            for (var t = 0; t < e.length; t++) this.applyDelta(e[t])
11671        }, this.revertDeltas = function (e) {
11672            for (var t = e.length - 1; t >= 0; t--) this.revertDelta(e[t])
11673        }, this.applyDelta = function (e, t) {
11674            var n = e.action == "insert";
11675            if (n ? e.lines.length <= 1 && !e.lines[0] : !o.comparePoints(e.start, e.end)) return;
11676            n && e.lines.length > 2e4 && this.$splitAndapplyLargeDelta(e, 2e4), i(this.$lines, e, t), this._signal("change", e)
11677        }, this.$splitAndapplyLargeDelta = function (e, t) {
11678            var n = e.lines, r = n.length, i = e.start.row, s = e.start.column, o = 0, u = 0;
11679            do {
11680                o = u, u += t - 1;
11681                var a = n.slice(o, u);
11682                if (u > r) {
11683                    e.lines = a, e.start.row = i + o, e.start.column = s;
11684                    break
11685                }
11686                a.push(""), this.applyDelta({
11687                    start: this.pos(i + o, s),
11688                    end: this.pos(i + u, s = 0),
11689                    action: e.action,
11690                    lines: a
11691                }, !0)
11692            } while (!0)
11693        }, this.revertDelta = function (e) {
11694            this.applyDelta({
11695                start: this.clonePos(e.start),
11696                end: this.clonePos(e.end),
11697                action: e.action == "insert" ? "remove" : "insert",
11698                lines: e.lines.slice()
11699            })
11700        }, this.indexToPosition = function (e, t) {
11701            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length;
11702            for (var i = t || 0, s = n.length; i < s; i++) {
11703                e -= n[i].length + r;
11704                if (e < 0) return {row: i, column: e + n[i].length + r}
11705            }
11706            return {row: s - 1, column: n[s - 1].length}
11707        }, this.positionToIndex = function (e, t) {
11708            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length, i = 0,
11709                s = Math.min(e.row, n.length);
11710            for (var o = t || 0; o < s; ++o) i += n[o].length + r;
11711            return i + e.column
11712        }
11713    }).call(a.prototype), t.Document = a
11714}), define("ace/lib/lang", ["require", "exports", "module"], function (e, t, n) {
11715    "use strict";
11716    t.last = function (e) {
11717        return e[e.length - 1]
11718    }
11718, t.stringReverse = function (e) {
11719        return e.split("").reverse().join("")
11720    }, t.stringRepeat = function (e, t) {
11721        var n = "";
11722        while (t > 0) {
11723            t & 1 && (n += e);
11724            if (t >>= 1) e += e
11725        }
11726        return n
11727    };
11728    var r = /^\s\s*/, i = /\s\s*$/;
11729    t.stringTrimLeft = function (e) {
11730        return e.replace(r, "")
11731    }, t.stringTrimRight = function (e) {
11732        return e.replace(i, "")
11733    }, t.copyObject = function (e) {
11734        var t = {};
11735        for (var n in e) t[n] = e[n];
11736        return t
11737    }, t.copyArray = function (e) {
11738        var t = [];
11739        for (var n = 0, r = e.length; n < r; n++) e[n] && typeof e[n] == "object" ? t[n] = this.copyObject(e[n]) : t[n] = e[n];
11740        return t
11741    }, t.deepCopy = function s(e) {
11742        if (typeof e != "object" || !e) return e;
11743        var t;
11744        if (Array.isArray(e)) {
11745            t = [];
11746            for (var n = 0; n < e.length; n++) t[n] = s(e[n]);
11747            return t
11748        }
11749        if (Object.prototype.toString.call(e) !== "[object Object]") return e;
11750        t = {};
11751        for (var n in e) t[n] = s(e[n]);
11752        return t
11753    }, t.arrayToMap = function (e) {
11754        var t = {};
11755        for (var n = 0; n < e.length; n++) t[e[n]] = 1;
11756        return t
11757    }, t.createMap = function (e) {
11758        var t = Object.create(null);
11759        for (var n in e) t[n] = e[n];
11760        return t
11761    }, t.arrayRemove = function (e, t) {
11762        for (var n = 0; n <= e.length; n++) t === e[n] && e.splice(n, 1)
11763    }, t.escapeRegExp = function (e) {
11764        return e.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1")
11765    }, t.escapeHTML = function (e) {
11766        return e.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;")
11767    }, t.getMatchOffsets = function (e, t) {
11768        var n = [];
11769        return e.replace(t, function (e) {
11770            n.push({offset: arguments[arguments.length - 2], length: e.length})
11771        }), n
11772    }, t.deferredCall = function (e) {
11773        var t = null, n = function () {
11774            t = null, e()
11775        }, r = function (e) {
11776            return r.cancel(), t = setTimeout(n, e || 0), r
11777        };
11778        return r.schedule = r, r.call = function () {
11779            return this.cancel(), e(), r
11780        }, r.cancel = function () {
11781            return clearTimeout(t), t = null, r
11782        }, r.isPending = function () {
11783            return t
11784        }, r
11785    }, t.delayedCall = function (e, t) {
11786        var n = null, r = function () {
11787            n = null, e()
11788        }, i = function (e) {
11789            n == null && (n = setTimeout(r, e || t))
11790        };
11791        return i.delay = function (e) {
11792            n && clearTimeout(n), n = setTimeout(r, e || t)
11793        }, i.schedule = i, i.call = function () {
11794            this.cancel(), e()
11795        }, i.cancel = function () {
11796            n && clearTimeout(n), n = null
11797        }, i.isPending = function () {
11798            return n
11799        }, i
11800    }
11801}), define("ace/worker/mirror", ["require", "exports", "module", "ace/range", "ace/document", "ace/lib/lang"], function (e, t, n) {
11802    "use strict";
11803    var r = e("../range").Range, i = e("../document").Document, s = e("../lib/lang"), o = t.Mirror = function (e) {
11804        this.sender = e;
11805        var t = this.doc = new i(""), n = this.deferredUpdate = s.delayedCall(this.onUpdate.bind(this)), r = this;
11806        e.on("change", function (e) {
11807            var i = e.data;
11808            if (i[0].start) t.applyDeltas(i); else for (var s = 0; s < i.length; s += 2) {
11809                if (Array.isArray(i[s + 1])) var o = {
11810                    action: "insert",
11811                    start: i[s],
11812                    lines: i[s + 1]
11813                }; else var o = {action: "remove", start: i[s], end: i[s + 1]};
11814                t.applyDelta(o, !0)
11815            }
11816            if (r.$timeout) return n.schedule(r.$timeout);
11817            r.onUpdate()
11818        })
11819    };
11820    (function () {
11821        this.$timeout = 500, this.setTimeout = function (e) {
11822            this.$timeout = e
11823        }, this.setValue = function (e) {
11824            this.doc.setValue(e), this.deferredUpdate.schedule(this.$timeout)
11825        }, this.getValue = function (e) {
11826            this.sender.callback(this.doc.getValue(), e)
11827        }, this.onUpdate = function () {
11828        }, this.isPending = function () {
11829            return this.deferredUpdate.isPending()
11830        }
11831    }).call(o.prototype)
11832}), define("ace/mode/hxl_worker", ["require", "exports", "module", "ace/lib/oop", "ace/worker/mirror"], function (e, t, n) {
11833    "use strict";
11834    var r = e("../lib/oop"), i = e("../worker/mirror").Mirror, s = t.HxlWorker = function (e) {
11835        i.call(this, e), this.setTimeout(250), this.setOptions()
11836    };
11837    r.inherits(s, i), function () {
11838        this.setOptions = function (e) {
11839            this.options = e || {
11840                host: "http://localhost:8080",
11841                project: "hyperix/ide/",
11842                service: "codeValidation",
11843                parameter: "sourceCode"
11844            }, this.doc.getValue() && this.deferredUpdate.schedule(100)
11845        }, this.changeOptions = function (e) {
11846            r.mixin(this.options, e), this.doc.getValue() && this.deferredUpdate.schedule(100)
11847        }, this.onUpdate = function () {
11848            var e = this, t = this.doc.getValue(), n = [], r = new XMLHttpRequest;
11849            r.onreadystatechange = function () {
11850                if (r.readyState == 4 && r.status == 200) {
11851                    n = r.response;
11852                    var t = [];
11853                    for (var i = 0; n != null && i < n.length; i++) {
11854                        var s = n[i];
11855                        t.push({row: s.line - 1, column: s.column, text: atob(s.message), type: s.type})
11856                    }
11857                    e.sender.emit("lint", t)
11858                }
11859            };
11860            var i = new FormData;
11861            i.append(this.options.project + "/" + this.options.service + "/" + this.options.parameter, t), r.open("POST", this.options.host + "/" + this.options.project + "/" + this.options.service, !0), r.responseType = "json", r.send(i)
11862        }
11863    }.call(s.prototype)
11864}), define("ace/lib/es5-shim", ["require", "exports", "module"], function (e, t, n) {
11865    function r() {
11866    }
11867
11868    function w(e) {
11869        try {
11870            return Object.defineProperty(e, "sentinel", {}), "sentinel" in e
11871        } catch (t) {
11872        }
11873    }
11874
11875    function H(e) {
11876        return e = +e, e !== e ? e = 0 : e !== 0 && e !== 1 / 0 && e !== -1 / 0 && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), e
11877    }
11878
11879    function B(e) {
11880        var t = typeof e;
11881        return e === null || t === "undefined" || t === "boolean" || t === "number" || t === "string"
11882    }
11883
11884    function j(e) {
11885        var t, n, r;
11886        if (B(e)) return e;
11887        n = e.valueOf;
11888        if (typeof n == "function") {
11889            t = n.call(e);
11890            if (B(t)) return t
11891        }
11892        r = e.toString;
11893        if (typeof r == "function") {
11894            t = r.call(e);
11895            if (B(t)) return t
11896        }
11897        throw new TypeError
11898    }
11899
11900    Function.prototype.bind || (Function.prototype.bind = function (t) {
11901        var n = this;
11902        if (typeof n != "function") throw new TypeError("Function.prototype.bind called on incompatible " + n);
11903        var i = u.call(arguments, 1), s = function () {
11904            if (this instanceof s) {
11905                var e = n.apply(this, i.concat(u.call(arguments)));
11906                return Object(e) === e ? e : this
11907            }
11908            return n.apply(t, i.concat(u.call(arguments)))
11909        };
11910        return n.prototype && (r.prototype = n.prototype, s.prototype = new r, r.prototype = null), s
11911    });
11912    var i = Function.prototype.call, s = Array.prototype, o = Object.prototype, u = s.slice, a = i.bind(o.toString),
11913        f = i.bind(o.hasOwnProperty), l, c, h, p, d;
11914    if (d = f(o, "__defineGetter__")) l = i.bind(o.__defineGetter__), c = i.bind(o.__defineSetter__), h = i.bind(o.__lookupGetter__), p = i.bind(o.__lookupSetter__);
11915    if ([1, 2].splice(0).length != 2) if (!function () {
11916        function e(e) {
11917            var t = new Array(e + 2);
11918            return t[0] = t[1] = 0, t
11919        }
11920
11921        var t = [], n;
11922        t.splice.apply(t, e(20)), t.splice.apply(t, e(26)), n = t.length, t.splice(5, 0, "XXX"), n + 1 == t.length;
11923        if (n + 1 == t.length) return !0
11924    }()) Array.prototype.splice = function (e, t) {
11925        var n = this.length;
11926        e > 0 ? e > n && (e = n) : e == void 0 ? e = 0 : e < 0 && (e = Math.max(n + e, 0)), e + t < n || (t = n - e);
11927        var r = this.slice(e, e + t), i = u.call(arguments, 2), s = i.length;
11928        if (e === n) s && this.push.apply(this, i); else {
11929            var o = Math.min(t, n - e), a = e + o, f = a + s - o, l = n - a, c = n - o;
11930            if (f < a) for (var h = 0; h < l; ++h) this[f + h] = this[a + h]; else if (f > a) for (h = l; h--;) this[f + h] = this[a + h];
11931            if (s && e === c) this.length = c, this.push.apply(this, i); else {
11932                this.length = c + s;
11933                for (h = 0; h < s; ++h) this[e + h] = i[h]
11934            }
11935        }
11936        return r
11937    }; else {
11938        var v = Array.prototype.splice;
11939        Array.prototype.splice = function (e, t) {
11940            return arguments.length ? v.apply(this, [e === void 0 ? 0 : e, t === void 0 ? this.length - e : t].concat(u.call(arguments, 2))) : []
11941        }
11942    }
11943    Array.isArray || (Array.isArray = function (t) {
11944        return a(t) == "[object Array]"
11945    });
11946    var m = Object("a"), g = m[0] != "a" || !(0 in m);
11947    Array.prototype.forEach || (Array.prototype.forEach = function (t) {
11948        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = arguments[1], s = -1,
11949            o = r.length >>> 0;
11950        if (a(t) != "[object Function]") throw new TypeError;
11951        while (++s < o) s in r && t.call(i, r[s], s, n)
11952    }), Array.prototype.map || (Array.prototype.map = function (t) {
11953        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = Array(i),
11954            o = arguments[1];
11955        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11956        for (var u = 0; u < i; u++) u in r && (s[u] = t.call(o, r[u], u, n));
11957        return s
11958    }), Array.prototype.filter || (Array.prototype.filter = function (t) {
11959        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = [], o,
11960            u = arguments[1];
11961        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11962        for (var f = 0; f < i; f++) f in r && (o = r[f], t.call(u, o, f, n) && s.push(o));
11963        return s
11964    }), Array.prototype.every || (Array.prototype.every = function (t) {
11965        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
11966            s = arguments[1];
11967        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11968        for (var o = 0; o < i; o++) if (o in r && !t.call(s, r[o], o, n)) return !1;
11969        return !0
11970    }), Array.prototype.some || (Array.prototype.some = function (t) {
11971        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
11972            s = arguments[1];
11973        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11974        for (var o = 0; o < i; o++) if (o in r && t.call(s, r[o], o, n)) return !0;
11975        return !1
11976    }), Array.prototype.reduce || (Array.prototype.reduce = function (t) {
11977        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
11978        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11979        if (!i && arguments.length == 1) throw new TypeError("reduce of empty array with no initial value");
11980        var s = 0, o;
11981        if (arguments.length >= 2) o = arguments[1]; else do {
11982            if (s in r) {
11983                o = r[s++];
11984                break
11985            }
11986            if (++s >= i) throw new TypeError("reduce of empty array with no initial value")
11987        } while (!0);
11988        for (; s < i; s++) s in r && (o = t.call(void 0, o, r[s], s, n));
11989        return o
11990    }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function (t) {
11991        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
11992        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
11993        if (!i && arguments.length == 1) throw new TypeError("reduceRight of empty array with no initial value");
11994        var s, o = i - 1;
11995        if (arguments.length >= 2) s = arguments[1]; else do {
11996            if (o in r) {
11997                s = r[o--];
11998                break
11999            }
12000            if (--o < 0) throw new TypeError("reduceRight of empty array with no initial value")
12001        } while (!0);
12002        do o in this && (s = t.call(void 0, s, r[o], o, n)); while (o--);
12003        return s
12004    });
12005    if (!Array.prototype.indexOf || [0, 1].indexOf(1, 2) != -1) Array.prototype.indexOf = function (t) {
12006        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
12007        if (!r) return -1;
12008        var i = 0;
12009        arguments.length > 1 && (i = H(arguments[1])), i = i >= 0 ? i : Math.max(0, r + i);
12010        for (; i < r; i++) if (i in n && n[i] === t) return i;
12011        return -1
12012    };
12013    if (!Array.prototype.lastIndexOf || [0, 1].lastIndexOf(0, -3) != -1) Array.prototype.lastIndexOf = function (t) {
12014        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
12015        if (!r) return -1;
12016        var i = r - 1;
12017        arguments.length > 1 && (i = Math.min(i, H(arguments[1]))), i = i >= 0 ? i : r - Math.abs(i);
12018        for (; i >= 0; i--) if (i in n && t === n[i]) return i;
12019        return -1
12020    };
12021    Object.getPrototypeOf || (Object.getPrototypeOf = function (t) {
12022        return t.__proto__ || (t.constructor ? t.constructor.prototype : o)
12023    });
12024    if (!Object.getOwnPropertyDescriptor) {
12025        var y = "Object.getOwnPropertyDescriptor called on a non-object: ";
12026        Object.getOwnPropertyDescriptor = function (t, n) {
12027            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(y + t);
12028            if (!f(t, n)) return;
12029            var r, i, s;
12030            r = {enumerable: !0, configurable: !0};
12031            if (d) {
12032                var u = t.__proto__;
12033                t.__proto__ = o;
12034                var i = h(t, n), s = p(t, n);
12035                t.__proto__ = u;
12036                if (i || s) return i && (r.get = i), s && (r.set = s), r
12037            }
12038            return r.value = t[n], r
12039        }
12040    }
12041    Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function (t) {
12042        return Object.keys(t)
12043    });
12044    if (!Object.create) {
12045        var b;
12046        Object.prototype.__proto__ === null ? b = function () {
12047            return {__proto__: null}
12048        } : b = function () {
12049            var e = {};
12050            for (var t in e) e[t] = null;
12051            return e.constructor = e.hasOwnProperty = e.propertyIsEnumerable = e.isPrototypeOf = e.toLocaleString = e.toString = e.valueOf = e.__proto__ = null, e
12052        }, Object.create = function (t, n) {
12053            var r;
12054            if (t === null) r = b(); else {
12055                if (typeof t != "object") throw new TypeError("typeof prototype[" + typeof t + "] != 'object'");
12056                var i = function () {
12057                };
12058                i.prototype = t, r = new i, r.__proto__ = t
12059            }
12060            return n !== void 0 && Object.defineProperties(r, n), r
12061        }
12062    }
12063    if (Object.defineProperty) {
12064        var E = w({}), S = typeof document == "undefined" || w(document.createElement("div"));
12065        if (!E || !S) var x = Object.defineProperty
12066    }
12067    if (!Object.defineProperty || x) {
12068        var T = "Property description must be an object: ", N = "Object.defineProperty called on non-object: ",
12069            C = "getters & setters can not be defined on this javascript engine";
12070        Object.defineProperty = function (t, n, r) {
12071            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(N + t);
12072            if (typeof r != "object" && typeof r != "function" || r === null) throw new TypeError(T + r);
12073            if (x) try {
12074                return x.call(Object, t, n, r)
12075            } catch (i) {
12076            }
12077            if (f(r, "value")) if (d && (h(t, n) || p(t, n))) {
12078                var s = t.__proto__;
12079                t.__proto__ = o, delete t[n], t[n] = r.value, t.__proto__ = s
12080            } else t[n] = r.value; else {
12081                if (!d) throw new TypeError(C);
12082                f(r, "get") && l(t, n, r.get), f(r, "set") && c(t, n, r.set)
12083            }
12084            return t
12085        }
12086    }
12087    Object.defineProperties || (Object.defineProperties = function (t, n) {
12088        for (var r in n) f(n, r) && Object.defineProperty(t, r, n[r]);
12089        return t
12090    }), Object.seal || (Object.seal = function (t) {
12091        return t
12092    }), Object.freeze || (Object.freeze = function (t) {
12093        return t
12094    });
12095    try {
12096        Object.freeze(function () {
12097        })
12098    } catch (k) {
12099        Object.freeze = function (t) {
12100            return function (n) {
12101                return typeof n == "function" ? n : t(n)
12102            }
12103        }(Object.freeze)
12104    }
12105    Object.preventExtensions || (Object.preventExtensions = function (t) {
12106        return t
12107    }), Object.isSealed || (Object.isSealed = function (t) {
12108        return !1
12109    }), Object.isFrozen || (Object.isFrozen = function (t) {
12110        return !1
12111    }), Object.isExtensible || (Object.isExtensible = function (t) {
12112        if (Object(t) === t) throw new TypeError;
12113        var n = "";
12114        while (f(t, n)) n += "?";
12115        t[n] = !0;
12116        var r = f(t, n);
12117        return delete t[n], r
12118    });
12119    if (!Object.keys) {
12120        var L = !0,
12121            A = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
12122            O = A.length;
12123        for (var M in {toString: null}) L = !1;
12124        Object.keys = function I(e) {
12125            if (typeof e != "object" && typeof e != "function" || e === null) throw new TypeError("Object.keys called on a non-object");
12126            var I = [];
12127            for (var t in e) f(e, t) && I.push(t);
12128            if (L) for (var n = 0, r = O; n < r; n++) {
12129                var i = A[n];
12130                f(e, i) && I.push(i)
12131            }
12132            return I
12133        }
12134    }
12135    Date.now || (Date.now = function () {
12136        return (new Date).getTime()
12137    });
12138    var _ = "	\n�\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";
12139    if (!String.prototype.trim || _.trim()) {
12140        _ = "[" + _ + "]";
12141        var D = new RegExp("^" + _ + _ + "*"), P = new RegExp(_ + _ + "*$");
12142        String.prototype.trim = function () {
12143            return String(this).replace(D, "").replace(P, "")
12144        }
12145    }
12146    var F = function (e) {
12147        if (e == null) throw new TypeError("can't convert " + e + " to object");
12148        return Object(e)
12149    }
12150})
12151
12152"no use strict";
12153!function (e) {
12154    function t(e, t) {
12155        var n = e, r = "";
12156        while (n) {
12157            var i = t[n];
12158            if (typeof i == "string") return i + r;
12159            if (i) return i.location.replace(/\/*$/, "/") + (r || i.main || i.name);
12160            if (i === !1) return "";
12161            var s = n.lastIndexOf("/");
12162            if (s === -1) break;
12163            r = n.substr(s) + r, n = n.slice(0, s)
12164        }
12165        return e
12166    }
12167
12168    if (typeof e.window != "undefined" && e.document) return;
12169    if (e.require && e.define) return;
12170    e.console || (e.console = function () {
12171        var e = Array.prototype.slice.call(arguments, 0);
12172        postMessage({type: "log", data: e})
12173    }, e.console.error = e.console.warn = e.console.log = e.console.trace = e.console), e.window = e, e.ace = e, e.onerror = function (e, t, n, r, i) {
12174        postMessage({type: "error", data: {message: e, data: i.data, file: t, line: n, col: r, stack: i.stack}})
12175    }, e.normalizeModule = function (t, n) {
12176        if (n.indexOf("!") !== -1) {
12177            var r = n.split("!");
12178            return e.normalizeModule(t, r[0]) + "!" + e.normalizeModule(t, r[1])
12179        }
12180        if (n.charAt(0) == ".") {
12181            var i = t.split("/").slice(0, -1).join("/");
12182            n = (i ? i + "/" : "") + n;
12183            while (n.indexOf(".") !== -1 && s != n) {
12184                var s = n;
12185                n = n.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "")
12186            }
12187        }
12188        return n
12189    }, e.require = function (r, i) {
12190        i || (i = r, r = null);
12191        if (!i.charAt) throw new Error("worker.js require() accepts only (parentId, id) as arguments");
12192        i = e.normalizeModule(r, i);
12193        var s = e.require.modules[i];
12194        if (s) return s.initialized || (s.initialized = !0, s.exports = s.factory().exports
12194), s.exports;
12195        if (!e.require.tlns) return console.log("unable to load " + i);
12196        var o = t(i, e.require.tlns);
12197        return o.slice(-3) != ".js" && (o += ".js"), e.require.id = i, e.require.modules[i] = {}, importScripts(o), e.require(r, i)
12198    }, e.require.modules = {}, e.require.tlns = {}, e.define = function (t, n, r) {
12199        arguments.length == 2 ? (r = n, typeof t != "string" && (n = t, t = e.require.id)) : arguments.length == 1 && (r = t, n = [], t = e.require.id);
12200        if (typeof r != "function") {
12201            e.require.modules[t] = {exports: r, initialized: !0};
12202            return
12203        }
12204        n.length || (n = ["require", "exports", "module"]);
12205        var i = function (n) {
12206            return e.require(t, n)
12207        };
12208        e.require.modules[t] = {
12209            exports: {}, factory: function () {
12210                var e = this, t = r.apply(this, n.slice(0, r.length).map(function (t) {
12211                    switch (t) {
12212                        case"require":
12213                            return i;
12214                        case"exports":
12215                            return e.exports;
12216                        case"module":
12217                            return e;
12218                        default:
12219                            return i(t)
12220                    }
12221                }));
12222                return t && (e.exports = t), e
12223            }
12224        }
12225    }, e.define.amd = {}, require.tlns = {}, e.initBaseUrls = function (t) {
12226        for (var n in t) require.tlns[n] = t[n]
12227    }, e.initSender = function () {
12228        var n = e.require("ace/lib/event_emitter").EventEmitter, r = e.require("ace/lib/oop"), i = function () {
12229        };
12230        return function () {
12231            r.implement(this, n), this.callback = function (e, t) {
12232                postMessage({type: "call", id: t, data: e})
12233            }, this.emit = function (e, t) {
12234                postMessage({type: "event", name: e, data: t})
12235            }
12236        }.call(i.prototype), new i
12237    };
12238    var n = e.main = null, r = e.sender = null;
12239    e.onmessage = function (t) {
12240        var i = t.data;
12241        if (i.event && r) r._signal(i.event, i.data); else if (i.command) if (n[i.command]) n[i.command].apply(n, i.args); else {
12242            if (!e[i.command]) throw new Error("Unknown command:" + i.command);
12243            e[i.command].apply(e, i.args)
12244        } else if (i.init) {
12245            e.initBaseUrls(i.tlns), require("ace/lib/es5-shim"), r = e.sender = e.initSender();
12246            var s = require(i.module)[i.classname];
12247            n = e.main = new s(r)
12248        }
12249    }
12250}(this), define("ace/lib/oop", [], function (e, t, n) {
12251    "use strict";
12252    t.inherits = function (e, t) {
12253        e.super_ = t, e.prototype = Object.create(t.prototype, {
12254            constructor: {
12255                value: e,
12256                enumerable: !1,
12257                writable: !0,
12258                configurable: !0
12259            }
12260        })
12261    }, t.mixin = function (e, t) {
12262        for (var n in t) e[n] = t[n];
12263        return e
12264    }, t.implement = function (e, n) {
12265        t.mixin(e, n)
12266    }
12267}), define("ace/range", [], function (e, t, n) {
12268    "use strict";
12269    var r = function (e, t) {
12270        return e.row - t.row || e.column - t.column
12271    }, i = function (e, t, n, r) {
12272        this.start = {row: e, column: t}, this.end = {row: n, column: r}
12273    };
12274    (function () {
12275        this.isEqual = function (e) {
12276            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
12277        }, this.toString = function () {
12278            return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"
12279        }, this.contains = function (e, t) {
12280            return this.compare(e, t) == 0
12281        }, this.compareRange = function (e) {
12282            var t, n = e.end, r = e.start;
12283            return t = this.compare(n.row, n.column), t == 1 ? (t = this.compare(r.row, r.column), t == 1 ? 2 : t == 0 ? 1 : 0) : t == -1 ? -2 : (t = this.compare(r.row, r.column), t == -1 ? -1 : t == 1 ? 42 : 0)
12284        }, this.comparePoint = function (e) {
12285            return this.compare(e.row, e.column)
12286        }, this.containsRange = function (e) {
12287            return this.comparePoint(e.start) == 0 && this.comparePoint(e.end) == 0
12288        }, this.intersects = function (e) {
12289            var t = this.compareRange(e);
12290            return t == -1 || t == 0 || t == 1
12291        }, this.isEnd = function (e, t) {
12292            return this.end.row == e && this.end.column == t
12293        }, this.isStart = function (e, t) {
12294            return this.start.row == e && this.start.column == t
12295        }, this.setStart = function (e, t) {
12296            typeof e == "object" ? (this.start.column = e.column, this.start.row = e.row) : (this.start.row = e, this.start.column = t)
12297        }, this.setEnd = function (e, t) {
12298            typeof e == "object" ? (this.end.column = e.column, this.end.row = e.row) : (this.end.row = e, this.end.column = t)
12299        }, this.inside = function (e, t) {
12300            return this.compare(e, t) == 0 ? this.isEnd(e, t) || this.isStart(e, t) ? !1 : !0 : !1
12301        }, this.insideStart = function (e, t) {
12302            return this.compare(e, t) == 0 ? this.isEnd(e, t) ? !1 : !0 : !1
12303        }, this.insideEnd = function (e, t) {
12304            return this.compare(e, t) == 0 ? this.isStart(e, t) ? !1 : !0 : !1
12305        }, this.compare = function (e, t) {
12306            return !this.isMultiLine() && e === this.start.row ? t < this.start.column ? -1 : t > this.end.column ? 1 : 0 : 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
12307        }, this.compareStart = function (e, t) {
12308            return this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
12309        }, this.compareEnd = function (e, t) {
12310            return this.end.row == e && this.end.column == t ? 1 : this.compare(e, t)
12311        }, this.compareInside = function (e, t) {
12312            return this.end.row == e && this.end.column == t ? 1 : this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
12313        }, this.clipRows = function (e, t) {
12314            if (this.end.row > t) var n = {row: t + 1, column: 0}; else if (this.end.row < e) var n = {
12315                row: e,
12316                column: 0
12317            };
12318            if (this.start.row > t) var r = {row: t + 1, column: 0}; else if (this.start.row < e) var r = {
12319                row: e,
12320                column: 0
12321            };
12322            return i.fromPoints(r || this.start, n || this.end)
12323        }, this.extend = function (e, t) {
12324            var n = this.compare(e, t);
12325            if (n == 0) return this;
12326            if (n == -1) var r = {row: e, column: t}; else var s = {row: e, column: t};
12327            return i.fromPoints(r || this.start, s || this.end)
12328        }, this.isEmpty = function () {
12329            return this.start.row === this.end.row && this.start.column === this.end.column
12330        }, this.isMultiLine = function () {
12331            return this.start.row !== this.end.row
12332        }, this.clone = function () {
12333            return i.fromPoints(this.start, this.end)
12334        }, this.collapseRows = function () {
12335            return this.end.column == 0 ? 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)
12336        }, this.toScreenRange = function (e) {
12337            var t = e.documentToScreenPosition(this.start), n = e.documentToScreenPosition(this.end);
12338            return new i(t.row, t.column, n.row, n.column)
12339        }, this.moveBy = function (e, t) {
12340            this.start.row += e, this.start.column += t, this.end.row += e, this.end.column += t
12341        }
12342    }).call(i.prototype), i.fromPoints = function (e, t) {
12343        return new i(e.row, e.column, t.row, t.column)
12344    }, i.comparePoints = r, i.comparePoints = function (e, t) {
12345        return e.row - t.row || e.column - t.column
12346    }, t.Range = i
12347}), define("ace/apply_delta", [], function (e, t, n) {
12348    "use strict";
12349
12350    function r(e, t) {
12351        throw console.log("Invalid Delta:", e), "Invalid Delta: " + t
12352    }
12353
12354    function i(e, t) {
12355        return t.row >= 0 && t.row < e.length && t.column >= 0 && t.column <= e[t.row].length
12356    }
12357
12358    function s(e, t) {
12359        t.action != "insert" && t.action != "remove" && r(t, "delta.action must be 'insert' or 'remove'"), t.lines instanceof Array || r(t, "delta.lines must be an Array"), (!t.start || !t.end) && r(t, "delta.start/end must be an present");
12360        var n = t.start;
12361        i(e, t.start) || r(t, "delta.start must be contained in document");
12362        var s = t.end;
12363        t.action == "remove" && !i(e, s) && r(t, "delta.end must contained in document for 'remove' actions");
12364        var o = s.row - n.row, u = s.column - (o == 0 ? n.column : 0);
12365        (o != t.lines.length - 1 || t.lines[o].length != u) && r(t, "delta.range must match delta lines")
12366    }
12367
12368    t.applyDelta = function (e, t, n) {
12369        var r = t.start.row, i = t.start.column, s = e[r] || "";
12370        switch (t.action) {
12371            case"insert":
12372                var o = t.lines;
12373                if (o.length === 1) e[r] = s.substring(0, i) + t.lines[0] + s.substring(i); else {
12374                    var u = [r, 1].concat(t.lines);
12375                    e.splice.apply(e, u), e[r] = s.substring(0, i) + e[r], e[r + t.lines.length - 1] += s.substring(i)
12376                }
12377                break;
12378            case"remove":
12379                var a = t.end.column, f = t.end.row;
12380                r === f ? e[r] = s.substring(0, i) + s.substring(a) : e.splice(r, f - r + 1, s.substring(0, i) + e[f].substring(a))
12381        }
12382    }
12383}), define("ace/lib/event_emitter", [], function (e, t, n) {
12384    "use strict";
12385    var r = {}, i = function () {
12386        this.propagationStopped = !0
12387    }, s = function () {
12388        this.defaultPrevented = !0
12389    };
12390    r._emit = r._dispatchEvent = function (e, t) {
12391        this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});
12392        var n = this._eventRegistry[e] || [], r = this._defaultHandlers[e];
12393        if (!n.length && !r) return;
12394        if (typeof t != "object" || !t) t = {};
12395        t.type || (t.type = e), t.stopPropagation || (t.stopPropagation = i), t.preventDefault || (t.preventDefault = s), n = n.slice();
12396        for (var o = 0; o < n.length; o++) {
12397            n[o](t, this);
12398            if (t.propagationStopped) break
12399        }
12400        if (r && !t.defaultPrevented) return r(t, this)
12401    }, r._signal = function (e, t) {
12402        var n = (this._eventRegistry || {})[e];
12403        if (!n) return;
12404        n = n.slice();
12405        for (var r = 0; r < n.length; r++) n[r](t, this)
12406    }, r.once = function (e, t) {
12407        var n = this;
12408        this.addEventListener(e, function r() {
12409            n.removeEventListener(e, r), t.apply(null, arguments)
12410        });
12411        if (!t) return new Promise(function (e) {
12412            t = e
12413        })
12414    }, r.setDefaultHandler = function (e, t) {
12415        var n = this._defaultHandlers;
12416        n || (n = this._defaultHandlers = {_disabled_: {}});
12417        if (n[e]) {
12418            var r = n[e], i = n._disabled_[e];
12419            i || (n._disabled_[e] = i = []), i.push(r);
12420            var s = i.indexOf(t);
12421            s != -1 && i.splice(s, 1)
12422        }
12423        n[e] = t
12424    }, r.removeDefaultHandler = function (e, t) {
12425        var n = this._defaultHandlers;
12426        if (!n) return;
12427        var r = n._disabled_[e];
12428        if (n[e] == t) r && this.setDefaultHandler(e, r.pop()); else if (r) {
12429            var i = r.indexOf(t);
12430            i != -1 && r.splice(i, 1)
12431        }
12432    }, r.on = r.addEventListener = function (e, t, n) {
12433        this._eventRegistry = this._eventRegistry || {};
12434        var r = this._eventRegistry[e];
12435        return r || (r = this._eventRegistry[e] = []), r.indexOf(t) == -1 && r[n ? "unshift" : "push"](t), t
12436    }, r.off = r.removeListener = r.removeEventListener = function (e, t) {
12437        this._eventRegistry = this._eventRegistry || {};
12438        var n = this._eventRegistry[e];
12439        if (!n) return;
12440        var r = n.indexOf(t);
12441        r !== -1 && n.splice(r, 1)
12442    }, r.removeAllListeners = function (e) {
12443        this._eventRegistry && (this._eventRegistry[e] = [])
12444    }, t.EventEmitter = r
12445}), define("ace/anchor", [], function (e, t, n) {
12446    "use strict";
12447    var r = e("./lib/oop"), i = e("./lib/event_emitter").EventEmitter, s = t.Anchor = function (e, t, n) {
12448        this.$onChange = this.onChange.bind(this), this.attach(e), typeof n == "undefined" ? this.setPosition(t.row, t.column) : this.setPosition(t, n)
12449    };
12450    (function () {
12451        function e(e, t, n) {
12452            var r = n ? e.column <= t.column : e.column < t.column;
12453            return e.row < t.row || e.row == t.row && r
12454        }
12455
12456        function t(t, n, r) {
12457            var i = t.action == "insert", s = (i ? 1 : -1) * (t.end.row - t.start.row),
12458                o = (i ? 1 : -1) * (t.end.column - t.start.column), u = t.start, a = i ? u : t.end;
12459            return e(n, u, r) ? {row: n.row, column: n.column} : e(a, n, !r) ? {
12460                row: n.row + s,
12461                column: n.column + (n.row == a.row ? o : 0)
12462            } : {row: u.row, column: u.column}
12463        }
12464
12465        r.implement(this, i), this.getPosition = function () {
12466            return this.$clipPositionToDocument(this.row, this.column)
12467        }, this.getDocument = function () {
12468            return this.document
12469        }, this.$insertRight = !1, this.onChange = function (e) {
12470            if (e.start.row == e.end.row && e.start.row != this.row) return;
12471            if (e.start.row > this.row) return;
12472            var n = t(e, {row: this.row, column: this.column}, this.$insertRight);
12473            this.setPosition(n.row, n.column, !0)
12474        }, this.setPosition = function (e, t, n) {
12475            var r;
12476            n ? r = {row: e, column: t} : r = this.$clipPositionToDocument(e, t);
12477            if (this.row == r.row && this.column == r.column) return;
12478            var i = {row: this.row, column: this.column};
12479            this.row = r.row, this.column = r.column, this._signal("change", {old: i, value: r})
12480        }, this.detach = function () {
12481            this.document.removeEventListener("change", this.$onChange)
12482        }, this.attach = function (e) {
12483            this.document = e || this.document, this.document.on("change", this.$onChange)
12484        }, this.$clipPositionToDocument = function (e, t) {
12485            var n = {};
12486            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
12487        }
12488    }).call(s.prototype)
12489}), define("ace/document", [], function (e, t, n) {
12490    "use strict";
12491    var r = e("./lib/oop"), i = e("./apply_delta").applyDelta, s = e("./lib/event_emitter").EventEmitter,
12492        o = e("./range").Range, u = e("./anchor").Anchor, a = function (e) {
12493            this.$lines = [""], e.length === 0 ? this.$lines = [""] : Array.isArray(e) ? this.insertMergedLines({
12494                row: 0,
12495                column: 0
12496            }, e) : this.insert({row: 0, column: 0}, e)
12497        };
12498    (function () {
12499        r.implement(this, s), this.setValue = function (e) {
12500            var t = this.getLength() - 1;
12501            this.remove(new o(0, 0, t, this.getLine(t).length)), this.insert({row: 0, column: 0}, e)
12502        }, this.getValue = function () {
12503            return this.getAllLines().join(this.getNewLineCharacter())
12504        }, this.createAnchor = function (e, t) {
12505            return new u(this, e, t)
12506        }, "aaa".split(/a/).length === 0 ? this.$split = function (e) {
12507            return e.replace(/\r\n|\r/g, "\n").split("\n")
12508        } : this.$split = function (e) {
12509            return e.split(/\r\n|\r|\n/)
12510        }, this.$detectNewLine = function (e) {
12511            var t = e.match(/^.*?(\r\n|\r|\n)/m);
12512            this.$autoNewLine = t ? t[1] : "\n", this._signal("changeNewLineMode")
12513        }, this.getNewLineCharacter = function () {
12514            switch (this.$newLineMode) {
12515                case"windows":
12516                    return "\r\n";
12517                case"unix":
12518                    return "\n";
12519                default:
12520                    return this.$autoNewLine || "\n"
12521            }
12522        }, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function (e) {
12523            if (this.$newLineMode === e) return;
12524            this.$newLineMode = e, this._signal("changeNewLineMode")
12525        }, this.getNewLineMode = function () {
12526            return this.$newLineMode
12527        }, this.isNewLine = function (e) {
12528            return e == "\r\n" || e == "\r" || e == "\n"
12529        }, this.getLine = function (e) {
12530            return this.$lines[e] || ""
12531        }, this.getLines = function (e, t) {
12532            return this.$lines.slice(e, t + 1)
12533        }, this.getAllLines = function () {
12534            return this.getLines(0, this.getLength())
12535        }, this.getLength = function () {
12536            return this.$lines.length
12537        }, this.getTextRange = function (e) {
12538            return this.getLinesForRange(e).join(this.getNewLineCharacter())
12539        }, this.getLinesForRange = function (e) {
12540            var t;
12541            if (e.start.row === e.end.row) t = [this.getLine(e.start.row).substring(e.start.column, e.end.column)]; else {
12542                t = this.getLines(e.start.row, e.end.row), t[0] = (t[0] || "").substring(e.start.column);
12543                var n = t.length - 1;
12544                e.end.row - e.start.row == n && (t[n] = t[n].substring(0, e.end.column))
12545            }
12546            return t
12547        }, this.insertLines = function (e, t) {
12548            return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(e, t)
12549        }, this.removeLines = function (e, t) {
12550            return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(e, t)
12551        }, this.insertNewLine = function (e) {
12552            return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."), this.insertMergedLines(e, ["", ""])
12553        }, this.insert = function (e, t) {
12554            return this.getLength() <= 1 && this.$detectNewLine(t), this.insertMergedLines(e, this.$split(t))
12555        }, this.insertInLine = function (e, t) {
12556            var n = this.clippedPos(e.row, e.column), r = this.pos(e.row, e.column + t.length);
12557            return this.applyDelta({start: n, end: r, action: "insert", lines: [t]}, !0), this.clonePos(r)
12558        }, this.clippedPos = function (e, t) {
12559            var n = this.getLength();
12560            e === undefined ? e = n : e < 0 ? e = 0 : e >= n && (e = n - 1, t = undefined);
12561            var r = this.getLine(e);
12562            return t == undefined && (t = r.length), t = Math.min(Math.max(t, 0), r.length), {row: e, column: t}
12563        }, this.clonePos = function (e) {
12564            return {row: e.row, column: e.column}
12565        }, this.pos = function (e, t) {
12566            return {row: e, column: t}
12567        }, this.$clipPosition = function (e) {
12568            var t = this.getLength();
12569            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
12570        }, this.insertFullLines = function (e, t) {
12571            e = Math.min(Math.max(e, 0), this.getLength());
12572            var n = 0;
12573            e < this.getLength() ? (t = t.concat([""]), n = 0) : (t = [""].concat(t), e--, n = this.$lines[e].length), this.insertMergedLines({
12574                row: e,
12575                column: n
12576            }, t)
12577        }, this.insertMergedLines = function (e, t) {
12578            var n = this.clippedPos(e.row, e.column),
12579                r = {row: n.row + t.length - 1, column: (t.length == 1 ? n.column : 0) + t[t.length - 1].length};
12580            return this.applyDelta({start: n, end: r, action: "insert", lines: t}), this.clonePos(r)
12581        }, this.remove = function (e) {
12582            var t = this.clippedPos(e.start.row, e.start.column), n = this.clippedPos(e.end.row, e.end.column);
12583            return this.applyDelta({
12584                start: t,
12585                end: n,
12586                action: "remove",
12587                lines: this.getLinesForRange({start: t, end: n})
12588            }), this.clonePos(t)
12589        }, this.removeInLine = function (e, t, n) {
12590            var r = this.clippedPos(e, t), i = this.clippedPos(e, n);
12591            return this.applyDelta({
12592                start: r,
12593                end: i,
12594                action: "remove",
12595                lines: this.getLinesForRange({start: r, end: i})
12596            }, !0), this.clonePos(r)
12597        }, this.removeFullLines = function (e, t) {
12598            e = Math.min(Math.max(0, e), this.getLength() - 1), t = Math.min(Math.max(0, t), this.getLength() - 1);
12599            var n = t == this.getLength() - 1 && e > 0, r = t < this.getLength() - 1, i = n ? e - 1 : e,
12600                s = n ? this.getLine(i).length : 0, u = r ? t + 1 : t, a = r ? 0 : this.getLine(u).length,
12601                f = new o(i, s, u, a), l = this.$lines.slice(e, t + 1);
12602            return this.applyDelta({start: f.start, end: f.end, action: "remove", lines: this.getLinesForRange(f)}), l
12603        }, this.removeNewLine = function (e) {
12604            e < this.getLength() - 1 && e >= 0 && this.applyDelta({
12605                start: this.pos(e, this.getLine(e).length),
12606                end: this.pos(e + 1, 0),
12607                action: "remove",
12608                lines: ["", ""]
12609            })
12610        }, this.replace = function (e, t) {
12611            e instanceof o || (e = o.fromPoints(e.start, e.end));
12612            if (t.length === 0 && e.isEmpty()) return e.start;
12613            if (t == this.getTextRange(e)) return e.end;
12614            this.remove(e);
12615            var n;
12616            return t ? n = this.insert(e.start, t) : n = e.start, n
12617        }, this.applyDeltas = function (e) {
12618            for (var t = 0; t < e.length; t++) this.applyDelta(e[t])
12619        }, this.revertDeltas = function (e) {
12620            for (var t = e.length - 1; t >= 0; t--) this.revertDelta(e[t])
12621        }, this.applyDelta = function (e, t) {
12622            var n = e.action == "insert";
12623            if (n ? e.lines.length <= 1 && !e.lines[0] : !o.comparePoints(e.start, e.end)) return;
12624            n && e.lines.length > 2e4 ? this.$splitAndapplyLargeDelta(e, 2e4) : (i(this.$lines, e, t), this._signal("change", e))
12625        }, this.$splitAndapplyLargeDelta = function (e, t) {
12626            var n = e.lines, r = n.length - t + 1, i = e.start.row, s = e.start.column;
12627            for (var o = 0, u = 0; o < r; o = u) {
12628                u += t - 1;
12629                var a = n.slice(o, u);
12630                a.push(""), this.applyDelta({
12631                    start: this.pos(i + o, s),
12632                    end: this.pos(i + u, s = 0),
12633                    action: e.action,
12634                    lines: a
12635                }, !0)
12636            }
12637            e.lines = n.slice(o), e.start.row = i + o, e.start.column = s, this.applyDelta(e, !0)
12638        }, this.revertDelta = function (e) {
12639            this.applyDelta({
12640                start: this.clonePos(e.start),
12641                end: this.clonePos(e.end),
12642                action: e.action == "insert" ? "remove" : "insert",
12643                lines: e.lines.slice()
12644            })
12645        }, this.indexToPosition = function (e, t) {
12646            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length;
12647            for (var i = t || 0, s = n.length; i < s; i++) {
12648                e -= n[i].length + r;
12649                if (e < 0) return {row: i, column: e + n[i].length + r}
12650            }
12651            return {row: s - 1, column: e + n[s - 1].length + r}
12652        }, this.positionToIndex = function (e, t) {
12653            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length, i = 0,
12654                s = Math.min(e.row, n.length);
12655            for (var o = t || 0; o < s; ++o) i += n[o].length + r;
12656            return i + e.column
12657        }
12658    }).call(a.prototype), t.Document = a
12659}), define("ace/lib/lang", [], function (e, t, n) {
12660    "use strict";
12661    t.last = function (e) {
12662        return e[e.length - 1]
12663    }
12663, t.stringReverse = function (e) {
12664        return e.split("").reverse().join("")
12665    }, t.stringRepeat = function (e, t) {
12666        var n = "";
12667        while (t > 0) {
12668            t & 1 && (n += e);
12669            if (t >>= 1) e += e
12670        }
12671        return n
12672    };
12673    var r = /^\s\s*/, i = /\s\s*$/;
12674    t.stringTrimLeft = function (e) {
12675        return e.replace(r, "")
12676    }, t.stringTrimRight = function (e) {
12677        return e.replace(i, "")
12678    }, t.copyObject = function (e) {
12679        var t = {};
12680        for (var n in e) t[n] = e[n];
12681        return t
12682    }, t.copyArray = function (e) {
12683        var t = [];
12684        for (var n = 0, r = e.length; n < r; n++) e[n] && typeof e[n] == "object" ? t[n] = this.copyObject(e[n]) : t[n] = e[n];
12685        return t
12686    }, t.deepCopy = function s(e) {
12687        if (typeof e != "object" || !e) return e;
12688        var t;
12689        if (Array.isArray(e)) {
12690            t = [];
12691            for (var n = 0; n < e.length; n++) t[n] = s(e[n]);
12692            return t
12693        }
12694        if (Object.prototype.toString.call(e) !== "[object Object]") return e;
12695        t = {};
12696        for (var n in e) t[n] = s(e[n]);
12697        return t
12698    }, t.arrayToMap = function (e) {
12699        var t = {};
12700        for (var n = 0; n < e.length; n++) t[e[n]] = 1;
12701        return t
12702    }, t.createMap = function (e) {
12703        var t = Object.create(null);
12704        for (var n in e) t[n] = e[n];
12705        return t
12706    }, t.arrayRemove = function (e, t) {
12707        for (var n = 0; n <= e.length; n++) t === e[n] && e.splice(n, 1)
12708    }, t.escapeRegExp = function (e) {
12709        return e.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1")
12710    }, t.escapeHTML = function (e) {
12711        return ("" + e).replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;")
12712    }, t.getMatchOffsets = function (e, t) {
12713        var n = [];
12714        return e.replace(t, function (e) {
12715            n.push({offset: arguments[arguments.length - 2], length: e.length})
12716        }), n
12717    }, t.deferredCall = function (e) {
12718        var t = null, n = function () {
12719            t = null, e()
12720        }, r = function (e) {
12721            return r.cancel(), t = setTimeout(n, e || 0), r
12722        };
12723        return r.schedule = r, r.call = function () {
12724            return this.cancel(), e(), r
12725        }, r.cancel = function () {
12726            return clearTimeout(t), t = null, r
12727        }, r.isPending = function () {
12728            return t
12729        }, r
12730    }, t.delayedCall = function (e, t) {
12731        var n = null, r = function () {
12732            n = null, e()
12733        }, i = function (e) {
12734            n == null && (n = setTimeout(r, e || t))
12735        };
12736        return i.delay = function (e) {
12737            n && clearTimeout(n), n = setTimeout(r, e || t)
12738        }, i.schedule = i, i.call = function () {
12739            this.cancel(), e()
12740        }, i.cancel = function () {
12741            n && clearTimeout(n), n = null
12742        }, i.isPending = function () {
12743            return n
12744        }, i
12745    }
12746}), define("ace/worker/mirror", [], function (e, t, n) {
12747    "use strict";
12748    var r = e("../range").Range, i = e("../document").Document, s = e("../lib/lang"), o = t.Mirror = function (e) {
12749        this.sender = e;
12750        var t = this.doc = new i(""), n = this.deferredUpdate = s.delayedCall(this.onUpdate.bind(this)), r = this;
12751        e.on("change", function (e) {
12752            var i = e.data;
12753            if (i[0].start) t.applyDeltas(i); else for (var s = 0; s < i.length; s += 2) {
12754                if (Array.isArray(i[s + 1])) var o = {
12755                    action: "insert",
12756                    start: i[s],
12757                    lines: i[s + 1]
12758                }; else var o = {action: "remove", start: i[s], end: i[s + 1]};
12759                t.applyDelta(o, !0)
12760            }
12761            if (r.$timeout) return n.schedule(r.$timeout);
12762            r.onUpdate()
12763        })
12764    };
12765    (function () {
12766        this.$timeout = 500, this.setTimeout = function (e) {
12767            this.$timeout = e
12768        }, this.setValue = function (e) {
12769            this.doc.setValue(e), this.deferredUpdate.schedule(this.$timeout)
12770        }, this.getValue = function (e) {
12771            this.sender.callback(this.doc.getValue(), e)
12772        }, this.onUpdate = function () {
12773        }, this.isPending = function () {
12774            return this.deferredUpdate.isPending()
12775        }
12776    }).call(o.prototype)
12777}), define("ace/mode/javascript/jshint", [], function (e, t, n) {
12778    n.exports = function r(t, n, i) {
12779        function o(u, a) {
12780            if (!n[u]) {
12781                if (!t[u]) {
12782                    var f = typeof e == "function" && e;
12783                    if (!a && f) return f(u, !0);
12784                    if (s) return s(u, !0);
12785                    var l = new Error("Cannot find module '" + u + "'");
12786                    throw l.code = "MODULE_NOT_FOUND", l
12787                }
12788                var c = n[u] = {exports: {}};
12789                t[u][0].call(c.exports, function (e) {
12790                    var n = t[u][1][e];
12791                    return o(n ? n : e)
12792                }, c, c.exports, r, t, n, i)
12793            }
12794            return n[u].exports
12795        }
12796
12797        var s = typeof e == "function" && e;
12798        for (var u = 0; u < i.length; u++) o(i[u]);
12799        return o(i[0])
12800    }({
12801        "/node_modules/browserify/node_modules/events/events.js": [function (e, t, n) {
12802            function r() {
12803                this._events = this._events || {}, this._maxListeners = this._maxListeners || undefined
12804            }
12805
12806            function i(e) {
12807                return typeof e == "function"
12808            }
12809
12810            function s(e) {
12811                return typeof e == "number"
12812            }
12813
12814            function o(e) {
12815                return typeof e == "object" && e !== null
12816            }
12817
12818            function u(e) {
12819                return e === void 0
12820            }
12821
12822            t.exports = r, r.EventEmitter = r, r.prototype._events = undefined, r.prototype._maxListeners = undefined, r.defaultMaxListeners = 10, r.prototype.setMaxListeners = function (e) {
12823                if (!s(e) || e < 0 || isNaN(e)) throw TypeError("n must be a positive number");
12824                return this._maxListeners = e, this
12825            }, r.prototype.emit = function (e) {
12826                var t, n, r, s, a, f;
12827                this._events || (this._events = {});
12828                if (e === "error") if (!this._events.error || o(this._events.error) && !this._events.error.length) throw t = arguments[1], t instanceof Error ? t : TypeError('Uncaught, unspecified "error" event.');
12829                n = this._events[e];
12830                if (u(n)) return !1;
12831                if (i(n)) switch (arguments.length) {
12832                    case 1:
12833                        n.call(this);
12834                        break;
12835                    case 2:
12836                        n.call(this, arguments[1]);
12837                        break;
12838                    case 3:
12839                        n.call(this, arguments[1], arguments[2]);
12840                        break;
12841                    default:
12842                        r = arguments.length, s = new Array(r - 1);
12843                        for (a = 1; a < r; a++) s[a - 1] = arguments[a];
12844                        n.apply(this, s)
12845                } else if (o(n)) {
12846                    r = arguments.length, s = new Array(r - 1);
12847                    for (a = 1; a < r; a++) s[a - 1] = arguments[a];
12848                    f = n.slice(), r = f.length;
12849                    for (a = 0; a < r; a++) f[a].apply(this, s)
12850                }
12851                return !0
12852            }, r.prototype.addListener = function (e, t) {
12853                var n;
12854                if (!i(t)) throw TypeError("listener must be a function");
12855                this._events || (this._events = {}
12855), this._events.newListener && this.emit("newListener", e, i(t.listener) ? t.listener : t), this._events[e] ? o(this._events[e]) ? this._events[e].push(t) : this._events[e] = [this._events[e], t] : this._events[e] = t;
12856                if (o(this._events[e]) && !this._events[e].warned) {
12857                    var n;
12858                    u(this._maxListeners) ? n = r.defaultMaxListeners : n = this._maxListeners, n && n > 0 && this._events[e].length > n && (this._events[e].warned = !0, console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", this._events[e].length), typeof console.trace == "function" && console.trace())
12859                }
12860                return this
12861            }, r.prototype.on = r.prototype.addListener, r.prototype.once = function (e, t) {
12862                function r() {
12863                    this.removeListener(e, r), n || (n = !0, t.apply(this, arguments))
12864                }
12865
12866                if (!i(t)) throw TypeError("listener must be a function");
12867                var n = !1;
12868                return r.listener = t, this.on(e, r), this
12869            }, r.prototype.removeListener = function (e, t) {
12870                var n, r, s, u;
12871                if (!i(t)) throw TypeError("listener must be a function");
12872                if (!this._events || !this._events[e]) return this;
12873                n = this._events[e], s = n.length, r = -1;
12874                if (n === t || i(n.listener) && n.listener === t) delete this._events[e], this._events.removeListener && this.emit("removeListener", e, t); else if (o(n)) {
12875                    for (u = s; u-- > 0;) if (n[u] === t || n[u].listener && n[u].listener === t) {
12876                        r = u;
12877                        break
12878                    }
12879                    if (r < 0) return this;
12880                    n.length === 1 ? (n.length = 0, delete this._events[e]) : n.splice(r, 1), this._events.removeListener && this.emit("removeListener", e, t)
12881                }
12882                return this
12883            }, r.prototype.removeAllListeners = function (e) {
12884                var t, n;
12885                if (!this._events) return this;
12886                if (!this._events.removeListener) return arguments.length === 0 ? this._events = {} : this._events[e] && delete this._events[e], this;
12887                if (arguments.length === 0) {
12888                    for (t in this._events) {
12889                        if (t === "removeListener") continue;
12890                        this.removeAllListeners(t)
12891                    }
12892                    return this.removeAllListeners("removeListener"), this._events = {}, this
12893                }
12894                n = this._events[e];
12895                if (i(n)) this.removeListener(e, n); else while (n.length) this.removeListener(e, n[n.length - 1]);
12896                return delete this._events[e], this
12897            }, r.prototype.listeners = function (e) {
12898                var t;
12899                return !this._events || !this._events[e] ? t = [] : i(this._events[e]) ? t = [this._events[e]] : t = this._events[e].slice(), t
12900            }, r.listenerCount = function (e, t) {
12901                var n;
12902                return !e._events || !e._events[t] ? n = 0 : i(e._events[t]) ? n = 1 : n = e._events[t].length, n
12903            }
12904        }, {}],
12905        "/node_modules/jshint/data/ascii-identifier-data.js": [function (e, t, n) {
12906            var r = [];
12907            for (var i = 0; i < 128; i++) r[i] = i === 36 || i >= 65 && i <= 90 || i === 95 || i >= 97 && i <= 122;
12908            var s = [];
12909            for (var i = 0; i < 128; i++) s[i] = r[i] || i >= 48 && i <= 57;
12910            t.exports = {asciiIdentifierStartTable: r, asciiIdentifierPartTable: s}
12911        }, {}],
12912        "/node_modules/jshint/lodash.js": [function (e, t, n) {
12913            (function (e) {
12914                (function () {
12915                    function $(e, t, n) {
12916                        var r = e.length, i = n ? r : -1;
12917                        while (n ? i-- : ++i < r) if (t(e[i], i, e)) return i;
12918                        return -1
12919                    }
12920
12921                    function J(e, t, n) {
12922                        if (t !== t) return G(e, n);
12923                        var r = n - 1, i = e.length;
12924                        while (++r < i) if (e[r] === t) return r;
12925                        return -1
12926                    }
12927
12928                    function K(e) {
12929                        return typeof e == "function" || !1
12930                    }
12931
12932                    function Q(e) {
12933                        return typeof e == "string" ? e : e == null ? "" : e + ""
12934                    }
12935
12936                    function G(e, t, n) {
12937                        var r = e.length, i = t + (n ? 0 : -1);
12938                        while (n ? i-- : ++i < r) {
12939                            var s = e[i];
12940                            if (s !== s) return i
12941                        }
12942                        return -1
12943                    }
12944
12945                    function Y(e) {
12946                        return !!e && typeof e == "object"
12947                    }
12948
12949                    function Ct() {
12950                    }
12951
12952                    function Lt(e, t) {
12953                        var n = -1, r = e.length;
12954                        t || (t = Array(r));
12955                        while (++n < r) t[n] = e[n];
12956                        return t
12957                    }
12958
12959                    function At(e, t) {
12960                        var n = -1, r = e.length;
12961                        while (++n < r) if (t(e[n], n, e) === !1) break;
12962                        return e
12963                    }
12964
12965                    function Ot(e, t) {
12966                        var n = -1, r = e.length, i = -1, s = [];
12967                        while (++n < r) {
12968                            var o = e[n];
12969                            t(o, n, e) && (s[++i] = o)
12970                        }
12971                        return s
12972                    }
12973
12974                    function Mt(e, t) {
12975                        var n = -1, r = e.length, i = Array(r);
12976                        while (++n < r) i[n] = t(e[n], n, e);
12977                        return i
12978                    }
12979
12980                    function _t(e) {
12981                        var t = -1, n = e.length, r = wt;
12982                        while (++t < n) {
12983                            var i = e[t];
12984                            i > r && (r = i)
12985                        }
12986                        return r
12987                    }
12988
12989                    function Dt(e, t) {
12990                        var n = -1, r = e.length;
12991                        while (++n < r) if (t(e[n], n, e)) return !0;
12992                        return !1
12993                    }
12994
12995                    function Pt(e, t, n) {
12996                        var i = rr(t);
12997                        lt.apply(i, bn(t));
12998                        var s = -1, o = i.length;
12999                        while (++s < o) {
13000                            var u = i[s], a = e[u], f = n(a, t[u], u, e, t);
13001                            if ((f === f ? f !== a : a === a) || a === r && !(u in e)) e[u] = f
13002                        }
13003                        return e
13004                    }
13005
13006                    function Bt(e, t, n) {
13007                        n || (n = {});
13008                        var r = -1, i = t.length;
13009                        while (++r < i) {
13010                            var s = t[r];
13011                            n[s] = e[s]
13012                        }
13013                        return n
13014                    }
13015
13016                    function jt(e, t, n) {
13017                        var i = typeof e;
13018                        return i == "function" ? t === r ? e : on(e, t, n) : e == null ? lr : i == "object" ? Jt(e) : t === r ? cr(e) : Kt(e, t)
13019                    }
13020
13021                    function Ft(e, t, n, i, s, u, a) {
13022                        var f;
13023                        n && (f = s ? n(e, i, s) : n(e));
13024                        if (f !== r) return f;
13025                        if (!Jn(e)) return e;
13026                        var l = Xn(e);
13027                        if (l) {
13028                            f = wn(e);
13029                            if (!t) return Lt(e, f)
13030                        } else {
13031                            var h = rt.call(e), p = h == c;
13032                            if (!(h == d || h == o || p && !s)) return F[h] ? Sn(e, h, t) : s ? e : {};
13033                            f = En(p ? {} : e);
13034                            if (!t) return Ht(f, e)
13035                        }
13036                        u || (u = []), a || (a = []);
13037                        var v = u.length;
13038                        while (v--) if (u[v] == e) return a[v];
13039                        return u.push(e), a.push(f), (l ? At : zt)(e, function (r, i) {
13040                            f[i] = Ft(r, t, n, i, e, u, a)
13041                        }), f
13042                    }
13043
13044                    function qt(e, t) {
13045                        var n = [];
13046                        return It(e, function (e, r, i) {
13047                            t(e, r, i) && n.push(e)
13048                        }), n
13049                    }
13050
13051                    function Ut(e, t) {
13052                        return Rt(e, t, ir)
13053                    }
13054
13055                    function zt(e, t) {
13056                        return Rt(e, t, rr)
13057                    }
13058
13059                    function Wt(e, t, n) {
13060                        if (e == null) return;
13061                        n !== r && n in On(e) && (t = [n]);
13062                        var i = -1, s = t.length;
13063                        while (e != null && ++i < s) var o = e = e[t[i]];
13064                        return o
13065                    }
13066
13067                    function Xt(e, t, n, r, i, s) {
13068                        if (e === t) return e !== 0 || 1 / e == 1 / t;
13069                        var o = typeof e, u = typeof t;
13070                        return o != "function" && o != "object" && u != "function" && u != "object" || e == null || t == null ? e !== e && t !== t : Vt(e, t, Xt, n, r, i, s)
13071                    }
13072
13073                    function Vt(e, t, n, r, i, s, a) {
13074                        var f = Xn(e), l = Xn(t), c = u, h = u;
13075                        f || (c = rt.call(e), c == o ? c = d : c != d && (f = Zn(e))), l || (h = rt.call(t), h == o ? h = d : h != d && (l = Zn(t)));
13076                        var p = c == d, v = h == d, m = c == h;
13077                        if (m && !f && !p) return dn(e, t, c);
13078                        if (!i) {
13079                            var g = p && nt.call(e, "__wrapped__"), y = v && nt.call(t, "__wrapped__");
13080                            if (g || y) return n(g ? e.value() : e, y ? t.value() : t, r, i, s, a)
13081                        }
13082                        if (!m) return !1;
13083                        s || (s = []), a || (a = []);
13084                        var b = s.length;
13085                        while (b--) if (s[b] == e) return a[b] == t;
13086                        s.push(e), a.push(t);
13087                        var w = (f ? pn : vn)(e, t, n, r, i, s, a);
13088                        return s.pop(), a.pop(), w
13089                    }
13090
13091                    function $t(e, t, n, i, s) {
13092                        var o = -1, u = t.length, a = !s;
13093                        while (++o < u) if (a && i[o] ? n[o] !== e[t[o]] : !(t[o] in e)) return !1;
13094                        o = -1;
13095                        while (++o < u) {
13096                            var f = t[o], l = e[f], c = n[o];
13097                            if (a && i[o]) var h = l !== r || f in e; else h = s ? s(l, c, f) : r, h === r && (h = Xt(c, l, s, !0));
13098                            if (!h) return !1
13099                        }
13100                        return !0
13101                    }
13102
13103                    function Jt(e) {
13104                        var t = rr(e), n = t.length;
13105                        if (!n) return fr(!0);
13106                        if (n == 1) {
13107                            var i = t[0], s = e[i];
13108                            if (kn(s)) return function (e) {
13109                                return e == null ? !1 : e[i] === s && (s !== r || i in On(e))
13110                            }
13111                        }
13112                        var o = Array(n), u = Array(n);
13113                        while (n--) s = e[t[n]], o[n] = s, u[n] = kn(s);
13114                        return function (e) {
13115                            return e != null && $t(On(e), t, o, u)
13116                        }
13117                    }
13118
13119                    function Kt(e, t) {
13120                        var n = Xn(e), i = Nn(e) && kn(t), s = e + "";
13121                        return e = Mn(e), function (o) {
13122                            if (o == null) return !1;
13123                            var u = s;
13124                            o = On(o);
13125                            if ((n || !i) && !(u in o)) {
13126                                o = e.length == 1 ? o : Wt(o, en(e, 0, -1));
13127                                if (o == null) return !1;
13128                                u = Pn(e), o = On(o)
13129                            }
13130                            return o[u] === t ? t !== r || u in o : Xt(t, o[u], null, !0)
13131                        }
13132                    }
13133
13134                    function Qt(e, t, n, i, s) {
13135                        if (!Jn(e)) return e;
13136                        var o = Cn(t.length) && (Xn(t) || Zn(t));
13137                        if (!o) {
13138                            var u = rr(t);
13139                            lt.apply(u, bn(t))
13140                        }
13141                        return At(u || t, function (a, f) {
13142                            u && (f = a, a = t[f]);
13143                            if (Y(a)) i || (i = []), s || (s = []), Gt(e, t, f, Qt, n, i, s); else {
13144                                var l = e[f], c = n ? n(l, a, f, e, t) : r, h = c === r;
13145                                h && (c = a), (o || c !== r) && (h || (c === c ? c !== l : l === l)) && (e[f] = c)
13146                            }
13147                        }), e
13148                    }
13149
13150                    function Gt(e, t, n, i, s, o, u) {
13151                        var a = o.length, f = t[n];
13152                        while (a--) if (o[a] == f) {
13153                            e[n] = u[a];
13154                            return
13155                        }
13156                        var l = e[n], c = s ? s(l, f, n, e, t) : r, h = c === r;
13157                        h && (c = f, Cn(f.length) && (Xn(f) || Zn(f)) ? c = Xn(l) ? l : yn(l) ? Lt(l) : [] : Gn(f) || Wn(f) ? c = Wn(l) ? er(l) : Gn(l) ? l : {} : h = !1), o.push(f), u.push(c);
13158                        if (h) e[n] = i(c, f, s, o, u); else if (c === c ? c !== l : l === l) e[n] = c
13159                    }
13160
13161                    function Yt(e) {
13162                        return function (t) {
13163                            return t == null ? r : t[e]
13164                        }
13165                    }
13166
13167                    function Zt(e) {
13168                        var t = e + "";
13169                        return e = Mn(e), function (n) {
13170                            return Wt(n, e, t)
13171                        }
13172                    }
13173
13174                    function en(e, t, n) {
13175                        var i = -1, s = e.length;
13176                        t = t == null ? 0 : +t || 0, t < 0 && (t = -t > s ? 0 : s + t), n = n === r || n > s ? s : +n || 0, n < 0 && (n += s), s = t > n ? 0 : n - t >>> 0, t >>>= 0;
13177                        var o = Array(s);
13178                        while (++i < s) o[i] = e[i + t];
13179                        return o
13180                    }
13181
13182                    function tn(e, t) {
13183                        var n;
13184                        return It(e, function (e, r, i) {
13185                            return n = t(e, r, i), !n
13186                        }), !!n
13187                    }
13188
13189                    function nn(e, t) {
13190                        var n = -1, r = t.length, i = Array(r);
13191                        while (++n < r) i[n] = e[t[n]];
13192                        return i
13193                    }
13194
13195                    function rn(e, t, n) {
13196                        var r = 0, i = e ? e.length : r;
13197                        if (typeof t == "number" && t === t && i <= xt) {
13198                            while (r < i) {
13199                                var s = r + i >>> 1, o = e[s];
13200                                (n ? o <= t : o < t) ? r = s + 1 : i = s
13201                            }
13202                            return i
13203                        }
13204                        return sn(e, t, lr, n)
13205                    }
13206
13207                    function sn(e, t, n, i) {
13208                        t = n(t);
13209                        var s = 0, o = e ? e.length : 0, u = t !== t, a = t === r;
13210                        while (s < o) {
13211                            var f = ut((s + o) / 2), l = n(e[f]), c = l === l;
13212                            if (u) var h = c || i; else a ? h = c && (i || l !== r) : h = i ? l <= t : l < t;
13213                            h ? s = f + 1 : o = f
13214                        }
13215                        return bt(o, St)
13216                    }
13217
13218                    function on(e, t, n) {
13219                        if (typeof e != "function") return lr;
13220                        if (t === r) return e;
13221                        switch (n) {
13222                            case 1:
13223                                return function (n) {
13224                                    return e.call(t, n)
13225                                };
13226                            case 3:
13227                                return function (n, r, i) {
13228                                    return e.call(t, n, r, i)
13229                                };
13230                            case 4:
13231                                return function (n, r, i, s) {
13232                                    return e.call(t, n, r, i, s)
13233                                };
13234                            case 5:
13235                                return function (n, r, i, s, o) {
13236                                    return e.call(t, n, r, i, s, o)
13237                                }
13238                        }
13239                        return function () {
13240                            return e.apply(t, arguments)
13241                        }
13242                    }
13243
13244                    function un(e) {
13245                        return ot.call(e, 0)
13246                    }
13247
13248                    function an(e) {
13249                        return Un(function (t, n) {
13250                            var r = -1, i = t == null ? 0 : n.length, s = i > 2 && n[i - 2], o = i > 2 && n[2],
13251                                u = i > 1 && n[i - 1];
13252                            typeof s == "function" ? (s = on(s, u, 5), i -= 2) : (s = typeof u == "function" ? u : null, i -= s ? 1 : 0), o && Tn(n[0], n[1], o) && (s = i < 3 ? null : s, i = 1);
13253                            while (++r < i) {
13254                                var a = n[r];
13255                                a && e(t, a, s)
13256                            }
13257                            return t
13258                        })
13259                    }
13260
13261                    function fn(e, t) {
13262                        return function (n, r) {
13263                            var i = n ? yn(n) : 0;
13264                            if (!Cn(i)) return e(n, r);
13265                            var s = t ? i : -1, o = On(n);
13266                            while (t ? s-- : ++s < i) if (r(o[s], s, o) === !1) break;
13267                            return n
13268                        }
13269                    }
13270
13271                    function ln(e) {
13272                        return function (t, n, r) {
13273                            var i = On(t), s = r(t), o = s.length, u = e ? o : -1;
13274                            while (e ? u-- : ++u < o) {
13275                                var a = s[u];
13276                                if (n(i[a], a, i) === !1) break
13277                            }
13278                            return t
13279                        }
13280                    }
13281
13282                    function cn(e) {
13283                        return function (t, n, r) {
13284                            return !t || !t.length ? -1 : (n = mn(n, r, 3), $(t, n, e))
13285                        }
13286                    }
13287
13288                    function hn(e, t) {
13289                        return function (n, i, s) {
13290                            return typeof i == "function" && s === r && Xn(n) ? e(n, i) : t(n, on(i, s, 3))
13291                        }
13292                    }
13293
13294                    function pn(e, t, n, i, s, o, u) {
13295                        var a = -1, f = e.length, l = t.length, c = !0;
13296                        if (f != l && !(s && l > f)) return !1;
13297                        while (c && ++a < f) {
13298                            var h = e[a], p = t[a];
13299                            c = r, i && (c = s ? i(p, h, a) : i(h, p, a));
13300                            if (c === r) if (s) {
13301                                var d = l;
13302                                while (d--) {
13303                                    p = t[d], c = h && h === p || n(h, p, i, s, o, u);
13304                                    if (c) break
13305                                }
13306                            } else c = h && h === p || n(h, p, i, s, o, u)
13307                        }
13308                        return !!c
13309                    }
13310
13311                    function dn(e, t, n) {
13312                        switch (n) {
13313                            case a:
13314                            case f:
13315                                return +e == +t;
13316                            case l:
13317                                return e.name == t.name && e.message == t.message;
13318                            case p:
13319                                return e != +e ? t != +t : e == 0 ? 1 / e == 1 / t : e == +t;
13320                            case v:
13321                            case g:
13322                                return e == t + ""
13323                        }
13324                        return !1
13325                    }
13326
13327                    function vn(e, t, n, i, s, o, u) {
13328                        var a = rr(e), f = a.length, l = rr(t), c = l.length;
13329                        if (f != c && !s) return !1;
13330                        var h = s, p = -1;
13331                        while (++p < f) {
13332                            var d = a[p], v = s ? d in t : nt.call(t, d);
13333                            if (v) {
13334                                var m = e[d], g = t[d];
13335                                v = r, i && (v = s ? i(g, m, d) : i(m, g, d)), v === r && (v = m && m === g || n(m, g, i, s, o, u))
13336                            }
13337                            if (!v) return !1;
13338                            h || (h = d == "constructor")
13339                        }
13340                        if (!h) {
13341                            var y = e.constructor, b = t.constructor;
13342                            if (y != b && "constructor" in e && "constructor" in t && !(typeof y == "function" && y instanceof y && typeof b == "function" && b instanceof b)) return !1
13343                        }
13344                        return !0
13345                    }
13346
13347                    function mn(e, t, n) {
13348                        var r = Ct.callback || ar;
13349                        return r = r === ar ? jt : r, n ? r(e, t, n) : r
13350                    }
13351
13352                    function gn(e, t, n) {
13353                        var r = Ct.indexOf || Dn;
13354                        return r = r === Dn ? J : r, e ? r(e, t, n) : r
13355                    }
13356
13357                    function wn(e) {
13358                        var t = e.length, n = new e.constructor(t);
13359                        return t && typeof e[0] == "string" && nt.call(e, "index") && (n.index = e.index, n.input = e.input), n
13360                    }
13361
13362                    function En(e) {
13363                        var t = e.constructor;
13364                        return typeof t == "function" && t instanceof t || (t = Object), new t
13365                    }
13366
13367                    function Sn(e, t, n) {
13368                        var r = e.constructor;
13369                        switch (t) {
13370                            case b:
13371                                return un(e);
13372                            case a:
13373                            case f:
13374                                return new r(+e);
13375                            case w:
13376                            case E:
13377                            case S:
13378                            case x:
13379                            case T:
13380                            case N:
13381                            case C:
13382                            case k:
13383                            case L:
13384                                var i = e.buffer;
13385                                return new r(n ? un(i) : i, e.byteOffset, e.length);
13386                            case p:
13387                            case g:
13388                                return new r(e);
13389                            case v:
13390                                var s = new r(e.source, H.exec(e));
13391                                s.lastIndex = e.lastIndex
13392                        }
13393                        return s
13394                    }
13395
13396                    function xn(e, t) {
13397                        return e = +e, t = t == null ? Nt : t, e > -1 && e % 1 == 0 && e < t
13398                    }
13399
13400                    function Tn(e, t, n) {
13401                        if (!Jn(n)) return !1;
13402                        var r = typeof t;
13403                        if (r == "number") var i = yn(n), s = Cn(i) && xn(t, i); else s = r == "string" && t in n;
13404                        if (s) {
13405                            var o = n[t];
13406                            return e === e ? e === o : o !== o
13407                        }
13408                        return !1
13409                    }
13410
13411                    function Nn(e, t) {
13412                        var n = typeof e;
13413                        if (n == "string" && O.test(e) || n == "number") return !0;
13414                        if (Xn(e)) return !1;
13415                        var r = !A.test(e);
13416                        return r || t != null && e in On(t)
13417                    }
13418
13419                    function Cn(e) {
13420                        return typeof e == "number" && e > -1 && e % 1 == 0 && e <= Nt
13421                    }
13422
13423                    function kn(e) {
13424                        return e === e && (e === 0 ? 1 / e > 0 : !Jn(e))
13425                    }
13426
13427                    function Ln(e) {
13428                        var t, n = Ct.support;
13429                        if (!Y(e) || rt.call(e) != d || !nt.call(e, "constructor") && (t = e.constructor, typeof t == "function" && !(t instanceof t))) return !1;
13430                        var i;
13431                        return Ut(e, function (e, t) {
13432                            i = t
13433                        }), i === r || nt.call(e, i)
13434                    }
13435
13436                    function An(e) {
13437                        var t = ir(e), n = t.length, r = n && e.length, i = Ct.support,
13438                            s = r && Cn(r) && (Xn(e) || i.nonEnumArgs && Wn(e)), o = -1, u = [];
13439                        while (++o < n) {
13440                            var a = t[o];
13441                            (s && xn(a, r) || nt.call(e, a)) && u.push(a)
13442                        }
13443                        return u
13444                    }
13445
13446                    function On(e) {
13447                        return Jn(e) ? e : Object(e)
13448                    }
13449
13450                    function Mn(e) {
13451                        if (Xn(e)) return e;
13452                        var t = [];
13453                        return Q(e).replace(M, function (e, n, r, i) {
13454                            t.push(r ? i.replace(P, "$1") : n || e)
13455                        }), t
13456                    }
13457
13458                    function Dn(e, t, n) {
13459                        var r = e ? e.length : 0;
13460                        if (!r) return -1;
13461                        if (typeof n == "number") n = n < 0 ? yt(r + n, 0) : n; else if (n) {
13462                            var i = rn(e, t), s = e[i];
13463                            return (t === t ? t === s : s !== s) ? i : 
13463-1
13464                        }
13465                        return J(e, t, n || 0)
13466                    }
13467
13468                    function Pn(e) {
13469                        var t = e ? e.length : 0;
13470                        return t ? e[t - 1] : r
13471                    }
13472
13473                    function Hn(e, t, n) {
13474                        var r = e ? e.length : 0;
13475                        return r ? (n && typeof n != "number" && Tn(e, t, n) && (t = 0, n = r), en(e, t, n)) : []
13476                    }
13477
13478                    function Bn(e) {
13479                        var t = -1, n = (e && e.length && _t(Mt(e, yn))) >>> 0, r = Array(n);
13480                        while (++t < n) r[t] = Mt(e, Yt(t));
13481                        return r
13482                    }
13483
13484                    function In(e, t, n, r) {
13485                        var i = e ? yn(e) : 0;
13486                        return Cn(i) || (e = or(e), i = e.length), i ? (typeof n != "number" || r && Tn(t, n, r) ? n = 0 : n = n < 0 ? yt(i + n, 0) : n || 0, typeof e == "string" || !Xn(e) && Yn(e) ? n < i && e.indexOf(t, n) > -1 : gn(e, t, n) > -1) : !1
13487                    }
13488
13489                    function qn(e, t, n) {
13490                        var r = Xn(e) ? Ot : qt;
13491                        return t = mn(t, n, 3), r(e, function (e, n, r) {
13492                            return !t(e, n, r)
13493                        })
13494                    }
13495
13496                    function Rn(e, t, n) {
13497                        var i = Xn(e) ? Dt : tn;
13498                        n && Tn(e, t, n) && (t = null);
13499                        if (typeof t != "function" || n !== r) t = mn(t, n, 3);
13500                        return i(e, t)
13501                    }
13502
13503                    function Un(e, t) {
13504                        if (typeof e != "function") throw new TypeError(s);
13505                        return t = yt(t === r ? e.length - 1 : +t || 0, 0), function () {
13506                            var n = arguments, r = -1, i = yt(n.length - t, 0), s = Array(i);
13507                            while (++r < i) s[r] = n[t + r];
13508                            switch (t) {
13509                                case 0:
13510                                    return e.call(this, s);
13511                                case 1:
13512                                    return e.call(this, n[0], s);
13513                                case 2:
13514                                    return e.call(this, n[0], n[1], s)
13515                            }
13516                            var o = Array(t + 1);
13517                            r = -1;
13518                            while (++r < t) o[r] = n[r];
13519                            return o[t] = s, e.apply(this, o)
13520                        }
13521                    }
13522
13523                    function zn(e, t, n, r) {
13524                        return t && typeof t != "boolean" && Tn(e, t, n) ? t = !1 : typeof t == "function" && (r = n, n = t, t = !1), n = typeof n == "function" && on(n, r, 1), Ft(e, t, n)
13525                    }
13526
13527                    function Wn(e) {
13528                        var t = Y(e) ? e.length : r;
13529                        return Cn(t) && rt.call(e) == o
13530                    }
13531
13532                    function Vn(e) {
13533                        if (e == null) return !0;
13534                        var t = yn(e);
13535                        return Cn(t) && (Xn(e) || Yn(e) || Wn(e) || Y(e) && $n(e.splice)) ? !t : !rr(e).length
13536                    }
13537
13538                    function Jn(e) {
13539                        var t = typeof e;
13540                        return t == "function" || !!e && t == "object"
13541                    }
13542
13543                    function Kn(e) {
13544                        return e == null ? !1 : rt.call(e) == c ? it.test(tt.call(e)) : Y(e) && B.test(e)
13545                    }
13546
13547                    function Qn(e) {
13548                        return typeof e == "number" || Y(e) && rt.call(e) == p
13549                    }
13550
13551                    function Yn(e) {
13552                        return typeof e == "string" || Y(e) && rt.call(e) == g
13553                    }
13554
13555                    function Zn(e) {
13556                        return Y(e) && Cn(e.length) && !!j[rt.call(e)]
13557                    }
13558
13559                    function er(e) {
13560                        return Bt(e, ir(e))
13561                    }
13562
13563                    function nr(e, t) {
13564                        if (e == null) return !1;
13565                        var n = nt.call(e, t);
13566                        return !n && !Nn(t) && (t = Mn(t), e = t.length == 1 ? e : Wt(e, en(t, 0, -1)), t = Pn(t), n = e != null && nt.call(e, t)), n
13567                    }
13568
13569                    function ir(e) {
13570                        if (e == null) return [];
13571                        Jn(e) || (e = Object(e));
13572                        var t = e.length;
13573                        t = t && Cn(t) && (Xn(e) || kt.nonEnumArgs && Wn(e)) && t || 0;
13574                        var n = e.constructor, r = -1, i = typeof n == "function" && n.prototype === e, s = Array(t),
13575                            o = t > 0;
13576                        while (++r < t) s[r] = r + "";
13577                        for (var u in e) (!o || !xn(u, t)) && (u != "constructor" || !i && !!nt.call(e, u)) && s.push(u);
13578                        return s
13579                    }
13580
13581                    function or(e) {
13582                        return nn(e, rr(e))
13583                    }
13584
13585                    function ur(e) {
13586                        return e = Q(e), e && D.test(e) ? e.replace(_, "\\$&") : e
13587                    }
13588
13589                    function ar(e, t, n) {
13590                        return n && Tn(e, t, n) && (t = null), jt(e, t)
13591                    }
13592
13593                    function fr(e) {
13594                        return function () {
13595                            return e
13596                        }
13597                    }
13598
13599                    function lr(e) {
13600                        return e
13601                    }
13602
13603                    function cr(e) {
13604                        return Nn(e) ? Yt(e) : Zt(e)
13605                    }
13606
13607                    var r, i = "3.7.0", s = "Expected a function", o = "[object Arguments]", u = "[object Array]",
13608                        a = "[object Boolean]", f = "[object Date]", l = "[object Error]", c = "[object Function]",
13609                        h = "[object Map]", p = "[object Number]", d = "[object Object]", v = "[object RegExp]",
13610                        m = "[object Set]", g = "[object String]", y = "[object WeakMap]", b = "[object ArrayBuffer]",
13611                        w = "[object Float32Array]", E = "[object Float64Array
13611]", S = "[object Int8Array]",
13612                        x = "[object Int16Array]", T = "[object Int32Array]", N = "[object Uint8Array]",
13613                        C = "[object Uint8ClampedArray]", k = "[object Uint16Array]", L = "[object Uint32Array]",
13614                        A = /\.|\[(?:[^[\]]+|(["'])(?:(?!\1)[^\n\\]|\\.)*?)\1\]/, O = /^\w*$/,
13615                        M = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,
13616                        _ = /[.*+?^${}()|[\]\/\\]/g, D = RegExp(_.source), P = /\\(\\)?/g, H = /\w*$/,
13617                        B = /^\[object .+?Constructor\]$/, j = {};
13618                    j[w] = j[E] = j[S] = j[x] = j[T] = j[N] = j[C] = j[k] = j[L] = !0, j[o] = j[u] = j[b] = j[a] = j[f] = j[l] = j[c] = j[h] = j[p] = j[d] = j[v] = j[m] = j[g] = j[y] = !1;
13619                    var F = {};
13620                    F[o] = F[u] = F[b] = F[a] = F[f] = F[w] = F[E] = F[S] = F[x] = F[T] = F[p] = F[d] = F[v] = F[g] = F[N] = F[C] = F[k] = F[L] = !0, F[l] = F[c] = F[h] = F[m] = F[y] = !1;
13621                    var I = {"function": !0, object: !0}, q = I[typeof n] && n && !n.nodeType && n,
13622                        R = I[typeof t] && t && !t.nodeType && t,
13623                        U = q && R && typeof e == "object" && e && e.Object && e,
13624                        z = I[typeof self] && self && self.Object && self,
13625                        W = I[typeof window] && window && window.Object && window, X = R && R.exports === q && q,
13626                        V = U || W !== (this && this.window) && W || z || this, Z = Array.prototype,
13627                        et = Object.prototype, tt = Function.prototype.toString, nt = et.hasOwnProperty,
13628                        rt = et.toString,
13629                        it = RegExp("^" + ur(rt).replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"),
13630                        st = Kn(st = V.ArrayBuffer) && st, ot = Kn(ot = st && (new st(0)).slice) && ot, ut = Math.floor,
13631                        at = Kn(at = Object.getOwnPropertySymbols) && at, ft = Kn(ft = Object.getPrototypeOf) && ft,
13632                        lt = Z.push, ct = Kn(Object.preventExtensions = Object.preventExtensions) && ct,
13633                        ht = et.propertyIsEnumerable, pt = Kn(pt = V.Uint8Array) && pt, dt = function () {
13634                            try {
13635                                var e = Kn(e = V.Float64Array) && e, t = new e(new st(10), 0, 1) && e
13636                            } catch (n) {
13637                            }
13638                            return t
13639                        }(), vt = function () {
13640                            var e = {1: 0}, t = ct && Kn(t = Object.assign) && t;
13641                            try {
13642                                t(ct(e), "xo")
13643                            } catch (n) {
13644                            }
13645                            return !e[1] && t
13646                        }(), mt = Kn(mt = Array.isArray) && mt, gt = Kn(gt = Object.keys) && gt, yt = Math.max,
13647                        bt = Math.min, wt = Number.NEGATIVE_INFINITY, Et = Math.pow(2, 32) - 1, St = Et - 1,
13648                        xt = Et >>> 1, Tt = dt ? dt.BYTES_PER_ELEMENT : 0, Nt = Math.pow(2, 53) - 1,
13649                        kt = Ct.support = {};
13650                    (function (e) {
13651                        var t = function () {
13652                            this.x = e
13653                        }, n = {0: e, length: e}, r = [];
13654                        t.prototype = {valueOf: e, y: e};
13655                        for (var i in new t) r.push(i);
13656                        kt.funcDecomp = /\bthis\b/.test(function () {
13657                            return this
13658                        }), kt.funcNames = typeof Function.name == "string";
13659                        try {
13660                            kt.nonEnumArgs = !ht.call(arguments, 1)
13661                        } catch (s) {
13662                            kt.nonEnumArgs = !0
13663                        }
13664                    })(1, 0);
13665                    var Ht = vt || function (e, t) {
13666                        return t == null ? e : Bt(t, bn(t), Bt(t, rr(t), e))
13667                    }, It = fn(zt), Rt = ln();
13668                    ot || (un = !st || !pt ? fr(null) : function (e) {
13669                        var t = e.byteLength, n = dt ? ut(t / Tt) : 0, r = n * Tt, i = new st(t);
13670                        if (n) {
13671                            var s = new dt(i, 0, n);
13672                            s.set(new dt(e, 0, n))
13673                        }
13674                        return t != r && (s = new pt(i, r), s.set(new pt(e, r))), i
13675                    });
13676                    var yn = Yt("length"), bn = at ? function (e) {
13677                        return at(On(e))
13678                    } : fr([]), _n = cn(!0), jn = Un(Bn), Fn = hn(At, It), Xn = mt || function (e) {
13679                        return Y(e) && Cn(e.length) && rt.call(e) == u
13680                    }, $n = K(/x/) || pt && !K(pt) ? function (e) {
13681                        return rt.call(e) == c
13682                    } : K, Gn = ft ? function (e) {
13683                        if (!e || rt.call(e) != d) return !1;
13684                        var t = e.valueOf, n = Kn(t) && (n = ft(t)) && ft(n);
13685                        return n ? e == n || ft(e) == n : Ln(e)
13686                    } : Ln, tr = an(function (e, t, n) {
13687                        return n ? Pt(e, t, n) : Ht(e, t)
13688                    }), rr = gt ? function (e) {
13689                        if (e) var t = e.constructor, n = e.length;
13690                        return typeof t == "function" && t.prototype === e || typeof e != "function" && Cn(n) ? An(e) : Jn(e) ? gt(e) : []
13691                    } : An, sr = an(Qt);
13692                    Ct.assign = tr, Ct.callback = ar, Ct.constant = fr, Ct.forEach = Fn, Ct.keys = rr, Ct.keysIn = ir, Ct.merge = sr, Ct.property = cr, Ct.reject = qn, Ct.restParam = Un, Ct.slice = Hn, Ct.toPlainObject = er, Ct.unzip = Bn, Ct.values = or, Ct.zip = jn, Ct.each = Fn, Ct.extend = tr, Ct.iteratee = ar, Ct.clone = zn, Ct.escapeRegExp = ur, Ct.findLastIndex = _n, Ct.has = nr, Ct.identity = lr, Ct.includes = In, Ct.indexOf = Dn, Ct.isArguments = Wn, Ct.isArray = Xn, Ct.isEmpty = Vn, Ct.isFunction = $n, Ct.isNative = Kn, Ct.isNumber = Qn, Ct.isObject = Jn, Ct.isPlainObject = Gn, Ct.isString = Yn, Ct.isTypedArray = Zn, Ct.last = Pn, Ct.some = Rn, Ct.any = Rn, Ct.contains = In, Ct.include = In, Ct.VERSION = i, q && R ? X ? (R.exports = Ct)._ = Ct : q._ = Ct : V._ = Ct
13693                }).call(this)
13694            }).call(this, typeof global != "undefined" ? global : typeof self != "undefined" ? self : typeof window != "undefined" ? window : {})
13695        }, {}],
13696        "/node_modules/jshint/src/jshint.js": [function (e, t, n) {
13697            var r = e("../lodash"), i = e("events"), s = e("./vars.js"), o = e("./messages.js"),
13698                u = e("./lex.js").Lexer, a = e("./reg.js"), f = e("./state.js").state, l = e("./style.js"),
13699                c = e("./options.js"), h = e("./scope-manager.js"), p = function () {
13700                    "use strict";
13701
13702                    function k(e, t) {
13703                        return e = e.trim(), /^[+-]W\d{3}$/g.test(e) ? !0 : c.validNames.indexOf(e) === -1 && t.type !== "jslint" && !r.has(c.removed, e) ? (q("E001", t, e), !1) : !0
13704                    }
13705
13706                    function L(e) {
13707                        return Object.prototype.toString.call(e) === "[object String]"
13708                    }
13709
13710                    function A(e, t) {
13711                        return e ? !e.identifier || e.value !== t ? !1 : !0 : !1
13712                    }
13713
13714                    function O(e) {
13715                        if (!e.reserved) return !1;
13716                        var t = e.meta;
13717                        if (t && t.isFutureReservedWord && f.inES5()) {
13718                            if (!t.es5) return !1;
13719                            if (t.strictOnly && !f.option.strict && !f.isStrict()) return !1;
13720                            if (e.isProperty) return !1
13721                        }
13722                        return !0
13723                    }
13724
13725                    function M(e, t) {
13726                        return e.replace(/\{([^{}]*)\}/g, function (e, n) {
13727                            var r = t[n];
13728                            return typeof r == "string" || typeof r == "number" ? r : e
13729                        })
13730                    }
13731
13732                    function D(e, t) {
13733                        Object.keys(t).forEach(function (n) {
13734                            if (r.has(p.blacklist, n)) return;
13735                            e[n] = t[n]
13736                        })
13737                    }
13738
13739                    function P() {
13740                        if (f.option.enforceall) {
13741                            for (var e in c.bool.enforcing) f.option[e] === undefined && !c.noenforceall[e] && (f.option[e] = !0);
13742                            for (var t in c.bool.relaxing) f.option[t] === undefined && (f.option[t] = !1)
13743                        }
13744                    }
13745
13746                    function H() {
13747                        P(), !f.option.esversion && !f.option.moz && (f.option.es3 ? f.option.esversion = 3 : f.option.esnext ? f.option.esversion = 6 : f.option.esversion = 5), f.inES5() && D(S, s.ecmaIdentifiers[5]), f.inES6() && D(S, s.ecmaIdentifiers[6]), f.option.module && (f.option.strict === !0 && (f.option.strict = "global"), f.inES6() || F("W134", f.tokens.next, "module", 6)), f.option.couch && D(S, s.couch), f.option.qunit && D(S, s.qunit), f.option.rhino && D(S, s.rhino), f.option.shelljs && (D(S, s.shelljs), D(S, s.node)), f.option.typed && D(S, s.typed), f.option.phantom && (D(S, s.phantom), f.option.strict === !0 && (f.option.strict = "global")), f.option.prototypejs && D(S, s.prototypejs), f.option.node && (D(S, s.node), D(S, s.typed), f.option.strict === !0 && (f.option.strict = "global")), f.option.devel && D(S, s.devel), f.option.dojo && D(S, s.dojo), f.option.browser && (D(S, s.browser), D(S, s.typed)), f.option.browserify && (D(S, s.browser), D(S, s.typed), D(S, s.browserify), f.option.strict === !0 && (f.option.strict = "global")), f.option.nonstandard && D(S, s.nonstandard), f.option.jasmine && D(S, s.jasmine), f.option.jquery && D(S, s.jquery), f.option.mootools && D(S, s.mootools), f.option.worker && D(S, s.worker), f.option.wsh && D(S, s.wsh), f.option.globalstrict && f.option.strict !== !1 && (f.option.strict = "global"), f.option.yui && D(S, s.yui), f.option.mocha && D(S, s.mocha)
13748                    }
13749
13750                    function B(e, t, n) {
13751                        var r = Math.floor(t / f.lines.length * 100), i = o.errors[e].desc;
13752                        throw{
13753                            name: "JSHintError",
13754                            line: t,
13755                            character: n,
13756                            message: i + " (" + r + "% scanned).",
13757                            raw: i,
13758                            code: e
13759                        }
13760                    }
13761
13762                    function j() {
13763                        var e = f.ignoredLines;
13764                        if (r.isEmpty(e)) return;
13765                        p.errors = r.reject(p.errors, function (t) {
13766                            return e[t.line]
13767                        })
13768                    }
13769
13770                    function F(e, t, n, r, i, s) {
13771                        var u, a, l, c;
13772                        if (/^W\d{3}$/.test(e)) {
13773                            if (f.ignored[e]) return;
13774                            c = o.warnings[e]
13775                        } else /E\d{3}/.test(e) ? c = o.errors[e] : /I\d{3}/.test(e) && (c = o.info[e]);
13776                        return t = t || f.tokens.next || {}, t.id === "(end)" && (t = f.tokens.curr), a = t.line || 0, u = t.from || 0, l = {
13777                            id: "(error)",
13778                            raw: c.desc,
13779                            code: c.code,
13780                            evidence: f.lines[a - 1] || "",
13781                            line: a,
13782                            character: u,
13783                            scope: p.scope,
13784                            a: n,
13785                            b: r,
13786                            c: i,
13787                            d: s
13788                        }, l.reason = M(c.desc, l), p.errors.push(l), j(), p.errors.length >= f.option.maxerr && B("E043", a, u), l
13789                    }
13790
13791                    function I(e, t, n, r, i, s, o) {
13792                        return F(e, {line: t, from: n}, r, i, s, o)
13793                    }
13794
13795                    function q(e, t, n, r, i, s) {
13796                        F(e, t, n, r, i, s)
13797                    }
13798
13799                    function R(e, t, n, r, i, s, o) {
13800                        return q(e, {line: t, from: n}, r, i, s, o)
13801                    }
13802
13803                    function U(e, t) {
13804                        var n;
13805                        return n = {id: "(internal)", elem: e, value: t}, p.internals.push(n), n
13806                    }
13807
13808                    function z() {
13809                        var e = f.tokens.next, t = e.body.match(/(-\s+)?[^\s,:]+(?:\s*:\s*(-\s+)?[^\s,]+)?/g) || [], i = {};
13810                        if (e.type === "globals") {
13811                            t.forEach(function (n, r) {
13812                                n = n.split(":");
13813                                var s = (n[0] || "").trim(), o = (n[1] || "").trim();
13814                                if (s === "-" || !s.length) {
13815                                    if (r > 0 && r === t.length - 1) return;
13816                                    q("E002", e);
13817                                    return
13818                                }
13819                                s.charAt(0) === "-" ? (s = s.slice(1), o = !1, p.blackl
13819ist[s] = s, delete S[s]) : i[s] = o === "true"
13820                            }), D(S, i);
13821                            for (var s in i) r.has(i, s) && (n[s] = e)
13822                        }
13823                        e.type === "exported" && t.forEach(function (n, r) {
13824                            if (!n.length) {
13825                                if (r > 0 && r === t.length - 1) return;
13826                                q("E002", e);
13827                                return
13828                            }
13829                            f.funct["(scope)"].addExported(n)
13830                        }), e.type === "members" && (E = E || {}, t.forEach(function (e) {
13831                            var t = e.charAt(0), n = e.charAt(e.length - 1);
13832                            t === n && (t === '"' || t === "'") && (e = e.substr(1, e.length - 2).replace('\\"', '"')), E[e] = !1
13833                        }));
13834                        var o = ["maxstatements", "maxparams", "maxdepth", "maxcomplexity", "maxerr", "maxlen", "indent"];
13835                        if (e.type === "jshint" || e.type === "jslint") t.forEach(function (t) {
13836                            t = t.split(":");
13837                            var n = (t[0] || "").trim(), i = (t[1] || "").trim();
13838                            if (!k(n, e)) return;
13839                            if (o.indexOf(n) >= 0) {
13840                                if (i !== "false") {
13841                                    i = +i;
13842                                    if (typeof i != "number" || !isFinite(i) || i <= 0 || Math.floor(i) !== i) {
13843                                        q("E032", e, t[1].trim());
13844                                        return
13845                                    }
13846                                    f.option[n] = i
13847                                } else f.option[n] = n === "indent" ? 4 : !1;
13848                                return
13849                            }
13850                            if (n === "validthis") {
13851                                if (f.funct["(global)"]) return void q("E009");
13852                                if (i !== "true" && i !== "false") return void q("E002", e);
13853                                f.option.validthis = i === "true";
13854                                return
13855                            }
13856                            if (n === "quotmark") {
13857                                switch (i) {
13858                                    case"true":
13859                                    case"false":
13860                                        f.option.quotmark = i === "true";
13861                                        break;
13862                                    case"double":
13863                                    case"single":
13864                                        f.option.quotmark = i;
13865                                        break;
13866                                    default:
13867                                        q("E002", e)
13868                                }
13869                                return
13870                            }
13871                            if (n === "shadow") {
13872                                switch (i) {
13873                                    case"true":
13874                                        f.option.shadow = !0;
13875                                        break;
13876                                    case"outer":
13877                                        f.option.shadow = "outer";
13878                                        break;
13879                                    case"false":
13880                                    case"inner":
13881                                        f.option.shadow = "inner";
13882                                        break;
13883                                    default:
13884                                        q("E002", e)
13885                                }
13886                                return
13887                            }
13888                            if (n === "unused") {
13889                                switch (i) {
13890                                    case"true":
13891                                        f.option.unused = !0;
13892                                        break;
13893                                    case"false":
13894                                        f.option.unused = !1;
13895                                        break;
13896                                    case"vars":
13897                                    case"strict":
13898                                        f.option.unused = i;
13899                                        break;
13900                                    default:
13901                                        q("E002", e)
13902                                }
13903                                return
13904                            }
13905                            if (n === "latedef") {
13906                                switch (i) {
13907                                    case"true":
13908                                        f.option.latedef = !0;
13909                                        break;
13910                                    case"false":
13911                                        f.option.latedef = !1;
13912                                        break;
13913                                    case"nofunc":
13914                                        f.option.latedef = "nofunc";
13915                                        break;
13916                                    default:
13917                                        q("E002", e)
13918                                }
13919                                return
13920                            }
13921                            if (n === "ignore") {
13922                                switch (i) {
13923                                    case"line":
13924                                        f.ignoredLines[e.line] = !0, j();
13925                                        break;
13926                                    default:
13927                                        q("E002", e)
13928                                }
13929                                return
13930                            }
13931                            if (n === "strict") {
13932                                switch (i) {
13933                                    case"true":
13934                                        f.option.strict = !0;
13935                                        break;
13936                                    case"false":
13937                                        f.option.strict = !1;
13938                                        break;
13939                                    case"func":
13940                                    case"global":
13941                                    case"implied":
13942                                        f.option.strict = i;
13943                                        break;
13944                                    default:
13945                                        q("E002", e)
13946                                }
13947                                return
13948                            }
13949                            n === "module" && (zt(f.funct) || q("E055", f.tokens.next, "module"));
13950                            var s = {es3: 3, es5: 5, esnext: 6};
13951                            if (r.has(s, n)) {
13952                                switch (i) {
13953                                    case"true":
13954                                        f.option.moz = !1, f.option.esversion = s[n];
13955                                        break;
13956                                    case"false":
13957                                        f.option.moz || (f.option.esversion = 5);
13958                                        break;
13959                                    default:
13960                                        q("E002", e)
13961                                }
13962                                return
13963                            }
13964                            if (n === "esversion") {
13965                                switch (i) {
13966                                    case"5":
13967                                        f.inES5(!0) && F("I003");
13968                                    case"3":
13969                                    case"6":
13970                                        f.option.moz = !1, f.option.esversion = +i;
13971                                        break;
13972                                    case"2015":
13973                                        f.option.moz = !1, f.option.esversion = 6;
13974                                        break;
13975                                    default:
13976                                        q("E002", e)
13977                                }
13978                                zt(f.funct) || q("E055", f.tokens.next, "esversion");
13979                                return
13980                            }
13981                            var u = /^([+-])(W\d{3})$/g.exec(n);
13982                            if (u) {
13983                                f.ignored[u[2]] = u[1] === "-";
13984                                return
13985                            }
13986                            var a;
13987                            if (i === "true" || i === "false") {
13988                                e.type === "jslint" ? (a = c.renamed[n] || n, f.option[a] = i === "true", c.inverted[a] !== undefined && (f.option[a] = !f.option[a])) : f.option[n] = i === "true", n === "newcap" && (f.option["(explicitNewcap)"] = !0);
13989                                return
13990                            }
13991                            q("E002", e)
13992                        }), H()
13993                    }
13994
13995                    function W(e) {
13996                        var t = e || 0, n = y.length, r;
13997                        if (t < n) return y[t];
13998                        while (n <= t) r = y[n], r || (r = y[n] = b.token()), n += 1;
13999                        return !r && f.tokens.next.id === "(end)" ? f.tokens.next : r
14000                    }
14001
14002                    function X() {
14003                        var e = 0, t;
14004                        do t = W(e++); while (t.id === "(endline)");
14005                        return t
14006                    }
14007
14008                    function V(e, t) {
14009                        switch (f.tokens.curr.id) {
14010                            case"(number)":
14011                                f.tokens.next.id === "." && F("W005", f.tokens.curr);
14012                                break;
14013                            case"-":
14014                                (f.tokens.next.id === "-" || f.tokens.next.id === "--") && F("W006");
14015                                break;
14016                            case"+":
14017                                (f.tokens.next.id === "+" || f.tokens.next.id === "++") && F("W007")
14018                        }
14019                        e && f.tokens.next.id !== e && (t ? f.tokens.next.id === "(end)" ? q("E019", t, t.id) : q("E020", f.tokens.next, e, t.id, t.line, f.tokens.next.value) : (f.tokens.next.type !== "(identifier)" || f.tokens.next.value !== e) && F("W116", f.tokens.next, e, f.tokens.next.value)), f.tokens.prev = f.tokens.curr, f.tokens.curr = f.tokens.next;
14020                        for (; ;) {
14021                            f.tokens.next = y.shift() || b.token(), f.tokens.next || B("E041", f.tokens.curr.line);
14022                            if (f.tokens.next.id === "(end)" || f.tokens.next.id === "(error)") return;
14023                            f.tokens.next.check && f.tokens.next.check();
14024                            if (f.tokens.next.isSpecial) f.tokens.next.type === "falls through" ? f.tokens.curr.caseFallsThrough = !0 : z(); else if (f.tokens.next.id !== "(endline)") break
14025                        }
14026                    }
14027
14028                    function $(e) {
14029                        return e.infix || !e.identifier && !e.template && !!e.led
14030                    }
14031
14032                    function J() {
14033                        var e = f.tokens.curr, t = f.tokens.next;
14034                        return t.id === ";" || t.id === "}" || t.id === ":" ? !0 : $(t) === $(e) || e.id === "yield" && f.inMoz() ? e.line !== G(t) : !1
14035                    }
14036
14037                    function K(e) {
14038                        return !e.left && e.arity !== "unary"
14039                    }
14040
14041                    function Q(e, t) {
14042                        var n, i = !1, s = !1, o = !1;
14043                        f.nameStack.push(), !t && f.tokens.next.value === "let" && W(0).value === "(" && (f.inMoz() || F("W118", f.tokens.next, "let expressions"), o = !0, f.funct["(scope)"].stack(), V("let"), V("("), f.tokens.prev.fud(), V(")")), f.tokens.next.id === "(end)" && q("E006", f.tokens.curr);
14044                        var u = f.option.asi && f.tokens.prev.line !== G(f.tokens.curr) && r.contains(["]", ")"], f.tokens.prev.id) && r.contains(["[", "("], f.tokens.curr.id);
14045                        u && F("W014", f.tokens.curr, f.tokens.curr.id), V(), t && (f.funct["(verb)"] = f.tokens.curr.value, f.tokens.curr.beginsStmt = !0);
14046                        if (t === !0 && f.tokens.curr.fud) n = f.tokens.curr.fud(); else {
14047                            f.tokens.curr.nud ? n = f.tokens.curr.nud() : q("E030", f.tokens.curr, f.tokens.curr.id);
14048                            while ((e < f.tokens.next.lbp || f.tokens.next.type === "(template)") && !J()) i = f.tokens.curr.value === "Array", s = f.tokens.curr.value === "Object", n && (n.value || n.first && n.first.value) && (n.value !== "
14048new" || n.first && n.first.value && n.first.value === ".") && (i = !1, n.value !== f.tokens.curr.value && (s = !1)), V(), i && f.tokens.curr.id === "(" && f.tokens.next.id === ")" && F("W009", f.tokens.curr), s && f.tokens.curr.id === "(" && f.tokens.next.id === ")" && F("W010", f.tokens.curr), n && f.tokens.curr.led ? n = f.tokens.curr.led(n) : q("E033", f.tokens.curr, f.tokens.curr.id)
14049                        }
14050                        return o && f.funct["(scope)"].unstack(), f.nameStack.pop(), n
14051                    }
14052
14053                    function G(e) {
14054                        return e.startLine || e.line
14055                    }
14056
14057                    function Y(e, t) {
14058                        e = e || f.tokens.curr, t = t || f.tokens.next, !f.option.laxbreak && e.line !== G(t) && F("W014", t, t.value)
14059                    }
14060
14061                    function Z(e) {
14062                        e = e || f.tokens.curr, e.line !== G(f.tokens.next) && F("E022", e, e.value)
14063                    }
14064
14065                    function et(e, t) {
14066                        e.line !== G(t) && (f.option.laxcomma || (tt.first && (F("I001"), tt.first = !1), F("W014", e, t.value)))
14067                    }
14068
14069                    function tt(e) {
14070                        e = e || {}, e.peek ? et(f.tokens.prev, f.tokens.curr) : (et(f.tokens.curr, f.tokens.next), V(","));
14071                        if (f.tokens.next.identifier && (!e.property || !f.inES5())) switch (f.tokens.next.value) {
14072                            case"break":
14073                            case"case":
14074                            case"catch":
14075                            case"continue":
14076                            case"default":
14077                            case"do":
14078                            case"else":
14079                            case"finally":
14080                            case"for":
14081                            case"if":
14082                            case"in":
14083                            case"instanceof":
14084                            case"return":
14085                            case"switch":
14086                            case"throw":
14087                            case"try":
14088                            case"var":
14089                            case"let":
14090                            case"while":
14091                            case"with":
14092                                return q("E024", f.tokens.next, f.tokens.next.value), !1
14093                        }
14094                        if (f.tokens.next.type === "(punctuator)") switch (f.tokens.next.value) {
14095                            case"}":
14096                            case"]":
14097                            case",":
14098                                if (e.allowTrailing) return !0;
14099                            case")":
14100                                return q("E024", f.tokens.next, f.tokens.next.value), !1
14101                        }
14102                        return !0
14103                    }
14104
14105                    function nt(e, t) {
14106                        var n = f.syntax[e];
14107                        if (!n || typeof n != "object") f.syntax[e] = n = {id: e, lbp: t, value: e};
14108                        return n
14109                    }
14110
14111                    function rt(e) {
14112                        var t = nt(e, 0);
14113                        return t.delim = !0, t
14114                    }
14115
14116                    function it(e, t) {
14117                        var n = rt(e);
14118                        return n.identifier = n.reserved = !0, n.fud = t, n
14119                    }
14120
14121                    function st(e, t) {
14122                        var n = it(e, t);
14123                        return n.block = !0, n
14124                    }
14125
14126                    function ot(e) {
14127                        var t = e.id.charAt(0);
14128                        if (t >= "a" && t <= "z" || t >= "A" && t <= "Z") e.identifier = e.reserved = !0;
14129                        return e
14130                    }
14131
14132                    function ut(e, t) {
14133                        var n = nt(e, 150);
14134                        return ot(n), n.nud = typeof t == "function" ? t : function () {
14135                            this.arity = "unary", this.right = Q(150);
14136                            if (this.id === "++" || this.id === "--") f.option.plusplus ? F("W016", this, this.id) : this.right && (!this.right.identifier || O(this.right)) && this.right.id !== "." && this.right.id !== "[" && F("W017", this), this.right && this.right.isMetaProperty ? q("E031", this) : this.right && this.right.identifier && f.funct["(scope)"].block.modify(this.right.value, this);
14137                            return this
14138                        }, n
14139                    }
14140
14141                    function at(e, t) {
14142                        var n = rt(e);
14143                        return n.type = e, n.nud = t, n
14144                    }
14145
14146                    function ft(e, t) {
14147                        var n = at(e, t);
14148                        return n.identifier = !0, n.reserved = !0, n
14149                    }
14150
14151                    function lt(e, t) {
14152                        var n = at(e, t && t.nud || function () {
14153                            return this
14154                        });
14155                        return t = t || {}, t.isFutureReservedWord = !0, n.value = e, n.identifier = !0, n.reserved = !0, n.meta = t, n
14156                    }
14157
14158                    function ct(e, t) {
14159                        return ft(e, function () {
14160                            return typeof t == "function" && t(this), this
14161                        })
14162                    }
14163
14164                    function ht(e, t, n, r) {
14165                        var i = nt(e, n);
14166                        return ot(i), i.infix = !0, i.led = function (i) {
14167                            return r || Y(f.tokens.prev, f.tokens.curr), (e === "in" || e === "instanceof") && i.id === "!" && F("W018", i, "!"), typeof t == "function" ? t(i, this) : (this.left = i, this.right = Q(n), this)
14168                        }, i
14169                    }
14170
14171                    function pt(e) {
14172                        var t = nt(e, 42);
14173                        return t.led = function (e) {
14174                            return Y(f.tokens.prev, f.tokens.curr), this.left = e, this.right = Xt({
14175                                type: "arrow",
14176                                loneArg: e
14177                            }), this
14178                        }, t
14179                    }
14180
14181                    function dt(e, t) {
14182                        var n = nt(e, 100);
14183                        return n.led = function (e) {
14184                            Y(f.tokens.prev, f.tokens.curr), this.left = e;
14185                            var n = this.right = Q(100);
14186                            return A(e, "NaN") || A(n, "NaN") ? F("W019", this) : t && t.apply(this, [e, n]), (!e || !n) && B("E041", f.tokens.curr.line), e.id === "!" && F("W018", e, "!"), n.id === "!" && F("W018", n, "!"), this
14187                        }, n
14188                    }
14189
14190                    function vt(e) {
14191                        return e && (e.type === "(number)" && +e.value === 0 || e.type === "(string)" && e.value === "" || e.type === "null" && !f.option.eqnull || e.type === "true" || e.type === "fal
14191se" || e.type === "undefined")
14192                    }
14193
14194                    function gt(e, t, n) {
14195                        var i;
14196                        return n.option.notypeof ? !1 : !e || !t ? !1 : (i = n.inES6() ? mt.es6 : mt.es3, t.type === "(identifier)" && t.value === "typeof" && e.type === "(string)" ? !r.contains(i, e.value) : !1)
14197                    }
14198
14199                    function yt(e, t) {
14200                        var n = !1;
14201                        return e.type === "this" && t.funct["(context)"] === null ? n = !0 : e.type === "(identifier)" && (t.option.node && e.value === "global" ? n = !0 : t.option.browser && (e.value === "window" || e.value === "document") && (n = !0)), n
14202                    }
14203
14204                    function bt(e) {
14205                        function n(e) {
14206                            if (typeof e != "object") return;
14207                            return e.right === "prototype" ? e : n(e.left)
14208                        }
14209
14210                        function r(e) {
14211                            while (!e.identifier && typeof e.left == "object") e = e.left;
14212                            if (e.identifier && t.indexOf(e.value) >= 0) return e.value
14213                        }
14214
14215                        var t = ["Array", "ArrayBuffer", "Boolean", "Collator", "DataView", "Date", "DateTimeFormat", "Error", "EvalError", "Float32Array", "Float64Array", "Function", "Infinity", "Intl", "Int16Array", "Int32Array", "Int8Array", "Iterator", "Number", "NumberFormat", "Object", "RangeError", "ReferenceError", "RegExp", "StopIteration", "String", "SyntaxError", "TypeError", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "URIError"],
14216                            i = n(e);
14217                        if (i) return r(i)
14218                    }
14219
14220                    function wt(e, t, n) {
14221                        var r = n && n.allowDestructuring;
14222                        t = t || e;
14223                        if (f.option.freeze) {
14224                            var i = bt(e);
14225                            i && F("W121", e, i)
14226                        }
14227                        return e.identifier && !e.isMetaProperty && f.funct["(scope)"].block.reassign(e.value, e), e.id === "." ? ((!e.left || e.left.value === "arguments" && !f.isStrict()) && F("E031", t), f.nameStack.set(f.tokens.prev), !0) : e.id === "{" || e.id === "[" ? (r && f.tokens.curr.left.destructAssign ? f.tokens.curr.left.destructAssign.forEac
14227h(function (e) {
14228                            e.id && f.funct["(scope)"].block.modify(e.id, e.token)
14229                        }) : e.id === "{" || !e.left ? F("E031", t) : e.left.value === "arguments" && !f.isStrict() && F("E031", t), e.id === "[" && f.nameStack.set(e.right), !0) : e.isMetaProperty ? (q("E031", t), !0) : e.identifier && !O(e) ? (f.funct["(scope)"].labeltype(e.value) === "exception" && F("W022", e), f.nameStack.set(e), !0) : (e === f.syntax["function"] && F("W023", f.tokens.curr), !1)
14230                    }
14231
14232                    function Et(e, t, n) {
14233                        var r = ht(e, typeof t == "function" ? t : function (e, t) {
14234                            t.left = e;
14235                            if (e && wt(e, t, {allowDestructuring: !0})) return t.right = Q(10), t;
14236                            q("E031", t)
14237                        }, n);
14238                        return r.exps = !0, r.assign = !0, r
14239                    }
14240
14241                    function St(e, t, n) {
14242                        var r = nt(e, n);
14243                        return ot(r), r.led = typeof t == "function" ? t : function (e) {
14244                            return f.option.bitwise && F("W016", this, this.id), this.left = e, this.right = Q(n), this
14245                        }, r
14246                    }
14247
14248                    function xt(e) {
14249                        return Et(e, function (e, t) {
14250                            f.option.bitwise && F("W016", t, t.id);
14251                            if (e && wt(e, t)) return t.right = Q(10), t;
14252                            q("E031", t)
14253                        }, 20)
14254                    }
14255
14256                    function Tt(e) {
14257                        var t = nt(e, 150);
14258                        return t.led = function (e) {
14259                            return f.option.plusplus ? F("W016", this, this.id) : (!e.identifier || O(e)) && e.id !== "." && e.id !== "[" && F("W017", this), e.isMetaProperty ? q("E031", this) : e && e.identifier && f.funct["(scope)"].block.modify(e.value, e), this.left = e, this
14260                        }, t
14261                    }
14262
14263                    function Nt(e, t, n) {
14264                        if (!f.tokens.next.identifier) return;
14265                        n || V();
14266                        var r = f.tokens.curr, i = f.tokens.curr.value;
14267                        return O(r) ? t && f.inES5() ? i : e && i === "undefined" ? i : (F("W024", f.tokens.curr, f.tokens.curr.id), i) : i
14268                    }
14269
14270                    function Ct(e, t) {
14271                        var n = Nt(e, t, !1);
14272                        if (n) return n;
14273                        if (f.tokens.next.value === "...") {
14274                            f.inES6(!0) || F("W119", f.tokens.next, "spread/rest operator", "6"), V();
14275                            if (pn(f.tokens.next, "...")) {
14276                                F("E024", f.tokens.next, "...");
14277                                while (pn(f.tokens.next, "...")) V()
14278                            }
14279                            if (!f.tokens.next.identifier) {
14280                                F("E024", f.tokens.curr, "...");
14281                                return
14282                            }
14283                            return Ct(e, t)
14284                        }
14285                        q("E030", f.tokens.next, f.tokens.next.value), f.tokens.next.id !== ";" && V()
14286                    }
14287
14288                    function kt(e) {
14289                        var t = 0, n;
14290                        if (f.tokens.next.id !== ";" || e.inBracelessBlock) return;
14291                        for (; ;) {
14292                            do n = W(t), t += 1; while (n.id !== "(end)" && n.id === "(comment)");
14293                            if (n.reach) return;
14294                            if (n.id !== "(endline)") {
14295                                if (n.id === "function") {
14296                                    f.option.latedef === !0 && F("W026", n);
14297                                    break
14298                                }
14299                                F("W027", n, n.value, e.value);
14300                                break
14301                            }
14302                        }
14303                    }
14304
14305                    function Lt() {
14306                        if (f.tokens.next.id !== ";") {
14307                            if (f.tokens.next.isUnclosed) return V();
14308                            var e = G(f.tokens.next) === f.tokens.curr.line && f.tokens.next.id !== "(end)",
14309                                t = pn(f.tokens.next, "}");
14310                            e && !t ? R("E058", f.tokens.curr.line, f.tokens.curr.character) : f.option.asi || (t && !f.option.lastsemic || !e) && I("W033", f.tokens.curr.line, f.tokens.curr.character)
14311                        } else V(";")
14312                    }
14313
14314                    function At() {
14315                        var e = g, t, n = f.tokens.next, r = !1;
14316                        if (n.id === ";") {
14317                            V(";");
14318                            return
14319                        }
14320                        var i = O(n);
14321                        i && n.meta && n.meta.isFutureReservedWord && W().id === ":" && (F("W024", n, n.id), i = !1), n.identifier && !i && W().id === ":" && (V(), V(":"), r = !0, f.funct["(scope)"].stack(), f.funct["(scope)"].block.addBreakLabel(n.value, {token: f.tokens.curr}), !f.tokens.next.labelled && f.tokens.next.value !== "{" && F("W028", f.tokens.next, n.value, f.tokens.next.value), f.tokens.next.label = n.value, n = f.tokens.next);
14322                        if (n.id === "{") {
14323                            var s = f.funct["(verb)"] === "case" && f.tokens.curr.value === ":";
14324                            _t(!0, !0, !1, !1, s);
14325                            return
14326                        }
14327                        return t = Q(0, !0), t && (!t.identifier || t.value !== "function") && (t.type !== "(punctuator)" || !t.left || !t.left.identifier || t.left.value !== "function") && !f.isStrict() && f.option.strict === "global" && F("E007"), n.block || (!f.o
14327ption.expr && (!t || !t.exps) ? F("W030", f.tokens.curr) : f.option.nonew && t && t.left && t.id === "(" && t.left.id === "new" && F("W031", n), Lt()), g = e, r && f.funct["(scope)"].unstack(), t
14328                    }
14329
14330                    function Ot() {
14331                        var e = [], t;
14332                        while (!f.tokens.next.reach && f.tokens.next.id !== "(end)") f.tokens.next.id === ";" ? (t = W(), (!t || t.id !== "(" && t.id !== "[") && F("W032"), V(";")) : e.push(At());
14333                        return e
14334                    }
14335
14336                    function Mt() {
14337                        var e, t, n;
14338                        while (f.tokens.next.id === "(string)") {
14339                            t = W(0);
14340                            if (t.id === "(endline)") {
14341                                e = 1;
14342                                do n = W(e++); while (n.id === "(endline)");
14343                                if (n.id === ";") t = n; else {
14344                                    if (n.value === "[" || n.value === ".") break;
14345                                    (!f.option.asi || n.value === "(") && F("W033", f.tokens.next)
14346                                }
14347                            } else {
14348                                if (t.id === "." || t.id === "[") break;
14349                                t.id !== ";" && F("W033", t)
14350                            }
14351                            V();
14352                            var r = f.tokens.curr.value;
14353                            (f.directive[r] || r === "use strict" && f.option.strict === "implied") && F("W034", f.tokens.curr, r), f.directive[r] = !0, t.id === ";" && V(";")
14354                        }
14355                        f.isStrict() && (f.option["(explicitNewcap)"] || (f.option.newcap = !0), f.option.undef = !0)
14356                    }
14357
14358                    function _t(e, t, n, i, s) {
14359                        var o, u = m, a = g, l, c, h, p;
14360                        m = e, c = f.tokens.next;
14361                        var d = f.funct["(metrics)"];
14362                        d.nestedBlockDepth += 1, d.verifyMaxNestedBlockDepthPerFunction();
14363                        if (f.tokens.next.id === "{") {
14364                            V("{"), f.funct["(scope)"].stack(), h = f.tokens.curr.line;
14365                            if (f.tokens.next.id !== "}") {
14366                                g += f.option.indent;
14367                                while (!e && f.tokens.next.from > g) g += f.option.indent;
14368                                if (n) {
14369                                    l = {};
14370                                    for (p in f.directive) r.has(f.directive, p) && (l[p] = f.directive[p]);
14371                                    Mt(), f.option.strict && f.funct["(context)"]["(global)"] && !l["use strict"] && !f.isStrict() && F("E007")
14372                                }
14373                                o = Ot(), d.statementCount += o.length, g -= f.option.indent
14374                            }
14375                            V("}", c), n && (f.funct["(scope)"].validateParams(), l && (f.directive = l)), f.funct["(scope)"].unstack(), g = a
14376                        } else if (!e) if (n) {
14377                            f.funct["(scope)"].stack(), l = {}, t && !i && !f.inMoz() && q("W118", f.tokens.curr, "function closure expressions");
14378                            if (!t) for (p in f.directive) r.has(f.directive, p) && (l[p] = f.directive[p]);
14379                            Q(10), f.option.strict && f.funct["(context)"]["(global)"] && !l["use strict"] && !f.isStrict() && F("E007"), f.funct["(scope)"].unstack()
14380                        } else q("E021", f.tokens.next, "{", f.tokens.next.value); else f.funct["(noblockscopedvar)"] = f.tokens.next.id !== "for", f.funct["(scope)"].stack(), (!t || f.option.curly) && F("W116", f.tokens.next, "{", f.tokens.next.value), f.tokens.next.inBracelessBlock = !0, g += f.option.indent, o = [At()], g -= f.option.indent, f.funct["(scope)"].unstack(), delete f.funct["(noblockscopedvar)"];
14381                        switch (f.funct["(verb)"]) {
14382                            case"break":
14383                            case"continue":
14384                            case"return":
14385                            case"throw":
14386                                if (s) break;
14387                            default:
14388                                f.funct["(verb)"] = null
14389                        }
14390                        return m = u, e && f.option.noempty && (!o || o.length === 0) && F("W035", f.tokens.prev), d.nestedBlockDepth -= 1, o
14391                    }
14392
14393                    function Dt(e) {
14394                        E && typeof E[e] != "boolean" && F("W036", f.tokens.curr, e), typeof w[e] == "number" ? w[e] += 1 : w[e] = 1
14395                    }
14396
14397                    function Bt() {
14398                        var e = {};
14399                        e.exps = !0, f.funct["(comparray)"].stack();
14400                        var t = !1;
14401                        return f.tokens.next.value !== "for" && (t = !0, f.inMoz() || F("W116", f.tokens.next, "for", f.tokens.next.value), f.funct["(comparray)"].setState("use"), e.right = Q(10)), V("for"), f.tokens.next.value === "each" && (V("each"), f.inMoz() || F("W118", f.tokens.curr, "for each")), V("("), f.funct["(comparray)"].setState("define"), e.left = Q(130), r.contains(["in", "of"], f.tokens.next.value) ? V() : q("E045", f.tokens.curr), f.funct["(comparray)"].setState("generate"), Q(10), V(")"), f.tokens.next.value === "if" && (V("if"), V("("), f.funct["(comparray)"].setState("filter"), e.filter = Q(10), V(")")), t || (f.funct["(comparray)"].setState("use"), e.right = Q(10)), V("]"), f.funct["(comparray)"].unstack(), e
14402                    }
14403
14404                    function jt() {
14405                        return f.funct["(statement)"] && f.funct["(statement)"].type === "class" || f.funct["(context)"] && f.funct["(context)"]["(verb)"] === "class"
14406                    }
14407
14408                    function Ft(e) {
14409                        return e.identifier || e.id === "(string)" || e.id === "(number)"
14410                    }
14411
14412                    function It(e) {
14413                        var t, n = !0;
14414                        return typeof e == "object" ? t = e : (n = e, t = Nt(!1, !0, n)), t ? typeof t == "object" && (t.id === "(string)" || t.id === "(identifier)" ? t = t.value : t.id === "(number)" && (t = t.value.toString())) : f.tokens.next.id === "(string)" ? (t = f.tokens.next.value, n || V()) : f.tokens.next.id === "(number)" && (t = f.tokens.next.value.toString(), n || V()), t === "hasOwnProperty" && F("W001"), t
14415                    }
14416
14417                    function qt(e) {
14418                        function h(e) {
14419                            f.funct["(scope)"].addParam.apply(f.funct["(scope)"], e)
14420                        }
14421
14422                        var t, n = [], i, s = [], o, u = !1, a = !1, l = 0, c = e && e.loneArg;
14423                        if (c && c.identifier === !0) return f.funct["(scope)"].addParam(c.value, c), {
14424                            arity: 1,
14425                            params: [c.value]
14426                        };
14427                        t = f.tokens.next, (!e || !e.parsedOpening) && V("(");
14428                        if (f.tokens.next.id === ")") {
14429                            V(")");
14430                            return
14431                        }
14432                        for (; ;) {
14433                            l++;
14434                            var p = [];
14435                            if (r.contains(["{", "["], f.tokens.next.id)) {
14436                                s = Gt();
14437                                for (o in s) o = s[o], o.id && (n.push(o.id), p.push([o.id, o.token]))
14438                            } else {
14439                                pn(f.tokens.next, "...") && (a = !0), i = Ct(!0);
14440                                if (i) n.push(i), p.push([i, f.tokens.curr]); else while (!hn(f.tokens.next, [",", ")"])) V()
14441                            }
14442                            u && f.tokens.next.id !== "=" && q("W138", f.tokens.current), f.tokens.next.id === "=" && (f.inES6() || F("W119", f.tokens.next, "default parameters", "6"), V("="), u = !0, Q(10)), p.forEach(h);
14443                            if (f.tokens.next.id !== ",") return V(")", t), {arity: l, params: n};
14444                            a && F("W131", f.tokens.next), tt()
14445                        }
14446                    }
14447
14448                    function Rt(e, t, n) {
14449                        var i = {
14450                            "(name)": e,
14451                            "(breakage)": 0,
14452                            "(loopage)": 0,
14453                            "(tokens)": {},
14454                            "(properties)": {},
14455                            "(catch)": !1,
14456                            "(global)": !1,
14457                            "(line)": null,
14458                            "(character)": null,
14459                            "(metrics)": null,
14460                            "(statement)": null,
14461                            "(context)": null,
14462                            "(scope)": null,
14463                            "(comparray)": null,
14464                            "(generator)": null,
14465                            "(arrow)": null,
14466                            "(params)": null
14467                        };
14468                        return t && r.extend(i, {
14469                            "(line)": t.line,
14470                            "(character)": t.character,
14471                            "(metrics)": Vt(t)
14472                        }
14472), r.extend(i, n), i["(context)"] && (i["(scope)"] = i["(context)"]["(scope)"], i["(comparray)"] = i["(context)"]["(comparray)"]), i
14473                    }
14474
14475                    function Ut(e) {
14476                        return "(scope)" in e
14477                    }
14478
14479                    function zt(e) {
14480                        return e["(global)"] && !e["(verb)"]
14481                    }
14482
14483                    function Wt(e) {
14484                        function i() {
14485                            if (f.tokens.curr.template && f.tokens.curr.tail && f.tokens.curr.context === t) return !0;
14486                            var e = f.tokens.next.template && f.tokens.next.tail && f.tokens.next.context === t;
14487                            return e && V(), e || f.tokens.next.isUnclosed
14488                        }
14489
14490                        var t = this.context, n = this.noSubst, r = this.depth;
14491                        if (!n) while (!i()) !f.tokens.next.template || f.tokens.next.depth > r ? Q(0) : V();
14492                        return {id: "(template)", type: "(template)", tag: e}
14493                    }
14494
14495                    function Xt(e) {
14496                        var t, n, r, i, s, o, u, a, l = f.option, c = f.ignored;
14497                        e && (r = e.name, i = e.statement, s = e.classExprBinding, o = e.type === "generator", u = e.type === "arrow", a = e.ignoreLoopFunc), f.option = Object.create(f.option), f.ignored = Object.create(f.ignored), f.funct = Rt(r || f.nameStack.infer(), f.tokens.next, {
14498                            "(statement)": i,
14499                            "(context)": f.funct,
14500                            "(arrow)": u,
14501                            "(generator)": o
14502                        }), t = f.funct, n = f.tokens.curr, n.funct = f.funct, v.push(f.funct), f.funct["(scope)"].stack("functionouter");
14503                        var h = r || s;
14504                        h && f.funct["(scope)"].block.add(h, s ? "class" : "function", f.tokens.curr, !1), f.funct["(scope)"].stack("functionparams");
14505                        var p = qt(e);
14506                        return p ? (f.funct["(params)"] = p.params, f.funct["(metrics)"].arity = p.arity, f.funct["(metrics)"].verifyMaxParametersPerFunction()) : f.funct["(metrics)"].arity = 0, u && (f.inES6(!0) || F("W119", f.tokens.curr, "arrow function syntax (=>)", "6"), e.loneArg || V("=>")), _t(!1, !0, !0, u), !f.option.noyield && o && f.funct["(generator)"] !== "yielded" && F("W124", f.tokens.curr), f.funct["(metrics)"].verifyMaxStatementsPerFunction(), f.funct["(metrics)"].verifyMaxComplexityPerFunction(), f.funct["(unusedOption)"] = f.option.unused, f.option = l, f.ignored = c, f.funct["(last)"] = f.tokens.curr.line, f.funct["(lastcharacter)"] = f.tokens.curr.character, f.funct["(scope)"].unstack(), f.funct["(scope)"].unstack(), f.funct = f.funct["(context)"], !a && !f.option.loopfunc && f.funct["(loopage)"] && t["(isCapturing)"] && F("W083", n), t
14507                    }
14508
14509                    function Vt(e) {
14510                        return {
14511                            statementCount: 0,
14512                            nestedBlockDepth: -1,
14513                            ComplexityCount: 1,
14514                            arity: 0,
14515                            verifyMaxStatementsPerFunction: function () {
14516                                f.option.maxstatements && this.statementCount > f.option.maxstatements && F("W071", e, this.statementCount)
14517                            },
14518                            verifyMaxParametersPerFunction: function () {
14519                                r.isNumber(f.option.maxparams) && this.arity > f.option.maxparams && F("W072", e, this.arity)
14520                            },
14521                            verifyMaxNestedBlockDepthPerFunction: function () {
14522                                f.option.maxdepth && this.nestedBlockDepth > 0 && this.nestedBlockDepth === f.option.maxdepth + 1 && F("W073", null, this.nestedBlockDepth)
14523                            },
14524                            verifyMaxComplexityPerFunction: function () {
14525                                var t = f.option.maxcomplexity, n = this.ComplexityCount;
14526                                t && n > t && F("W074", e, n)
14527                            }
14528                        }
14529                    }
14530
14531                    function $t() {
14532                        f.funct["(metrics)"].ComplexityCount += 1
14533                    }
14534
14535                    function Jt(e) {
14536                        var t, n;
14537                        e && (t = e.id, n = e.paren, t === "," && (e = e.exprs[e.exprs.length - 1]) && (t = e.id, n = n || e.paren));
14538                        switch (t) {
14539                            case"=":
14540                            case"+=":
14541                            case"-=":
14542                            case"*=":
14543                            case"%=":
14544                            case"&=":
14545                            case"|=":
14546                            case"^=":
14547                            case"/=":
14548                                !n && !f.option.boss && F("W084")
14549                        }
14550                    }
14551
14552                    function Kt(e) {
14553                        if (f.inES5()) for (var t in e) e[t] && e[t].setterToken && !e[t].getterToken && F("W078", e[t].setterToken)
14554                    }
14555
14556                    function Qt(e, t) {
14557                        if (pn(f.tokens.next, ".")) {
14558                            var n = f.tokens.curr.id;
14559                            V(".");
14560                            var r = Ct();
14561                            return f.tokens.curr.isMetaProperty = !0, e !== r ? q("E057", f.tokens.prev, n, r) : t(), f.tokens.curr
14562                        }
14563                    }
14564
14565                    function Gt(e) {
14566                        var t = e && e.assignment;
14567                        return f.inES6() || F("W104", f.tokens.curr, t ? "destructuring assignment" : "destructuring binding", "6"), Yt(e)
14568                    }
14569
14570                    function Yt(e) {
14571                        var t, n = [], r = e && e.openingParsed, i = e && e.assignment, s = i ? {assignment: i} : null,
14572                            o = r ? f.tokens.curr : f.tokens.next, u = function () {
14573                                var e;
14574                                if (hn(f.tokens.next, ["[", "{"])) {
14575                                    t = Yt(s);
14576                                    for (var r in t) r = t[r], n.push({id: r.id, token: r.token})
14577                                } else if (pn(f.tokens.next, ",")) n.push({id: null, token: f.tokens.curr}); else {
14578                                    if (!pn(f.tokens.next, "(")) {
14579                                        var o = pn(f.tokens.next, "...");
14580                                        if (i) {
14581                                            var a = o ? W(0) : f.tokens.next;
14582                                            a.identifier || F("E030", a, a.value);
14583                                            var l = Q(155);
14584                                            l && (wt(l), l.identifier && (e = l.value))
14585                                        } else e = Ct();
14586                                        return e && n.push({id: e, token: f.tokens.curr}), o
14587                                    }
14588                                    V("("), u(), V(")")
14589                                }
14590                                return !1
14591                            }, a = function () {
14592                                var e;
14593                                pn(f.tokens.next, "[") ? (V("["), Q(10), V("]"), V(":"), u()) : f.tokens.next.id === "(string)" || f.tokens.next.id === "(number)" ? (V(), V(":"), u()) : (e = Ct(), pn(f.tokens.next, ":") ? (V(":"), u()) : e && (i && wt(f.tokens.curr), n.push({
14594                                    id: e,
14595                                    token: f.tokens.curr
14596                                })))
14597                            };
14598                        if (pn(o, "[")) {
14599                            r || V("["), pn(f.tokens.next, "]") && F("W137", f.tokens.curr);
14600                            var l = !1;
14601                            while (!pn(f.tokens.next, "]")) u() && !l && pn(f.tokens.next, ",") && (F("W130", f.tokens.next), l = !0), pn(f.tokens.next, "=") && (pn(f.tokens.prev, "...") ? V("]") : V("="), f.tokens.next.id === "undefined" && F("W080", f.tokens.prev, f.tokens.prev.value), Q(10)), pn(f.tokens.next, "]") || V(",");
14602                            V("]")
14603                        } else if (pn(o, "{")) {
14604                            r || V("{"), pn(f.tokens.next, "}") && F("W137", f.tokens.curr);
14605                            while (!pn(f.tokens.next, "}")) {
14606                                a(), pn(f.tokens.next, "=") && (V("="), f.tokens.next.id === "undefined" && F("W080", f.tokens.prev, f.tokens.prev.value), Q(10));
14607                                if (!pn(f.tokens.next, "}")) {
14608                                    V(",");
14609                                    if (pn(f.tokens.next, "}")) break
14610                                }
14611                            }
14612                            V("}")
14613                        }
14614                        return n
14615                    }
14616
14617                    function Zt(e, t) {
14618                        var n = t.first;
14619                        if (!n) return;
14620                        r.zip(e, Array.isArray(n) ? n : [n]).forEach(function (e) {
14621                            var t = e[0], n = e[1];
14622                            t && n ? t.first = n : t && t.first && !n && F("W080", t.first, t.first.value)
14623                        })
14624                    }
14625
14626                    function en(e, t, n) {
14627                        var i = n && n.prefix, s = n && n.inexport, o = e === "let", u = e === "const", a, l, c, h;
14628                        f.inES6() || F("W104", f.tokens.curr, e, "6"), o && f.tokens.next.value === "(" ? (f.inMoz() || F("W118", f.tokens.next, "let block"), V("("), f.funct["(scope)"].stack(), h = !0) : f.funct["(noblockscopedvar)"] && q("E048", f.tokens.curr, u ? "Const" : "Let"), t.first = [];
14629                        for (; ;) {
14630                            var p = [];
14631                            r.contains(["{", "["], f.tokens.next.value) ? (a = Gt(), l = !1) : (a = [{
14632                                id: Ct(),
14633                                token: f.tokens.curr
14634                            }], l = !0), !i && u && f.tokens.next.id !== "=" && F("E012", f.tokens.curr, f.tokens.curr.value);
14635                            for (var d in a) a.hasOwnProperty(d) && (d = a[d], f.funct["(scope)"].block.isGlobal() && S[d.id] === !1 && F("W079", d.token, d.id), d.id && !f.funct["(noblockscopedvar)"] && (f.funct["(scope)"].addlabel(d.id, {
14636                                type: e,
14637                                token: d.token
14638                            }), p.push(d.token), l && s && f.funct["(scope)"].setExported(d.token.value, d.token)));
14639                            f.tokens.next.id === "=" && (V("="), !i && f.tokens.next.id === "undefined" && F("W080", f.tokens.prev, f.tokens.prev.value), !i && W(0).id === "=" && f.tokens.next.identifier && F("W120", f.tokens.next, f.tokens.next.value), c = Q(i ? 120 : 10), l ? a[0].first = c : Zt(p, c)), t.first = t.first.concat(p);
14640                            if (f.tokens.next.id !== ",") break;
14641                            tt()
14642                        }
14643                        return h && (V(")"), _t(!0, !0), t.block = !0, f.funct["(scope)"].unstack()), t
14644                    }
14645
14646                    function sn(e) {
14647                        return f.inES6() || F("W104", f.tokens.curr, "class", "6"), e ? (this.name = Ct(), f.funct["(scope)"].addlabel(this.name, {
14648                            type: "class",
14649                            token: f.tokens.curr
14650                        })) : f.tokens.next.identifier && f.tokens.next.value !== "extends" ? (this.name = Ct(), this.namedExpr = !0) : this.name = f.nameStack.infer(), on(this), this
14651                    }
14652
14653                    function on(e) {
14654                        var t = f.inClassBody;
14655                        f.tokens.next.value === "extends" && (V("extends"), e.heritage = Q(10)), f.inClassBody = !0, V("{"), e.body = un(e), V("}"), f.inClassBody = t
14656                    }
14657
14658                    function un(e) {
14659                        var t, n, r, i, s = Object.create(null), o = Object.create(null), u;
14660                        for (var a = 0; f.tokens.next.id !== "}"; ++a) {
14661                            t = f.tokens.next, n = !1, r = !1, i = null;
14662                            if (t.id === ";") {
14663                                F("W032"), V(";");
14664                                continue
14665                            }
14666                            t.id === "*" && (r = !0, V("*"), t = f.tokens.next);
14667                            if (t.id === "[") t = cn(), u = !0; else {
14668                                if (!Ft(t)) {
14669                                    F("W052", f.tokens.next, f.tokens.next.value || f.tokens.next.type), V();
14670                                    continue
14671                                }
14672                                V(), u = !1;
14673                                if (t.identifier && t.value === "static") {
14674                                    pn(f.tokens.next, "*") && (r = !0, V("*"));
14675                                    if (Ft(f.tokens.next) || f.tokens.next.id === "[") u = f.tokens.next.id === "[", n = !0, t = f.tokens.next, f.tokens.next.id === "[" ? t = cn() : V()
14676                                }
14677                                t.identifier && (t.value === "get" || t.value === "set") && (Ft(f.tokens.next) || f.tokens.next.id === "[") && (u = f.tokens.next.id === "[", i = t, t = f.tokens.next, f.tokens.next.id === "[" ? t = cn() : V())
14678                            }
14679                            if (!pn(f.tokens.next, "(")) {
14680                                q("E054", f.tokens.next, f.tokens.next.value);
14681                                while (f.tokens.next.id !== "}" && !pn(f.tokens.next, "(")) V();
14682                                f.tokens.next.value !== "(" && Xt({statement: e})
14683                            }
14684                            u || (i ? ln(i.value, n ? o : s, t.value, t, !0, n) : (t.value === "constructor" ? f.nameStack.set(e) : f.nameStack.set(t), fn(n ? o : s, t.value, t, !0, n)));
14685                            if (i && t.value === "constructor") {
14686                                var l = i.value === "get" ? "class getter method" : "class setter method";
14687                                q("E049", t, l, "constructor")
14688                            } else t.value === "prototype" && q("E049", t, "class method", "prototype");
14689                            It(t), Xt({
14690                                statement: e,
14691                                type: r ? "generator" : null,
14692                                classExprBinding: e.namedExpr ? e.name : null
14693                            })
14694                        }
14695                        Kt(s)
14696                    }
14697
14698                    function fn(e, t, n, r, i) {
14699                        var s = ["key", "class method", "static class method"];
14700                        s = s[(r || !1) + (i || !1)], n.identifier && (t = n.value), e[t] && t !== "__proto__" ? F("W075", f.tokens.next, s, t) : e[t] = Object.create(null), e[t].basic = !0, e[t].basictkn = n
14701                    }
14702
14703                    function ln(e, t, n, r, i, s) {
14704                        var o = e === "get" ? "getterToken" : "setterToken", u = "";
14705                        i ? (s && (u += "static "), u += e + "ter method") : u = "key", f.tokens.curr.accessorType = e, f.nameStack.set(r), t[n] ? (t[n].basic || t[n][o]) && n !== "__proto__" && F("W075", f.tokens.next, u, n) : t[n] = Object.create(null), t[n][o] = r
14706                    }
14707
14708                    function cn() {
14709                        V("["), f.inES6() || F("W119", f.tokens.curr, "computed property names", "6");
14710                        var e = Q(10);
14711                        return V("]"), e
14712                    }
14713
14714                    function hn(e, t) {
14715                        return e.type === "(punctuator)" ? r.contains(t, e.value) : !1
14716                    }
14717
14718                    function pn(e, t) {
14719                        return e.type === "(punctuator)" && e.value === t
14720                    }
14721
14722                    function dn() {
14723                        var e = an();
14724                        e.notJson ? (!f.inES6() && e.isDestAssign && F("W104", f.tokens.curr, "destructuring assignment", "6"), Ot()) : (f.option.laxbreak = !0, f.jsonMode = !0, mn())
14725                    }
14726
14727                    function mn() {
14728                        function e() {
14729                            var e = {}, t = f.tokens.next;
14730                            V("{");
14731                            if (f.tokens.next.id !== "}") for (; ;) {
14732                                if (f.tokens.next.id === "(end)") q("E026", f.tokens.next, t.line); else {
14733                                    if (f.tokens.next.id === "}") {
14734                                        F("W094", f.tokens.curr);
14735                                        break
14736                                    }
14737                                    f.tokens.next.id === "," ? q("E028", f.tokens.next) : f.tokens.next.id !== "(string)" && F("W095", f.tokens.next, f.tokens.next.value)
14738                                }
14739                                e[f.tokens.next.value] === !0 ? F("W075", f.tokens.next, "key", f.tokens.next.value) : f.tokens.next.value === "__proto__" && !f.option.proto || f.tokens.next.value === "__iterator__" && !f.option.iterator ? F("W096", f.tokens.next, f.tokens.next.value) : e[f.tokens.next.value] = !0, V(), V(":"), mn();
14740                                if (f.tokens.next.id !== ",") break;
14741                                V(",")
14742                            }
14743                            V("}")
14744                        }
14745
14746                        function t() {
14747                            var e = f.tokens.next;
14748                            V("[");
14749                            if (f.tokens.next.id !== "]") for (; ;) {
14750                                if (f.tokens.next.id === "(end)") q("E027", f.tokens.next, e.line); else {
14751                                    if (f.tokens.next.id === "]") {
14752                                        F("W094", f.tokens.curr);
14753                                        break
14754                                    }
14755                                    f.tokens.next.id === "," && q("E028", f.tokens.next)
14756                                }
14757                                mn();
14758                                if (f.tokens.next.id !== ",") break;
14759                                V(",")
14760                            }
14761                            V("]")
14762                        }
14763
14764                        switch (f.tokens.next.id) {
14765                            case"{":
14766                                e();
14767                                break;
14768                            case"[":
14769                                t();
14770                                break;
14771                            case"true":
14772                            case"false":
14773                            case"null":
14774                            case"(number)":
14775                            case"(string)":
14776                                V();
14777                                break;
14778                            case"-":
14779                                V("-"), V("(number)");
14780                                break;
14781                            default:
14782                                q("E003", f.tokens.next)
14783                        }
14784                    }
14785
14786                    var e, t = {
14787                            "<": !0,
14788                            "<=": !0,
14789                            "==": !0,
14790                            "===": !0,
14791                            "!==": !0,
14792                            "!=": !0,
14793                            ">": !0,
14794                            ">=": !0,
14795                            "+": !0,
14796                            "-": !0,
14797                            "*": !0,
14798                            "/": !0,
14799                            "%": !0
14800                        }, n, d = ["closure", "exception", "global", "label", "outer", "unused", "var"], v, m, g, y, b, w, E, S,
14801                        x, T, N = [], C = new i.EventEmitter, mt = {};
14802                    mt.legacy = ["xml", "unknown"], mt.es3 = ["undefined", "boolean", "number", "string", "function", "object"], mt.es3 = mt.es3.concat(mt.legacy), mt.es6 = mt.es3.concat("symbol"), at("(number)", function () {
14803                        return this
14804                    }), at("(string)", function () {
14805                        return this
14806                    }), f.syntax["(identifier)"] = {
14807                        type: "(identifier)", lbp: 0, identifier: !0, nud: function () {
14808                            var e = this.value;
14809                            return f.tokens.next.id === "=>" ? this : (f.funct["(comparray)"].check(e) || f.funct["(scope)"].block.use(e, f.tokens.curr), this)
14810                        }, led: function () {
14811                            q("E033", f.tokens.next, f.tokens.next.value)
14812                        }
14813                    };
14814                    var Pt = {lbp: 0, identifier: !1, template: !0};
14815                    f.syntax["(template)"] = r.extend({
14816                        type: "(template)",
14817                        nud: Wt,
14818                        led: Wt,
14819                        noSubst: !1
14820                    }, Pt), f.syntax["(template middle)"] = r.extend({
14821                        type: "(template middle)",
14822                        middle: !0,
14823                        noSubst: !1
14824                    }, Pt), f.syntax["(template tail)"] = r.extend({
14825                        type: "(template tail)",
14826                        tail: !0,
14827                        noSubst: !1
14828                    }, Pt), f.syntax["(no subst template)"] = r.extend({
14829                        type: "(template)",
14830                        nud: Wt,
14831                        led: Wt,
14832                        noSubst: !0,
14833                        tail: !0
14834                    }, Pt), at("(regexp)", function () {
14835                        return this
14836                    }), rt("(endline)"), rt("(begin)"), rt("(end)").reach = !0, rt("(error)").reach = !0, rt("}").reach = !0, rt(")"), rt("]"), rt('"').reach = !0, rt("'").reach = !0, rt(";"), rt(":").reach = !0, rt("#"), ft("else"), ft("case").reach = !0, ft("catch"), ft("default").reach = !0, ft("finally"), ct("arguments", function (e) {
14837                        f.isStrict() && f.funct["(global)"] && F("E008", e)
14838                    }), ct("eval"), ct("false"), ct("Infinity"), ct("null"), ct("this", function (e) {
14839                        f.isStrict() && !jt() && !f.option.validthis && (f.funct["(statement)"] && f.funct["(name)"].charAt(0) > "Z" || f.funct["(global)"]) && F("W040", e)
14840                    }), ct("true"), ct("undefined"), Et("=", "assign", 20), Et("+=", "assignadd", 20), Et("-=", "assignsub", 20), Et("*=", "assignmult", 20), Et("/=", "assigndiv", 20).nud = function () {
14841                        q("E014")
14842                    }, Et("%=", "assignmod", 20), xt("&="), xt("|="), xt("^="), xt("<<="), xt(">>="), xt(">>>="), ht(",", function (e, t) {
14843                        var n;
14844                        t.exprs = [e], f.option.nocomma && F("W127");
14845                        if (!tt({peek: !0})) return t;
14846                        for (; ;) {
14847                            if (!(n = Q(10))) break;
14848                            t.exprs.push(n);
14849                            if (f.tokens.next.value !== "," || !tt()) break
14850                        }
14851                        return t
14852                    }, 10, !0), ht("?", function (e, t) {
14853                        return $t(), t.left = e, t.right = Q(10), V(":"), t["else"] = Q(10), t
14854                    }, 30);
14855                    var Ht = 40;
14856                    ht("||", function (e, t) {
14857                        return $t(), t.left = e, t.right = Q(Ht), t
14858                    }, Ht), ht("&&", "and", 50), St("|", "bitor", 70), St("^", "bitxor", 80), St("&", "bitand", 90), dt("==", function (e, t) {
14859                        var n = f.option.eqnull && ((e && e.value) === "null" || (t && t.value) === "null");
14860                        switch (!0) {
14861                            case!n && f.option.eqeqeq:
14862                                this.from = this.character, F("W116", this, "===", "==");
14863                                break;
14864                            case vt(e):
14865                                F("W041", this, "===", e.value);
14866                                break;
14867                            case vt(t):
14868                                F("W041", this, "===", t.value);
14869                                break;
14870                            case gt(t, e, f):
14871                                F("W122", this, t.value);
14872                                break;
14873                            case gt(e, t, f):
14874                                F("W122", this, e.value)
14875                        }
14876                        return this
14877                    }), dt("===", function (e, t) {
14878                        return gt(t, e, f) ? F("W122", this, t.value) : gt(e, t, f) && F("W122", this, e.value), this
14879                    }), dt("!=", function (e, t) {
14880                        var n = f.option.eqnull && ((e && e.value) === "null" || (t && t.value) === "null");
14881                        return !n && f.option.eqeqeq ? (this.from = this.character, F("W116", this, "!==", "!=")) : vt(e) ? F("W041", this, "!==", e.value) : vt(t) ? F("W041", this, "!==", t.value) : gt(t, e, f) ? F("W122", this, t.value) : gt(e, t, f) && F("W
14881122", this, e.value), this
14882                    }), dt("!==", function (e, t) {
14883                        return gt(t, e, f) ? F("W122", this, t.value) : gt(e, t, f) && F("W122", this, e.value), this
14884                    }), dt("<"), dt(">"), dt("<="), dt(">="), St("<<", "shiftleft", 120), St(">>", "shiftright", 120), St(">>>", "shiftrightunsigned", 120), ht("in", "in", 120), ht("instanceof", "instanceof", 120), ht("+", function (e, t) {
14885                        var n;
14886                        return t.left = e, t.right = n = Q(130), e && n && e.id === "(string)" && n.id === "(string)" ? (e.value += n.value, e.character = n.character, !f.option.scripturl && a.javascriptURL.test(e.value) && F("W050", e), e) : t
14887                    }, 130), ut("+", "num"), ut("+++", function () {
14888                        return F("W007"), this.arity = "unary", this.right = Q(150), this
14889                    }), ht("+++", function (e) {
14890                        return F("W007"), this.left = e, this.right = Q(130), this
14891                    }, 130), ht("-", "sub", 130), ut("-", "neg"), ut("---", function () {
14892                        return F("W006"), this.arity = "unary", this.right = Q(150), this
14893                    }), ht("---", function (e) {
14894                        return F("W006"), this.left = e, this.right = Q(130), this
14895                    }, 130), ht("*", "mult", 140), ht("/", "div", 140), ht("%", "mod", 140), Tt("++"), ut("++", "preinc"), f.syntax["++"].exps = !0, Tt("--"), ut("--", "predec"), f.syntax["--"].exps = !0, ut("delete", function () {
14896                        var e = Q(10);
14897                        return e ? (e.id !== "." && e.id !== "[" && F("W051"), this.first = e, e.identifier && !f.isStrict() && (e.forgiveUndef = !0), this) : this
14898                    }).exps = !0, ut("~", function () {
14899                        return f.option.bitwise && F("W016", this, "~"), this.arity = "unary", this.right = Q(150), this
14900                    }), ut("...", function () {
14901                        return f.inES6(!0) || F("W119", this, "spread/rest operator", "6"), !f.tokens.next.identifier && f.tokens.next.type !== "(string)" && !hn(f.tokens.next, ["[", "("]) && q("E030", f.tokens.next, f.tokens.next.value), Q(150), this
14902                    }), ut("!", function () {
14903                        return this.arity = "unary", this.right = Q(150), this.right || B("E041", this.line || 0), t[this.right.id] === !0 && F("W018", this, "!"), this
14904                    }), ut("typeof", function () {
14905                        var e = Q(150);
14906                        return this.first = this.right = e, e || B("E041", this.line || 0, this.character || 0), e.identifier && (e.forgiveUndef = !0), this
14907                    }), ut("new", function () {
14908                        var e = Qt("target", function () {
14909                            f.inES6(!0) || F("W119", f.tokens.prev, "new.target", "6");
14910                            var e, t = f.funct;
14911                            while (t) {
14912                                e = !t["(global)"];
14913                                if (!t["(arrow)"]) break;
14914                                t = t["(context)"]
14915                            }
14916                            e || F("W136", f.tokens.prev, "new.target")
14917                        });
14918                        if (e) return e;
14919                        var t = Q(155), n;
14920                        if (t && t.id !== "function") if (t.identifier) {
14921                            t["new"] = !0;
14922                            switch (t.value) {
14923                                case"Number":
14924                                case"String":
14925                                case"Boolean":
14926                                case"Math":
14927                                case"JSON":
14928                                    F("W053", f.tokens.prev, t.value);
14929                                    break;
14930                                case"Symbol":
14931                                    f.inES6() && F("W053", f.tokens.prev, t.value);
14932                                    break;
14933                                case"Function":
14934                                    f.option.evil || F("W054");
14935                                    break;
14936                                case"Date":
14937                                case"RegExp":
14938                                case"this":
14939                                    break;
14940                                default:
14941                                    t.id !== "function" && (n = t.value.substr(0, 1), f.option.newcap && (n < "A" || n > "Z") && !f.funct["(scope)"].isPredefined(t.value) && F("W055", f.tokens.curr))
14942                            }
14943                        } else t.id !== "." && t.id !== "[" && t.id !== "(" && F("W056", f.tokens.curr); else f.option.supernew || F("W057", this);
14944                        return f.tokens.next.id !== "(" && !f.option.supernew && F("W058", f.tokens.curr, f.tokens.curr.value), this.first = this.right = t, this
14945                    }), f.syntax["new"].exps = !0, ut("void").exps = !0, ht(".", function (e, t) {
14946                        var n = Ct(!1, !0);
14947                        return typeof n == "string" && Dt(n), t.left = e, t.right = n, n && n === "hasOwnProperty" && f.tokens.next.value === "=" && F("W001"), !e || e.value !== "arguments" || n !== "callee" && n !== "caller" ? !f.option.evil && e && e.value === "document" && (n === "write" || n === "writeln") && F("W060", e) : f.option.noarg ? F("W059", e, n) : f.isStrict() && q("E008"), !f.option.evil && (n === "eval" || n === "execScript") && yt(e, f) && F("W061"), t
14948                    }, 160, !0), ht("(", function (e, t) {
14949                        f.option.immed && e && !e.immed && e.id === "function" && F("W062");
14950                        var n = 0, r = [];
14951                        e && e.type === "(identifier)" && e.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/) && "Array Number String Boolean Date Object Error Symbol".indexOf(e.value) === -1 && (e.value === "Math" ? F("W063", e) : f.option.newcap && F("W064", e));
14952                        if (f.tokens.next.id !== ")") for (; ;) {
14953                            r[r.length] = Q(10), n += 1;
14954                            if (f.tokens.next.id !== ",") break;
14955                            tt()
14956                        }
14957                        return V(")"), typeof e == "object" && (!f.inES5() && e.value === "parseInt" && n === 1 && F("W065", f.tokens.curr), f.option.evil || (e.value === "eval" || e.value === "Function" || e.value === "execScript" ? (F("W061", e), r[0] && [0].id === "(string)" && U(e, r[0].value)) : !r[0] || r[0].id !== "(string)" || e.value !== "setTimeout" && e.value !== "setInterval" ? r[0] && r[0].id === "(string)" && e.value === "." && e.left.value === "window" && (e.right === "setTimeout" || e.right === "setInterval") && (F("W066", e), U(e, r[0].value)) : (F("W066", e), U(e, r[0].value))), !e.identifier && e.id !== "." && e.id !== "[" && e.id !== "=>" && e.id !== "(" && e.id !== "&&" && e.id !== "||" && e.id !== "?" && (!f.inES6() || !e["(name)"]) && F("W067", t)), t.left = e, t
14958                    }, 155, !0).exps = !0, ut("(", function () {
14959                        var e = f.tokens.next, t, n = -1, r, i, s, o, u = 1, a = f.tokens.curr, l = f.tokens.prev,
14960                            c = !f.option.singleGroups;
14961                        do e.value === "(" ? u += 1 : e.value === ")" && (u -= 1), n += 1, t = e, e = W(n); while ((u !== 0 || t.value !== ")") && e.value !== ";" && e.type !== "(end)");
14962                        f.tokens.next.id === "function" && (i = f.tokens.next.immed = !0);
14963                        if (e.value === "=>") return Xt({type: "arrow", parsedOpening: !0});
14964                        var h = [];
14965                        if (f.tokens.next.id !== ")") for (; ;) {
14966                            h.push(Q(10));
14967                            if (f.tokens.next.id !== ",") break;
14968                            f.option.nocomma && F("W127"), tt()
14969                        }
14970                        V(")", this), f.option.immed && h[0] && h[0].id === "function" && f.tokens.next.id !== "(" && f.tokens.next.id !== "." && f.tokens.next.id !== "[" && F("W068", this);
14971                        if (!h.length) return;
14972                        return h.length > 1 ? (r = Object.create(f.syntax[","]), r.exprs = h, s = h[0], o = h[h.length - 1], c || (c = l.assign || l.delim)) : (r = s = o = h[0], c || (c = a.beginsStmt && (r.id === "{" || i || Ut(r)) || i && (!J() || f.tokens.prev.id !== "}") || Ut(r) && !J() || r.id === "{" && l.id === "=>" || r.type === "(number)" && pn(e, ".") && /^\d+$/.test(r.value))), r && (!c && (s.left || s.right || r.exprs) && (c = !K(l) && s.lbp <= l.lbp || !J() && o.lbp < f.tokens.next.lbp), c || F("W126", a), r.paren = !0), r
14973                    }), pt("=>"), ht("[", function (e, t) {
14974                        var n = Q(10), r;
14975                        return n && n.type === "(string)" && (!f.o
14975ption.evil && (n.value === "eval" || n.value === "execScript") && yt(e, f) && F("W061"), Dt(n.value), !f.option.sub && a.identifier.test(n.value) && (r = f.syntax[n.value], (!r || !O(r)) && F("W069", f.tokens.prev, n.value))), V("]", t), n && n.value === "hasOwnProperty" && f.tokens.next.value === "=" && F("W001"), t.left = e, t.right = n, t
14976                    }, 160, !0), ut("[", function () {
14977                        var e = an();
14978                        if (e.isCompArray) return !f.option.esnext && !f.inMoz() && F("W118", f.tokens.curr, "array comprehension"), Bt();
14979                        if (e.isDestAssign) return this.destructAssign = Gt({openingParsed: !0, assignment: !0}), this;
14980                        var t = f.tokens.curr.line !== G(f.tokens.next);
14981                        this.first = [], t && (g += f.option.indent, f.tokens.next.from === g + f.option.indent && (g += f.option.indent));
14982                        while (f.tokens.next.id !== "(end)") {
14983                            while (f.tokens.next.id === ",") {
14984                                if (!f.option.elision) {
14985                                    if (!!f.inES5()) {
14986                                        F("W128");
14987                                        do V(","); while (f.tokens.next.id === ",");
14988                                        continue
14989                                    }
14990                                    F("W070")
14991                                }
14992                                V(",")
14993                            }
14994                            if (f.tokens.next.id === "]") break;
14995                            this.first.push(Q(10));
14996                            if (f.tokens.next.id !== ",") break;
14997                            tt({allowTrailing: !0});
14998                            if (f.tokens.next.id === "]" && !f.inES5()) {
14999                                F("W070", f.tokens.curr);
15000                                break
15001                            }
15002                        }
15003                        return t && (g -= f.option.indent), V("]", this), this
15004                    }), function (e) {
15005                        e.nud = function () {
15006                            var e, t, n, r, i, s = !1, o, u = Object.create(null);
15007                            e = f.tokens.curr.line !== G(f.tokens.next), e && (g += f.option.indent, f.tokens.next.from === g + f.option.indent && (g += f.option.indent));
15008                            var a = an();
15009                            if (a.isDestAssign) return this.destructAssign = Gt({openingParsed: !0, assignment: !0}), this;
15010                            for (; ;) {
15011                                if (f.tokens.next.id === "}") break;
15012                                o = f.tokens.next.value;
15013                                if (!f.tokens.next.identifier || X().id !== "," && X().id !== "}") if (W().id === ":" || o !== "get" && o !== "set") {
15014                                    f.tokens.next.value === "*" && f.tokens.next.type === "(punctuator)" ? (f.inES6() || F("W104", f.tokens.next, "generator functions", "6"), V("*"), s = !0) : s = !1;
15015                                    if (f.tokens.next.id === "[") n = cn(), f.nameStack.set(n); else {
15016                                        f.nameStack.set(f.tokens.next), n = It(), fn(u, n, f.tokens.next);
15017                                        if (typeof n != "string") break
15018                                    }
15019                                    f.tokens.next.value === "(" ? (f.inES6() || F("W104", f.tokens.curr, "concise methods", "6"), Xt({type: s ? "generator" : null})) : (V(":"), Q(10))
15020                                } else V(o), f.inES5() || q("E034"), n = It(), !n && !f.inES6() && q("E035"), n && ln(o, u, n, f.tokens.curr), i = f.tokens.next, t = Xt(), r = t["(params)"], o === "get" && n && r ? F("W076", i, r[0], n) : o === "set" && n && (!r || r.length !== 1) && F("W077", i, n); else f.inES6() || F("W104", f.tokens.next, "object short notation", "6"), n = It(!0), fn(u, n, f.tokens.next), Q(10);
15021                                Dt(n);
15022                                if (f.tokens.next.id !== ",") break;
15023                                tt({
15024                                    allowTrailing: !0,
15025                                    property: !0
15026                                }), f.tokens.next.id === "," ? F("W070", f.tokens.curr) : f.tokens.next.id === "}" && !f.inES5() && F("W070", f.tokens.curr)
15027                            }
15028                            return e && (g -= f.option.indent), V("}", this), Kt(u), this
15029                        }, e.fud = function () {
15030                            q("E036", f.tokens.curr)
15031                        }
15032                    }(rt("{"));
15033                    var tn = it("const", function (e) {
15034                        return en("const", this, e)
15035                    });
15036                    tn.exps = !0;
15037                    var nn = it("let", function (e) {
15038                        return en("let", this, e)
15039                    });
15040                    nn.exps = !0;
15041                    var rn = it("var", function (e) {
15042                        var t = e && e.prefix, n = e && e.inexport, i, o, u, a = e && e.implied, l = !e || !e.ignore;
15043                        this.first = [];
15044                        for (; ;) {
15045                            var c = [];
15046                            r.contains(["{", "["], f.tokens.next.value) ? (i = Gt(), o = !1) : (i = [{
15047                                id: Ct(),
15048                                token: f.tokens.curr
15049                            }], o = !0), (!t || !a) && l && f.option.varstmt && F("W132", this), this.first = this.first.concat(c);
15050                            for (var h in i) i.hasOwnProperty(h) && (h = i[h], !a && f.funct["(global)"] && (S[h.id] === !1 ? F("W079", h.token, h.id) : f.option.futurehostile === !1 && (!f.inES5() && s.ecmaIdentifiers[5][h.id] === !1 || !f.inES6() && s.ecmaIdentifiers[6][h.id] === !1) && F("W129", h.token, h.id)), h.id && (a === "for" ? (f.funct["(scope)"].has(h.id) || l && F("W088", h.token, h.id), f.funct["(scope)"].block.use(h.id, h.token)) : (f.funct["(scope)"].addlabel(h.id, {
15051                                type: "var",
15052                                token: h.token
15053                            }), o && n && f.funct["(scope)"].setExported(h.id, h.token)), c.push(h.token)));
15054                            f.tokens.next.id === "=" && (f.nameStack.set(f.tokens.curr), V("="), !t && l && !f.funct["(loopage)"] && f.tokens.next.id === "undefined" && F("W080", f.tokens.prev, f.tokens.prev.value), W(0).id === "=" && f.tokens.next.identifier && (!t && l && !f.funct["(params)"] || f.funct["(params)"].indexOf(f.tokens.next.value) === -1) && F("W120", f.tokens.next, f.tokens.next.value), u = Q(t ? 120 : 10), o ? i[0].first = u : Zt(c, u));
15055                            if (f.tokens.next.id !== ",") break;
15056                            tt()
15057                        }
15058                        return this
15059                    });
15060                    rn.exps = !0, st("class", function () {
15061                        return sn.call(this, !0)
15062                    }), st("function", function (e) {
15063                        var t = e && e.inexport, n = !1;
15064                        f.tokens.next.value === "*" && (V("*"), f.inES6({strict: !0}) ? n = !0 : F("W119", f.tokens.curr, "function*", "6")), m && F("W082", f.tokens.curr);
15065                        var r = Nt();
15066                        return f.funct["(scope)"].addlabel(r, {
15067                            type: "function",
15068                            token: f.tokens.curr
15069                        }), r === undefined ? F("W025") : t && f.funct["(scope)"].setExported(r, f.tokens.prev), Xt({
15070                            name: r,
15071                            statement: this,
15072                            type: n ? "generator" : null,
15073                            ignoreLoopFunc: m
15074                        }), f.tokens.next.id === "(" && f.tokens.next.line === f.tokens.curr.line && q("E039"), this
15075                    }), ut("function", function () {
15076                        var e = !1;
15077                        f.tokens.next.value === "*" && (f.inES6() || F("W119", f.tokens.curr, "function*", "6"), V("*"), e = !0);
15078                        var t = Nt();
15079                        return Xt({name: t, type: e ? "generator" : null}), this
15080                    }), st("if", function () {
15081                        var e = f.tokens.next;
15082                        $t(), f.condition = !0, V("(");
15083                        var t = Q(0);
15084                        Jt(t);
15085                        var n = null;
15086                        f.option.forin && f.forinifcheckneeded && (f.forinifcheckneeded = !1, n = f.forinifchecks[f.forinifchecks.length - 1], t.type === "(punctuator)" && t.value === "!" ? n.type = "(negative)" : n.type = "(positive)"), V(")", e), f.condition = !1;
15087                        var r = _t(!0, !0);
15088                        return n && n.type === "(negative)" && r && r[0] && r[0].type === "(identifier)" && r[0].value === "continue" && (n.type = "(negative-with-continue)"), f.tokens.next.id === "else" && (V("else"), f.tokens.next.id === "if" || f.tokens.next.id === "switch" ? At() : _t(!0, !0)), this
15089                    }), st("try", function () {
15090                        function t() {
15091                            V("catch"), V("("), f.funct["(scope)"].stack("catchparams");
15092                            if (hn(f.tokens.next, ["[", "{"])) {
15093                                var e = Gt();
15094                                r.each(e, function (e) {
15095                                    e.id && f.funct["(scope)"].addParam(e.id, e, "exception")
15096                                })
15097                            } else f.tokens.next.type !== "(identifier)" ? F("E030", f.tokens.next, f.tokens.next.value) : f.funct["(scope)"].addParam(Ct(), f.tokens.curr, "exception");
15098                            f.tokens.next.value === "if" && (f.inMoz() || F("W118", f.tokens.curr, "catch filter"), V("if"), Q(0)), V(")"), _t(!1), f.funct["(scope)"].unstack()
15099                        }
15100
15101                        var e;
15102                        _t(!0);
15103                        while (f.tokens.next.id === "catch") $t(), e && !f.inMoz() && F("W118", f.tokens.next, "multiple catch blocks"), t(), e = !0;
15104                        if (f.tokens.next.id === "finally") {
15105                            V("finally"), _t(!0);
15106                            return
15107                        }
15108                        return e || q("E021", f.tokens.next, "catch", f.tokens.next.value), this
15109                    }), st("while", function () {
15110                        var e = f.tokens.next;
15111                        return f.funct["(breakage)"] += 1, f.funct["(loopage)"] += 1, $t(), V("("), Jt(Q(0)), V(")", e), _t(!0, !0), f.funct["(breakage)"] -= 1, f.funct["(loopage)"] -= 1, this
15112                    }).labelled = !0, st("with", function () {
15113                        var e = f.tokens.next;
15114                        return f.isStrict() ? q("E010", f.tokens.curr) : f.option.withstmt || F("W085", f.tokens.curr), V("("), Q(0), V(")", e), _t(!0, !0), this
15115                    }), st("switch", function () {
15116                        var e = f.tokens.next, t = !1, n = !1;
15117                        f.funct["(breakage)"] += 1, V("("), Jt(Q(0)), V(")", e), e = f.tokens.next, 
15117V("{"), f.tokens.next.from === g && (n = !0), n || (g += f.option.indent), this.cases = [];
15118                        for (; ;) switch (f.tokens.next.id) {
15119                            case"case":
15120                                switch (f.funct["(verb)"]) {
15121                                    case"yield":
15122                                    case"break":
15123                                    case"case":
15124                                    case"continue":
15125                                    case"return":
15126                                    case"switch":
15127                                    case"throw":
15128                                        break;
15129                                    default:
15130                                        f.tokens.curr.caseFallsThrough || F("W086", f.tokens.curr, "case")
15131                                }
15132                                V("case"), this.cases.push(Q(0)), $t(), t = !0, V(":"), f.funct["(verb)"] = "case";
15133                                break;
15134                            case"default":
15135                                switch (f.funct["(verb)"]) {
15136                                    case"yield":
15137                                    case"break":
15138                                    case"continue":
15139                                    case"return":
15140                                    case"throw":
15141                                        break;
15142                                    default:
15143                                        this.cases.length && (f.tokens.curr.caseFallsThrough || F("W086", f.tokens.curr, "default"))
15144                                }
15145                                V("default"), t = !0, V(":");
15146                                break;
15147                            case"}":
15148                                n || (g -= f.option.indent), V("}", e), f.funct["(breakage)"] -= 1, f.funct["(verb)"] = undefined;
15149                                return;
15150                            case"(end)":
15151                                q("E023", f.tokens.next, "}");
15152                                return;
15153                            default:
15154                                g += f.option.indent;
15155                                if (t) switch (f.tokens.curr.id) {
15156                                    case",":
15157                                        q("E040");
15158                                        return;
15159                                    case":":
15160                                        t = !1, Ot();
15161                                        break;
15162                                    default:
15163                                        q("E025", f.tokens.curr);
15164                                        return
15165                                } else {
15166                                    if (f.tokens.curr.id !== ":") {
15167                                        q("E021", f.tokens.next, "case", f.tokens.next.value);
15168                                        return
15169                                    }
15170                                    V(":"), q("E024", f.tokens.curr, ":"), Ot()
15171                                }
15172                                g -= f.option.indent
15173                        }
15174                        return this
15175                    }).labelled = !0, it("debugger", function () {
15176                        return f.option.debug || F("W087", this), this
15177                    }).exps = !0, function () {
15178                        var e = it("do", function () {
15179                            f.funct["(breakage)"] += 1, f.funct["(loopage)"] += 1, $t(), this.first = _t(!0, !0), V("while");
15180                            var e = f.tokens.next;
15181                            return V("("), Jt(Q(0)), V(")", e), f.funct["(breakage)"] -= 1, f.funct["(loopage)"] -= 1, this
15182                        });
15183                        e.labelled = !0, e.exps = !0
15184                    }(), st("for", function () {
15185                        var e, t = f.tokens.next, n = !1, i = null;
15186                        t.value === "each" && (i = t, V("each"), f.inMoz() || F("W118", f.tokens.curr, "for each")), $t(), V("(");
15187                        var s, o = 0, u = ["in", "of"], a = 0, l, c;
15188                        hn(f.tokens.next, ["{", "["]) && ++a;
15189                        do {
15190                            s = W(o), ++o, hn(s, ["{", "["]) ? ++a : hn(s, ["}", "]"]) && --a;
15191                            if (a < 0) break;
15192                            a === 0 && (!l && pn(s, ",") ? l = s : !c && pn(s, "=") && (c = s))
15193                        } while (a > 0 || !r.contains(u, s.value) && s.value !== ";" && s.type !== "(end)");
15194                        if (r.contains(u, s.value)) {
15195                            !f.inES6() && s.value === "of" && F("W104", s, "for of", "6");
15196                            var h = !c && !l;
15197                            c && q("W133", l, s.value, "initializer is forbidden"), l && q("W133", l, s.value, "more than one ForBinding"), f.tokens.next.id === "var" ? (V("var"), f.tokens.curr.fud({prefix: !0})) : f.tokens.next.id === "let" || f.tokens.next.id === "const" ? (V(f.tokens.next.id), n = !0, f.funct["(scope)"].stack(), f.tokens.curr.fud({prefix: !0})) : Object.create(rn).fud({
15198                                prefix: !0,
15199                                implied: "for",
15200                                ignore: !h
15201                            }), V(s.value), Q(20), V(")", t), s.value === "in" && f.option.forin && (f.forinifcheckneeded = !0, f.forinifchecks === undefined && (f.forinifchecks = []), f.forinifchecks.push({type: "(none)"})), f.funct["(breakage)"] += 1, f.funct["(loopage)"] += 1, e = _t(!0, !0);
15202                            if (s.value === "in" && f.option.forin) {
15203                                if (f.forinifchecks && f.forinifchecks.length > 0) {
15204                                    var p = f.forinifchecks.pop();
15205                                    (e && e.length > 0 && (typeof e[0] != "object" || e[0].value !== "if") || p.type === "(positive)" && e.length >
15205 1 || p.type === "(negative)") && F("W089", this)
15206                                }
15207                                f.forinifcheckneeded = !1
15208                            }
15209                            f.funct["(breakage)"] -= 1, f.funct["(loopage)"] -= 1
15210                        } else {
15211                            i && q("E045", i);
15212                            if (f.tokens.next.id !== ";") if (f.tokens.next.id === "var") V("var"), f.tokens.curr.fud(); else if (f.tokens.next.id === "let") V("let"), n = !0, f.funct["(scope)"].stack(), f.tokens.curr.fud(); else for (; ;) {
15213                                Q(0, "for");
15214                                if (f.tokens.next.id !== ",") break;
15215                                l()
15216                            }
15217                            Z(f.tokens.curr), V(";"), f.funct["(loopage)"] += 1, f.tokens.next.id !== ";" && Jt(Q(0)), Z(f.tokens.curr), V(";"), f.tokens.next.id === ";" && q("E021", f.tokens.next, ")", ";");
15218                            if (f.tokens.next.id !== ")") for (; ;) {
15219                                Q(0, "for");
15220                                if (f.tokens.next.id !== ",") break;
15221                                l()
15222                            }
15223                            V(")", t), f.funct["(breakage)"] += 1, _t(!0, !0), f.funct["(breakage)"] -= 1, f.funct["(loopage)"] -= 1
15224                        }
15225                        return n && f.funct["(scope)"].unstack(), this
15226                    }).labelled = !0, it("break", function () {
15227                        var e = f.tokens.next.value;
15228                        return f.option.asi || Z(this), f.tokens.next.id !== ";" && !f.tokens.next.reach && f.tokens.curr.line === G(f.tokens.next) ? (f.funct["(scope)"].funct.hasBreakLabel(e) || F("W090", f.tokens.next, e), this.first = f.tokens.next, V()) : f.funct["(breakage)"] === 0 && F("W052", f.tokens.next, this.value), kt(this), this
15229                    }).exps = !0, it("continue", function () {
15230                        var e = f.tokens.next.value;
15231                        return f.funct["(breakage)"] === 0 && F("W052", f.tokens.next, this.value), f.funct["(loopage)"] || F("W052", f.tokens.next, this.value), f.option.asi || Z(this), f.tokens.next.id !== ";" && !f.tokens.next.reach && f.tokens.curr.line === G(f.tokens.next) && (f.funct["(scope)"].funct.hasBreakLabel(e) || F("W090", f.tokens.next, e), this.first = f.tokens.next, V()), kt(this), this
15232                    }).exps = !0, it("return", function () {
15233                        return this.line === G(f.tokens.next) ? f.tokens.next.id !== ";" && !f.tokens.next.reach && (this.first = Q(0), this.first && this.first.type === "(punctuator)" && this.first.value === "=" && !this.first.paren && !f.option.boss && I("W093", this.first.line, this.first.character)) : f.tokens.next.type === "(punctuator)" && ["[", "{", "+", "-"].indexOf(f.tokens.next.value) > -1 && Z(this), kt(this), this
15234                    }).exps = !0, function (e) {
15235                        e.exps = !0, e.lbp = 25
15236                    }(ut("yield", function () {
15237                        var e = f.tokens.prev;
15238                        f.inES6(!0) && !f.funct["(generator)"] ? ("(catch)" !== f.funct["(name)"] || !f.funct["(context)"]["(generator)"]) && q("E046", f.tokens.curr, "yield") : f.inES6() || F("W104", f.tokens.curr, "yield", "6"), f.funct["(generator)"] = "yielded";
15239                        var t = !1;
15240                        f.tokens.next.value === "*" && (t = !0, V("*"));
15241                        if (this.line === G(f.tokens.next) || !f.inMoz()) {
15242                            if (t || f.tokens.next.id !== ";" && !f.option.asi && !f.tokens.next.reach && f.tokens.next.nud) Y(f.tokens.curr, f.tokens.next), this.first = Q(10), this.first.type === "(punctuator)" && this.first.value === "=" && !this.first.paren && !f.option.boss && I("W093", this.first.line, this.first.character);
15243                            f.inMoz() && f.tokens.next.id !== ")" && (e.lbp > 30 || !e.assign && !J() || e.id === "yield") && q("E050", this)
15244                        } else f.option.asi || Z(this);
15245                        return this
15246                    })), it("throw", function () {
15247                        return Z(this), this.first = Q(20), kt(this), this
15248                    }).exps = !0, it("import", function () {
15249                        f.inES6() || F("W119", f.tokens.curr, "import", "6");
15250                        if (f.tokens.next.type === "(string)") return V("(string)"), this;
15251                        if (f.tokens.next.identifier) {
15252                            this.name = Ct(), f.funct["(scope)"].addlabel(this.name, {type: "const", token: f.tokens.curr});
15253                            if (f.tokens.next.value !== ",") return V("from"), V("(string)"), this;
15254                            V(",")
15255                        }
15256                        if (f.tokens.next.id === "*") V("*"), V("as"), f.tokens.next.identifier && (this.name = Ct(), f.funct["(scope)"].addlabel(this.name, {
15257                            type: "const",
15258                            token: f.tokens.curr
15259                        })); else {
15260                            V("{");
15261                            for (; ;) {
15262                                if (f.tokens.next.value === "}") {
15263                                    V("}");
15264                                    break
15265                                }
15266                                var e;
15267                                f.tokens.next.type === "default" ? (e = "default", V("default")) : e = Ct(), f.tokens.next.value === "as" && (V("as"), e = Ct()), f.funct["(scope)"].addlabel(e, {
15268                                    type: "const",
15269                                    token: f.tokens.curr
15270                                });
15271                                if (f.tokens.next.value !== ",") {
15272                                    if (f.tokens.next.value === "}") {
15273                                        V("}");
15274                                        break
15275                                    }
15276                                    q("E024", f.tokens.next, f.tokens.next.value);
15277                                    break
15278                                }
15279                                V(",")
15280                            }
15281                        }
15282                        return V("from"), V("(string)"), this
15283                    }).exps = !0, it("export", function () {
15284                        var e = !0, t, n;
15285                        f.inES6() || (F("W119", f.tokens.curr, "export", "6"), e = !1), f.funct["(scope)"].block.isGlobal() || (q("E053", f.tokens.curr), e = !1);
15286                        if (f.tokens.next.value === "*") return V("*"), V("from"), V("(string)"), this;
15287                        if (f.tokens.next.type === "default") {
15288                            f.nameStack.set(f.tokens.next), V("default");
15289                            var r = f.tokens.next.id;
15290                            if (r === "function" || r === "class") this.block = !0;
15291                            return t = W(), Q(10), n = t.value, this.block && (f.funct["(scope)"].addlabel(n, {
15292                                type: r,
15293                                token: t
15294                            }), f.funct["(scope)"].setExported(n, t)), this
15295                        }
15296                        if (f.tokens.next.value === "{") {
15297                            V("{");
15298                            var i = [];
15299                            for (; ;) {
15300                                f.tokens.next.identifier || q("E030", f.tokens.next, f.tokens.next.value), V(), i.push(f.tokens.curr), f.tokens.next.value === "as" && (V("as"), f.tokens.next.identifier || q("E030", f.tokens.next, f.tokens.next.value), V());
15301                                if (f.tokens.next.value !== ",") {
15302                                    if (f.tokens.next.value === "}") {
15303                                        V("}");
15304                                        break
15305                                    }
15306                                    q("E024", f.tokens.next, f.tokens.next.value);
15307                                    break
15308                                }
15309                                V(",")
15310                            }
15311                            return f.tokens.next.value === "from" ? (V("from"), V("(string)")) : e && i.forEac
15311h(function (e) {
15312                                f.funct["(scope)"].setExported(e.value, e)
15313                            }), this
15314                        }
15315                        if (f.tokens.next.id === "var") V("var"), f.tokens.curr.fud({inexport: !0}); else if (f.tokens.next.id === "let") V("let"), f.tokens.curr.fud({inexport: !0}); else if (f.tokens.next.id === "const") V("const"), f.tokens.curr.fud({inexport: !0}); else if (f.tokens.next.id === "function") this.block = !0, V("function"), f.syntax["function"].fud({inexport: !0}); else if (f.tokens.next.id === "class") {
15316                            this.block = !0, V("class");
15317                            var s = f.tokens.next;
15318                            f.syntax["class"].fud(), f.funct["(scope)"].setExported(s.value, s)
15319                        } else q("E024", f.tokens.next, f.tokens.next.value);
15320                        return this
15321                    }).exps = !0, lt("abstract"), lt("boolean"), lt("byte"), lt("char"), lt("class", {
15322                        es5: !0,
15323                        nud: sn
15324                    }), lt("double"), lt("enum", {es5: !0}), lt("export", {es5: !0}), lt("extends", {es5: !0}), lt("final"), lt("float"), lt("goto"), lt("implements", {
15325                        es5: !0,
15326                        strictOnly: !0
15327                    }), lt("import", {es5: !0}), lt("int"), lt("interface", {
15328                        es5: !0,
15329                        strictOnly: !0
15330                    }), lt("long"), lt("native"), lt("package", {es5: !0, strictOnly: !0}), lt("private", {
15331                        es5: !0,
15332                        strictOnly: !0
15333                    }), lt("protected", {es5: !0, strictOnly: !0}), lt("public", {
15334                        es5: !0,
15335                        strictOnly: !0
15336                    }), lt("short"), lt("static", {
15337                        es5: !0,
15338                        strictOnly: !0
15339                    }), lt("super", {es5: !0}), lt("synchronized"), lt("transient"), lt("volatile");
15340                    var an = function () {
15341                        var e, t, n, r = -1, i = 0, s = {};
15342                        hn(f.tokens.curr, ["[", "{"]) && (i += 1);
15343                        do {
15344                            n = r === -1 ? f.tokens.curr : e, e = r === -1 ? f.tokens.next : W(r), t = W(r + 1), r += 1, hn(e, ["[", "{"]) ? i += 1 : hn(e, ["]", "}"]) && (i -= 1);
15345                            if (i === 1 && e.identifier && e.value === "for" && !pn(n, ".")) {
15346                                s.isCompArray = !0, s.notJson = !0;
15347                                break
15348                            }
15349                            if (i === 0 && hn(e, ["}", "]"])) {
15350                                if (t.value === "=") {
15351                                    s.isDestAssign = !0, s.notJson = !0;
15352                                    break
15353                                }
15354                                if (t.value === ".") {
15355                                    s.notJson = !0;
15356                                    break
15357                                }
15358                            }
15359                            pn(e, ";") && (s.isBlock = !0, s.notJson = !0)
15360                        } while (i > 0 && e.id !== "(end)");
15361                        return s
15362                    }, vn = function () {
15363                        function i(e) {
15364                            var t = n.variables.filter(function (t) {
15365                                if (t.value === e) return t.undef = !1, e
15366                            }).length;
15367                            return t !== 0
15368                        }
15369
15370                        function s(e) {
15371                            var t = n.variables.filter(function (t) {
15372                                if (t.value === e && !t.undef) return t.unused === !0 && (t.unused = !1), e
15373                            }).length;
15374                            return t === 0
15375                        }
15376
15377                        var e = function () {
15378                            this.mode = "use", this.variables = []
15379                        }, t = [], n;
15380                        return {
15381                            stack: function () {
15382                                n = new e, t.push(n)
15383                            }, unstack: function () {
15384                                n.variables.filter(function (e) {
15385                                    e.unused && F("W098", e.token, e.raw_text || e.value), e.undef && f.funct["(scope)"].block.use(e.value, e.token)
15386                                }), t.splice(-1, 1), n = t[t.length - 1]
15387                            }, setState: function (e) {
15388                                r.contains(["use", "define", "generate", "filter"], e) && (n.mode = e)
15389                            }, check: function (e) {
15390                                if (!n) return;
15391                                return n && n.mode === "use" ? (s(e) && n.variables.push({
15392                                    funct: f.funct,
15393                                    token: f.tokens.curr,
15394                                    value: e,
15395                                    undef: !0,
15396                                    unused: !1
15397                                }), !0) : n && n.mode === "define" ? (i(e) || n.variables.push({
15398                                    funct: f.funct,
15399                                    token: f.tokens.curr,
15400                                    value: e,
15401                                    undef: !1,
15402                                    unused: !0
15403                                }), !0) : n && n.mode === "generate" ? (f.funct["(scope)"].block.use(e, f.tokens.curr), !0) : n && n.mode === "filter" ? (s(e) && f.funct["(scope)"].block.use(e, f.tokens.curr), !0) : !1
15404                            }
15405                        }
15406                    }, gn = function (e) {
15407                        return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
15408                    }, yn = function (t, i, o) {
15409                        function U(e, t) {
15410                            if (!e) return;
15411                            !Array.isArray(e) && typeof e == "object" && (e = Object.keys(e)), e.forEach(t)
15412                        }
15413
15414                        var a, l, c, d, A, O, M = {}, P = {};
15415                        i = r.clone(i), f.reset(), i && i.scope ? p.scope = i.scope : (p.errors = [], p.undefs = [], p.internals = [], p.blackl
15415ist = {}, p.scope = "(main)"), S = Object.create(null), D(S, s.ecmaIdentifiers[3]), D(S, s.reservedVars), D(S, o || {}), n = Object.create(null);
15416                        var j = Object.create(null);
15417                        if (i) {
15418                            U(i.predef || null, function (e) {
15419                                var t, n;
15420                                e[0] === "-" ? (t = e.slice(1), p.blacklist[t] = t, delete S[t]) : (n = Object.getOwnPropertyDescriptor(i.predef, e), S[e] = n ? n.value : !1)
15421                            }), U(i.exported || null, function (e) {
15422                                j[e] = !0
15423                            }), delete i.predef, delete i.exported, O = Object.keys(i);
15424                            for (c = 0; c < O.length; c++) if (/^-W\d{3}$/g.test(O[c])) P[O[c].slice(1)] = !0; else {
15425                                var z = O[c];
15426                                M[z] = i[z], (z === "esversion" && i[z] === 5 || z === "es5" && i[z]) && F("I003"), O[c] === "newcap" && i[z] === !1 && (M["(explicitNewcap)"] = !0)
15427                            }
15428                        }
15429                        f.option = M, f.ignored = P, f.option.indent = f.option.indent || 4, f.option.maxerr = f.option.maxerr || 50, g = 1;
15430                        var W = h(f, S, j, n);
15431                        W.on("warning", function (e) {
15432                            F.apply(null, [e.code, e.token].concat(e.data))
15433                        }), W.on("error", function (e) {
15434                            q.apply(null, [e.code, e.token].concat(e.data))
15435                        }), f.funct = Rt("(global)", null, {
15436                            "(global)": !0,
15437                            "(scope)": W,
15438                            "(comparray)": vn(),
15439                            "(metrics)": Vt(f.tokens.next)
15440                        }), v = [f.funct], T = [], x = null, w = {}, E = null, m = !1, y = [];
15441                        if (!L(t) && !Array.isArray(t)) return R("E004", 0), !1;
15442                        e = {
15443                            get isJSON() {
15444                                return f.jsonMode
15445                            }, getOption: function (e) {
15446                                return f.option[e] || null
15447                            }, getCache: function (e) {
15448                                return f.cache[e]
15449                            }, setCache: function (e, t) {
15450                                f.cache[e] = t
15451                            }, warn: function (e, t) {
15452                                I.apply(null, [e, t.line, t.char].concat(t.data))
15453                            }, on: function (e, t) {
15454                                e.split(" ").forEach(function (e) {
15455                                    C.on(e, t)
15456                                }.bind(this))
15457                            }
15458                        }, C.removeAllListeners(), (N || []).forEach(function (t) {
15459                            t(e)
15460                        }), f.tokens.prev = f.tokens.curr = f.tokens.next = f.syntax["(begin)"], i && i.ignoreDelimiters && (Array.isArray(i.ignoreDelimiters) || (i.ignoreDelimiters = [i.ignoreDelimiters]), i.ignoreDelimiters.forEach(function (e) {
15461                            if (!e.start || !e.end) return;
15462                            d = gn(e.start) + "[\\s\\S]*?" + gn(e.end), A = new RegExp(d, "ig"), t = t.replace(A, function (e) {
15463                                return e.replace(/./g, " ")
15464                            })
15465                        })), b = new u(t), b.on("warning", function (e) {
15466                            I.apply(null, [e.code, e.line, e.character].concat(e.data))
15467                        }), b.on("error", function (e) {
15468                            R.apply(null, [e.code, e.line, e.character].concat(e.data))
15469                        }), b.on("fatal", function (e) {
15470                            B("E041", e.line, e.from)
15471                        }), b.on("Identifier", function (e) {
15472                            C.emit("Identifier", e)
15473                        }), b.on("String", function (e) {
15474                            C.emit("String", e)
15475                        }), b.on("Number", function (e) {
15476                            C.emit("Number", e)
15477                        }), b.start();
15478                        for (var X in i) r.has(i, X) && k(X, f.tokens.curr);
15479                        H(), D(S, o || {}), tt.first = !0;
15480                        try {
15481                            V();
15482                            switch (f.tokens.next.id) {
15483                                case"{":
15484                                case"[":
15485                                    dn();
15486                                    break;
15487                                default:
15488                                    Mt(), f.directive["use strict"] && f.option.strict !== "global" && F("W097", f.tokens.prev), Ot()
15489                            }
15490                            f.tokens.next.id !== "(end)" && B("E041", f.tokens.curr.line), f.funct["(scope)"].unstack()
15491                        } catch ($) {
15492                            if (!$ || $.name !== "JSHintError") throw $;
15493                            var J = f.tokens.next || {};
15494                            p.errors.push({
15495                                scope: "(main)",
15496                                raw: $.raw,
15497                                code: $.code,
15498                                reason: $.message,
15499                                line: $.line || J.line,
15500                                character: $.character || J.from
15501                            }, null)
15502                        }
15503                        if (p.scope === "(main)") {
15504                            i = i || {};
15505                            for (a = 0; a < p.internals.length; a += 1) l = p.internals[a], i.scope = l.elem, yn(l.value, i, o)
15506                        }
15507                        return p.errors.length === 0
15508                    };
15509                    return yn.addModule = function (e) {
15510                        N.push(e)
15511                    }, yn.addModule(l.register), yn.data = function () {
15512                        var e = {functions: [], options: f.option}, t, n, r, i, s, o;
15513                        yn.errors.length && (e.errors = yn.errors), f.jsonMode && (e.json = !0);
15514                        var u = f.funct["(scope)"].getImpliedGlobals();
15515                        u.length > 0 && (e.implieds = u), T.length > 0 && (e.urls = T), o = f.funct["(scope)"].getUsedOrDefinedGlobals(), o.length > 0 && (e.globals = o);
15516                        for (r = 1; r < v.length; r += 1) {
15517                            n = v[r], t = {};
15518                            for (i = 0; i < d.length; i += 1) t[d[i]] = [];
15519                            for (i = 0; i < d.length; i += 1) t[d[i]].length === 0 && delete t[d[i]];
15520                            t.name = n["(name)"], t.param = n["(params)"], t.line = n["(line)"], t.character = n["(character)"], t.last = n["(last)"], t.lastcharacter = n["(lastcharacter)"], t.metrics = {
15521                                complexity: n["(metrics)"].ComplexityCount,
15522                                parameters: n["(metrics)"].arity,
15523                                statements: n["(metrics)"].statementCount
15524                            }, e.functions.push(t)
15525                        }
15526                        var a = f.funct["(scope)"].getUnuseds();
15527                        a.length > 0 && (e.unused = a);
15528                        for (s in w) if (typeof w[s] == "number") {
15529                            e.member = w;
15530                            break
15531                        }
15532                        return e
15533                    }, yn.jshint = yn, yn
15534                }();
15535            typeof n == "object" && n && (n.JSHINT = p)
15536        }, {
15537            "../lodash": "/node_modules/jshint/lodash.js",
15538            "./lex.js": "/node_modules/jshint/src/lex.js",
15539            "./messages.js": "/node_modules/jshint/src/messages.js",
15540            "./options.js": "/node_modules/jshint/src/options.js",
15541            "./reg.js": "/node_modules/jshint/src/reg.js",
15542            "./scope-manager.js": "/node_modules/jshint/src/scope-manager.js",
15543            "./state.js": "/node_modules/jshint/src/state.js",
15544            "./style.js": "/node_modules/jshint/src/style.js",
15545            "./vars.js": "/node_modules/jshint/src/vars.js",
15546            events: "/node_modules/browserify/node_modules/events/events.js"
15547        }],
15548        "/node_modules/jshint/src/lex.js": [function (e, t, n) {
15549            "use strict";
15550
15551            function h() {
15552                var e = [];
15553                return {
15554                    push: function (t) {
15555                        e.push(t)
15556                    }, check: function () {
15557                        for (var t = 0; t < e.length; ++t) e[t]();
15558                        e.splice(0, e.length)
15559                    }
15560                }
15561            }
15562
15563            function p(e) {
15564                var t = e;
15565                typeof t == "string" && (t = t.replace(/\r\n/g, "\n").replace(/\r/g, "\n").split("\n")), t[0] && t[0].substr(0, 2) === "#!" && (t[0].indexOf("node") !== -1 && (o.option.node = !0), t[0] = ""), this.emitter = new i.EventEmitter, this.source = e, this.setLines(t), this.prereg = !0, this.line = 0, this.char = 1, this.from = 1, this.input = "", this.inComment = !1, this.context = [], this.templateStarts = [];
15566                for (var n = 0; n < o.option.indent; n += 1) o.tab += " ";
15567                this.ignoreLinterErrors = !1
15568            }
15569
15570            var r = e("../lodash"), i = e("events"), s = e("./reg.js"), o = e("./state.js").state,
15571                u = e("../data/ascii-identifier-data.js"), a = u.asciiIdentifierStartTable,
15572                f = u.asciiIdentifierPartTable, l = {
15573                    Identifier: 1,
15574                    Punctuator: 2,
15575                    NumericLiteral: 3,
15576                    StringLiteral: 4,
15577                    Comment: 5,
15578                    Keyword: 6,
15579                    NullLiteral: 7,
15580                    BooleanLiteral: 8,
15581                    RegExp: 9,
15582                    TemplateHead: 10,
15583                    TemplateMiddle: 11,
15584                    TemplateTail: 12,
15585                    NoSubstTemplate: 13
15586                }, c = {Block: 1, Template: 2};
15587            p.prototype = {
15588                _lines: [], inContext: function (e) {
15589                    return this.context.length > 0 && this.context[this.context.length - 1].type === e
15590                }, pushContext: function (e) {
15591                    this.context.push({type: e})
15592                }, popContext: function () {
15593                    return this.context.pop()
15594                }, isContext: function (e) {
15595                    return this.context.length > 0 && this.context[this.context.length - 1] === e
15596                }, currentContext: function () {
15597                    return this.context.length > 0 && this.context[this.context.length - 1]
15598                }, getLines: function () {
15599                    return this._lines = o.lines, this._lines
15600                }, setLines: function (e) {
15601                    this._lines = e, o.lines = this._lines
15602                }, peek: function (e) {
15603                    return this.input.charAt(e || 0)
15604                }, skip: function (e) {
15605                    e = e || 1, this.char += e, this.input = this.input.slice(e)
15606                }, on: function (e, t) {
15607                    e.split(" ").forEach(function (e) {
15608                        this.emitter.on(e, t)
15609                    }.bind(this))
15610                }, trigger: function () {
15611                    this.emitter.emit.apply(this.emitter, Array.prototype.slice.call(arguments))
15612                }, triggerAsync: function (e, t, n, r) {
15613                    n.push(function () {
15614                        r() && this.trigger(e, t)
15615                    }.bind(this))
15616                }, scanPunctuator: function () {
15617                    var e = this.peek(), t, n, r;
15618                    switch (e) {
15619                        case".":
15620                            if (/^[0-9]$/.test(this.peek(1))) return null;
15621                            if (this.peek(1) === "." && this.peek(2) === ".") return {type: l.Punctuator, value: "..."};
15622                        case"(":
15623                        case")":
15624                        case";":
15625                        case",":
15626                        case"[":
15627                        case"]":
15628                        case":":
15629                        case"~":
15630                        case"?":
15631                            return {type: l.Punctuator, value: e};
15632                        case"{":
15633                            return this.pushContext(c.Block), {t
15633ype: l.Punctuator, value: e};
15634                        case"}":
15635                            return this.inContext(c.Block) && this.popContext(), {type: l.Punctuator, value: e};
15636                        case"#":
15637                            return {type: l.Punctuator, value: e};
15638                        case"":
15639                            return null
15640                    }
15641                    return t = this.peek(1), n = this.peek(2), r = this.peek(3), e === ">" && t === ">" && n === ">" && r === "=" ? {
15642                        type: l.Punctuator,
15643                        value: ">>>="
15644                    } : e === "=" && t === "=" && n === "=" ? {
15645                        type: l.Punctuator,
15646                        value: "==="
15647                    } : e === "!" && t === "=" && n === "=" ? {
15648                        type: l.Punctuator,
15649                        value: "!=="
15650                    } : e === ">" && t === ">" && n === ">" ? {
15651                        type: l.Punctuator,
15652                        value: ">>>"
15653                    } : e === "<" && t === "<" && n === "=" ? {
15654                        type: l.Punctuator,
15655                        value: "<<="
15656                    } : e === ">" && t === ">" && n === "=" ? {
15657                        type: l.Punctuator,
15658                        value: ">>="
15659                    } : e === "=" && t === ">" ? {
15660                        type: l.Punctuator,
15661                        value: e + t
15662                    } : e === t && "+-<>&|".indexOf(e) >= 0 ? {
15663                        type: l.Punctuator,
15664                        value: e + t
15665                    } : "<>=!+-*%&|^".indexOf(e) >= 0 ? t === "=" ? {
15666                        type: l.Punctuator,
15667                        value: e + t
15668                    } : {type: l.Punctuator, value: e} : e === "/" ? t === "=" ? {
15669                        type: l.Punctuator,
15670                        value: "/="
15671                    } : {type: l.Punctuator, value: "/"} : null
15672                }, scanComments: function () {
15673                    function u(e, t, n) {
15674                        var r = ["jshint", "jslint", "members", "member", "globals", "global", "exported"], i = !1,
15675                            u = e + t, a = "plain";
15676                        return n = n || {}, n.isMultiline && (u += "*/"), t = t.replace(/\n/g, " "), e === "/*" && s.fallsThrough.test(t) && (i = !0, a = "falls through"), r.forEach(function (n) {
15677                            if (i) return;
15678                            if (e === "//" && n !== "jshint") return;
15679                            t.charAt(n.length) === " " && t.substr(0, n.length) === n && (i = !0, e += n, t = t.substr(n.length)), !i && t.charAt(0) === " " && t.charAt(n.length + 1) === " " && t.substr(1, n.length) === n && (i = !0, e = e + " " + n, t = t.substr(n.length + 1));
15680                            if (!i) return;
15681                            switch (n) {
15682                                case"member":
15683                                    a = "members";
15684                                    break;
15685                                case"global":
15686                                    a = "globals";
15687                                    break;
15688                                default:
15689                                    var r = t.split(":").map(function (e) {
15690                                        return e.replace(/^\s+/, "").replace(/\s+$/, "")
15691                                    });
15692                                    if (r.length === 2) switch (r[0]) {
15693                                        case"ignore":
15694                                            switch (r[1]) {
15695                                                case"start":
15696                                                    o.ignoringLinterErrors = !0, i = !1;
15697                                                    break;
15698                                                case"end":
15699                                                    o.ignoringLinterErrors = !1, i = !1
15700                                            }
15701                                    }
15702                                    a = n
15703                            }
15704                        }), {
15705                            type: l.Comment,
15706                            commentType: a,
15707                            value: u,
15708                            body: t,
15709                            isSpecial: i,
15710                            isMultiline: n.isMultiline || !1,
15711                            isMalformed: n.isMalformed || !1
15712                        }
15713                    }
15714
15715                    var e = this.peek(), t = this.peek(1), n = this.input.substr(2), r = this.line, i = this.char,
15716                        o = this;
15717                    if (e === "*" && t === "/") return this.trigger("error", {
15718                        code: "E018",
15719                        line: r,
15720                        character: i
15721                    }), this.skip(2), null;
15722                    if (e !== "/" || t !== "*" && t !== "/") return null;
15723                    if (t === "/") return this.skip(this.input.length), u("//", n);
15724                    var a = "";
15725                    if (t === "*") {
15726                        this.inComment = !0, this.skip(2);
15727                        while (this.peek() !== "*" || this.peek(1) !== "/") if (this.peek() === "") {
15728                            a += "\n";
15729                            if (!this.nextLine()) return this.trigger("error", {
15730                                code: "E017",
15731                                line: r,
15732                                character: i
15733                            }), this.inComment = !1, u("/*", a, {isMultiline: !0, isMalformed: !0})
15734                        } else a += this.peek(), this.skip();
15735                        return this.skip(2), this.inComment = !1, u("/*", a, {isMultiline: !0})
15736                    }
15737                }, scanKeyword: function () {
15738                    var e = /^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),
15739                        t = ["if", "in", "do", "var", "for", "new", "try", "let", "this", "else", "case", "void", "with", "enum", "while", "break", "catch", "throw", "const", "yield", "class", "super", "return", "typeof", "delete", "switch", "export", "import", "default", "finally", "extends", "function", "continue", "debugger", "instanceof"];
15740                    return e && t.indexOf(e[0]) >= 0 ? {type: l.Keyword, value: e[0]} : null
15741                }, scanIdentifier: function () {
15742                    function i(e) {
15743                        return e > 256
15744                    }
15745
15746                    function s(e) {
15747                        return e > 256
15748                    }
15749
15750                    function o(e) {
15751                        return /^[0-9a-fA-F]$/.test(e)
15752                    }
15753
15754                    function p(e) {
15755                        return e.replace(/\\u([0-9a-fA-F]{4})/g, function (e, t) {
15756                            return String.fromCharCode(parseInt(t, 16))
15757                        })
15758                    }
15759
15760                    var e = "", t = 0, n, r, u = function () {
15761                        t += 1;
15762                        if (this.peek(t) !== "u") return null;
15763                        var e = this.peek(t + 1), n = this.peek(t + 2), r = this.peek(t + 3), i = this.peek(t + 4), u;
15764                        return o(e) && o(n) && o(r) && o(i) ? (u = parseInt(e + n + r + i, 16), f[u] || s(u) ? (t += 5, "\\u" + e + n + r + i) : null) : null
15765                    }.bind(this), c = function () {
15766                        var e = this.peek(t), n = e.charCodeAt(0);
15767                        return n === 92 ? u() : n < 128 ? a[n] ? (t += 1, e) : null : i(n) ? (t += 1, e) : null
15768                    }.bind(this), h = function () {
15769                        var e = this.peek(t), n = e.charCodeAt(0);
15770                        return n === 92 ? u() : n < 128 ? f[n] ? (t += 1, e) : null : s(n) ? (t += 1, e) : null
15771                    }.bind(this);
15772                    r = c();
15773                    if (r === null) return null;
15774                    e = r;
15775                    for (; ;) {
15776                        r = h();
15777                        if (r === null) break;
15778                        e += r
15779                    }
15780                    switch (e) {
15781                        case"true":
15782                        case"false":
15783                            n = l.BooleanLiteral;
15784                            break;
15785                        case"null":
15786                            n = l.NullLiteral;
15787                            break;
15788                        default:
15789                            n = l.Identifier
15790                    }
15791                    return {type: n, value: p(e), text: e, tokenLength: e.length}
15792                }, scanNumericLiteral: function () {
15793                    function f(e) {
15794                        return /^[0-9]$/.test(e)
15795                    }
15796
15797                    function c(e) {
15798                        return /^[0-7]$/.test(e)
15799                    }
15800
15801                    function h(e) {
15802                        return /^[01]$/.test(e)
15803                    }
15804
15805                    function p(e) {
15806                        return /^[0-9a-fA-F]$/.test(e)
15807                    }
15808
15809                    function d(e) {
15810                        return e === "$" || e === "_" || e === "\\" || e >= "a" && e <= "z" || e >= "A" && e <= "Z"
15811                    }
15812
15813                    var e = 0, t = "", n = this.input.length, r = this.peek(e), i, s = f, u = 10, a = !1;
15814                    if (r !== "." && !f(r)) return null;
15815                    if (r !== ".") {
15816                        t = this.peek(e), e += 1, r = this.peek(e);
15817                        if (t === "0") {
15818                            if (r === "x" || r === "X") s = p, u = 16, e += 1, t += r;
15819                            if (r === "o" || r === "O") s = c, u = 8, o.inES6(!0) || this.trigger("warning", {
15820                                code: "W119",
15821                                line: this.line,
15822                                character: this.char,
15823                                data: ["Octal integer literal", "6"]
15824                            }), e += 1, t += r;
15825                            if (r === "b" || r === "B") s = h, u = 2, o.inES6(!0) || this.trigger("warning", {
15826                                code: "W119",
15827                                line: this.line,
15828                                character: this.char,
15829                                data: ["Binary integer literal", "6"]
15830                            }), e += 1, t += r;
15831                            c(r) && (s = c, u = 8, a = !0, i = !1, e += 1, t += r), !c(r) && f(r) && (e += 1, t += r)
15832                        }
15833                        while (e < n) {
15834                            r = this.peek(e);
15835                            if (a && f(r)) i = !0; else if (!s(r)) break;
15836                            t += r, e += 1
15837                        }
15838                        if (s !== f) {
15839                            if (!a && t.length <= 2) return {type: l.NumericLiteral, value: t, isMalformed: !0};
15840                            if (e < n) {
15841                                r = this.peek(e);
15842                                if (d(r)) return null
15843                            }
15844                            return {type: l.NumericLiteral, value: t, base: u, isLegacy: a, isMalformed: !1}
15845                        }
15846                    }
15847                    if (r === ".") {
15848                        t += r, e += 1;
15849                        while (e < n) {
15850                            r = this.peek(e);
15851                            if (!f(r)) break;
15852                            t += r, e += 1
15853                        }
15854                    }
15855                    if (r === "e" || r === "E") {
15856                        t += r, e += 1, r = this.peek(e);
15857                        if (r === "+" || r === "-") t += this.peek(e), e += 1;
15858                        r = this.peek(e);
15859                        if (!f(r)) return null;
15860                        t += r, e += 1;
15861                        while (e < n) {
15862                            r = this.peek(e);
15863                            if (!f(r)) break;
15864                            t += r, e += 1
15865                        }
15866                    }
15867                    if (e < n) {
15868                        r = this.peek(e);
15869                        if (d(r)) return null
15870                    }
15871                    return {type: l.NumericLiteral, value: t, base: u, isMalformed: !isFinite(t)}
15871
15872                }, scanEscapeSequence: function (e) {
15873                    var t = !1, n = 1;
15874                    this.skip();
15875                    var r = this.peek();
15876                    switch (r) {
15877                        case"'":
15878                            this.triggerAsync("warning", {
15879                                code: "W114",
15880                                line: this.line,
15881                                character: this.char,
15882                                data: ["\\'"]
15883                            }, e, function () {
15884                                return o.jsonMode
15885                            });
15886                            break;
15887                        case"b":
15888                            r = "\\b";
15889                            break;
15890                        case"f":
15891                            r = "\\f";
15892                            break;
15893                        case"n":
15894                            r = "\\n";
15895                            break;
15896                        case"r":
15897                            r = "\\r";
15898                            break;
15899                        case"t":
15900                            r = "\\t";
15901                            break;
15902                        case"0":
15903                            r = "\\0";
15904                            var i = parseInt(this.peek(1), 10);
15905                            this.triggerAsync("warning", {
15906                                code: "W115",
15907                                line: this.line,
15908                                character: this.char
15909                            }, e, function () {
15910                                return i >= 0 && i <= 7 && o.isStrict()
15911                            });
15912                            break;
15913                        case"u":
15914                            var s = this.input.substr(1, 4), u = parseInt(s, 16);
15915                            isNaN(u) && this.trigger("warning", {
15916                                code: "W052",
15917                                line: this.line,
15918                                character: this.char,
15919                                data: ["u" + s]
15920                            }), r = String.fromCharCode(u), n = 5;
15921                            break;
15922                        case"v":
15923                            this.triggerAsync("warning", {
15924                                code: "W114",
15925                                line: this.line,
15926                                character: this.char,
15927                                data: ["\\v"]
15928                            }, e, function () {
15929                                return o.jsonMode
15930                            }), r = "\x0b";
15931                            break;
15932                        case"x":
15933                            var a = parseInt(this.input.substr(1, 2), 16);
15934                            this.triggerAsync("warning", {
15935                                code: "W114",
15936                                line: this.line,
15937                                character: this.char,
15938                                data: ["\\x-"]
15939                            }, e, function () {
15940                                return o.jsonMode
15941                            }), r = String.fromCharCode(a), n = 3;
15942                            break;
15943                        case"\\":
15944                            r = "\\\\";
15945                            break;
15946                        case'"':
15947                            r = '\\"';
15948                            break;
15949                        case"/":
15950                            break;
15951                        case"":
15952                            t = !0, r = ""
15953                    }
15954                    return {"char": r, jump: n, allowNewLine: t}
15955                }, scanTemplateLiteral: function (e) {
15956                    var t, n = "", r, i = this.line, s = this.char, u = this.templateStarts.length;
15957                    if (!o.inES6(!0)) return null;
15958                    if (this.peek() === "`") t = l.TemplateHead, this.templateStarts.push({
15959                        line: this.line,
15960                        "char": this.char
15961                    }), u = this.templateStarts.length, this.skip(1), this.pushContext(c.Template); else {
15962                        if (!this.inContext(c.Template) || this.peek() !== "}") return null;
15963                        t = l.TemplateMiddle
15964                    }
15965                    while (this.peek() !== "`") {
15966                        while ((r = this.peek()) === "") {
15967                            n += "\n";
15968                            if (!this.nextLine()) {
15969                                var a = this.templateStarts.pop();
15970                                return this.trigger("error", {code: "E052", line: a.line, character: a.char}), {
15971                                    type: t,
15972                                    value: n,
15973                                    startLine: i,
15974                                    startChar: s,
15975                                    isUnclosed: !0,
15976                                    depth: u,
15977                                    context: this.popContext()
15978                                }
15979                            }
15980                        }
15981                        if (r === "$" && this.peek(1) === "{") return n += "${", this.skip(2), {
15982                            type: t,
15983                            value: n,
15984                            startLine: i,
15985                            startChar: s,
15986                            isUnclosed: !1,
15987                            depth: u,
15988                            context: this.currentContext()
15989                        };
15990                        if (r === "\\") {
15991                            var f = this.scanEscapeSequence(e);
15992                            n += f.char, this.skip(f.jump)
15993                        } else r !== "`" && (n += r, this.skip(1))
15994                    }
15995                    return t = t === l.TemplateHead ? l.NoSubstTemplate : l.TemplateTail, this.skip(1), this.templateStarts.pop(), {
15996                        type: t,
15997                        value: n,
15998                        startLine: i,
15999                        startChar: s,
16000                        isUnclosed: !1,
16001                        depth: u,
16002                        context: this.popContext()
16003                    }
16004                }, scanStringLiteral: function (e) {
16005                    var t = this.peek();
16006                    if (t !== '"' && t !== "'") return null;
16007                    this.triggerAsync("warning", {code: "W108", line: this.line, character: this.char}, e, function () {
16008                        return o.jsonMode && t !== '"'
16009                    });
16010                    var n = "", r = this.line, i = this.char, s = !1;
16011                    this.skip();
16012                    while (this.peek() !== t) if (this.peek() === "") {
16013                        s ? (s = !1, this.triggerAsync("warning", {
16014                            code: "W043",
16015                            line: this.line,
16016                            character: this.char
16017                        }, e, function () {
16018                            return !o.option.multistr
16019                        }), this.triggerAsync("warning", {
16020                            code: "W042",
16021                            line: this.line,
16022                            character: this.char
16023                        }, e, function () {
16024                            return o.jsonMode && o.option.multistr
16025                        })) : this.trigger("warning", {code: "W112", line: this.line, character: this.char});
16026                        if (!this.nextLine()) return this.trigger("error", {
16027                            code: "E029",
16028                            line: r,
16029                            character: i
16030                        }), {type: l.StringLiteral, value: n, startLine: r, startChar: i, isUnclosed: !0, quote: t}
16031                    } else {
16032                        s = !1;
16033                        var u = this.peek(), a = 1;
16034                        u < " " && this.trigger("warning", {
16035                            code: "W113",
16036                            line: this.line,
16037                            character: this.char,
16038                            data: ["<non-printable>"]
16039                        });
16040                        if (u === "\\") {
16041                            var f = this.scanEscapeSequence(e);
16042                            u = f.char, a = f.jump, s = f.allowNewLine
16043                        }
16044                        n += u, this.skip(a)
16045                    }
16046                    return this.skip(), {
16047                        type: l.StringLiteral,
16048                        value: n,
16049                        startLine: r,
16050                        startChar: i,
16051                        isUnclosed: !1,
16052                        quote: t
16053                    }
16054                }, scanRegExp: function () {
16055                    var e = 0, t = this.input.length, n = this.peek(), r = n, i = "", s = [], o = !1, u = !1, a,
16056                        f = function () {
16057                            n < " " && (o = !0, this.trigger("warning", {
16058                                code: "W048",
16059                                line: this.line,
16060                                character: this.char
16061                            })), n === "<" && (o = !0, this.trigger("warning", {
16062                                code: "W049",
16063                                line: this.line,
16064                                character: this.char,
16065                                data: [n]
16066                            }))
16067                        }.bind(this);
16068                    if (!this.prereg || n !== "/") return null;
16069                    e += 1, a = !1;
16070                    while (e < t) {
16071                        n = this.peek(e), r += n, i += n;
16072                        if (u) {
16073                            n === "]" && (this.peek(e - 1) !== "\\" || this.peek(e - 2) === "\\") && (u = !1), n === "\\" && (e += 1, n = this.peek(e), i += n, r += n, f()), e += 1;
16074                            continue
16075                        }
16076                        if (n === "\\") {
16077                            e += 1, n = this.peek(e), i += n, r += n, f();
16078                            if (n === "/") {
16079                                e += 1;
16080                                continue
16081                            }
16082                            if (n === "[") {
16083                                e += 1;
16084                                continue
16085                            }
16086                        }
16087                        if (n === "[") {
16088                            u = !0, e += 1;
16089                            continue
16090                        }
16091                        if (n === "/") {
16092                            i = i.substr(0, i.length - 1), a = !0, e += 1;
16093                            break
16094                        }
16095                        e += 1
16096                    }
16097                    if (!a) return this.trigger("error", {
16098                        code: "E015",
16099                        line: this.line,
16100                        character: this.from
16101                    }), void this.trigger("fatal", {line: this.line, from: this.from});
16102                    while (e < t) {
16103                        n = this.peek(e);
16104                        if (!/[gim]/.test(n)) break;
16105                        s.push(n), r += n, e += 1
16106                    }
16107                    try {
16108                        new RegExp(i, s.join(""))
16109                    } catch (c) {
16110                        o = !0, this.trigger("error", {
16111                            code: "E016",
16112                            line: this.line,
16113                            character: this.char,
16114                            data: [c.message]
16115                        })
16116                    }
16117                    return {type: l.RegExp, value: r, flags: s, isMalformed: o}
16118                }, scanNonBreakingSpaces: function () {
16119                    return o.option.nonbsp ? this.input.search(/(\u00A0)/) : -1
16120                }, scanUnsafeChars: function () {
16121                    return this.input.search(s.unsafeChars)
16122                }, next: function (e) {
16123                    this.from = this.char;
16124                    var t;
16125                    if (/\s/.test(this.peek())) {
16126                        t = this.char;
16127                        while (/\s/.test(this.peek())) this.from += 1, this.skip()
16128                    }
16129                    var n = this.scanComments() || this.scanStringLiteral(e) || this.scanTemplateLiteral(e);
16130                    return n ? n : (n = this.scanRegExp() || this.scanPunctuator() || this.scanKeyword() || this.scanIdentifier() || this.scanNumericLiteral(), n ? (this.skip(n.tokenLength || n.value.length), n) : null)
16131                }, nextLine: function () {
16132                    var e;
16133                    if (this.line >= this.getLines().length) return !1;
16134                    this.input = this.getLines()[this.line], this.line += 1, this.char = 1, this.from = 1;
16135                    var t = this.input.trim(), n = function () {
16136                        return r.some(arguments, function (e) {
16137                            return t.indexOf(e) === 0
16138                        })
16139                    }, i = function () {
16140                        return r.some(arguments, function (e) {
16141                            return t.indexOf(e, t.length - e.length) !== -1
16142                        })
16143                    };
16144                    this.ignoringLinterErrors === !0 && !n("/*", "//") && (!this.inComment || !i("*/")) && (this.input = ""), e = this.scanNonBreakingSpaces(), e >= 0 && this.trigger("warning", {
16145                        code: "W125",
16146                        line: this.line,
16147                        character: e + 1
16148                    }), this.input = this.input.replace(/\t/g, o.tab), e = this.scanUnsafeChars(), e >= 0 && this.trigger("warning", {
16149                        code: "W100",
16150                        line: this.line,
16151                        character: e
16152                    });
16153                    if (!this.ignoringLinterErrors && o.option.maxlen && o.option.maxlen < this.input.length) {
16154                        var u = this.inComment || n.call(t, "//") || n.call(t, "/*"),
16155                            a = !u || !s.maxlenException.test(t);
16156                        a && this.trigger("warning", {code: "W101", line: this.line, character: this.input.length})
16157                    }
16158                    return !0
16159                }, start: function () {
16160                    this.nextLine()
16161                }, token: function () {
16162                    function n(e, t) {
16163                        if (!e.reserved) return !1;
16164                        var n = e.meta;
16165                        if (n && n.isFutureReservedWord && o.inES5()) {
16166                            if (!n.es5) return !1;
16167                            if (n.strictOnly && !o.option.strict && !o.isStrict()) return !1;
16168                            if (t) return !1
16169                        }
16170                        return !0
16171                    }
16172
16173                    var e = h(), t, i = function (t, i, s, u) {
16174                        var a;
16175                        t !== "(endline)" && t !== "(end)" && (this.prereg = !1);
16176                        if (t === "(punctuator)") {
16177                            switch (i) {
16178                                case".":
16179                                case")":
16180                                case"~":
16181                                case"#":
16182                                case"]":
16183                                case"++":
16184                                case"--":
16185                                    this.prereg = !1;
16186                                    break;
16187                                default:
16188                                    this.prereg = !0
16189                            }
16190                            a = Object.create(o.syntax[i] || o.syntax["(error)"])
16191                        }
16192                        if (t === "(identifier)") {
16193                            if (i === "return" || i === "case" || i === "typeof") this.prereg = !0;
16194                            r.has(o.syntax, i) && (a = Object.create(o.syntax[i] || o.syntax["(error)"]), n(a, s && t === "(identifier)") || (a = null))
16195                        }
16196                        return a || (a = Object.create(o.syntax[t])), a.identifier = t === "(identifier)", a.type = a.type || t, a.value = i, a.line = this.line, a.character = this.char, a.from = this.from, a.identifier && u && (a.raw_text = u.text || u.value), u && u.startLine && u.startLine !== this.line && (a.startLine = u.startLine), u && u.context && (a.context = u.context), u && u.depth && (a.depth = u.depth), u && u.isUnclosed && (a.isUnclosed = u.isUnclosed), s && a.identifier && (a.isProperty = s), a.check = e.check, a
16197                    }.bind(this);
16198                    for (; ;) {
16199                        if (!this.input.length) return this.nextLine() ? i("(endline)", "") : this.exh
16199austed ? null : (this.exhausted = !0, i("(end)", ""));
16200                        t = this.next(e);
16201                        if (!t) {
16202                            this.input.length && (this.trigger("error", {
16203                                code: "E024",
16204                                line: this.line,
16205                                character: this.char,
16206                                data: [this.peek()]
16207                            }), this.input = "");
16208                            continue
16209                        }
16210                        switch (t.type) {
16211                            case l.StringLiteral:
16212                                return this.triggerAsync("String", {
16213                                    line: this.line,
16214                                    "char": this.char,
16215                                    from: this.from,
16216                                    startLine: t.startLine,
16217                                    startChar: t.startChar,
16218                                    value: t.value,
16219                                    quote: t.quote
16220                                }, e, function () {
16221                                    return !0
16222                                }), i("(string)", t.value, null, t);
16223                            case l.TemplateHead:
16224                                return this.trigger("TemplateHead", {
16225                                    line: this.line,
16226                                    "char": this.char,
16227                                    from: this.from,
16228                                    startLine: t.startLine,
16229                                    startChar: t.startChar,
16230                                    value: t.value
16231                                }), i("(template)", t.value, null, t);
16232                            case l.TemplateMiddle:
16233                                return this.trigger("TemplateMiddle", {
16234                                    line: this.line,
16235                                    "char": this.char,
16236                                    from: this.from,
16237                                    startLine: t.startLine,
16238                                    startChar: t.startChar,
16239                                    value: t.value
16240                                }), i("(template middle)", t.value, null, t);
16241                            case l.TemplateTail:
16242                                return this.trigger("TemplateTail", {
16243                                    line: this.line,
16244                                    "char": this.char,
16245                                    from: this.from,
16246                                    startLine: t.startLine,
16247                                    startChar: t.startChar,
16248                                    value: t.value
16249                                }), i("(template tail)", t.value, null, t);
16250                            case l.NoSubstTemplate:
16251                                return this.trigger("NoSubstTemplate", {
16252                                    line: this.line,
16253                                    "char": this.char,
16254                                    from: this.from,
16255                                    startLine: t.startLine,
16256                                    startChar: t.startChar,
16257                                    value: t.value
16258                                }), i("(no subst template)", t.value, null, t);
16259                            case l.Identifier:
16260                                this.triggerAsync("Identifier", {
16261                                    line: this.line,
16262                                    "char": this.char,
16263                                    from: this.form,
16264                                    name: t.value,
16265                                    raw_name: t.text,
16266                                    isProperty: o.tokens.curr.id === "."
16267                                }, e, function () {
16268                                    return !0
16269                                });
16270                            case l.Keyword:
16271                            case l.NullLiteral:
16272                            case l.BooleanLiteral:
16273                                return i("(identifier)", t.value, o.tokens.curr.id === ".", t);
16274                            case l.NumericLiteral:
16275                                return t.isMalformed && this.trigger("warning", {
16276                                    code: "W045",
16277                                    line: this.line,
16278                                    character: this.char,
16279                                    data: [t.value]
16280                                }), this.triggerAsync("warning", {
16281                                    code: "W114",
16282                                    line: this.line,
16283                                    character: this.char,
16284                                    data: ["0x-"]
16285                                }, e, function () {
16286                                    return t.base === 16 && o.jsonMode
16287                                }), this.triggerAsync("warning", {
16288                                    code: "W115",
16289                                    line: this.line,
16290                                    character: this.char
16291                                }, e, function () {
16292                                    return o.isStrict() && t.base === 8 && t.isLegacy
16293                                }), this.trigger("Number", {
16294                                    line: this.line,
16295                                    "char": this.char,
16296                                    from: this.from,
16297                                    value: t.value,
16298                                    base: t.base,
16299                                    isMalformed: t.malformed
16300                                }), i("(number)", t.value);
16301                            case l.RegExp:
16302                                return i("(regexp)", t.value);
16303                            case l.Comment:
16304                                o.tokens.curr.comment = !0;
16305                                if (t.isSpecial) return {
16306                                    id: "(comment)",
16307                                    value: t.value,
16308                                    body: t.body,
16309                                    type: t.commentType,
16310                                    isSpecial: t.isSpecial,
16311                                    line: this.line,
16312                                    character: this.char,
16313                                    from: this.from
16314                                };
16315                                break;
16316                            case"":
16317                                break;
16318                            default:
16319                                return i("(punctuator)", t.value)
16320                        }
16321                    }
16322                }
16323            }, n.Lexer = p, n.Context = c
16324        }, {
16325            "../data/ascii-identifier-data.js": "/node_modules/jshint/data/ascii-identifier-data.js",
16326            "../lodash": "/node_modules/jshint/lodash.js",
16327            "./reg.js": "/node_modules/jshint/src/reg.js",
16328            "./state.js": "/node_modules/jshint/src/state.js",
16329            events: "/node_modules/browserify/node_modules/events/events.js"
16330        }],
16331        "/node_modules/jshint/src/messages.js": [function (e, t, n) {
16332            "use strict";
16333            var r = e("../lodash"), i = {
16334                E001: "Bad option: '{a}'.",
16335                E002: "Bad option value.",
16336                E003: "Expected a JSON value.",
16337                E004: "Input is neither a string nor an array of str
16337ings.",
16338                E005: "Input is empty.",
16339                E006: "Unexpected early end of program.",
16340                E007: 'Missing "use strict" statement.',
16341                E008: "Strict violation.",
16342                E009: "Option 'validthis' can't be used in a global scope.",
16343                E010: "'with' is not allowed in strict mode.",
16344                E011: "'{a}' has already been declared.",
16345                E012: "const '{a}' is initialized to 'undefined'.",
16346                E013: "Attempting to override '{a}' which is a constant.",
16347                E014: "A regular expression literal can be confused with '/='.",
16348                E015: "Unclosed regular expression.",
16349                E016: "Invalid regular expression.",
16350                E017: "Unclosed comment.",
16351                E018: "Unbegun comment.",
16352                E019: "Unmatched '{a}'.",
16353                E020: "Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",
16354                E021: "Expected '{a}' and instead saw '{b}'.",
16355                E022: "Line breaking error '{a}'.",
16356                E023: "Missing '{a}'.",
16357                E024: "Unexpected '{a}'.",
16358                E025: "Missing ':' on a case clause.",
16359                E026: "Missing '}' to match '{' from line {a}.",
16360                E027: "Missing ']' to match '[' from line {a}.",
16361                E028: "Illegal comma.",
16362                E029: "Unclosed string.",
16363                E030: "Expected an identifier and instead saw '{a}'.",
16364                E031: "Bad assignment.",
16365                E032: "Expected a small integer or 'false' and instead saw '{a}'.",
16366                E033: "Expected an operator and instead saw '{a}'.",
16367                E034: "get/set are ES5 features.",
16368                E035: "Missing property name.",
16369                E036: "Expected to see a statement and instead saw a block.",
16370                E037: null,
16371                E038: null,
16372                E039: "Function declarations are not invocable. Wrap the whole function invocation in parens.",
16373                E040: "Each value should have its own case label.",
16374                E041: "Unrecoverable syntax error.",
16375                E042: "Stopping.",
16376                E043: "Too many errors.",
16377                E044: null,
16378                E045: "Invalid for each loop.",
16379                E046: "A yield statement shall be within a generator function (with syntax: `function*`)",
16380                E047: null,
16381                E048: "{a} declaration not directly within block.",
16382                E049: "A {a} cannot be named '{b}'.",
16383                E050: "Mozilla requires the yield expression to be parenthesized here.",
16384                E051: null,
16385                E052: "Unclosed template literal.",
16386                E053: "Export declaration must be in global scope.",
16387                E054: "Class properties must be methods. Expected '(' but instead saw '{a}'.",
16388                E055: "The '{a}' option cannot be set after any executable code.",
16389                E056: "'{a}' was used before it was declared, which is illegal for '{b}' variables.",
16390                E057: "Invalid meta property: '{a}.{b}'.",
16391                E058: "Missing semicolon."
16392            }, s = {
16393                W001: "'hasOwnProperty' is a really bad name.",
16394                W002: "Value of '{a}' may be overwritten in IE 8 and earlier.",
16395                W003: "'{a}' was used before it was defined.",
16396                W004: "'{a}' is already defined.",
16397                W005: "A dot following a number can be confused with a decimal point.",
16398                W006: "Confusing minuses.",
16399                W007: "Confusing plusses.",
16400                W008: "A leading decimal point can be confused with a dot: '{a}'.",
16401                W009: "The array literal notation [] is preferable.",
16402                W010: "The object literal notation {} is preferable.",
16403                W011: null,
16404                W012: null,
16405                W013: null,
16406                W014: "Bad line breaking before '{a}'.",
16407                W015: null,
16408                W016: "Unexpected use of '{a}'.",
16409                W017: "Bad operand.",
16410                W018: "Confusing use of '{a}'.",
16411                W019: "Use the isNaN function to compare with NaN.",
16412                W020: "Read only.",
16413                W021: "Reassignment of '{a}', which is is a {b}. Use 'var' or 'let' to declare bindings that may change.",
16414                W022: "Do not assign to the exception parameter.",
16415                W023: "Expected an identifier in an assignment and instead saw a function invocation.",
16416                W024: "Expected an identifier and instead saw '{a}' (a reserved word).",
16417                W025: "Missing name in function declaration.",
16418                W026: "Inner functions should be listed at the top of the outer function.",
16419                W027: "Unreachable '{a}' after '{b}'.",
16420                W028: "Label '{a}' on {b} statement.",
16421                W030: "Expected an assignment or function call and instead saw an expression.",
16422                W031: "Do not use 'new' for side effects.",
16423                W032: "Unnecessary semicolon.",
16424                W033: "Missing semicolon.",
16425                W034: 'Unnecessary directive "{a}".',
16426                W035: "Empty block.",
16427                W036: "Unexpected /*member '{a}'.",
16428                W037: "'{a}' is a statement label.",
16429                W038: "'{a}' used out of scope.",
16430                W039: "'{a}' is not allowed.",
16431                W040: "Possible strict violation.",
16432                W041: "Use '{a}' to compare with '{b}'.",
16433                W042: "Avoid EOL escaping.",
16434                W043: "Bad escaping of EOL. Use option multistr if needed.",
16435                W044: "Bad or unnecessary escaping.",
16436                W045: "Bad number '{a}'.",
16437                W046: "Don't use extra leading zeros '{a}'.",
16438                W047: "A trailing decimal point can be confused with a dot: '{a}'.",
16439                W048: "Unexpected control character in regular expression.",
16440                W049: "Unexpected escaped character '{a}' in regular expression.",
16441                W050: "JavaScript URL.",
16442                W051: "Variables should not be deleted.",
16443                W052: "Unexpected '{a}'.",
16444                W053: "Do not use {a} as a constructor.",
16445                W054: "The Function constructor is a form of eval.",
16446                W055: "A constructor name should start with an uppercase letter.",
16447                W056: "Bad constructor.",
16448                W057: "Weird construction. Is 'new' necessary?",
16449                W058: "Missing '()' invoking a constructor.",
16450                W059: "Avoid arguments.{a}.",
16451                W060: "document.write can be a form of eval.",
16452                W061: "eval can be harmful.",
16453                W062: "Wrap an immediate function invocation in parens to assist the reader in understanding that the expression is the result of a function, and not the function itself.",
16454                W063: "Math is not a function.",
16455                W064: "Missing 'new' prefix when invoking a constructor.",
16456                W065: "Missing radix parameter.",
16457                W066: "Implied eval. Consider passing a function instead of a string.",
16458                W067: "Bad invocation.",
16459                W068: "Wrapping non-IIFE function literals in parens is unnecessary.",
16460                W069: "['{a}'] is better written in dot notation.",
16461                W070: "Extra comma. (it breaks older versions of IE)",
16462                W071: "This function has too many statements. ({a})",
16463                W072: "This function has too many parameters. ({a})",
16464                W073: "Blocks are nested too deeply. ({a})",
16465                W074: "This function's cyclomatic complexity is too high. ({a})",
16466                W075: "Duplicate {a} '{b}'.",
16467                W076: "Unexpected parameter '{a}' in get {b} function.",
16468                W077: "Expected a single parameter in set {a} function.",
16469                W078: "Setter is defined without getter.",
16470                W079: "Redefinition of '{a}'.",
16471                W080: "It's not necessary to initialize '{a}' to 'undefined'.",
16472                W081: null,
16473                W082: "Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",
16474                W083: "Don't make functions within a loop.",
16475                W084: "Assignment in conditional expression",
16476                W085: "Don't use 'with'.",
16477                W086: "Expected a 'break' statement before '{a}'.",
16478                W087: "Forgotten 'debugger' statement?",
16479                W088: "Creating global 'for' variable. Should be 'for (var {a} ...'.",
16480                W089: "The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",
16481                W090: "'{a}' is not a statement label.",
16482                W091: null,
16483                W093: "Did you mean to return a conditional instead of an assignment?",
16484                W094: "Unexpected comma.",
16485                W095: "Expected a string and instead saw {a}.",
16486                W096: "The '{a}' key may produce unexpected results.",
16487                W097: 'Use the function form of "use strict".',
16488                W098: "'{a}' is defined but never used.",
16489                W099: null,
16490                W100: "This character may get silently deleted by one or more browsers.",
16491                W101: "Line is too long.",
16492                W102: null,
16493                W103: "The '{a}' property is deprecated.",
16494                W104: "'{a}' is available in ES{b} (use 'esversion: {b}') or Mozilla JS extensions (use moz).",
16495                W105: "Unexpected {a} in '{b}'.",
16496                W106: "Identifier '{a}' is not in camel case.",
16497                W107: "Script URL.",
16498                W108: "Strings must use doublequote.",
16499                W109: "Strings must use singlequote.",
16500                W110: "Mixed double and single quotes.",
16501                W112: "Unclosed string.",
16502                W113: "Control character in string: {a}.",
16503                W114: "Avoid {a}.",
16504                W115: "Octal literals are not allowed in strict mode.",
16505                W116: "Expected '{a}' and instead saw '{b}'.",
16506                W117: "'{a}' is not defined.",
16507                W118: "'{a}' is only available in Mozilla JavaScript extensions (use moz option).",
16508                W119: "'{a}' is only available in ES{b} (use 'esversion: {b}').",
16509                W120: "You might be leaking a variable ({a}) here.",
16510                W121: "Extending prototype of native object: '{a}'.",
16511                W122: "Invalid typeof value '{a}'",
16512                W123: "'{a}' is already defined in outer scope.",
16513                W124: "A generator function shall contain a yield statement.",
16514                W125: "This line contains non-breaking spaces: http://jshint.com/doc/options/#nonbsp",
16515                W126: "Unnecessary grouping operator.",
16516                W127: "Unexpected use of a comma operator.",
16517                W128: "Empty array elements require elision=true.",
16518                W129: "'{a}' is defined in a future version of JavaScript. Use a different variable name to avoid migration issues.",
16519                W130: "Invalid element after rest element.",
16520                W131: "Invalid parameter after rest parameter.",
16521                W132: "`var` declarations are forbidden. Use `let` or `const` instead.",
16522                W133: "Invalid for-{a} loop left-hand-side: {b}.",
16523                W134: "The '{a}' option is only available when linting ECMAScript {b} code.",
16524                W135: "{a} may not be supported by non-browser environments.",
16525                W136: "'{a}' must be in function scope.",
16526                W137: "Empty destructuring.",
16527                W138: "Regular parameters should not come after default parameters."
16528            }, o = {
16529                I001: "Comma warnings can be turned off with 'laxcomma'.",
16530                I002: null,
16531                I003: "ES5 option is now set per default"
16532            };
16533            n.errors = {}, n.warnings = {}, n.info = {}, r.each(i, function (e, t) {
16534                n.errors[t] = {code: t, desc: e}
16535            }), r.each(s, function (e, t) {
16536                n.warnings[t] = {code: t, desc: e}
16537            }), r.each(o, function (e, t) {
16538                n.info[t] = {code: t, desc: e}
16539            })
16540        }, {"../lodash": "/node_modules/jshint/lodash.js"}],
16541        "/node_modules/jshint/src/name-stack.js": [function (e, t, n) {
16542            "use strict";
16543
16544            function r() {
16545                this._stack = []
16546            }
16547
16548            Object.defineProperty(r.prototype, "length", {
16549                get: function () {
16550                    return this._stack.length
16551                }
16552            }), r.prototype.push = function () {
16553                this._stack.push(null)
16554            }, r.prototype.pop = function () {
16555                this._stack.pop()
16556            }, r.prototype.set = function (e) {
16557                this._stack[this.length - 1] = e
16558            }, r.prototype.infer = function () {
16559                var e = this._stack[this.length - 1], t = "", n;
16560                if (!e || e.type === "class") e = this._stack[this.length - 2];
16561                return e ? (n = e.type, n !== "(string)" && n !== "(number)" && n !== "(identifier)" && n !== "default" ? "(expression)" : (e.accessorType && (t = e.accessorType + " "), t + e.value)) : "(empty)"
16562            }, t.exports = r
16563        }, {}],
16564        "/node_modules/jshint/src/options.js": [function (e, t, n) {
16565            "use strict";
16566            n.bool = {
16567                enforcing: {
16568                    bitwise: !0,
16569                    freeze: !0,
16570                    camelcase: !0,
16571                    curly: !0,
16572                    eqeqeq: !0,
16573                    futurehostile: !0,
16574                    notypeof: !0,
16575                    es3: !0,
16576                    es5: !0,
16577                    forin: !0,
16578                    funcscope: !0,
16579                    immed: !0,
16580                    iterator: !0,
16581                    newcap: !0,
16582                    noarg: !0,
16583                    nocomma: !0,
16584                    noempty: !0,
16585                    nonbsp: !0,
16586                    nonew: !0,
16587                    undef: !0,
16588                    singleGroups: !1,
16589                    varstmt: !1,
16590                    enforceall: !1
16591                },
16592                relaxing: {
16593                    asi: !0,
16594                    multistr: !0,
16595                    debug: !0,
16596                    boss: !0,
16597                    evil: !0,
16598                    globalstrict: !0,
16599                    plusplus: !0,
16600                    proto: !0,
16601                    scripturl: !0,
16602                    sub: !0,
16603                    supernew: !0,
16604                    laxbreak: !0,
16605                    laxcomma: !0,
16606                    validthis: !0,
16607                    withstmt: !0,
16608                    moz: !0,
16609                    noyield: !0,
16610                    eqnull: !0,
16611                    lastsemic: !0,
16612                    loopfunc: !0,
16613                    expr: !0,
16614                    esnext: !0,
16615                    elision: !0
16616                },
16617                environments: {
16618                    mootools: !0,
16619                    couch: !0,
16620                    jasmine: !0,
16621                    jquery: !0,
16622                    node: !0,
16623                    qunit: !0,
16624                    rhino: !0,
16625                    shelljs: !0,
16626                    prototypejs: !0,
16627                    yui: !0,
16628                    mocha: !0,
16629                    module: !0,
16630                    wsh: !0,
16631                    worker: !0,
16632                    nonstandard: !0,
16633                    browser: !0,
16634                    browserify: !0,
16635                    devel: !0,
16636                    dojo: !0,
16637                    typed: !0,
16638                    phantom: !0
16639                },
16640                obsolete: {onecase: !0, regexp: !0, regexdash: !0}
16641            }, n.val = {
16642                maxlen: !1,
16643                indent: !1,
16644                maxerr: !1,
16645                predef: !1,
16646                globals: !1,
16647                quotmark: !1,
16648                scope: !1,
16649                maxstatements: !1,
16650                maxdepth: !1,
16651                maxparams: !1,
16652                maxcomplexity: !1,
16653                shadow: !1,
16654                strict: !0,
16655                unused: !0,
16656                latedef: !1,
16657                ignore: !1,
16658                ignoreDelimiters: !1,
16659                esversion: 5
16660            }, n.inverted = {
16661                bitwise: !0,
16662                forin: !0,
16663                newcap: !0,
16664                plusplus: !0,
16665                regexp: !0,
16666                undef: !0,
16667                eqeqeq: !0,
16668                strict: !0
16669            }, n.validNames = Object.keys(n.val).concat(Object.keys(n.bool.relaxing)).concat(Object.keys(n.bool.enforcing)).concat(Object.keys(n.bool.obsolete)).concat(Object.keys(n.bool.environments)), n.renamed = {
16670                eqeq: "eqeqeq",
16671                windows: "wsh",
16672                sloppy: "strict"
16673            }, n.removed = {
16674                nomen: !0,
16675                onevar: !0,
16676                passfail: !0,
16677                white: !0,
16678                gcl: !0,
16679                smarttabs: !0,
16680                trailing: !0
16681            }, n.noenforceall = {varstmt: !0, strict: !0}
16682        }, {}],
16683        "/node_modules/jshint/src/reg.js": [function (e, t, n) {
16684            "use strict";
16685            n.unsafeString = /@cc|<\/?|script|\]\s*\]|<\s*!|&lt/i, n.unsafeChars = /[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/, n.needEsc = /[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/, n.needEscGlobal = /[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, n.starSlash = /\*\//, n.identifier = /^([a-zA-Z_$][a-zA-Z0-9_$]*)$/, n.javascriptURL = /^(?:javascript|jscript|ecmascript|vbscript|livescript)\s*:/i, n.fallsThrough = /^\s*falls?\sthrough\s*$/, n.maxlenException = /^(?:(?:\/\/|\/\*|\*) ?)?[^ ]+$/
16686        }, {}],
16687        "/node_modules/jshint/src/scope-manager.js": [function (e, t, n) {
16688            "use strict";
16689            var r = e("../lodash"), i = e("events"), s = {}, o = function (e, t, n, o) {
16690                function f(e) {
16691                    u = {
16692                        "(labels)": Object.create(null),
16693                        "(usages)": Object.create(null),
16694                        "(breakLabels)": Object.create(null),
16695                        "(parent)": u,
16696                        "(type)": e,
16697                        "(params)": e === "functionparams" || e === "catchparams" ? [] : null
16698                    }, a.push(u)
16699                }
16700
16701                function v(e, t) {
16702                    d.emit("warning", {code: e, token: t, data: r.slice(arguments, 2)})
16703                }
16704
16705                function m(e, t) {
16706                    d.emit("warning", {code: e, token: t, data: r.slice(arguments, 2)})
16707                }
16708
16709                function g(e) {
16710                    u["(usages)"][e] || (u["(usages)"][e] = {"(modified)": [], "(reassigned)": [], "(tokens)": []})
16711                }
16712
16713                function w() {
16714                    if (u["(type)"] === "functionparams") {
16715                        E();
16716                        return
16717                    }
16718                    var e = u["(labels)"];
16719                    for (var t in e) e[t] && e[t]["(type)"] !== "exception" && e[t]["(unused)"] && b(t, e[t]["(token)"], "var")
16720                }
16721
16722                function E() {
16723                    var t = u["(params)"];
16724                    if (!t) return;
16725                    var n = t.pop(), r;
16726                    while (n) {
16727                        var i = u["(labels)"][n];
16728                        r = y(e.funct["(unusedOption)"]);
16729                        if (n === "undefined") return;
16730                        if (i["(unused)"]) b(n, i["(token)"], "param", e.funct["(unusedOption)"]); else if (r === "last-param") return;
16731                        n = t.pop()
16732                    }
16733                }
16734
16735                function S(e) {
16736                    for (var t = a.length - 1; t >= 0; --t) {
16737                        var n = a[t]["(labels)"];
16738                        if (n[e]) return n
16739                    }
16740                }
16741
16742                function x(e) {
16743                    for (var t = a.length - 1; t >= 0; t--) {
16744                        var n = a[t];
16745                        if (n["(usages)"][e]) return n["(usages)"][e];
16746                        if (n === l) break
16747                    }
16748                    return !1
16749                }
16750
16751                function T(t, n) {
16752                    if (e.option.shadow !== "outer") return;
16753                    var r = l["(type)"] === "global", i = u["(type)"] === "functionparams", s = !r;
16754                    for (var o = 0; o < a.length; o++) {
16755                        var f = a[o];
16756                        !i && a[o + 1] === l && (s = !1), s && f["(labels)"][t] && v("W123", n, t), f["(breakLabels)"][t] && v("W123", n, t)
16757                    }
16758                }
16759
16760                function N(t, n, r) {
16761                    e.option.latedef && (e.option.latedef === !0 && t === "function" || t !== "function") && v("W003", r, n)
16762                }
16763
16764                var u, a = [];
16765                f("global"), u["(predefined)"] = t;
16766                var l = u, c = Object.create(null), h = Object.create(null), p = [], d = new i.EventEmitter,
16767                    y = function (t) {
16768                        return t === undefined && (t = e.option.unused), t === !0 && (t = "last-param"), t
16769                    }, b = function (e, t, n, r) {
16770                        var i = t.line, s = t.from, o = t.raw_text || e;
16771                        r = y(r);
16772                        var u = {vars: ["var"], "last-param": ["var", "param"], strict: ["var", "param", "last-param"]};
16773                        r && u[r] && u[r].indexOf(n) !== -1 && v("W098", {
16774                            line: i,
16775                            from: s
16776                        }, o), (r || n === "var") && p.push({name: e, line: i, character: s})
16777                    }, C = {
16778                        on: function (e, t) {
16779                            e.split(" ").forEach(function (e) {
16780                                d.on(e, t)
16781                            })
16782                        }, isPredefined: function (e) {
16783                            return !this.has(e) && r.has(a[0]["(predefined)"], e)
16784                        }, stack: function (e) {
16785                            var t = u;
16786                            f(e), !e && t["(type)"] === "functionparams" && (u["(isFuncBody)"] = !0, u["(context)"] = l, l = u)
16787                        }, unstack: function () {
16788                            var t = a.length > 1 ? a[a.length - 2] : null, n = u === l,
16789                                i = u["(type)"] === "functionparams", f = u["(type)"] === "functionouter", p, d,
16790                                g = u["(usages)"], y = u["(labels)"], E = Object.keys(g);
16791                            g.__proto__ && E.indexOf("__proto__") === -1 && E.push("__proto__");
16792                            for (p = 0; p < E.length; p++) {
16793                                var S = E[p], x = g[S], T = y[S];
16794                                if (T) {
16795                                    var N = T["(type)"];
16796                                    if (T["(useOutsideOfScope)"] && !e.option.funcscope) {
16797                                        var C = x["(tokens)"];
16798                                        if (C) for (d = 0; d < C.length; d++) T["(function)"] === C[d]["(function)"] && m("W038", C[d], S)
16799                                    }
16800                                    u["(labels)"][S]["(unused)"] = !1;
16801                                    if (N === "const" && x["(modified)"]) for (d = 0; d < x["(modified)"].length; d++) m("E013", x["(modified)"][d], S);
16802                                    if ((N === "function" || N === "class") && x["(reassigned)"]) for (d = 0; d < x["(reassigned)"].length; d++) m("W021", x["(reassigned)"][d], S, N);
16803                                    continue
16804                                }
16805                                f && (e.funct["(isCapturing)"] = !0);
16806                                if (t) if (!t["(usages)"][S]) t["(usages)"][S] = x, n && (t["(usages)"][S]["(onlyUsedSubFunction)"] = !0); else {
16807                                    var k = t["(usages)"][S];
16808                                    k["(modified)"] = k["(modified)"].concat(x["(modified)"]), k["(tokens)"] = k["(tokens)"].concat(x["(tokens)"]), k["(reassigned)"] = k["(reassigned)"].
16808concat(x["(reassigned)"]), k["(onlyUsedSubFunction)"] = !1
16809                                } else if (typeof u["(predefined)"][S] == "boolean") {
16810                                    delete o[S], c[S] = s;
16811                                    if (u["(predefined)"][S] === !1 && x["(reassigned)"]) for (d = 0; d < x["(reassigned)"].length; d++) v("W020", x["(reassigned)"][d])
16812                                } else if (x["(tokens)"]) for (d = 0; d < x["(tokens)"].length; d++) {
16813                                    var L = x["(tokens)"][d];
16814                                    L.forgiveUndef || (e.option.undef && !L.ignoreUndef && v("W117", L, S), h[S] ? h[S].line.push(L.line) : h[S] = {
16815                                        name: S,
16816                                        line: [L.line]
16817                                    })
16818                                }
16819                            }
16820                            t || Object.keys(o).forEach(function (e) {
16821                                b(e, o[e], "var")
16822                            });
16823                            if (t && !n && !i && !f) {
16824                                var A = Object.keys(y);
16825                                for (p = 0; p < A.length; p++) {
16826                                    var O = A[p];
16827                                    !y[O]["(blockscoped)"] && y[O]["(type)"] !== "exception" && !this.funct.has(O, {excludeCurrent: !0}) && (t["(labels)"][O] = y[O], l["(type)"] !== "global" && (t["(labels)"][O]["(useOutsideOfScope)"] = !0), delete y[O])
16828                                }
16829                            }
16830                            w(), a.pop(), n && (l = a[r.findLastIndex(a, function (e) {
16831                                return e["(isFuncBody)"] || e["(type)"] === "global"
16832                            })]), u = t
16833                        }, addParam: function (t, n, i) {
16834                            i = i || "param";
16835                            if (i === "exception") {
16836                                var s = this.funct.labeltype(t);
16837                                s && s !== "exception" && (e.option.node || v("W002", e.tokens.next, t))
16838                            }
16839                            r.has(u["(labels)"], t) ? u["(labels)"][t].duplicated = !0 : (T(t, n, i), u["(labels)"][t] = {
16840                                "(type)": i,
16841                                "(token)": n,
16842                                "(unused)": !0
16843                            }, u["(params)"].push(t));
16844                            if (r.has(u["(usages)"], t)) {
16845                                var o = u["(usages)"][t];
16846                                o["(onlyUsedSubFunction)"] ? N(i, t, n) : v("E056", n, t, i)
16847                            }
16848                        }, validateParams: function () {
16849                            if (l["(type)"] === "global") return;
16850                            var t = e.isStrict(), n = l["(parent)"];
16851                            if (!n["(params)"]) return;
16852                            n["(params)"].forEach(function (r) {
16853                                var i = n["(labels)"][r];
16854                                i && i.duplicated && (t ? v("E011", i["(token)"], r) : e.option.shadow !== !0 && v("W004", i["(token)"], r))
16855                            })
16856                        }, getUsedOrDefinedGlobals: function () {
16857                            var e = Object.keys(c);
16858                            return c.__proto__ === s && e.indexOf("__proto__") === -1 && e.push("__proto__"), e
16859                        }, getImpliedGlobals: function () {
16860                            var e = r.values(h), t = !1;
16861                            return h.__proto__ && (t = e.some(function (e) {
16862                                return e.name === "__proto__"
16863                            }), t || e.push(h.__proto__)), e
16864                        }, getUnuseds: function () {
16865                            return p
16866                        }, has: function (e) {
16867                            return Boolean(S(e))
16868                        }, labeltype: function (e) {
16869                            var t = S(e);
16870                            return t ? t[e]["(type)"] : null
16871                        }, addExported: function (e) {
16872                            var t = a[0]["(labels)"];
16873                            if (r.has(o, e)) delete o[e]; else if (r.has(t, e)) t[e]["(unused)"] = !1; else {
16874                                for (var i = 1; i < a.length; i++) {
16875                                    var s = a[i];
16876                                    if (!!s["(type)"]) break;
16877                                    if (r.has(s["(labels)"], e) && !s["(labels)"][e]["(blockscoped)"]) {
16878                                        s["(labels)"][e]["(unused)"] = !1;
16879                                        return
16880                                    }
16881                                }
16882                                n[e] = !0
16883                            }
16884                        }, setExported: function (e, t) {
16885                            this.block.use(e, t)
16886                        }, addlabel: function (t, i) {
16887                            var o = i.type, a = i.token, f = o === "let" || o === "const" || o === "class",
16888                                h = (f ? u : l)["(type)"] === "global" && r.has(n, t);
16889                            T(t, a, o);
16890                            if (f) {
16891                                var p = u["(labels)"][t];
16892                                !p && u === l && u["(type)"] !== "global" && (p = !!l["(parent)"]["(labels)"][t]);
16893                                if (!p && u["(usages)"][t]) {
16894                                    var d = u["(usages)"][t];
16895                                    d["(onlyUsedSubFunction)"] ? N(o, t, a) : v("E056", a, t, o)
16896                                }
16897                                p ? v("E011", a, t) : e.option.shadow === "outer" && C.funct.has(t) && v("W004", a, t), C.block.add(t, o, a, !h)
16898                            } else {
16899                                var m = C.funct.has(t);
16900                                !m && x(t) && N(o, t, a), C.funct.has(t, {onlyBlockscoped: !0}) ? v("E011", a, t) : e.option.shadow !== !0 && m && t !== "__proto__" && l["(type)"] !== "global" && v("W004", a, t), C.funct.add(t, o, a, !h), l["(type)"] === "global" && (c[t] = s)
16901                            }
16902                        }, funct: {
16903                            labeltype: function (e, t) {
16904                                var n = t && t.onlyBlockscoped, r = t && t.excludeParams,
16905                                    i = a.length - (t && t.excludeCurrent ? 2 : 1);
16906                                for (var s = i; s >= 0; s--) {
16907                                    var o = a[s];
16908                                    if (o["(labels)"][e] && (!n || o["(labels)"][e]["(blockscoped)"])) return o["(labels)"][e]["(type)"];
16909                                    var u = r ? a[s - 1] : o;
16910                                    if (u && u["(type)"] === "functionparams") return null
16911                                }
16912                                return null
16913                            }, hasBreakLabel: function (e) {
16914                                for (var t = a.length - 1; t >= 0; t--) {
16915                                    var n = a[t];
16916                                    if (n["(breakLabels)"][e]) return !0;
16917                                    if (n["(type)"] === "functionparams") return !1
16918                                }
16919                                return !1
16920                            }, has: function (e, t) {
16921                                return Boolean(this.labeltype(e, t))
16922                            }, add: function (e, t, n, r) {
16923                                u["(labels)"][e] = {
16924                                    "(type)": t,
16925                                    "(token)": n,
16926                                    "(blockscoped)": !1,
16927                                    "(function)": l,
16928                                    "(unused)": r
16929                                }
16930                            }
16931                        }, block: {
16932                            isGlobal: function () {
16933                                return u["(type)"] === "global"
16934                            }, use: function (t, n) {
16935                                var r = l["(parent)"];
16936                                r && r["(labels)"][t] && r["(labels)"][t]["(type)"] === "param" && (C.funct.has(t, {
16937                                    excludeParams: !0,
16938                                    onlyBlockscoped: !0
16939                                }) || (r["(labels)"][t]["(unused)"] = !1)), n && (e.ignored.W117 || e.option.undef === !1) && (n.ignoreUndef = !0), g(t), n && (n["(function)"] = l, u["(usages)"][t]["(tokens)"].push(n))
16940                            }, reassign: function (e, t) {
16941                                this.modify(e, t), u["(usages)"][e]["(reassigned)"].push(t)
16942                            }, modify: function (e, t) {
16943                                g(e), u["(usages)"][e]["(modified)"].push(t)
16944                            }, add: function (e, t, n, r) {
16945                                u["(labels)"][e] = {"(type)": t, "(token)": n, "(blockscoped)": !0, "(unused)": r}
16946                            }, addBreakLabel: function (t, n) {
16947                                var r = n.token;
16948                                C.funct.hasBreakLabel(t) ? v("E011", r, t) : e.option.shadow === "outer" && (C.funct.has(t) ? v("W004", r, t) : T(t, r)), u["(breakLabels)"][t] = r
16949                            }
16950                        }
16951                    };
16952                return C
16953            };
16954            t.exports = o
16955        }, {
16956            "../lodash": "/node_modules/jshint/lodash.js",
16957            events: "/node_modules/browserify/node_modules/events/events.js"
16958        }],
16959        "/node_modules/jshint/src/state.js": [function (e, t, n) {
16960            "use strict";
16961            var r = e("./name-stack.js"), i = {
16962                syntax: {}, isStrict: function () {
16963                    return this.directive["use strict"] || this.inClassBody || this.option.module || this.option.strict === "implied"
16964                }, inMoz: function () {
16965                    return this.option.moz
16966                }, inES6: function () {
16967                    return this.option.moz || this.option.esversion >= 6
16968                }, inES5: function (e) {
16969                    return e ? (!this.option.esversion || this.option.esversion === 5) && !this.option.moz : !this.option.esversion || this.option.esversion >= 5 || this.option.moz
16970                }, reset: function () {
16971                    this.tokens = {
16972                        prev: null,
16973                        next: null,
16974                        curr: null
16975                    }, this.option = {}, this.funct = null, this.ignored = {}, this.directive = {}, this.jsonMode = !1, this.jsonWarnings = [], this.lines = [], this.tab = "", this.cache = {}, this.ignoredLines = {}, this.forinifcheckneeded = !1, this.nameStack = new r, this.inClassBody = !1
16976                }
16977            };
16978            n.state = i
16979        }, {"./name-stack.js": "/node_modules/jshint/src/name-stack.js"}],
16980        "/node_modules/jshint/src/style.js": [function (e, t, n) {
16981            "use strict";
16982            n.register = function (e) {
16983                e.on("Identifier", function (n) {
16984                    if (e.getOption("proto")) return;
16985                    n.name === "__proto__" && e.warn("W103", {line: n.line, "char": n.char, data: [n.name, "6"]})
16986                }), e.on("Identifier", function (n) {
16987                    if (e.getOption("iterator")) return;
16988                    n.name === "__iterator__" && e.warn("W103", {line: n.line, "char": n.char, data: [n.name]})
16989                }), e.on("Identifier", function (n) {
16990                    if (!e.getOption("camelcase")) return;
16991                    n.name.replace(/^_+|_+$/g, "").indexOf("_") > -1 && !n.name.match(/^[A-Z0-9_]*$/) && e.warn("W106", {
16992                        line: n.line,
16993                        "char": n.from,
16994                        data: [n.name]
16995                    })
16996                }), e.on("String", function (n) {
16997                    var r = e.getOption("quotmark"), i;
16998                    if (!r) return;
16999                    r === "single" && n.quote !== "'" && (i = "W109"), r === "double" && n.quote !== '"' && (i = "W108"), r === !0 && (e.getCache("quotmark") || e.setCac
16999he("quotmark", n.quote), e.getCache("quotmark") !== n.quote && (i = "W110")), i && e.warn(i, {
17000                        line: n.line,
17001                        "char": n.char
17002                    })
17003                }), e.on("Number", function (n) {
17004                    n.value.charAt(0) === "." && e.warn("W008", {
17005                        line: n.line,
17006                        "char": n.char,
17007                        data: [n.value]
17008                    }), n.value.substr(n.value.length - 1) === "." && e.warn("W047", {
17009                        line: n.line,
17010                        "char": n.char,
17011                        data: [n.value]
17012                    }), /^00+/.test(n.value) && e.warn("W046", {line: n.line, "char": n.char, data: [n.value]})
17013                }), e.on("String", function (n) {
17014                    var r = /^(?:javascript|jscript|ecmascript|vbscript|livescript)\s*:/i;
17015                    if (e.getOption("scripturl")) return;
17016                    r.test(n.value) && e.warn("W107", {line: n.line, "char": n.char})
17017                })
17018            }
17019        }, {}],
17020        "/node_modules/jshint/src/vars.js": [function (e, t, n) {
17021            "use strict";
17022            n.reservedVars = {arguments: !1, NaN: !1}, n.ecmaIdentifiers = {
17023                3: {
17024                    Array: !1,
17025                    Boolean: !1,
17026                    Date: !1,
17027                    decodeURI: !1,
17028                    decodeURIComponent: !1,
17029                    encodeURI: !1,
17030                    encodeURIComponent: !1,
17031                    Error: !1,
17032                    eval: !1,
17033                    EvalError: !1,
17034                    Function: !1,
17035                    hasOwnProperty: !1,
17036                    isFinite: !1,
17037                    isNaN: !1,
17038                    Math: !1,
17039                    Number: !1,
17040                    Object: !1,
17041                    parseInt: !1,
17042                    parseFloat: !1,
17043                    RangeError: !1,
17044                    ReferenceError: !1,
17045                    RegExp: !1,
17046                    String: !1,
17047                    SyntaxError: !1,
17048                    TypeError: !1,
17049                    URIError: !1
17050                },
17051                5: {JSON: !1},
17052                6: {Map: !1, Promise: !1, Proxy: !1, Reflect: !1, Set: !1, Symbol: !1, WeakMap: !1, WeakSet: !1}
17053            }, n.browser = {
17054                Audio: !1,
17055                Blob: !1,
17056                addEventListener: !1,
17057                applicationCache: !1,
17058                atob: !1,
17059                blur: !1,
17060                btoa: !1,
17061                cancelAnimationFrame: !1,
17062                CanvasGradient: !1,
17063                CanvasPattern: !1,
17064                CanvasRenderingContext2D: !1,
17065                CSS: !1,
17066                clearInterval: !1,
17067                clearTimeout: !1,
17068                close: !1,
17069                closed: !1,
17070                Comment: !1,
17071                CustomEvent: !1,
17072                DOMParser: !1,
17073                defaultStatus: !1,
17074                Document: !1,
17075                document: !1,
17076                DocumentFragment: !1,
17077                Element: !1,
17078                ElementTimeControl: !1,
17079                Event: !1,
17080                event: !1,
17081                fetch: !1,
17082                FileReader: !1,
17083                FormData: !1,
17084                focus: !1,
17085                frames: !1,
17086                getComputedStyle: !1,
17087                HTMLElement: !1,
17088                HTMLAnchorElement: !1,
17089                HTMLBaseElement: !1,
17090                HTMLBlockquoteElement: !1,
17091                HTMLBodyElement: !1,
17092                HTMLBRElement: !1,
17093                HTMLButtonElement: !1,
17094                HTMLCanvasElement: !1,
17095                HTMLCollection: !1,
17096                HTMLDirectoryElement: !1,
17097                HTMLDivElement: !1,
17098                HTMLDListElement: !1,
17099                HTMLFieldSetElement: !1,
17100                HTMLFontElement: !1,
17101                HTMLFormElement: !1,
17102                HTMLFrameElement: !1,
17103                HTMLFrameSetElement: !1,
17104                HTMLHeadElement: !1,
17105                HTMLHeadingElement: !1,
17106                HTMLHRElement: !1,
17107                HTMLHtmlElement: !1,
17108                HTMLIFrameElement: !1,
17109                HTMLImageElement: !1,
17110                HTMLInputElement: !1,
17111                HTMLIsIndexElement: !1,
17112                HTMLLabelElement: !1,
17113                HTMLLayerElement: !1,
17114                HTMLLegendElement: !1,
17115                HTMLLIElement: !1,
17116                HTMLLinkElement: !1,
17117                HTMLMapElement: !1,
17118                HTMLMenuElement: !1,
17119                HTMLMetaElement: !1,
17120                HTMLModElement: !1,
17121                HTMLObjectElement: !1,
17122                HTMLOListElement: !1,
17123                HTMLOptGroupElement: !1,
17124                HTMLOptionElement: !1,
17125                HTMLParagraphElement: !1,
17126                HTMLParamElement: !1,
17127                HTMLPreElement: !1,
17128                HTMLQuoteElement: !1,
17129                HTMLScriptElement: !1,
17130                HTMLSelectElement: !1,
17131                HTMLStyleElement: !1,
17132                HTMLTableCaptionElement: !1,
17133                HTMLTableCellElement: !1,
17134                HTMLTableColElement: !1,
17135                HTMLTableElement: !1,
17136                HTMLTableRowElement: !1,
17137                HTMLTableSectionElement: !1,
17138                HTMLTemplateElement: !1,
17139                HTMLTextAreaElement: !1,
17140                HTMLTitleElement: !1,
17141                HTMLUListElement: !1,
17142                HTMLVideoElement: !1,
17143                history: !1,
17144                Image: !1,
17145                Intl: !1,
17146                length: !1,
17147                localStorage: !1,
17148                location: !1,
17149                matchMedia: !1,
17150                MessageChannel: !1,
17151                MessageEvent: !1,
17152                MessagePort: !1,
17153                MouseEvent: !1,
17154                moveBy: !1,
17155                moveTo: !1,
17156                MutationObserver: !1,
17157                name: !1,
17158                Node: !1,
17159                NodeFilter: !1,
17160                NodeList: !1,
17161                Notification: !1,
17162                navigator: !1,
17163                onbeforeunload: !0,
17164                onblur: !0,
17165                onerror: !0,
17166                onfocus: !0,
17167                onload: !0,
17168                onresize: !0,
17169                onunload: !0,
17170                open: !1,
17171                openDatabase: !1,
17172                opener: !1,
17173                Option: !1,
17174                parent: !1,
17175                performance: !1,
17176                print: !1,
17177                Range: !1,
17178                requestAnimationFrame: !1,
17179                removeEventListener: !1,
17180                resizeBy: !1,
17181                resizeTo: !1,
17182                screen: !1,
17183                scroll: !1,
17184                scrollBy: !1,
17185                scrollTo: !1,
17186                sessionStorage: !1,
17187                setInterval: !1,
17188                setTimeout: !1,
17189                SharedWorker: !1,
17190                status: !1,
17191                SVGAElement: !1,
17192                SVGAltGlyphDefElement: !1,
17193                SVGAltGlyphElement: !1,
17194                SVGAltGlyphItemElement: !1,
17195                SVGAngle: !1,
17196                SVGAnimateColorElement: !1,
17197                SVGAnimateElement: !1,
17198                SVGAnimateMotionElement: !1,
17199                SVGAnimateTransformElement: !1,
17200                SVGAnimatedAngle: !1,
17201                SVGAnimatedBoolean: !1,
17202                SVGAnimatedEnumeration: !1,
17203                SVGAnimatedInteger: !1,
17204                SVGAnimatedLength: !1,
17205                SVGAnimatedLengthList: !1,
17206                SVGAnimatedNumber: !1,
17207                SVGAnimatedNumberList: !1,
17208                SVGAnimatedPathData: !1,
17209                SVGAnimatedPoints: !1,
17210                SVGAnimatedPreserveAspectRatio: !1,
17211                SVGAnimatedRect: !1,
17212                SVGAnimatedString: !1,
17213                SVGAnimatedTransformList: !1,
17214                SVGAnimationElement: !1,
17215                SVGCSSRule: !1,
17216                SVGCircleElement: !1,
17217                SVGClipPathElement: !1,
17218                SVGColor: !1,
17219                SVGColorProfileElement: !1,
17220                SVGColorProfileRule: !1,
17221                SVGComponentTransferFunctionElement: !1,
17222                SVGCursorElement: !1,
17223                SVGDefsElement: !1,
17224                SVGDescElement: !1,
17225                SVGDocument: !1,
17226                SVGElement: !1,
17227                SVGElementInstance: !1,
17228                SVGElementInstanceList: !1,
17229                SVGEllipseElement: !1,
17230                SVGExternalResourcesRequired: !1,
17231                SVGFEBlendElement: !1,
17232                SVGFEColorMatrixElement: !1,
17233                SVGFEComponentTransferElement: !1,
17234                SVGFECompositeElement: !1,
17235                SVGFEConvolveMatrixElement: !1,
17236                SVGFEDiffuseLightingElement: !1,
17237                SVGFEDisplacementMapElement: !1,
17238                SVGFEDistantLightElement: !1,
17239                SVGFEFloodElement: !1,
17240                SVGFEFuncAElement: !1,
17241                SVGFEFuncBElement: !1,
17242                SVGFEFuncGElement: !1,
17243                SVGFEFuncRElement: !1,
17244                SVGFEGaussianBlurElement: !1,
17245                SVGFEImageElement: !1,
17246                SVGFEMergeElement: !1,
17247                SVGFEMergeNodeElement: !1,
17248                SVGFEMorphologyElement: !1,
17249                SVGFEOffsetElement: !1,
17250                SVGFEPointLightElement: !1,
17251                SVGFESpecularLightingElement: !1,
17252                SVGFESpotLightElement: !1,
17253                SVGFETileElement: !1,
17254                SVGFETurbulenceElement: !1,
17255                SVGFilterElement: !1,
17256                SVGFilterPrimitiveStandardAttributes: !1,
17257                SVGFitToViewBox: !1,
17258                SVGFontElement: !1,
17259                SVGFontFaceElement: !1,
17260                SVGFontFaceFormatElement: !1,
17261                SVGFontFaceNameElement: !1,
17262                SVGFontFaceSrcElement: !1,
17263                SVGFontFaceUriElement: !1,
17264                SVGForeignObjectElement: !1,
17265                SVGGElement: !1,
17266                SVGGlyphElement: !1,
17267                SVGGlyphRefElement: !1,
17268                SVGGradientElement: !1,
17269                SVGHKernElement: !1,
17270                SVGICCColor: !1,
17271                SVGImageElement: !1,
17272                SVGLangSpace: !1,
17273                SVGLength: !1,
17274                SVGLengthList: !1,
17275                SVGLineElement: !1,
17276                SVGLinearGradientElement: !1,
17277                SVGLocatable: !1,
17278                SVGMPathElement: !1,
17279                SVGMarkerElement: !1,
17280                SVGMaskElement: !1,
17281                SVGMatrix: !1,
17282                SVGMetadataElement: !1,
17283                SVGMissingGlyphElement: !1,
17284                SVGNumber: !1,
17285                SVGNumberList: !1,
17286                SVGPaint: !1,
17287                SVGPathElement: !1,
17288                SVGPathSeg: !1,
17289                SVGPathSegArcAbs: !1,
17290                SVGPathSegArcRel: !1,
17291                SVGPathSegClosePath: !1,
17292                SVGPathSegCurvetoCubicAbs: !1,
17293                SVGPathSegCurvetoCubicRel: !1,
17294                SVGPathSegCurvetoCubicSmoothAbs: !1,
17295                SVGPathSegCurvetoCubicSmoothRel: !1,
17296                SVGPathSegCurvetoQuadraticAbs: !1,
17297                SVGPathSegCurvetoQuadraticRel: !1,
17298                SVGPathSegCurvetoQuadraticSmoothAbs: !1,
17299                SVGPathSegCurvetoQuadraticSmoothRel: !1,
17300                SVGPathSegLinetoAbs: !1,
17301                SVGPathSegLinetoHorizontalAbs: !1,
17302                SVGPathSegLinetoHorizontalRel: !1,
17303                SVGPathSegLinetoRel: !1,
17304                SVGPathSegLinetoVerticalAbs: !1,
17305                SVGPathSegLinetoVerticalRel: !1,
17306                SVGPathSegList: !1,
17307                SVGPathSegMovetoAbs: !1,
17308                SVGPathSegMovetoRel: !1,
17309                SVGPatternElement: !1,
17310                SVGPoint: !1,
17311                SVGPointList: !1,
17312                SVGPolygonElement: !1,
17313                SVGPolylineElement: !1,
17314                SVGPreserveAspectRatio: !1,
17315                SVGRadialGradientElement: !1,
17316                SVGRect: !1,
17317                SVGRectElement: !1,
17318                SVGRenderingIntent: !1,
17319                SVGSVGElement: !1,
17320                SVGScriptElement: !1,
17321                SVGSetElement: !1,
17322                SVGStopElement: !1,
17323                SVGStringList: !1,
17324                SVGStylable: !1,
17325                SVGStyleElement: !1,
17326                SVGSwitchElement: !1,
17327                SVGSymbolElement: !1,
17328                SVGTRefElement: !1,
17329                SVGTSpanElement: !1,
17330                SVGTests: !1,
17331                SVGTextContentElement: !1,
17332                SVGTextElement: !1,
17333                SVGTextPathElement: !1,
17334                SVGTextPositioningElement: !1,
17335                SVGTitleElement: !1,
17336                SVGTransform: !1,
17337                SVGTransformList: !1,
17338                SVGTransformable: !1,
17339                SVGURIReference: !1,
17340                SVGUnitTypes: !1,
17341                SVGUseElement: !1,
17342                SVGVKernElement: !1,
17343                SVGViewElement: !1,
17344                SVGViewSpec: !1,
17345                SVGZoomAndPan: !1,
17346                Text: !1,
17347                TextDecoder: !1,
17348                TextEncoder: !1,
17349                TimeEvent: !1,
17350                top: !1,
17351                URL: !1,
17352                WebGLActiveInfo: !1,
17353                WebGLBuffer: !1,
17354                WebGLContextEvent: !1,
17355                WebGLFramebuffer: !1,
17356                WebGLProgram: !1,
17357                WebGLRenderbuffer: !1,
17358                WebGLRenderingContext: !1,
17359                WebGLShader: !1,
17360                WebGLShaderPrecisionFormat: !1,
17361                WebGLTexture: !1,
17362                WebGLUniformLocation: !1,
17363                WebSocket: !1,
17364                window: !1,
17365                Window: !1,
17366                Worker: !1,
17367                XDomainRequest: !1,
17368                XMLHttpRequest: !1,
17369                XMLSerializer: !1,
17370                XPathEvaluator: !1,
17371                XPathException: !1,
17372                XPathExpression: !1,
17373                XPathNamespace: !1,
17374                XPathNSResolver: !1,
17375                XPathResult: !1
17376            }, n.devel = {
17377                alert: !1,
17378                confirm: !1,
17379                console: !1,
17380                Debug: !1,
17381                opera: !1,
17382                prompt: !1
17383            }, n.worker = {
17384                importScripts: !0,
17385                postMessage: !0,
17386                self: !0,
17387                FileReaderSync: !0
17388            }, n.nonstandard = {escape: !1, unescape: !1}, n.couch = {
17389                require: !1,
17390                respond: !1,
17391                getRow: !1,
17392                emit: !1,
17393                send: !1,
17394                start: !1,
17395                sum: !1,
17396                log: !1,
17397                exports: !1,
17398                module: !1,
17399                provides: !1
17400            }, n.node = {
17401                __filename: !1,
17402                __dirname: !1,
17403                GLOBAL: !1,
17404                global: !1,
17405                module: !1,
17406                require: !1,
17407                Buffer: !0,
17408                console: !0,
17409                exports: !0,
17410                process: !0,
17411                setTimeout: !0,
17412                clearTimeout: !0,
17413                setInterval: !0,
17414                clearInterval: !0,
17415                setImmediate: !0,
17416                clearImmediate: !0
17417            }, n.browserify = {
17418                __filename: !1,
17419                __dirname: !1,
17420                global: !1,
17421                module: !1,
17422                require: !1,
17423                Buffer: !0,
17424                exports: !0,
17425                process: !0
17426            }, n.phantom = {phantom: !0, require: !0, WebPage: !0, console: !0, exports: !0}, n.qunit = {
17427                asyncTest: !1,
17428                deepEqual: !1,
17429                equal: !1,
17430                expect: !1,
17431                module: !1,
17432                notDeepEqual: !1,
17433                notEqual: !1,
17434                notPropEqual: !1,
17435                notStrictEqual: !1,
17436                ok: !1,
17437                propEqual: !1,
17438                QUnit: !1,
17439                raises: !1,
17440                start: !1,
17441                stop: !1,
17442                strictEqual: !1,
17443                test: !1,
17444                "throws": !1
17445            }, n.rhino = {
17446                defineClass: !1,
17447                deserialize: !1,
17448                gc: !1,
17449                help: !1,
17450                importClass: !1,
17451                importPackage: !1,
17452                java: !1,
17453                load: !1,
17454                loadClass: !1,
17455                Packages: !1,
17456                print: !1,
17457                quit: !1,
17458                readFile: !1,
17459                readUrl: !1,
17460                runCommand: !1,
17461                seal: !1,
17462                serialize: !1,
17463                spawn: !1,
17464                sync: !1,
17465                toint32: !1,
17466                version: !1
17467            }, n.shelljs = {
17468                target: !1,
17469                echo: !1,
17470                exit: !1,
17471                cd: !1,
17472                pwd: !1,
17473                ls: !1,
17474                find: !1,
17475                cp: !1,
17476                rm: !1,
17477                mv: !1,
17478                mkdir: !1,
17479                test: !1,
17480                cat: !1,
17481                sed: !1,
17482                grep: !1,
17483                which: !1,
17484                dirs: !1,
17485                pushd: !1,
17486                popd: !1,
17487                env: !1,
17488                exec: !1,
17489                chmod: !1,
17490                config: !1,
17491                error: !1,
17492                tempdir: !1
17493            }, n.typed = {
17494                ArrayBuffer: !1,
17495                ArrayBufferView: !1,
17496                DataView: !1,
17497                Float32Array: !1,
17498                Float64Array: !1,
17499                Int16Array: !1,
17500                Int32Array: !1,
17501                Int8Array: !1,
17502                Uint16Array: !1,
17503                Uint32Array: !1,
17504                Uint8Array: !1,
17505                Uint8ClampedArray: !1
17506            }, n.wsh = {
17507                ActiveXObject: !0,
17508                Enumerator: !0,
17509                GetObject: !0,
17510                ScriptEngine: !0,
17511                ScriptEngineBuildVersion: !0,
17512                ScriptEngineMajorVersion: !0,
17513                ScriptEngineMinorVersion: !0,
17514                VBArray: !0,
17515                WSH: !0,
17516                WScript: !0,
17517                XDomainRequest: !0
17518            }, n.dojo = {dojo: !1, dijit: !1, dojox: !1, define: !1, require: !1}, n.jquery = {
17519                $: !1,
17520                jQuery: !1
17521            }, n.mootools = {
17522                $: !1,
17523                $$: !1,
17524                Asset: !1,
17525                Browser: !1,
17526                Chain: !1,
17527                Class: !1,
17528                Color: !1,
17529                Cookie: !1,
17530                Core: !1,
17531                Document: !1,
17532                DomReady: !1,
17533                DOMEvent: !1,
17534                DOMReady: !1,
17535                Drag: !1,
17536                Element: !1,
17537                Elements: !1,
17538                Event: !1,
17539                Events: !1,
17540                Fx: !1,
17541                Group: !1,
17542                Hash: !1,
17543                HtmlTable: !1,
17544                IFrame: !1,
17545                IframeShim: !1,
17546                InputValidator: !1,
17547                instanceOf: !1,
17548                Keyboard: !1,
17549                Locale: !1,
17550                Mask: !1,
17551                MooTools: !1,
17552                Native: !1,
17553                Options: !1,
17554                OverText: !1,
17555                Request: !1,
17556                Scroller: !1,
17557                Slick: !1,
17558                Slider: !1,
17559                Sortables: !1,
17560                Spinner: !1,
17561                Swiff: !1,
17562                Tips: !1,
17563                Type: !1,
17564                typeOf: !1,
17565                URI: !1,
17566                Window: !1
17567            }, n.prototypejs = {
17568                $: !1,
17569                $$: !1,
17570                $A: !1,
17571                $F: !1,
17572                $H: !1,
17573                $R: !1,
17574                $break: !1,
17575                $continue: !1,
17576                $w: !1,
17577                Abstract: !1,
17578                Ajax: !1,
17579                Class: !1,
17580                Enumerable: !1,
17581                Element: !1,
17582                Event: !1,
17583                Field: !1,
17584                Form: !1,
17585                Hash: !1,
17586                Insertion: !1,
17587                ObjectRange: !1,
17588                PeriodicalExecuter: !1,
17589                Position: !1,
17590                Prototype: !1,
17591                Selector: !1,
17592                Template: !1,
17593                Toggle: !1,
17594                Try: !1,
17595                Autocompleter: !1,
17596                Builder: !1,
17597                Control: !1,
17598                Draggable: !1,
17599                Draggables: !1,
17600                Droppables: !1,
17601                Effect: !1,
17602                Sortable: !1,
17603                SortableObserver: !1,
17604                Sound: !1,
17605                Scriptaculous: !1
17606            }, n.yui = {YUI: !1, Y: !1, YUI_config: !1}, n.mocha = {
17607                mocha: !1,
17608                describe: !1,
17609                xdescribe: !1,
17610                it: !1,
17611                xit: !1,
17612                context: !1,
17613                xcontext: !1,
17614                before: !1,
17615                after: !1,
17616                beforeEach: !1,
17617                afterEach: !1,
17618                suite: !1,
17619                test: !1,
17620                setup: !1,
17621                teardown: !1,
17622                suiteSetup: !1,
17623                suiteTeardown: !1
17624            }, n.jasmine = {
17625                jasmine: !1,
17626                describe: !1,
17627                xdescribe: !1,
17628                it: !1,
17629                xit: !1,
17630                beforeEach: !1,
17631                afterEach: !1,
17632                setFixtures: !1,
17633                loadFixtures: !1,
17634                spyOn: !1,
17635                expect: !1,
17636                runs: !1,
17637                waitsFor: !1,
17638                waits: !1,
17639                beforeAll: !1,
17640                afterAll: !1,
17641                fail: !1,
17642                fdescribe: !1,
17643                fit: !1,
17644                pending: !1
17645            }
17646        }, {}]
17647    }, {}, ["/node_modules/jshint/src/jshint.js"])
17648}), define("ace/mode/javascript_worker", [], function (require, exports, module) {
17649    "use strict";
17650
17651    function startRegex(e) {
17652        return RegExp("^(" + e.join("|") + ")")
17653    }
17654
17655    var oop = require("../lib/oop"), Mirror = require("../worker/mirror").Mirror,
17656        lint = require("./javascript/jshint").JSHINT,
17657        disabledWarningsRe = startRegex(["Bad for in variable '(.+)'.", 'Missing "use strict"']),
17658        errorsRe = startRegex(["Unexpected", "Expected ", "Confusing (plus|minus)", "\\{a\\} unterminated regular expression", "Unclosed ", "Unmatched ", "Unbegun comment", "Bad invocation", "Missing space after", "Missing operator at"]),
17659        infoRe = startRegex(["Expected an assignment", "Bad escapement of EOL", "Unexpected comma", "Unexpected space", "Missing radix parameter.", "A leading decimal point can", "\\['{a}'\\] is better written in dot notation.", "'{a}' used out of scope"]),
17660        JavaScriptWorker = exports.JavaScriptWorker = function (e) {
17661            Mirror.call(this, e), this.setTimeout(500), this.setOptions()
17662        };
17663    oop.inherits(JavaScriptWorker, Mirror), function () {
17664        this.setOptions = function (e) {
17665            this.options = e || {
17666                esnext: !0,
17667                moz: !0,
17668                devel: !0,
17669                browser: !0,
17670                node: !0,
17671                laxcomma: !0,
17672                laxbreak: !0,
17673                lastsemic: !0,
17674                onevar: !1,
17675                passfail: !1,
17676                maxerr: 100,
17677                expr: !0,
17678                multistr: !0,
17679                globalstrict: !0
17680            }, this.doc.getValue() && this.deferredUpdate.schedule(100)
17681        }, this.changeOptions = function (e) {
17682            oop.mixin(this.options, e), this.doc.getValue() && this.deferredUpdate.schedule(100)
17683        }, this.isValidJS = function (str) {
17684            try {
17685                eval("throw 0;" + str)
17686            } catch (e) {
17687                if (e === 0) return !0
17688            }
17689            return !1
17690        }, this.onUpdate = function () {
17691            var e = this.doc.getValue();
17692            e = e.replace(/^#!.*\n/, "\n");
17693            if (!e) return this.sender.emit("annotate", []);
17694            var t = [], n = this.isValidJS(e) ? "warning" : "error";
17695            lint(e, this.options, this.options.globals);
17696            var r = lint.errors, i = !1;
17697            for (var s = 0; s < r.length; s++) {
17698                var o = r[s];
17699                if (!o) continue;
17700                var u = o.raw, a = "warning";
17701                if (u == "Missing semicolon.") {
17702                    var f = o.evidence.substr(o.character);
17703                    f = f.charAt(f.search(/\S/)), n == "error" && f && /[\w\d{(['"]/.test(f) ? (o.reason = 'Missing ";" before statement', a = "error") : a = "info"
17704                } else {
17705                    if (disabledWarningsRe.test(u)) continue;
17706                    infoRe.test(u) ? a = "info" : errorsRe.test(u) ? (i = !0, a = n) : u == "'{a}' is not defined." ? a = "warning" : u == "'{a}' is defined but never used." && (a = "info")
17707                }
17708                t.push({row: o.line - 1, column: o.character - 1, text: o.reason, type: a, raw: u}), i
17709            }
17710            this.sender.emit("annotate", t)
17711        }
17712    }.call(JavaScriptWorker.prototype)
17713}), define("ace/lib/es5-shim", [], function (e, t, n) {
17714    function r() {
17715    }
17716
17717    function w(e) {
17718        try {
17719            return Object.defineProperty(e, "sentinel", {}), "sentinel" in e
17720        } catch (t) {
17721        }
17722    }
17723
17724    function H(e) {
17725        return e = +e, e !== e ? e = 0 : e !== 0 && e !== 1 / 0 && e !== -1 / 0 && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), e
17726    }
17727
17728    function B(e) {
17729        var t = typeof e;
17730        return e === null || t === "undefined" || t === "boolean" || t === "number" || t === "string"
17731    }
17732
17733    function j(e) {
17734        var t, n, r;
17735        if (B(e)) return e;
17736        n = e.valueOf;
17737        if (typeof n == "function") {
17738            t = n.call(e);
17739            if (B(t)) return t
17740        }
17741        r = e.toString;
17742        if (typeof r == "function") {
17743            t = r.call(e);
17744            if (B(t)) return t
17745        }
17746        throw new TypeError
17747    }
17748
17749    Function.prototype.bind || (Function.prototype.bind = function (t) {
17750        var n = this;
17751        if (typeof n != "function") throw new TypeError("Function.prototype.bind called on incompatible " + n);
17752        var i = u.call(arguments, 1), s = function () {
17753            if (this instanceof s) {
17754                var e = n.apply(this, i.concat(u.call(arguments)));
17755                return Object(e) === e ? e : this
17756            }
17757            return n.apply(t, i.concat(u.call(arguments)))
17758        };
17759        return n.prototype && (r.prototype = n.prototype, s.prototype = new r, r.prototype = null), s
17760    });
17761    var i = Function.prototype.call, s = Array.prototype, o = Object.prototype, u = s.slice, a = i.bind(o.toString),
17762        f = i.bind(o.hasOwnProperty), l, c, h, p, d;
17763    if (d = f(o, "__defineGetter__")) l = i.bind(o.__defineGetter__), c = i.bind(o.__defineSetter__), h = i.bind(o.__lookupGetter__), p = i.bind(o.__lookupSetter__);
17764    if ([1, 2].splice(0).length != 2) if (!function () {
17765        function e(e) {
17766            var t = new Array(e + 2);
17767            return t[0] = t[1] = 0, t
17768        }
17769
17770        var t = [], n;
17771        t.splice.apply(t, e(20)), t.splice.apply(t, e(26)), n = t.length, t.splice(5, 0, "XXX"), n + 1 == t.length;
17772        if (n + 1 == t.length) return !0
17773    }()) Array.prototype.splice = function (e, t) {
17774        var n = this.length;
17775        e > 0 ? e > n && (e = n) : e == void 0 ? e = 0 : e < 0 && (e = Math.max(n + e, 0)), e + t < n || (t = n - e);
17776        var r = this.slice(e, e + t), i = u.call(arguments, 2), s = i.length;
17777        if (e === n) s && this.push.apply(this, i); else {
17778            var o = Math.min(t, n - e), a = e + o, f = a + s - o, l = n - a, c = n - o;
17779            if (f < a) for (var h = 0; h < l; ++h) this[f + h] = this[a + h]; else if (f > a) for (h = l; h--;) this[f + h] = this[a + h];
17780            if (s && e === c) this.length = c, this.push.apply(this, i); else {
17781                this.length = c + s;
17782                for (h = 0; h < s; ++h) this[e + h] = i[h]
17783            }
17784        }
17785        return r
17786    }; else {
17787        var v = Array.prototype.splice;
17788        Array.prototype.splice = function (e, t) {
17789            return arguments.length ? v.apply(this, [e === void 0 ? 0 : e, t === void 0 ? this.length - e : t].concat(u.call(arguments, 2))) : []
17790        }
17791    }
17792    Array.isArray || (Array.isArray = function (t) {
17793        return a(t) == "[object Array]"
17794    });
17795    var m = Object("a"), g = m[0] != "a" || !(0 in m);
17796    Array.prototype.forEach || (Array.prototype.forEach = function (t) {
17797        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = arguments[1], s = -1,
17798            o = r.length >>> 0;
17799        if (a(t) != "[object Function]") throw new TypeError;
17800        while (++s < o) s in r && t.call(i, r[s], s, n)
17801    }), Array.prototype.map || (Array.prototype.map = function (t) {
17802        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = Array(i),
17803            o = arguments[1];
17804        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
17805        for (var u = 0; u < i; u++) u in r && (s[u] = t.call(o, r[u], u, n));
17806        return s
17807    }), Array.prototype.filter || (Array.prototype.filter = function (t) {
17808        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = [], o,
17809            u = arguments[1];
17810        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
17811        for (var f = 0; f < i; f++) f in r && (o = r[f], t.call(u, o, f, n) && s.push(o));
17812        return s
17813    }), Array.prototype.every || (Array.prototype.every = function (t) {
17814        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
17815            s = arguments[1];
17816        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
17817        for (var o = 0; o < i; o++) if (o in r && !t.call(s, r[o], o, n)) return !1;
17818        return !0
17819    }), Array.prototype.some || (Array.prototype.some = function (t) {
17820        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
17821            s = arguments[1];
17822        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
17823        for (var o = 0; o < i; o++) if (o in r && t.call(s, r[o], o, n)) return !0;
17824        return !1
17825    }), Array.prototype.reduce || (Array.prototype.reduce = function (t) {
17826        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
17827        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
17828        if (!i && arguments.length == 1) throw new TypeError("reduce of empty array with 
17828no initial value");
17829        var s = 0, o;
17830        if (arguments.length >= 2) o = arguments[1]; else do {
17831            if (s in r) {
17832                o = r[s++];
17833                break
17834            }
17835            if (++s >= i) throw new TypeError("reduce of empty array with no initial value")
17836        } while (!0);
17837        for (; s < i; s++) s in r && (o = t.call(void 0, o, r[s], s, n));
17838        return o
17839    }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function (t) {
17840        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
17841        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
17842        if (!i && arguments.length == 1) throw new TypeError("reduceRight of empty array with no initial value");
17843        var s, o = i - 1;
17844        if (arguments.length >= 2) s = arguments[1]; else do {
17845            if (o in r) {
17846                s = r[o--];
17847                break
17848            }
17849            if (--o < 0) throw new TypeError("reduceRight of empty array with no initial value")
17850        } while (!0);
17851        do o in this && (s = t.call(void 0, s, r[o], o, n)); while (o--);
17852        return s
17853    });
17854    if (!Array.prototype.indexOf || [0, 1].indexOf(1, 2) != -1) Array.prototype.indexOf = function (t) {
17855        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
17856        if (!r) return -1;
17857        var i = 0;
17858        arguments.length > 1 && (i = H(arguments[1])), i = i >= 0 ? i : Math.max(0, r + i);
17859        for (; i < r; i++) if (i in n && n[i] === t) return i;
17860        return -1
17861    };
17862    if (!Array.prototype.lastIndexOf || [0, 1].lastIndexOf(0, -3) != -1) Array.prototype.lastIndexOf = function (t) {
17863        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
17864        if (!r) return -1;
17865        var i = r - 1;
17866        arguments.length > 1 && (i = Math.min(i, H(arguments[1]))), i = i >= 0 ? i : r - Math.abs(i);
17867        for (; i >= 0; i--) if (i in n && t === n[i]) return i;
17868        return -1
17869    };
17870    Object.getPrototypeOf || (Object.getPrototypeOf = function (t) {
17871        return t.__proto__ || (t.constructor ? t.constructor.prototype : o)
17872    });
17873    if (!Object.getOwnPropertyDescriptor) {
17874        var y = "Object.getOwnPropertyDescriptor called on a non-object: ";
17875        Object.getOwnPropertyDescriptor = function (t, n) {
17876            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(y + t);
17877            if (!f(t, n)) return;
17878            var r, i, s;
17879            r = {enumerable: !0, configurable: !0};
17880            if (d) {
17881                var u = t.__proto__;
17882                t.__proto__ = o;
17883                var i = h(t, n), s = p(t, n);
17884                t.__proto__ = u;
17885                if (i || s) return i && (r.get = i), s && (r.set = s), r
17886            }
17887            return r.value = t[n], r
17888        }
17889    }
17890    Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function (t) {
17891        return Object.keys(t)
17892    });
17893    if (!Object.create) {
17894        var b;
17895        Object.prototype.__proto__ === null ? b = function () {
17896            return {__proto__: null}
17897        } : b = function () {
17898            var e = {};
17899            for (var t in e) e[t] = null;
17900            return e.constructor = e.hasOwnProperty = e.propertyIsEnumerable = e.isPrototypeOf = e.toLocaleString = e.toString = e.valueOf = e.__proto__ = null, e
17901        }, Object.create = function (t, n) {
17902            var r;
17903            if (t === null) r = b(); else {
17904                if (typeof t != "object") throw new TypeError("typeof prototype[" + typeof t + "] != 'object'");
17905                var i = function () {
17906                };
17907                i.prototype = t, r = new i, r.__proto__ = t
17908            }
17909            return n !== void 0 && Object.defineProperties(r, n), r
17910        }
17911    }
17912    if (Object.defineProperty) {
17913        var E = w({}), S = typeof document == "undefined" || w(document.createElement("div"));
17914        if (!E || !S) var x = Object.defineProperty
17915    }
17916    if (!Object.defineProperty || x) {
17917        var T = "Property description must be an object: ", N = "Object.defineProperty called on non-object: ",
17918            C = "getters & setters can not be defined on this javascript engine";
17919        Object.defineProperty = function (t, n, r) {
17920            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(N + t);
17921            if (typeof r != "object" && typeof r != "function" || r === null) throw new TypeError(T + r);
17922            if (x) try {
17923                return x.call(Object, t, n, r)
17924            } catch (i) {
17925            }
17926            if (f(r, "value")) if (d && (h(t, n) || p(t, n))) {
17927                var s = t.__proto__;
17928                t.__proto__ = o, delete t[n], t[n] = r.value, t.__proto__ = s
17929            } else t[n] = r.value; else {
17930                if (!d) throw new TypeError(C);
17931                f(r, "get") && l(t, n, r.get), f(r, "set") && c(t, n, r.set)
17932            }
17933            return t
17934        }
17935    }
17936    Object.defineProperties || (Object.defineProperties = function (t, n) {
17937        for (var r in n) f(n, r) && Object.defineProperty(t, r, n[r]);
17938        return t
17939    }), Object.seal || (Object.seal = function (t) {
17940        return t
17941    }), Object.freeze || (Object.freeze = function (t) {
17942        return t
17943    });
17944    try {
17945        Object.freeze(function () {
17946        })
17947    } catch (k) {
17948        Object.freeze = function (t) {
17949            return function (n) {
17950                return typeof n == "function" ? n : t(n)
17951            }
17952        }(Object.freeze)
17953    }
17954    Object.preventExtensions || (Object.preventExtensions = function (t) {
17955        return t
17956    }), Object.isSealed || (Object.isSealed = function (t) {
17957        return !1
17958    }), Object.isFrozen || (Object.isFrozen = function (t) {
17959        return !1
17960    }), Object.isExtensible || (Object.isExtensible = function (t) {
17961        if (Object(t) === t) throw new TypeError;
17962        var n = "";
17963        while (f(t, n)) n += "?";
17964        t[n] = !0;
17965        var r = f(t, n);
17966        return delete t[n], r
17967    });
17968    if (!Object.keys) {
17969        var L = !0,
17970            A = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
17971            O = A.length;
17972        for (var M in {toString: null}) L = !1;
17973        Object.keys = function I(e) {
17974            if (typeof e != "object" && typeof e != "function" || e === null) throw new TypeError("Object.keys called on a non-object");
17975            var I = [];
17976            for (var t in e) f(e, t) && I.push(t);
17977            if (L) for (var n = 0, r = O; n < r; n++) {
17978                var i = A[n];
17979                f(e, i) && I.push(i)
17980            }
17981            return I
17982        }
17983    }
17984    Date.now || (Date.now = function () {
17985        return (new Date).getTime()
17986    });
17987    var _ = "	\n\x0b\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";
17988    if (!String.prototype.trim || _.trim()) {
17989        _ = "[" + _ + "]";
17990        var D = new RegExp("^" + _ + _ + "*"), P = new RegExp(_ + _ + "*$");
17991        String.prototype.trim = function () {
17992            return String(this).replace(D, "").replace(P, "")
17993        }
17994    }
17995    var F = function (e) {
17996        if (e == null) throw new TypeError("can't convert " + e + " to object");
17997        return Object(e)
17998    }
17999})
18000
18001"no use strict";
18002!function (e) {
18003    function t(e, t) {
18004        var n = e, r = "";
18005        while (n) {
18006            var i = t[n];
18007            if (typeof i == "string") return i + r;
18008            if (i) return i.location.replace(/\/*$/, "/") + (r || i.main || i.name);
18009            if (i === !1) return "";
18010            var s = n.lastIndexOf("/");
18011            if (s === -1) break;
18012            r = n.substr(s) + r, n = n.slice(0, s)
18013        }
18014        return e
18015    }
18016
18017    if (typeof e.window != "undefined" && e.document) return;
18018    if (e.require && e.define) return;
18019    e.console || (e.console = function () {
18020        var e = Array.prototype.slice.call(arguments, 0);
18021        postMessage({type: "log", data: e})
18022    }, e.console.error = e.console.warn = e.console.log = e.console.trace = e.console), e.window = e, e.ace = e, e.onerror = function (e, t, n, r, i) {
18023        postMessage({type: "error", data: {message: e, data: i.data, file: t, line: n, col: r, stack: i.stack}})
18024    }, e.normalizeModule = function (t, n) {
18025        if (n.indexOf("!") !== -1) {
18026            var r = n.split("!");
18027            return e.normalizeModule(t, r[0]) + "!" + e.normalizeModule(t, r[1])
18028        }
18029        if (n.charAt(0) == ".") {
18030            var i = t.split("/").slice(0, -1).join("/");
18031            n = (i ? i + "/" : "") + n;
18032            while (n.indexOf(".") !== -1 && s != n) {
18033                var s = n;
18034                n = n.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "")
18035            }
18036        }
18037        return n
18038    }, e.require = function (r, i) {
18039        i || (i = r, r = null);
18040        if (!i.charAt) throw new Error("worker.js require() accepts only (parentId, id) as arguments");
18041        i = e.normalizeModule(r, i);
18042        var s = e.require.modules[i];
18043        if (s) return s.initialized || (s.initialized = !0, s.exports = s.factory().exports), s.exports;
18044        if (!e.require.tlns) return console.log("unable to load " + i);
18045        var o = t(i, e.require.tlns);
18046        return o.slice(-3) != ".js" && (o += ".js"), e.require.id = i, e.require.modules[i] = {}, importScripts(o), e.require(r, i)
18047    }, e.require.modules = {}, e.require.tlns = {}, e.define = function (t, n, r) {
18048        arguments.length == 2 ? (r = n, typeof t != "string" && (n = t, t = e.require.id)) : arguments.length == 1 && (r = t, n = [], t = e.require.id);
18049        if (typeof r != "function") {
18050            e.require.modules[t] = {exports: r, initialized: !0};
18051            return
18052        }
18053        n.length || (n = ["require", "exports", "module"]);
18054        var i = function (n) {
18055            return e.require(t, n)
18056        };
18057        e.require.modules[t] = {
18058            exports: {}, factory: function () {
18059                var e = this, t = r.apply(this, n.slice(0, r.length).map(function (t) {
18060                    switch (t) {
18061                        case"require":
18062                            return i;
18063                        case"exports":
18064                            return e.exports;
18065                        case"module":
18066                            return e;
18067                        default:
18068                            return i(t)
18069                    }
18070                }));
18071                return t && (e.exports = t), e
18072            }
18073        }
18074    }, e.define.amd = {}, require.tlns = {}, e.initBaseUrls = function (t) {
18075        for (var n in t) require.tlns[n] = t[n]
18076    }, e.initSender = function () {
18077        var n = e.require("ace/lib/event_emitter").EventEmitter, r = e.require("ace/lib/oop"), i = function () {
18078        };
18079        return function () {
18080            r.implement(this, n), this.callback = function (e, t) {
18081                postMessage({type: "call", id: t, data: e})
18082            }, this.emit = function (e, t) {
18083                postMessage({type: "event", name: e, data: t})
18084            }
18085        }.call(i.prototype), new i
18086    };
18087    var n = e.main = null, r = e.sender = null;
18088    e.onmessage = function (t) {
18089        var i = t.data;
18090        if (i.event && r) r._signal(i.event, i.data); else if (i.command) if (n[i.command]) n[i.command].apply(n, i.args); else {
18091            if (!e[i.command]) throw new Error("Unknown command:" + i.command);
18092            e[i.command].apply(e, i.args)
18093        } else if (i.init) {
18094            e.initBaseUrls(i.tlns), require("ace/lib/es5-shim"), r = e.sender = e.initSender();
18095            var s = require(i.module)[i.classname];
18096            n = e.main = new s(r)
18097        }
18098    }
18099}(this), define("ace/lib/oop", [], function (e, t, n) {
18100    "use strict";
18101    t.inherits = function (e, t) {
18102        e.super_ = t, e.prototype = Object.create(t.prototype, {
18103            constructor: {
18104                value: e,
18105                enumerable: !1,
18106                writable: !0,
18107                configurable: !0
18108            }
18109        })
18110    }, t.mixin = function (e, t) {
18111        for (var n in t) e[n] = t[n];
18112        return e
18113    }, t.implement = function (e, n) {
18114        t.mixin(e, n)
18115    }
18116}), define("ace/range", [], function (e, t, n) {
18117    "use strict";
18118    var r = function (e, t) {
18119        return e.row - t.row || e.column - t.column
18120    }, i = function (e, t, n, r) {
18121        this.start = {row: e, column: t}, this.end = {row: n, column: r}
18122    };
18123    (function () {
18124        this.isEqual = function (e) {
18125            return this.start.row === e.start.row && this.end.row 
18125=== e.end.row && this.start.column === e.start.column && this.end.column === e.end.column
18126        }, this.toString = function () {
18127            return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"
18128        }, this.contains = function (e, t) {
18129            return this.compare(e, t) == 0
18130        }, this.compareRange = function (e) {
18131            var t, n = e.end, r = e.start;
18132            return t = this.compare(n.row, n.column), t == 1 ? (t = this.compare(r.row, r.column), t == 1 ? 2 : t == 0 ? 1 : 0) : t == -1 ? -2 : (t = this.compare(r.row, r.column), t == -1 ? -1 : t == 1 ? 42 : 0)
18133        }, this.comparePoint = function (e) {
18134            return this.compare(e.row, e.column)
18135        }, this.containsRange = function (e) {
18136            return this.comparePoint(e.start) == 0 && this.comparePoint(e.end) == 0
18137        }, this.intersects = function (e) {
18138            var t = this.compareRange(e);
18139            return t == -1 || t == 0 || t == 1
18140        }, this.isEnd = function (e, t) {
18141            return this.end.row == e && this.end.column == t
18142        }, this.isStart = function (e, t) {
18143            return this.start.row == e && this.start.column == t
18144        }, this.setStart = function (e, t) {
18145            typeof e == "object" ? (this.start.column = e.column, this.start.row = e.row) : (this.start.row = e, this.start.column = t)
18146        }, this.setEnd = function (e, t) {
18147            typeof e == "object" ? (this.end.column = e.column, this.end.row = e.row) : (this.end.row = e, this.end.column = t)
18148        }, this.inside = function (e, t) {
18149            return this.compare(e, t) == 0 ? this.isEnd(e, t) || this.isStart(e, t) ? !1 : !0 : !1
18150        }, this.insideStart = function (e, t) {
18151            return this.compare(e, t) == 0 ? this.isEnd(e, t) ? !1 : !0 : !1
18152        }, this.insideEnd = function (e, t) {
18153            return this.compare(e, t) == 0 ? this.isStart(e, t) ? !1 : !0 : !1
18154        }, this.compare = function (e, t) {
18155            return !this.isMultiLine() && e === this.start.row ? t < this.start.column ? -1 : t > this.end.column ? 1 : 0 : 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
18156        }, this.compareStart = function (e, t) {
18157            return this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
18158        }, this.compareEnd = function (e, t) {
18159            return this.end.row == e && this.end.column == t ? 1 : this.compare(e, t)
18160        }, this.compareInside = function (e, t) {
18161            return this.end.row == e && this.end.column == t ? 1 : this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
18162        }, this.clipRows = function (e, t) {
18163            if (this.end.row > t) var n = {row: t + 1, column: 0}; else if (this.end.row < e) var n = {
18164                row: e,
18165                column: 0
18166            };
18167            if (this.start.row > t) var r = {row: t + 1, column: 0}; else if (this.start.row < e) var r = {
18168                row: e,
18169                column: 0
18170            };
18171            return i.fromPoints(r || this.start, n || this.end)
18172        }, this.extend = function (e, t) {
18173            var n = this.compare(e, t);
18174            if (n == 0) return this;
18175            if (n == -1) var r = {row: e, column: t}; else var s = {row: e, column: t};
18176            return i.fromPoints(r || this.start, s || this.end)
18177        }, this.isEmpty = function () {
18178            return this.start.row === this.end.row && this.start.column === this.end.column
18179        }, this.isMultiLine = function () {
18180            return this.start.row !== this.end.row
18181        }, this.clone = function () {
18182            return i.fromPoints(this.start, this.end)
18183        }, this.collapseRows = function () {
18184            return this.end.column == 0 ? 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)
18185        }, this.toScreenRange = function (e) {
18186            var t = e.documentToScreenPosition(this.start), n = e.documentToScreenPosition(this.end);
18187            return new i(t.row, t.column, n.row, n.column)
18188        }, this.moveBy = function (e, t) {
18189            this.start.row += e, this.start.column += t, this.end.row += e, this.end.column += t
18190        }
18191    }).call(i.prototype), i.fromPoints = function (e, t) {
18192        return new i(e.row, e.column, t.row, t.column)
18193    }, i.comparePoints = r, i.comparePoints = function (e, t) {
18194        return e.row - t.row || e.column - t.column
18195    }, t.Range = i
18196}), define("ace/apply_delta", [], function (e, t, n) {
18197    "use strict";
18198
18199    function r(e, t) {
18200        throw console.log("Invalid Delta:", e), "Invalid Delta: " + t
18201    }
18202
18203    function i(e, t) {
18204        return t.row >= 0 && t.row < e.length && t.column >= 0 && t.column <= e[t.row].length
18205    }
18206
18207    function s(e, t) {
18208        t.action != "insert" && t.action != "remove" && r(t, "delta.action must be 'insert' or 'remove'"), t.lines instanceof Array || r(t, "delta.lines must be an Array"), (!t.start || !t.end) && r(t, "delta.start/end must be an present");
18209        var n = t.start;
18210        i(e, t.start) || r(t, "delta.start must be contained in document");
18211        var s = t.end;
18212        t.action == "remove" && !i(e, s) && r(t, "delta.end must contained in document for 'remove' actions");
18213        var o = s.row - n.row, u = s.column - (o == 0 ? n.column : 0);
18214        (o != t.lines.length - 1 || t.lines[o].length != u) && r(t, "delta.range must match delta lines")
18215    }
18216
18217    t.applyDelta = function (e, t, n) {
18218        var r = t.start.row, i = t.start.column, s = e[r] || "";
18219        switch (t.action) {
18220            case"insert":
18221                var o = t.lines;
18222                if (o.length === 1) e[r] = s.substring(0, i) + t.lines[0] + s.substring(i); else {
18223                    var u = [r, 1].concat(t.lines);
18224                    e.splice.apply(e, u), e[r] = s.substring(0, i) + e[r], e[r + t.lines.length - 1] += s.substring(i)
18225                }
18226                break;
18227            case"remove":
18228                var a = t.end.column, f = t.end.row;
18229                r === f ? e[r] = s.substring(0, i) + s.substring(a) : e.splice(r, f - r + 1, s.substring(0, i) + e[f].substring(a))
18230        }
18231    }
18232}), define("ace/lib/event_emitter", [], function (e, t, n) {
18233    "use strict";
18234    var r = {}, i = function () {
18235        this.propagationStopped = !0
18236    }, s = function () {
18237        this.defaultPrevented = !0
18238    };
18239    r._emit = r._dispatchEvent = function (e, t) {
18240        this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});
18241        var n = this._eventRegistry[e] || [], r = this._defaultHandlers[e];
18242        if (!n.length && !r) return;
18243        if (typeof t != "object" || !t) t = {};
18244        t.type || (t.type = e), t.stopPropagation || (t.stopPropagation = i), t.preventDefault || (t.preventDefault = s), n = n.slice();
18245        for (var o = 0; o < n.length; o++) {
18246            n[o](t, this);
18247            if (t.propagationStopped) break
18248        }
18249        if (r && !t.defaultPrevented) return r(t, this)
18250    }, r._signal = function (e, t) {
18251        var n = (this._eventRegistry || {})[e];
18252        if (!n) return;
18253        n = n.slice();
18254        for (var r = 0; r < n.length; r++) n[r](t, this)
18255    }, r.once = function (e, t) {
18256        var n = this;
18257        this.addEventListener(e, function r() {
18258            n.removeEventListener(e, r), t.apply(null, arguments)
18259        });
18260        if (!t) return new Promise(function (e) {
18261            t = e
18262        })
18263    }, r.setDefaultHandler = function (e, t) {
18264        var n = this._defaultHandlers;
18265        n || (n = this._defaultHandlers = {_disabled_: {}});
18266        if (n[e]) {
18267            var r = n[e], i = n._disabled_[e];
18268            i || (n._disabled_[e] = i = []), i.push(r);
18269            var s = i.indexOf(t);
18270            s != -1 && i.splice(s, 1)
18271        }
18272        n[e] = t
18273    }, r.removeDefaultHandler = function (e, t) {
18274        var n = this._defaultHandlers;
18275        if (!n) return;
18276        var r = n._disabled_[e];
18277        if (n[e] == t) r && this.setDefaultHandler(e, r.pop()); else if (r) {
18278            var i = r.indexOf(t);
18279            i != -1 && r.splice(i, 1)
18280        }
18281    }, r.on = r.addEventListener = function (e, t, n) {
18282        this._eventRegistry = this._eventRegistry || {};
18283        var r = this._eventRegistry[e];
18284        return r || (r = this._eventRegistry[e] = []), r.indexOf(t) == -1 && r[n ? "unshift" : "push"](t), t
18285    }, r.off = r.removeListener = r.removeEventListener = function (e, t) {
18286        this._eventRegistry = this._eventRegistry || {};
18287        var n = this._eventRegistry[e];
18288        if (!n) return;
18289        var r = n.indexOf(t);
18290        r !== -1 && n.splice(r, 1)
18291    }, r.removeAllListeners = function (e) {
18292        this._eventRegistry && (this._eventRegistry[e] = [])
18293    }, t.EventEmitter = r
18294}), define("ace/anchor", [], function (e, t, n) {
18295    "use strict";
18296    var r = e("./lib/oop"), i = e("./lib/event_emitter").EventEmitter, s = t.Anchor = function (e, t, n) {
18297        this.$onChange = this.onChange.bind(this), this.attach(e), typeof n == "undefined" ? this.setPosition(t.row, t.column) : this.setPosition(t, n)
18298    };
18299    (function () {
18300        function e(e, t, n) {
18301            var r = n ? e.column <= t.column : e.column < t.column;
18302            return e.row < t.row || e.row == t.row && r
18303        }
18304
18305        function t(t, n, r) {
18306            var i = t.action == "insert", s = (i ? 1 : -1) * (t.end.row - t.start.row),
18307                o = (i ? 1 : -1) * (t.end.column - t.start.column), u = t.start, a = i ? u : t.end;
18308            return e(n, u, r) ? {row: n.row, column: n.column} : e(a, n, !r) ? {
18309                row: n.row + s,
18310                column: n.column + (n.row == a.row ? o : 0)
18311            } : {row: u.row, column: u.column}
18312        }
18313
18314        r.implement(this, i), this.getPosition = function () {
18315            return this.$clipPositionToDocument(this.row, this.column)
18316        }, this.getDocument = function () {
18317            return this.document
18318        }, this.$insertRight = !1, this.onChange = function (e) {
18319            if (e.start.row == e.end.row && e.start.row != this.row) return;
18320            if (e.start.row > this.row) return;
18321            var n = t(e, {row: this.row, column: this.column}, this.$insertRight);
18322            this.setPosition(n.row, n.column, !0)
18323        }, this.setPosition = function (e, t, n) {
18324            var r;
18325            n ? r = {row: e, column: t} : r = this.$clipPositionToDocument(e, t);
18326            if (this.row == r.row && this.column == r.column) return;
18327            var i = {row: this.row, column: this.column};
18328            this.row = r.row, this.column = r.column, this._signal("change", {old: i, value: r})
18329        }, this.detach = function () {
18330            this.document.removeEventListener("change", this.$onChange)
18331        }, this.attach = function (e) {
18332            this.document = e || this.document, this.document.on("change", this.$onChange)
18333        }, this.$clipPositionToDocument = function (e, t) {
18334            var n = {};
18335            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
18336        }
18337    }).call(s.prototype)
18338}), define("ace/document", [], function (e, t, n) {
18339    "use strict";
18340    var r = e("./lib/oop"), i = e("./apply_delta").applyDelta, s = e("./lib/event_emitter").EventEmitter,
18341        o = e("./range").Range, u = e("./anchor").Anchor, a = function (e) {
18342            this.$lines = [""], e.length === 0 ? this.$lines = [""] : Array.isArray(e) ? this.insertMergedLines({
18343                row: 0,
18344                column: 0
18345            }, e) : this.insert({row: 0, column: 0}, e)
18346        };
18347    (function () {
18348        r.implement(this, s), this.setValue = function (e) {
18349            var t = this.getLength() - 1;
18350            this.remove(new o(0, 0, t, this.getLine(t).length)), this.insert({row: 0, column: 0}, e)
18351        }, this.getValue = function () {
18352            return this.getAllLines().join(this.getNewLineCharacter())
18353        }, this.createAnchor = function (e, t) {
18354            return new u(this, e, t)
18355        }, "aaa".split(/a/).length === 0 ? this.$split = function (e) {
18356            return e.replace(/\r\n|\r/g, "\n").split("\n")
18357        } : this.$split = function (e) {
18358            return e.split(/\r\n|\r|\n/)
18359        }, this.$detectNewLine = function (e) {
18360            var t = e.match(/^.*?(\r\n|\r|\n)/m);
18361            this.$autoNewLine = t ? t[1] : "\n", this._signal("changeNewLineMode")
18362        }, this.getNewLineCharacter = function () {
18363            switch (this.$newLineMode) {
18364                case"windows":
18365                    return "\r\n";
18366                case"unix":
18367                    return "\n";
18368                default:
18369                    return this.$autoNewLine || "\n"
18370            }
18371        }, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function (e) {
18372            if (this.$newLineMode === e) return;
18373            this.$newLineMode = e, this._signal("changeNewLineMode")
18374        }, this.getNewLineMode = function () {
18375            return this.$newLineMode
18376        }, this.isNewLine = function (e) {
18377            return e == "\r\n" || e == "\r" || e == "\n"
18378        }, this.getLine = function (e) {
18379            return this.$lines[e] || ""
18380        }, this.getLines = function (e, t) {
18381            return this.$lines.slice(e, t + 1)
18382        }, this.getAllLines = function () {
18383            return this.getLines(0, this.getLength())
18384        }, this.getLength = function () {
18385            return this.$lines.length
18386        }, this.getTextRange = function (e) {
18387            return this.getLinesForRange(e).join(this.getNewLineCharacter())
18388        }, this.getLinesForRange = function (e) {
18389            var t;
18390            if (e.start.row === e.end.row) t = [this.getLine(e.start.row).substring(e.start.column, e.end.column)]; else {
18391                t = this.getLines(e.start.row, e.end.row), t[0] = (t[0] || "").substring(e.start.column);
18392                var n = t.length - 1;
18393                e.end.row - e.start.row == n && (t[n] = t[n].substring(0, e.end.column))
18394            }
18395            return t
18396        }, this.insertLines = function (e, t) {
18397            return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(e, t)
18398        }, this.removeLines = function (e, t) {
18399            return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(e, t)
18400        }, this.insertNewLine = function (e) {
18401            return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."), this.insertMergedLines(e, ["", ""])
18402        }, this.insert = function (e, t) {
18403            return this.getLength() <= 1 && this.$detectNewLine(t), this.insertMergedLines(e, this.$split(t))
18404        }, this.insertInLine = function (e, t) {
18405            var n = this.clippedPos(e.row, e.column), r = this.pos(e.row, e.column + t.length);
18406            return this.applyDelta({start: n, end: r, action: "insert", lines: [t]}, !0), this.clonePos(r)
18407        }, this.clippedPos = function (e, t) {
18408            var n = this.getLength();
18409            e === undefined ? e = n : e < 0 ? e = 0 : e >= n && (e = n - 1, t = undefined);
18410            var r = this.getLine(e);
18411            return t == undefined && (t = r.length), t = Math.min(Math.max(t, 0), r.length), {row: e, column: t}
18412        }, this.clonePos = function (e) {
18413            return {row: e.row, column: e.column}
18414        }, this.pos = function (e, t) {
18415            return {row: e, column: t}
18416        }, this.$clipPosition = function (e) {
18417            var t = this.getLength();
18418            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
18419        }, this.insertFullLines = function (e, t) {
18420            e = Math.min(Math.max(e, 0), this.getLength());
18421            var n = 0;
18422            e < this.getLength() ? (t = t.concat([""]), n = 0) : (t = [""].concat(t), e--, n = this.$lines[e].length), this.insertMergedLines({
18423                row: e,
18424                column: n
18425            }, t)
18426        }, this.insertMergedLines = function (e, t) {
18427            var n = this.clippedPos(e.row, e.column),
18428                r = {row: n.row + t.length - 1, column: (t.length == 1 ? n.column : 0) + t[t.length - 1].length};
18429            return this.applyDelta({start: n, end: r, action: "insert", lines: t}), this.clonePos(r)
18430        }, this.remove = function (e) {
18431            var t = this.clippedPos(e.start.row, e.start.column), n = this.clippedPos(e.end.row, e.end.column);
18432            return this.applyDelta({
18433                start: t,
18434                end: n,
18435                action: "remove",
18436                lines: this.getLinesForRange({start: t, end: n})
18437            }), this.clonePos(t)
18438        }, this.removeInLine = function (e, t, n) {
18439            var r = this.clippedPos(e, t), i = this.clippedPos(e, n);
18440            return this.applyDelta({
18441                start: r,
18442                end: i,
18443                action: "remove",
18444                lines: this.getLinesForRange({start: r, end: i})
18445            }, !0), this.clonePos(r)
18446        }, this.removeFullLines = function (e, t) {
18447            e = Math.min(Math.max(0, e), this.getLength() - 1), t = Math.min(Math.max(0, t), this.getLength() - 1);
18448            var n = t == this.getLength() - 1 && e > 0, r = t < this.getLength() - 1, i = n ? e - 1 : e,
18449                s = n ? this.getLine(i).length : 0, u = r ? t + 1 : t, a = r ? 0 : this.getLine(u).length,
18450                f = new o(i, s, u, a), l = this.$lines.slice(e, t + 1);
18451            return this.applyDelta({start: f.start, end: f.end, action: "remove", lines: this.getLinesForRange(f)}), l
18452        }, this.removeNewLine = function (e) {
18453            e < this.getLength() - 1 && e >= 0 && this.applyDelta({
18454                start: this.pos(e, this.getLine(e).length),
18455                end: this.pos(e + 1, 0),
18456                action: "remove",
18457                lines: ["", ""]
18458            })
18459        }, this.replace = function (e, t) {
18460            e instanceof o || (e = o.fromPoints(e.start, e.end));
18461            if (t.length === 0 && e.isEmpty()) return e.start;
18462            if (t == this.getTextRange(e)) return e.end;
18463            this.remove(e);
18464            var n;
18465            return t ? n = this.insert(e.start, t) : n = e.start, n
18466        }, this.applyDeltas = function (e) {
18467            for (var t = 0; t < e.length; t++) this.applyDelta(e[t])
18468        }, this.revertDeltas = function (e) {
18469            for (var t = e.length - 1; t >= 0; t--) this.revertDelta(e[t])
18470        }, this.applyDelta = function (e, t) {
18471            var n = e.action == "insert";
18472            if (n ? e.lines.length <= 1 && !e.lines[0] : !o.comparePoints(e.start, e.end)) return;
18473            n && e.lines.length > 2e4 ? this.$splitAndapplyLargeDelta(e, 2e4) : (i(this.$lines, e, t), this._signal("change", e))
18474        }, this.$splitAndapplyLargeDelta = function (e, t) {
18475            var n = e.lines, r = n.length - t + 1, i = e.start.row, s = e.start.column;
18476            for (var o = 0, u = 0; o < r; o = u) {
18477                u += t - 1;
18478                var a = n.slice(o, u);
18479                a.push(""), this.applyDelta({
18480                    start: this.pos(i + o, s),
18481                    end: this.pos(i + u, s = 0),
18482                    action: e.action,
18483                    lines: a
18484                }, !0)
18485            }
18486            e.lines = n.slice(o), e.start.row = i + o, e.start.column = s, this.applyDelta(e, !0)
18487        }, this.revertDelta = function (e) {
18488            this.applyDelta({
18489                start: this.clonePos(e.start),
18490                end: this.clonePos(e.end),
18491                action: e.action == "insert" ? "remove" : "insert",
18492                lines: e.lines.slice()
18493            })
18494        }, this.indexToPosition = function (e, t) {
18495            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length;
18496            for (var i = t || 0, s = n.length; i < s; i++) {
18497                e -= n[i].length + r;
18498                if (e < 0) return {row: i, column: e + n[i].length + r}
18499            }
18500            return {row: s - 1, column: e + n[s - 1].length + r}
18501        }, this.positionToIndex = function (e, t) {
18502            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length, i = 0,
18503                s = Math.min(e.row, n.length);
18504            for (var o = t || 0; o < s; ++o) i += n[o].length + r;
18505            return i + e.column
18506        }
18507    }).call(a.prototype), t.Document = a
18508}), define("ace/lib/lang", [], function (e, t, n) {
18509    "use strict";
18510    t.last = function (e) {
18511        return e[e.length - 1]
18512    }
18512, t.stringReverse = function (e) {
18513        return e.split("").reverse().join("")
18514    }, t.stringRepeat = function (e, t) {
18515        var n = "";
18516        while (t > 0) {
18517            t & 1 && (n += e);
18518            if (t >>= 1) e += e
18519        }
18520        return n
18521    };
18522    var r = /^\s\s*/, i = /\s\s*$/;
18523    t.stringTrimLeft = function (e) {
18524        return e.replace(r, "")
18525    }, t.stringTrimRight = function (e) {
18526        return e.replace(i, "")
18527    }, t.copyObject = function (e) {
18528        var t = {};
18529        for (var n in e) t[n] = e[n];
18530        return t
18531    }, t.copyArray = function (e) {
18532        var t = [];
18533        for (var n = 0, r = e.length; n < r; n++) e[n] && typeof e[n] == "object" ? t[n] = this.copyObject(e[n]) : t[n] = e[n];
18534        return t
18535    }, t.deepCopy = function s(e) {
18536        if (typeof e != "object" || !e) return e;
18537        var t;
18538        if (Array.isArray(e)) {
18539            t = [];
18540            for (var n = 0; n < e.length; n++) t[n] = s(e[n]);
18541            return t
18542        }
18543        if (Object.prototype.toString.call(e) !== "[object Object]") return e;
18544        t = {};
18545        for (var n in e) t[n] = s(e[n]);
18546        return t
18547    }, t.arrayToMap = function (e) {
18548        var t = {};
18549        for (var n = 0; n < e.length; n++) t[e[n]] = 1;
18550        return t
18551    }, t.createMap = function (e) {
18552        var t = Object.create(null);
18553        for (var n in e) t[n] = e[n];
18554        return t
18555    }, t.arrayRemove = function (e, t) {
18556        for (var n = 0; n <= e.length; n++) t === e[n] && e.splice(n, 1)
18557    }, t.escapeRegExp = function (e) {
18558        return e.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1")
18559    }, t.escapeHTML = function (e) {
18560        return ("" + e).replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;")
18561    }, t.getMatchOffsets = function (e, t) {
18562        var n = [];
18563        return e.replace(t, function (e) {
18564            n.push({offset: arguments[arguments.length - 2], length: e.length})
18565        }), n
18566    }, t.deferredCall = function (e) {
18567        var t = null, n = function () {
18568            t = null, e()
18569        }, r = function (e) {
18570            return r.cancel(), t = setTimeout(n, e || 0), r
18571        };
18572        return r.schedule = r, r.call = function () {
18573            return this.cancel(), e(), r
18574        }, r.cancel = function () {
18575            return clearTimeout(t), t = null, r
18576        }, r.isPending = function () {
18577            return t
18578        }, r
18579    }, t.delayedCall = function (e, t) {
18580        var n = null, r = function () {
18581            n = null, e()
18582        }, i = function (e) {
18583            n == null && (n = setTimeout(r, e || t))
18584        };
18585        return i.delay = function (e) {
18586            n && clearTimeout(n), n = setTimeout(r, e || t)
18587        }, i.schedule = i, i.call = function () {
18588            this.cancel(), e()
18589        }, i.cancel = function () {
18590            n && clearTimeout(n), n = null
18591        }, i.isPending = function () {
18592            return n
18593        }, i
18594    }
18595}), define("ace/worker/mirror", [], function (e, t, n) {
18596    "use strict";
18597    var r = e("../range").Range, i = e("../document").Document, s = e("../lib/lang"), o = t.Mirror = function (e) {
18598        this.sender = e;
18599        var t = this.doc = new i(""), n = this.deferredUpdate = s.delayedCall(this.onUpdate.bind(this)), r = this;
18600        e.on("change", function (e) {
18601            var i = e.data;
18602            if (i[0].start) t.applyDeltas(i); else for (var s = 0; s < i.length; s += 2) {
18603                if (Array.isArray(i[s + 1])) var o = {
18604                    action: "insert",
18605                    start: i[s],
18606                    lines: i[s + 1]
18607                }; else var o = {action: "remove", start: i[s], end: i[s + 1]};
18608                t.applyDelta(o, !0)
18609            }
18610            if (r.$timeout) return n.schedule(r.$timeout);
18611            r.onUpdate()
18612        })
18613    };
18614    (function () {
18615        this.$timeout = 500, this.setTimeout = function (e) {
18616            this.$timeout = e
18617        }, this.setValue = function (e) {
18618            this.doc.setValue(e), this.deferredUpdate.schedule(this.$timeout)
18619        }, this.getValue = function (e) {
18620            this.sender.callback(this.doc.getValue(), e)
18621        }, this.onUpdate = function () {
18622        }, this.isPending = function () {
18623            return this.deferredUpdate.isPending()
18624        }
18625    }).call(o.prototype)
18626}), define("ace/mode/json/json_parse", [], function (e, t, n) {
18627    "use strict";
18628    var r, i, s = {'"': '"', "\\": "\\", "/": "/", b: "\b", f: "\f", n: "\n", r: "\r", t: "	"}, o, u = function (e) {
18629        throw{name: "SyntaxError", message: e, at: r, text: o}
18630    }, a = function (e) {
18631        return e && e !== i && u("Expected '" + e + "' instead of '" + i + "'"), i = o.charAt(r), r += 1, i
18632    }, f = function () {
18633        var e, t = "";
18634        i === "-" && (t = "-", a("-"));
18635        while (i >= "0" && i <= "9") t += i, a();
18636        if (i === ".") {
18637            t += ".";
18638            while (a() && i >= "0" && i <= "9") t += i
18639        }
18640        if (i === "e" || i === "E") {
18641            t += i, a();
18642            if (i === "-" || i === "+") t += i, a();
18643            while (i >= "0" && i <= "9") t += i, a()
18644        }
18645        e = +t;
18646        if (!isNaN(e)) return e;
18647        u("Bad number")
18648    }, l = function () {
18649        var e, t, n = "", r;
18650        if (i === '"') while (a()) {
18651            if (i === '"') return a(), n;
18652            if (i === "\\") {
18653                a();
18654                if (i === "u") {
18655                    r = 0;
18656                    for (t = 0; t < 4; t += 1) {
18657                        e = parseInt(a(), 16);
18658                        if (!isFinite(e)) break;
18659                        r = r * 16 + e
18660                    }
18661                    n += String.fromCharCode(r)
18662                } else {
18663                    if (typeof s[i] != "string") break;
18664                    n += s[i]
18665                }
18666            } else {
18667                if (i == "\n" || i == "\r") break;
18668                n += i
18669            }
18670        }
18671        u("Bad string")
18672    }, c = function () {
18673        while (i && i <= " ") a()
18674    }, h = function () {
18675        switch (i) {
18676            case"t":
18677                return a("t"), a("r"), a("u"), a("e"), !0;
18678            case"f":
18679                return a("f"), a("a"), a("l"), a("s"), a("e"), !1;
18680            case"n":
18681                return a("n"), a("u"), a("l"), a("l"), null
18682        }
18683        u("Unexpected '" + i + "'")
18684    }, p, d = function () {
18685        var e = [];
18686        if (i === "[") {
18687            a("["), c();
18688            if (i === "]") return a("]"), e;
18689            while (i) {
18690                e.push(p()), c();
18691                if (i === "]") return a("]"), e;
18692                a(","), c()
18693            }
18694        }
18695        u("Bad array")
18696    }, v = function () {
18697        var e, t = {};
18698        if (i === "{") {
18699            a("{"), c();
18700            if (i === "}") return a("}"), t;
18701            while (i) {
18702                e = l(), c(), a(":"), Object.hasOwnProperty.call(t, e) && u('Duplicate key "' + e + '"'), t[e] = p(), c();
18703                if (i === "}") return a("}"), t;
18704                a(","), c()
18705            }
18706        }
18707        u("Bad object")
18708    };
18709    return p = function () {
18710        c();
18711        switch (i) {
18712            case"{":
18713                return v();
18714            case"[":
18715                return d();
18716            case'"':
18717                return l();
18718            case"-":
18719                return f();
18720            default:
18721                return i >= "0" && i <= "9" ? f() : h()
18722        }
18723    }, function (e, t) {
18724        var n;
18725        return o = e, r = 0, i = " ", n = p(), c(), i && u("Syntax error"), typeof t == "function" ? function s(e, n) {
18726            var r, i, o = e[n];
18727            if (o && typeof o == "object") for (r in o) Object.hasOwnProperty.call(o, r) && (i = s(o, r), i !== undefined ? o[r] = i : delete o[r]);
18728            return t.call(e, n, o)
18729        }({"": n}, "") : n
18730    }
18731}), define("ace/mode/json_worker", [], function (e, t, n) {
18732    "use strict";
18733    var r = e("../lib/oop"), i = e("../worker/mirror").Mirror, s = e("./json/json_parse"),
18734        o = t.JsonWorker = function (e) {
18735            i.call(this, e), this.setTimeout(200)
18736        };
18737    r.inherits(o, i), function () {
18738        this.onUpdate = function () {
18739            var e = this.doc.getValue(), t = [];
18740            try {
18741                e && s(e)
18742            } catch (n) {
18743                var r = this.doc.indexToPosition(n.at - 1);
18744                t.push({row: r.row, column: r.column, text: n.message, type: "error"})
18745            }
18746            this.sender.emit("annotate", t)
18747        }
18748    }.call(o.prototype)
18749}), define("ace/lib/es5-shim", [], function (e, t, n) {
18750    function r() {
18751    }
18752
18753    function w(e) {
18754        try {
18755            return Object.defineProperty(e, "sentinel", {}), "sentinel" in e
18756        } catch (t) {
18757        }
18758    }
18759
18760    function H(e) {
18761        return e = +e, e !== e ? e = 0 : e !== 0 && e !== 1 / 0 && e !== -1 / 0 && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), e
18762    }
18763
18764    function B(e) {
18765        var t = typeof e;
18766        return e === null || t === "undefined" || t === "boolean" || t === "number" || t === "string"
18767    }
18768
18769    function j(e) {
18770        var t, n, r;
18771        if (B(e)) return e;
18772        n = e.valueOf;
18773        if (typeof n == "function") {
18774            t = n.call(e);
18775            if (B(t)) return t
18776        }
18777        r = e.toString;
18778        if (typeof r == "function") {
18779            t = r.call(e);
18780            if (B(t)) return t
18781        }
18782        throw new TypeError
18783    }
18784
18785    Function.prototype.bind || (Function.prototype.bind = function (t) {
18786        var n = this;
18787        if (typeof n != "function") throw new TypeError("Function.prototype.bind called on incompatible " + n);
18788        var i = u.call(arguments, 1), s = function () {
18789            if (this instanceof s) {
18790                var e = n.apply(this, i.concat(u.call(arguments)));
18791                return Object(e) === e ? e : this
18792            }
18793            return n.apply(t, i.concat(u.call(arguments)))
18794        };
18795        return n.prototype && (r.prototype = n.prototype, s.prototype = new r, r.prototype = null), s
18796    });
18797    var i = Function.prototype.call, s = Array.prototype, o = Object.prototype, u = s.slice, a = i.bind(o.toString),
18798        f = i.bind(o.hasOwnProperty), l, c, h, p, d;
18799    if (d = f(o, "__defineGetter__")) l = i.bind(o.__defineGetter__), c = i.bind(o.__defineSetter__), h = i.bind(o.__lookupGetter__), p = i.bind(o.__lookupSetter__);
18800    if ([1, 2].splice(0).length != 2) if (!function () {
18801        function e(e) {
18802            var t = new Array(e + 2);
18803            return t[0] = t[1] = 0, t
18804        }
18805
18806        var t = [], n;
18807        t.splice.apply(t, e(20)), t.splice.apply(t, e(26)), n = t.length, t.splice(5, 0, "XXX"), n + 1 == t.length;
18808        if (n + 1 == t.length) return !0
18809    }()) Array.prototype.splice = function (e, t) {
18810        var n = this.length;
18811        e > 0 ? e > n && (e = n) : e == void 0 ? e = 0 : e < 0 && (e = Math.max(n + e, 0)), e + t < n || (t = n - e);
18812        var r = this.slice(e, e + t), i = u.call(arguments, 2), s = i.length;
18813        if (e === n) s && this.push.apply(this, i); else {
18814            var o = Math.min(t, n - e), a = e + o, f = a + s - o, l = n - a, c = n - o;
18815            if (f < a) for (var h = 0; h < l; ++h) this[f + h] = this[a + h]; else if (f > a) for (h = l; h--;) this[f + h] = this[a + h];
18816            if (s && e === c) this.length = c, this.push.apply(this, i); else {
18817                this.length = c + s;
18818                for (h = 0; h < s; ++h) this[e + h] = i[h]
18819            }
18820        }
18821        return r
18822    }; else {
18823        var v = Array.prototype.splice;
18824        Array.prototype.splice = function (e, t) {
18825            return arguments.length ? v.apply(this, [e === void 0 ? 0 : e, t === void 0 ? this.length - e : t].concat(u.call(arguments, 2))) : []
18826        }
18827    }
18828    Array.isArray || (Array.isArray = function (t) {
18829        return a(t) == "[object Array]"
18830    });
18831    var m = Object("a"), g = m[0] != "a" || !(0 in m);
18832    Array.prototype.forEach || (Array.prototype.forEach = function (t) {
18833        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = arguments[1], s = -1,
18834            o = r.length >>> 0;
18835        if (a(t) != "[object Function]") throw new TypeError;
18836        while (++s < o) s in r && t.call(i, r[s], s, n)
18837    }), Array.prototype.map || (Array.prototype.map = function (t) {
18838        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = Array(i),
18839            o = arguments[1];
18840        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
18841        for (var u = 0; u < i; u++) u in r && (s[u] = t.call(o, r[u], u, n));
18842        return s
18843    }), Array.prototype.filter || (Array.prototype.filter = function (t) {
18844        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = [], o,
18845            u = arguments[1];
18846        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
18847        for (var f = 0; f < i; f++) f in r && (o = r[f], t.call(u, o, f, n) && s.push(o));
18848        return s
18849    }), Array.prototype.every || (Array.prototype.every = function (t) {
18850        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
18851            s = arguments[1];
18852        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
18853        for (var o = 0; o < i; o++) if (o in r && !t.call(s, r[o], o, n)) return !1;
18854        return !0
18855    }), Array.prototype.some || (Array.prototype.some = function (t) {
18856        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
18857            s = arguments[1];
18858        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
18859        for (var o = 0; o < i; o++) if (o in r && t.call(s, r[o], o, n)) return !0;
18860        return !1
18861    }), Array.prototype.reduce || (Array.prototype.reduce = function (t) {
18862        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
18863        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
18864        if (!i && arguments.length == 1) throw new TypeError("reduce of empty array with 
18864no initial value");
18865        var s = 0, o;
18866        if (arguments.length >= 2) o = arguments[1]; else do {
18867            if (s in r) {
18868                o = r[s++];
18869                break
18870            }
18871            if (++s >= i) throw new TypeError("reduce of empty array with no initial value")
18872        } while (!0);
18873        for (; s < i; s++) s in r && (o = t.call(void 0, o, r[s], s, n));
18874        return o
18875    }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function (t) {
18876        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
18877        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
18878        if (!i && arguments.length == 1) throw new TypeError("reduceRight of empty array with no initial value");
18879        var s, o = i - 1;
18880        if (arguments.length >= 2) s = arguments[1]; else do {
18881            if (o in r) {
18882                s = r[o--];
18883                break
18884            }
18885            if (--o < 0) throw new TypeError("reduceRight of empty array with no initial value")
18886        } while (!0);
18887        do o in this && (s = t.call(void 0, s, r[o], o, n)); while (o--);
18888        return s
18889    });
18890    if (!Array.prototype.indexOf || [0, 1].indexOf(1, 2) != -1) Array.prototype.indexOf = function (t) {
18891        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
18892        if (!r) return -1;
18893        var i = 0;
18894        arguments.length > 1 && (i = H(arguments[1])), i = i >= 0 ? i : Math.max(0, r + i);
18895        for (; i < r; i++) if (i in n && n[i] === t) return i;
18896        return -1
18897    };
18898    if (!Array.prototype.lastIndexOf || [0, 1].lastIndexOf(0, -3) != -1) Array.prototype.lastIndexOf = function (t) {
18899        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
18900        if (!r) return -1;
18901        var i = r - 1;
18902        arguments.length > 1 && (i = Math.min(i, H(arguments[1]))), i = i >= 0 ? i : r - Math.abs(i);
18903        for (; i >= 0; i--) if (i in n && t === n[i]) return i;
18904        return -1
18905    };
18906    Object.getPrototypeOf || (Object.getPrototypeOf = function (t) {
18907        return t.__proto__ || (t.constructor ? t.constructor.prototype : o)
18908    });
18909    if (!Object.getOwnPropertyDescriptor) {
18910        var y = "Object.getOwnPropertyDescriptor called on a non-object: ";
18911        Object.getOwnPropertyDescriptor = function (t, n) {
18912            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(y + t);
18913            if (!f(t, n)) return;
18914            var r, i, s;
18915            r = {enumerable: !0, configurable: !0};
18916            if (d) {
18917                var u = t.__proto__;
18918                t.__proto__ = o;
18919                var i = h(t, n), s = p(t, n);
18920                t.__proto__ = u;
18921                if (i || s) return i && (r.get = i), s && (r.set = s), r
18922            }
18923            return r.value = t[n], r
18924        }
18925    }
18926    Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function (t) {
18927        return Object.keys(t)
18928    });
18929    if (!Object.create) {
18930        var b;
18931        Object.prototype.__proto__ === null ? b = function () {
18932            return {__proto__: null}
18933        } : b = function () {
18934            var e = {};
18935            for (var t in e) e[t] = null;
18936            return e.constructor = e.hasOwnProperty = e.propertyIsEnumerable = e.isPrototypeOf = e.toLocaleString = e.toString = e.valueOf = e.__proto__ = null, e
18937        }, Object.create = function (t, n) {
18938            var r;
18939            if (t === null) r = b(); else {
18940                if (typeof t != "object") throw new TypeError("typeof prototype[" + typeof t + "] != 'object'");
18941                var i = function () {
18942                };
18943                i.prototype = t, r = new i, r.__proto__ = t
18944            }
18945            return n !== void 0 && Object.defineProperties(r, n), r
18946        }
18947    }
18948    if (Object.defineProperty) {
18949        var E = w({}), S = typeof document == "undefined" || w(document.createElement("div"));
18950        if (!E || !S) var x = Object.defineProperty
18951    }
18952    if (!Object.defineProperty || x) {
18953        var T = "Property description must be an object: ", N = "Object.defineProperty called on non-object: ",
18954            C = "getters & setters can not be defined on this javascript engine";
18955        Object.defineProperty = function (t, n, r) {
18956            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(N + t);
18957            if (typeof r != "object" && typeof r != "function" || r === null) throw new TypeError(T + r);
18958            if (x) try {
18959                return x.call(Object, t, n, r)
18960            } catch (i) {
18961            }
18962            if (f(r, "value")) if (d && (h(t, n) || p(t, n))) {
18963                var s = t.__proto__;
18964                t.__proto__ = o, delete t[n], t[n] = r.value, t.__proto__ = s
18965            } else t[n] = r.value; else {
18966                if (!d) throw new TypeError(C);
18967                f(r, "get") && l(t, n, r.get), f(r, "set") && c(t, n, r.set)
18968            }
18969            return t
18970        }
18971    }
18972    Object.defineProperties || (Object.defineProperties = function (t, n) {
18973        for (var r in n) f(n, r) && Object.defineProperty(t, r, n[r]);
18974        return t
18975    }), Object.seal || (Object.seal = function (t) {
18976        return t
18977    }), Object.freeze || (Object.freeze = function (t) {
18978        return t
18979    });
18980    try {
18981        Object.freeze(function () {
18982        })
18983    } catch (k) {
18984        Object.freeze = function (t) {
18985            return function (n) {
18986                return typeof n == "function" ? n : t(n)
18987            }
18988        }(Object.freeze)
18989    }
18990    Object.preventExtensions || (Object.preventExtensions = function (t) {
18991        return t
18992    }), Object.isSealed || (Object.isSealed = function (t) {
18993        return !1
18994    }), Object.isFrozen || (Object.isFrozen = function (t) {
18995        return !1
18996    }), Object.isExtensible || (Object.isExtensible = function (t) {
18997        if (Object(t) === t) throw new TypeError;
18998        var n = "";
18999        while (f(t, n)) n += "?";
19000        t[n] = !0;
19001        var r = f(t, n);
19002        return delete t[n], r
19003    });
19004    if (!Object.keys) {
19005        var L = !0,
19006            A = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
19007            O = A.length;
19008        for (var M in {toString: null}) L = !1;
19009        Object.keys = function I(e) {
19010            if (typeof e != "object" && typeof e != "function" || e === null) throw new TypeError("Object.keys called on a non-object");
19011            var I = [];
19012            for (var t in e) f(e, t) && I.push(t);
19013            if (L) for (var n = 0, r = O; n < r; n++) {
19014                var i = A[n];
19015                f(e, i) && I.push(i)
19016            }
19017            return I
19018        }
19019    }
19020    Date.now || (Date.now = function () {
19021        return (new Date).getTime()
19022    });
19023    var _ = "	\n\x0b\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";
19024    if (!String.prototype.trim || _.trim()) {
19025        _ = "[" + _ + "]";
19026        var D = new RegExp("^" + _ + _ + "*"), P = new RegExp(_ + _ + "*$");
19027        String.prototype.trim = function () {
19028            return String(this).replace(D, "").replace(P, "")
19029        }
19030    }
19031    var F = function (e) {
19032        if (e == null) throw new TypeError("can't convert " + e + " to object");
19033        return Object(e)
19034    }
19035})
19036
19037"no use strict";
19038!function (e) {
19039    function t(e, t) {
19040        var n = e, r = "";
19041        while (n) {
19042            var i = t[n];
19043            if (typeof i == "string") return i + r;
19044            if (i) return i.location.replace(/\/*$/, "/") + (r || i.main || i.name);
19045            if (i === !1) return "";
19046            var s = n.lastIndexOf("/");
19047            if (s === -1) break;
19048            r = n.substr(s) + r, n = n.slice(0, s)
19049        }
19050        return e
19051    }
19052
19053    if (typeof e.window != "undefined" && e.document) return;
19054    if (e.require && e.define) return;
19055    e.console || (e.console = function () {
19056        var e = Array.prototype.slice.call(arguments, 0);
19057        postMessage({type: "log", data: e})
19058    }, e.console.error = e.console.warn = e.console.log = e.console.trace = e.console), e.window = e, e.ace = e, e.onerror = function (e, t, n, r, i) {
19059        postMessage({type: "error", data: {message: e, data: i.data, file: t, line: n, col: r, stack: i.stack}})
19060    }, e.normalizeModule = function (t, n) {
19061        if (n.indexOf("!") !== -1) {
19062            var r = n.split("!");
19063            return e.normalizeModule(t, r[0]) + "!" + e.normalizeModule(t, r[1])
19064        }
19065        if (n.charAt(0) == ".") {
19066            var i = t.split("/").slice(0, -1).join("/");
19067            n = (i ? i + "/" : "") + n;
19068            while (n.indexOf(".") !== -1 && s != n) {
19069                var s = n;
19070                n = n.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "")
19071            }
19072        }
19073        return n
19074    }, e.require = function (r, i) {
19075        i || (i = r, r = null);
19076        if (!i.charAt) throw new Error("worker.js require() accepts only (parentId, id) as arguments");
19077        i = e.normalizeModule(r, i);
19078        var s = e.require.modules[i];
19079        if (s) return s.initialized || (s.initialized = !0, s.exports = s.factory().exports), s.exports;
19080        if (!e.require.tlns) return console.log("unable to load " + i);
19081        var o = t(i, e.require.tlns);
19082        return o.slice(-3) != ".js" && (o += ".js"), e.require.id = i, e.require.modules[i] = {}, importScripts(o), e.require(r, i)
19083    }, e.require.modules = {}, e.require.tlns = {}, e.define = function (t, n, r) {
19084        arguments.length == 2 ? (r = n, typeof t != "string" && (n = t, t = e.require.id)) : arguments.length == 1 && (r = t, n = [], t = e.require.id);
19085        if (typeof r != "function") {
19086            e.require.modules[t] = {exports: r, initialized: !0};
19087            return
19088        }
19089        n.length || (n = ["require", "exports", "module"]);
19090        var i = function (n) {
19091            return e.require(t, n)
19092        };
19093        e.require.modules[t] = {
19094            exports: {}, factory: function () {
19095                var e = this, t = r.apply(this, n.slice(0, r.length).map(function (t) {
19096                    switch (t) {
19097                        case"require":
19098                            return i;
19099                        case"exports":
19100                            return e.exports;
19101                        case"module":
19102                            return e;
19103                        default:
19104                            return i(t)
19105                    }
19106                }));
19107                return t && (e.exports = t), e
19108            }
19109        }
19110    }, e.define.amd = {}, require.tlns = {}, e.initBaseUrls = function (t) {
19111        for (var n in t) require.tlns[n] = t[n]
19112    }, e.initSender = function () {
19113        var n = e.require("ace/lib/event_emitter").EventEmitter, r = e.require("ace/lib/oop"), i = function () {
19114        };
19115        return function () {
19116            r.implement(this, n), this.callback = function (e, t) {
19117                postMessage({type: "call", id: t, data: e})
19118            }, this.emit = function (e, t) {
19119                postMessage({type: "event", name: e, data: t})
19120            }
19121        }.call(i.prototype), new i
19122    };
19123    var n = e.main = null, r = e.sender = null;
19124    e.onmessage = function (t) {
19125        var i = t.data;
19126        if (i.event && r) r._signal(i.event, i.data); else if (i.command) if (n[i.command]) n[i.command].apply(n, i.args); else {
19127            if (!e[i.command]) throw new Error("Unknown command:" + i.command);
19128            e[i.command].apply(e, i.args)
19129        } else if (i.init) {
19130            e.initBaseUrls(i.tlns), require("ace/lib/es5-shim"), r = e.sender = e.initSender();
19131            var s = require(i.module)[i.classname];
19132            n = e.main = new s(r)
19133        }
19134    }
19135}(this), define("ace/lib/oop", [], function (e, t, n) {
19136    "use strict";
19137    t.inherits = function (e, t) {
19138        e.super_ = t, e.prototype = Object.create(t.prototype, {
19139            constructor: {
19140                value: e,
19141                enumerable: !1,
19142                writable: !0,
19143                configurable: !0
19144            }
19145        })
19146    }, t.mixin = function (e, t) {
19147        for (var n in t) e[n] = t[n];
19148        return e
19149    }, t.implement = function (e, n) {
19150        t.mixin(e, n)
19151    }
19152}), define("ace/lib/lang", [], function (e, t, n) {
19153    "use strict";
19154    t.last = function (e) {
19155        return e[e.length - 1]
19156    }
19156, t.stringReverse = function (e) {
19157        return e.split("").reverse().join("")
19158    }, t.stringRepeat = function (e, t) {
19159        var n = "";
19160        while (t > 0) {
19161            t & 1 && (n += e);
19162            if (t >>= 1) e += e
19163        }
19164        return n
19165    };
19166    var r = /^\s\s*/, i = /\s\s*$/;
19167    t.stringTrimLeft = function (e) {
19168        return e.replace(r, "")
19169    }, t.stringTrimRight = function (e) {
19170        return e.replace(i, "")
19171    }, t.copyObject = function (e) {
19172        var t = {};
19173        for (var n in e) t[n] = e[n];
19174        return t
19175    }, t.copyArray = function (e) {
19176        var t = [];
19177        for (var n = 0, r = e.length; n < r; n++) e[n] && typeof e[n] == "object" ? t[n] = this.copyObject(e[n]) : t[n] = e[n];
19178        return t
19179    }, t.deepCopy = function s(e) {
19180        if (typeof e != "object" || !e) return e;
19181        var t;
19182        if (Array.isArray(e)) {
19183            t = [];
19184            for (var n = 0; n < e.length; n++) t[n] = s(e[n]);
19185            return t
19186        }
19187        if (Object.prototype.toString.call(e) !== "[object Object]") return e;
19188        t = {};
19189        for (var n in e) t[n] = s(e[n]);
19190        return t
19191    }, t.arrayToMap = function (e) {
19192        var t = {};
19193        for (var n = 0; n < e.length; n++) t[e[n]] = 1;
19194        return t
19195    }, t.createMap = function (e) {
19196        var t = Object.create(null);
19197        for (var n in e) t[n] = e[n];
19198        return t
19199    }, t.arrayRemove = function (e, t) {
19200        for (var n = 0; n <= e.length; n++) t === e[n] && e.splice(n, 1)
19201    }, t.escapeRegExp = function (e) {
19202        return e.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1")
19203    }, t.escapeHTML = function (e) {
19204        return ("" + e).replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;")
19205    }, t.getMatchOffsets = function (e, t) {
19206        var n = [];
19207        return e.replace(t, function (e) {
19208            n.push({offset: arguments[arguments.length - 2], length: e.length})
19209        }), n
19210    }, t.deferredCall = function (e) {
19211        var t = null, n = function () {
19212            t = null, e()
19213        }, r = function (e) {
19214            return r.cancel(), t = setTimeout(n, e || 0), r
19215        };
19216        return r.schedule = r, r.call = function () {
19217            return this.cancel(), e(), r
19218        }, r.cancel = function () {
19219            return clearTimeout(t), t = null, r
19220        }, r.isPending = function () {
19221            return t
19222        }, r
19223    }, t.delayedCall = function (e, t) {
19224        var n = null, r = function () {
19225            n = null, e()
19226        }, i = function (e) {
19227            n == null && (n = setTimeout(r, e || t))
19228        };
19229        return i.delay = function (e) {
19230            n && clearTimeout(n), n = setTimeout(r, e || t)
19231        }, i.schedule = i, i.call = function () {
19232            this.cancel(), e()
19233        }, i.cancel = function () {
19234            n && clearTimeout(n), n = null
19235        }, i.isPending = function () {
19236            return n
19237        }, i
19238    }
19239}), define("ace/range", [], function (e, t, n) {
19240    "use strict";
19241    var r = function (e, t) {
19242        return e.row - t.row || e.column - t.column
19243    }, i = function (e, t, n, r) {
19244        this.start = {row: e, column: t}, this.end = {row: n, column: r}
19245    };
19246    (function () {
19247        this.isEqual = function (e) {
19248            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
19249        }, this.toString = function () {
19250            return "Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"
19251        }, this.contains = function (e, t) {
19252            return this.compare(e, t) == 0
19253        }, this.compareRange = function (e) {
19254            var t, n = e.end, r = e.start;
19255            return t = this.compare(n.row, n.column), t == 1 ? (t = this.compare(r.row, r.column), t == 1 ? 2 : t == 0 ? 1 : 0) : t == -1 ? -2 : (t = this.compare(r.row, r.column), t == -1 ? -1 : t == 1 ? 42 : 0)
19256        }, this.comparePoint = function (e) {
19257            return this.compare(e.row, e.column)
19258        }, this.containsRange = function (e) {
19259            return this.comparePoint(e.start) == 0 && this.comparePoint(e.end) == 0
19260        }, this.intersects = function (e) {
19261            var t = this.compareRange(e);
19262            return t == -1 || t == 0 || t == 1
19263        }, this.isEnd = function (e, t) {
19264            return this.end.row == e && this.end.column == t
19265        }, this.isStart = function (e, t) {
19266            return this.start.row == e && this.start.column == t
19267        }, this.setStart = function (e, t) {
19268            typeof e == "object" ? (this.start.column = e.column, this.start.row = e.row) : (this.start.row = e, this.start.column = t)
19269        }, this.setEnd = function (e, t) {
19270            typeof e == "object" ? (this.end.column = e.column, this.end.row = e.row) : (this.end.row = e, this.end.column = t)
19271        }, this.inside = function (e, t) {
19272            return this.compare(e, t) == 0 ? this.isEnd(e, t) || this.isStart(e, t) ? !1 : !0 : !1
19273        }, this.insideStart = function (e, t) {
19274            return this.compare(e, t) == 0 ? this.isEnd(e, t) ? !1 : !0 : !1
19275        }, this.insideEnd = function (e, t) {
19276            return this.compare(e, t) == 0 ? this.isStart(e, t) ? !1 : !0 : !1
19277        }, this.compare = function (e, t) {
19278            return !this.isMultiLine() && e === this.start.row ? t < this.start.column ? -1 : t > this.end.column ? 1 : 0 : 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
19279        }, this.compareStart = function (e, t) {
19280            return this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
19281        }, this.compareEnd = function (e, t) {
19282            return this.end.row == e && this.end.column == t ? 1 : this.compare(e, t)
19283        }, this.compareInside = function (e, t) {
19284            return this.end.row == e && this.end.column == t ? 1 : this.start.row == e && this.start.column == t ? -1 : this.compare(e, t)
19285        }, this.clipRows = function (e, t) {
19286            if (this.end.row > t) var n = {row: t + 1, column: 0}; else if (this.end.row < e) var n = {
19287                row: e,
19288                column: 0
19289            };
19290            if (this.start.row > t) var r = {row: t + 1, column: 0}; else if (this.start.row < e) var r = {
19291                row: e,
19292                column: 0
19293            };
19294            return i.fromPoints(r || this.start, n || this.end)
19295        }, this.extend = function (e, t) {
19296            var n = this.compare(e, t);
19297            if (n == 0) return this;
19298            if (n == -1) var r = {row: e, column: t}; else var s = {row: e, column: t};
19299            return i.fromPoints(r || this.start, s || this.end)
19300        }, this.isEmpty = function () {
19301            return this.start.row === this.end.row && this.start.column === this.end.column
19302        }, this.isMultiLine = function () {
19303            return this.start.row !== this.end.row
19304        }, this.clone = function () {
19305            return i.fromPoints(this.start, this.end)
19306        }, this.collapseRows = function () {
19307            return this.end.column == 0 ? 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)
19308        }, this.toScreenRange = function (e) {
19309            var t = e.documentToScreenPosition(this.start), n = e.documentToScreenPosition(this.end);
19310            return new i(t.row, t.column, n.row, n.column)
19311        }, this.moveBy = function (e, t) {
19312            this.start.row += e, this.start.column += t, this.end.row += e, this.end.column += t
19313        }
19314    }).call(i.prototype), i.fromPoints = function (e, t) {
19315        return new i(e.row, e.column, t.row, t.column)
19316    }, i.comparePoints = r, i.comparePoints = function (e, t) {
19317        return e.row - t.row || e.column - t.column
19318    }, t.Range = i
19319}), define("ace/apply_delta", [], function (e, t, n) {
19320    "use strict";
19321
19322    function r(e, t) {
19323        throw console.log("Invalid Delta:", e), "Invalid Delta: " + t
19324    }
19325
19326    function i(e, t) {
19327        return t.row >= 0 && t.row < e.length && t.column >= 0 && t.column <= e[t.row].length
19328    }
19329
19330    function s(e, t) {
19331        t.action != "insert" && t.action != "remove" && r(t, "delta.action must be 'insert' or 'remove'"), t.lines instanceof Array || r(t, "delta.lines must be an Array"), (!t.start || !t.end) && r(t, "delta.start/end must be an present");
19332        var n = t.start;
19333        i(e, t.start) || r(t, "delta.start must be contained in document");
19334        var s = t.end;
19335        t.action == "remove" && !i(e, s) && r(t, "delta.end must contained in document for 'remove' actions");
19336        var o = s.row - n.row, u = s.column - (o == 0 ? n.column : 0);
19337        (o != t.lines.length - 1 || t.lines[o].length != u) && r(t, "delta.range must match delta lines")
19338    }
19339
19340    t.applyDelta = function (e, t, n) {
19341        var r = t.start.row, i = t.start.column, s = e[r] || "";
19342        switch (t.action) {
19343            case"insert":
19344                var o = t.lines;
19345                if (o.length === 1) e[r] = s.substring(0, i) + t.lines[0] + s.substring(i); else {
19346                    var u = [r, 1].concat(t.lines);
19347                    e.splice.apply(e, u), e[r] = s.substring(0, i) + e[r], e[r + t.lines.length - 1] += s.substring(i)
19348                }
19349                break;
19350            case"remove":
19351                var a = t.end.column, f = t.end.row;
19352                r === f ? e[r] = s.substring(0, i) + s.substring(a) : e.splice(r, f - r + 1, s.substring(0, i) + e[f].substring(a))
19353        }
19354    }
19355}), define("ace/lib/event_emitter", [], function (e, t, n) {
19356    "use strict";
19357    var r = {}, i = function () {
19358        this.propagationStopped = !0
19359    }, s = function () {
19360        this.defaultPrevented = !0
19361    };
19362    r._emit = r._dispatchEvent = function (e, t) {
19363        this._eventRegistry || (this._eventRegistry = {}), this._defaultHandlers || (this._defaultHandlers = {});
19364        var n = this._eventRegistry[e] || [], r = this._defaultHandlers[e];
19365        if (!n.length && !r) return;
19366        if (typeof t != "object" || !t) t = {};
19367        t.type || (t.type = e), t.stopPropagation || (t.stopPropagation = i), t.preventDefault || (t.preventDefault = s), n = n.slice();
19368        for (var o = 0; o < n.length; o++) {
19369            n[o](t, this);
19370            if (t.propagationStopped) break
19371        }
19372        if (r && !t.defaultPrevented) return r(t, this)
19373    }, r._signal = function (e, t) {
19374        var n = (this._eventRegistry || {})[e];
19375        if (!n) return;
19376        n = n.slice();
19377        for (var r = 0; r < n.length; r++) n[r](t, this)
19378    }, r.once = function (e, t) {
19379        var n = this;
19380        this.addEventListener(e, function r() {
19381            n.removeEventListener(e, r), t.apply(null, arguments)
19382        });
19383        if (!t) return new Promise(function (e) {
19384            t = e
19385        })
19386    }, r.setDefaultHandler = function (e, t) {
19387        var n = this._defaultHandlers;
19388        n || (n = this._defaultHandlers = {_disabled_: {}});
19389        if (n[e]) {
19390            var r = n[e], i = n._disabled_[e];
19391            i || (n._disabled_[e] = i = []), i.push(r);
19392            var s = i.indexOf(t);
19393            s != -1 && i.splice(s, 1)
19394        }
19395        n[e] = t
19396    }, r.removeDefaultHandler = function (e, t) {
19397        var n = this._defaultHandlers;
19398        if (!n) return;
19399        var r = n._disabled_[e];
19400        if (n[e] == t) r && this.setDefaultHandler(e, r.pop()); else if (r) {
19401            var i = r.indexOf(t);
19402            i != -1 && r.splice(i, 1)
19403        }
19404    }, r.on = r.addEventListener = function (e, t, n) {
19405        this._eventRegistry = this._eventRegistry || {};
19406        var r = this._eventRegistry[e];
19407        return r || (r = this._eventRegistry[e] = []), r.indexOf(t) == -1 && r[n ? "unshift" : "push"](t), t
19408    }, r.off = r.removeListener = r.removeEventListener = function (e, t) {
19409        this._eventRegistry = this._eventRegistry || {};
19410        var n = this._eventRegistry[e];
19411        if (!n) return;
19412        var r = n.indexOf(t);
19413        r !== -1 && n.splice(r, 1)
19414    }, r.removeAllListeners = function (e) {
19415        this._eventRegistry && (this._eventRegistry[e] = [])
19416    }, t.EventEmitter = r
19417}), define("ace/anchor", [], function (e, t, n) {
19418    "use strict";
19419    var r = e("./lib/oop"), i = e("./lib/event_emitter").EventEmitter, s = t.Anchor = function (e, t, n) {
19420        this.$onChange = this.onChange.bind(this), this.attach(e), typeof n == "undefined" ? this.setPosition(t.row, t.column) : this.setPosition(t, n)
19421    };
19422    (function () {
19423        function e(e, t, n) {
19424            var r = n ? e.column <= t.column : e.column < t.column;
19425            return e.row < t.row || e.row == t.row && r
19426        }
19427
19428        function t(t, n, r) {
19429            var i = t.action == "insert", s = (i ? 1 : -1) * (t.end.row - t.start.row),
19430                o = (i ? 1 : -1) * (t.end.column - t.start.column), u = t.start, a = i ? u : t.end;
19431            return e(n, u, r) ? {row: n.row, column: n.column} : e(a, n, !r) ? {
19432                row: n.row + s,
19433                column: n.column + (n.row == a.row ? o : 0)
19434            } : {row: u.row, column: u.column}
19435        }
19436
19437        r.implement(this, i), this.getPosition = function () {
19438            return this.$clipPositionToDocument(this.row, this.column)
19439        }, this.getDocument = function () {
19440            return this.document
19441        }, this.$insertRight = !1, this.onChange = function (e) {
19442            if (e.start.row == e.end.row && e.start.row != this.row) return;
19443            if (e.start.row > this.row) return;
19444            var n = t(e, {row: this.row, column: this.column}, this.$insertRight);
19445            this.setPosition(n.row, n.column, !0)
19446        }, this.setPosition = function (e, t, n) {
19447            var r;
19448            n ? r = {row: e, column: t} : r = this.$clipPositionToDocument(e, t);
19449            if (this.row == r.row && this.column == r.column) return;
19450            var i = {row: this.row, column: this.column};
19451            this.row = r.row, this.column = r.column, this._signal("change", {old: i, value: r})
19452        }, this.detach = function () {
19453            this.document.removeEventListener("change", this.$onChange)
19454        }, this.attach = function (e) {
19455            this.document = e || this.document, this.document.on("change", this.$onChange)
19456        }, this.$clipPositionToDocument = function (e, t) {
19457            var n = {};
19458            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
19459        }
19460    }).call(s.prototype)
19461}), define("ace/document", [], function (e, t, n) {
19462    "use strict";
19463    var r = e("./lib/oop"), i = e("./apply_delta").applyDelta, s = e("./lib/event_emitter").EventEmitter,
19464        o = e("./range").Range, u = e("./anchor").Anchor, a = function (e) {
19465            this.$lines = [""], e.length === 0 ? this.$lines = [""] : Array.isArray(e) ? this.insertMergedLines({
19466                row: 0,
19467                column: 0
19468            }, e) : this.insert({row: 0, column: 0}, e)
19469        };
19470    (function () {
19471        r.implement(this, s), this.setValue = function (e) {
19472            var t = this.getLength() - 1;
19473            this.remove(new o(0, 0, t, this.getLine(t).length)), this.insert({row: 0, column: 0}, e)
19474        }, this.getValue = function () {
19475            return this.getAllLines().join(this.getNewLineCharacter())
19476        }, this.createAnchor = function (e, t) {
19477            return new u(this, e, t)
19478        }, "aaa".split(/a/).length === 0 ? this.$split = function (e) {
19479            return e.replace(/\r\n|\r/g, "\n").split("\n")
19480        } : this.$split = function (e) {
19481            return e.split(/\r\n|\r|\n/)
19482        }, this.$detectNewLine = function (e) {
19483            var t = e.match(/^.*?(\r\n|\r|\n)/m);
19484            this.$autoNewLine = t ? t[1] : "\n", this._signal("changeNewLineMode")
19485        }, this.getNewLineCharacter = function () {
19486            switch (this.$newLineMode) {
19487                case"windows":
19488                    return "\r\n";
19489                case"unix":
19490                    return "\n";
19491                default:
19492                    return this.$autoNewLine || "\n"
19493            }
19494        }, this.$autoNewLine = "", this.$newLineMode = "auto", this.setNewLineMode = function (e) {
19495            if (this.$newLineMode === e) return;
19496            this.$newLineMode = e, this._signal("changeNewLineMode")
19497        }, this.getNewLineMode = function () {
19498            return this.$newLineMode
19499        }, this.isNewLine = function (e) {
19500            return e == "\r\n" || e == "\r" || e == "\n"
19501        }, this.getLine = function (e) {
19502            return this.$lines[e] || ""
19503        }, this.getLines = function (e, t) {
19504            return this.$lines.slice(e, t + 1)
19505        }, this.getAllLines = function () {
19506            return this.getLines(0, this.getLength())
19507        }, this.getLength = function () {
19508            return this.$lines.length
19509        }, this.getTextRange = function (e) {
19510            return this.getLinesForRange(e).join(this.getNewLineCharacter())
19511        }, this.getLinesForRange = function (e) {
19512            var t;
19513            if (e.start.row === e.end.row) t = [this.getLine(e.start.row).substring(e.start.column, e.end.column)]; else {
19514                t = this.getLines(e.start.row, e.end.row), t[0] = (t[0] || "").substring(e.start.column);
19515                var n = t.length - 1;
19516                e.end.row - e.start.row == n && (t[n] = t[n].substring(0, e.end.column))
19517            }
19518            return t
19519        }, this.insertLines = function (e, t) {
19520            return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."), this.insertFullLines(e, t)
19521        }, this.removeLines = function (e, t) {
19522            return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."), this.removeFullLines(e, t)
19523        }, this.insertNewLine = function (e) {
19524            return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."), this.insertMergedLines(e, ["", ""])
19525        }, this.insert = function (e, t) {
19526            return this.getLength() <= 1 && this.$detectNewLine(t), this.insertMergedLines(e, this.$split(t))
19527        }, this.insertInLine = function (e, t) {
19528            var n = this.clippedPos(e.row, e.column), r = this.pos(e.row, e.column + t.length);
19529            return this.applyDelta({start: n, end: r, action: "insert", lines: [t]}, !0), this.clonePos(r)
19530        }, this.clippedPos = function (e, t) {
19531            var n = this.getLength();
19532            e === undefined ? e = n : e < 0 ? e = 0 : e >= n && (e = n - 1, t = undefined);
19533            var r = this.getLine(e);
19534            return t == undefined && (t = r.length), t = Math.min(Math.max(t, 0), r.length), {row: e, column: t}
19535        }, this.clonePos = function (e) {
19536            return {row: e.row, column: e.column}
19537        }, this.pos = function (e, t) {
19538            return {row: e, column: t}
19539        }, this.$clipPosition = function (e) {
19540            var t = this.getLength();
19541            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
19542        }, this.insertFullLines = function (e, t) {
19543            e = Math.min(Math.max(e, 0), this.getLength());
19544            var n = 0;
19545            e < this.getLength() ? (t = t.concat([""]), n = 0) : (t = [""].concat(t), e--, n = this.$lines[e].length), this.insertMergedLines({
19546                row: e,
19547                column: n
19548            }, t)
19549        }, this.insertMergedLines = function (e, t) {
19550            var n = this.clippedPos(e.row, e.column),
19551                r = {row: n.row + t.length - 1, column: (t.length == 1 ? n.column : 0) + t[t.length - 1].length};
19552            return this.applyDelta({start: n, end: r, action: "insert", lines: t}), this.clonePos(r)
19553        }, this.remove = function (e) {
19554            var t = this.clippedPos(e.start.row, e.start.column), n = this.clippedPos(e.end.row, e.end.column);
19555            return this.applyDelta({
19556                start: t,
19557                end: n,
19558                action: "remove",
19559                lines: this.getLinesForRange({start: t, end: n})
19560            }), this.clonePos(t)
19561        }, this.removeInLine = function (e, t, n) {
19562            var r = this.clippedPos(e, t), i = this.clippedPos(e, n);
19563            return this.applyDelta({
19564                start: r,
19565                end: i,
19566                action: "remove",
19567                lines: this.getLinesForRange({start: r, end: i})
19568            }, !0), this.clonePos(r)
19569        }, this.removeFullLines = function (e, t) {
19570            e = Math.min(Math.max(0, e), this.getLength() - 1), t = Math.min(Math.max(0, t), this.getLength() - 1);
19571            var n = t == this.getLength() - 1 && e > 0, r = t < this.getLength() - 1, i = n ? e - 1 : e,
19572                s = n ? this.getLine(i).length : 0, u = r ? t + 1 : t, a = r ? 0 : this.getLine(u).length,
19573                f = new o(i, s, u, a), l = this.$lines.slice(e, t + 1);
19574            return this.applyDelta({start: f.start, end: f.end, action: "remove", lines: this.getLinesForRange(f)}), l
19575        }, this.removeNewLine = function (e) {
19576            e < this.getLength() - 1 && e >= 0 && this.applyDelta({
19577                start: this.pos(e, this.getLine(e).length),
19578                end: this.pos(e + 1, 0),
19579                action: "remove",
19580                lines: ["", ""]
19581            })
19582        }, this.replace = function (e, t) {
19583            e instanceof o || (e = o.fromPoints(e.start, e.end));
19584            if (t.length === 0 && e.isEmpty()) return e.start;
19585            if (t == this.getTextRange(e)) return e.end;
19586            this.remove(e);
19587            var n;
19588            return t ? n = this.insert(e.start, t) : n = e.start, n
19589        }, this.applyDeltas = function (e) {
19590            for (var t = 0; t < e.length; t++) this.applyDelta(e[t])
19591        }, this.revertDeltas = function (e) {
19592            for (var t = e.length - 1; t >= 0; t--) this.revertDelta(e[t])
19593        }, this.applyDelta = function (e, t) {
19594            var n = e.action == "insert";
19595            if (n ? e.lines.length <= 1 && !e.lines[0] : !o.comparePoints(e.start, e.end)) return;
19596            n && e.lines.length > 2e4 ? this.$splitAndapplyLargeDelta(e, 2e4) : (i(this.$lines, e, t), this._signal("change", e))
19597        }, this.$splitAndapplyLargeDelta = function (e, t) {
19598            var n = e.lines, r = n.length - t + 1, i = e.start.row, s = e.start.column;
19599            for (var o = 0, u = 0; o < r; o = u) {
19600                u += t - 1;
19601                var a = n.slice(o, u);
19602                a.push(""), this.applyDelta({
19603                    start: this.pos(i + o, s),
19604                    end: this.pos(i + u, s = 0),
19605                    action: e.action,
19606                    lines: a
19607                }, !0)
19608            }
19609            e.lines = n.slice(o), e.start.row = i + o, e.start.column = s, this.applyDelta(e, !0)
19610        }, this.revertDelta = function (e) {
19611            this.applyDelta({
19612                start: this.clonePos(e.start),
19613                end: this.clonePos(e.end),
19614                action: e.action == "insert" ? "remove" : "insert",
19615                lines: e.lines.slice()
19616            })
19617        }, this.indexToPosition = function (e, t) {
19618            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length;
19619            for (var i = t || 0, s = n.length; i < s; i++) {
19620                e -= n[i].length + r;
19621                if (e < 0) return {row: i, column: e + n[i].length + r}
19622            }
19623            return {row: s - 1, column: e + n[s - 1].length + r}
19624        }, this.positionToIndex = function (e, t) {
19625            var n = this.$lines || this.getAllLines(), r = this.getNewLineCharacter().length, i = 0,
19626                s = Math.min(e.row, n.length);
19627            for (var o = t || 0; o < s; ++o) i += n[o].length + r;
19628            return i + e.column
19629        }
19630    }).call(a.prototype), t.Document = a
19631}), define("ace/worker/mirror", [], function (e, t, n) {
19632    "use strict";
19633    var r = e("../range").Range, i = e("../document").Document, s = e("../lib/lang"), o = t.Mirror = function (e) {
19634        this.sender = e;
19635        var t = this.doc = new i(""), n = this.deferredUpdate = s.delayedCall(this.onUpdate.bind(this)), r = this;
19636        e.on("change", function (e) {
19637            var i = e.data;
19638            if (i[0].start) t.applyDeltas(i); else for (var s = 0; s < i.length; s += 2) {
19639                if (Array.isArray(i[s + 1])) var o = {
19640                    action: "insert",
19641                    start: i[s],
19642                    lines: i[s + 1]
19643                }; else var o = {action: "remove", start: i[s], end: i[s + 1]};
19644                t.applyDelta(o, !0)
19645            }
19646            if (r.$timeout) return n.schedule(r.$timeout);
19647            r.onUpdate()
19648        })
19649    };
19650    (function () {
19651        this.$timeout = 500, this.setTimeout = function (e) {
19652            this.$timeout = e
19653        }, this.setValue = function (e) {
19654            this.doc.setValue(e), this.deferredUpdate.schedule(this.$timeout)
19655        }, this.getValue = function (e) {
19656            this.sender.callback(this.doc.getValue(), e)
19657        }, this.onUpdate = function () {
19658        }, this.isPending = function () {
19659            return this.deferredUpdate.isPending()
19660        }
19661    }).call(o.prototype)
19662}), define("ace/mode/xml/sax", [], function (e, t, n) {
19663    function d() {
19664    }
19665
19666    function v(e, t, n, r, i) {
19667        function s(e) {
19668            if (e > 65535) {
19669                e -= 65536;
19670                var t = 55296 + (e >> 10), n = 56320 + (e & 1023);
19671                return String.fromCharCode(t, n)
19672            }
19673            return String.fromCharCode(e)
19674        }
19675
19676        function o(e) {
19677            var t = e.slice(1, -1);
19678            return t in n ? n[t] : t.charAt(0) === "#" ? s(parseInt(t.substr(1).replace("x", "0x"))) : (i.error("entity not found:" + e), e)
19679        }
19680
19681        function u(t) {
19682            var n = e.substring(v, t).replace(/&#?\w+;/g, o);
19683            h && a(v), r.characters(n, 0, t - v), v = t
19684        }
19685
19686        function a(t, n) {
19687            while (t >= l && (n = c.exec(e))) f = n.index, l = f + n[0].length, h.lineNumber++;
19688            h.columnNumber = t - f + 1
19689        }
19690
19691        var f = 0, l = 0, c = /.+(?:\r\n?|\n)|.*$/g, h = r.locator, p = [{currentNSMap: t}], d = {}, v = 0;
19692        for (; ;) {
19693            var E = e.indexOf("<", v);
19694            if (E < 0) {
19695                if (!e.substr(v).match(/^\s*$/)) {
19696                    var N = r.document, C = N.createTextNode(e.substr(v));
19697                    N.appendChild(C), r.currentElement = C
19698                }
19699                return
19700            }
19701            E > v && u(E);
19702            switch (e.charAt(E + 1)) {
19703                case"/":
19704                    var k = e.indexOf(">", E + 3), L = e.substring(E + 2, k), A;
19705                    if (!(p.length > 1)) {
19706                        i.fatalError("end tag name not found for: " + L);
19707                        break
19708                    }
19709                    A = p.pop();
19710                    var O = A.localNSMap;
19711                    A.tagName != L && i.fatalError("end tag name: " + L + " does not match the current start tagName: " + A.tagName), r.endElement(A.uri, A.localName, L);
19712                    if (O) for (var M in O) r.endPrefixMapping(M);
19713                    k++;
19714                    break;
19715                case"?":
19716                    h && a(E), k = x(e, E, r);
19717                    break;
19718                case"!":
19719                    h && a(E), k = S(e, E, r, i);
19720                    break;
19721                default:
19722                    try {
19723                        h && a(E);
19724                        var _ = new T, k = g(e, E, _, o, i), D = _.length;
19725                        if (D && h) {
19726                            var P = m(h, {});
19727                            for (var E = 0; E < D; E++) {
19728                                var H = _[E];
19729                                a(H.offset), H.offset = m(h, {})
19730                            }
19731                            m(P, h)
19732                        }
19733                        !_.closed && w(e, k, _.tagName, d) && (_.closed = !0, n.nbsp || i.warning("unclosed xml attribute")), y(_, r, p), _.uri === "http://www.w3.org/1999/xhtml" && !_.closed ? k = b(e, k, _.tagName, o, r) : k++
19734                    } catch (B) {
19735                        i.error("element parse error: " + B), k = -1
19736                    }
19737            }
19738            k < 0 ? u(E + 1) : v = k
19739        }
19740    }
19741
19742    function m(e, t) {
19743        return t.lineNumber = e.lineNumber, t.columnNumber = e.columnNumber, t
19744    }
19745
19746    function g(e, t, n, r, i) {
19747        var s, d, v = ++t, m = o;
19748        for (; ;) {
19749            var g = e.charAt(v);
19750            switch (g) {
19751                case"=":
19752                    if (m === u) s = e.slice(t, v), m = f; else {
19753                        if (m !== a) throw new Error("attribute equal must after attrName");
19754                        m = f
19755                    }
19756                    break;
19757                case"'":
19758                case'"':
19759                    if (m === f) {
19760                        t = v + 1, v = e.indexOf(g, t);
19761                        if (!(v > 0)) throw new Error("attribute value no end '" + g + "' match");
19762                        d = e.slice(t, v).replace(/&#?\w+;/g, r), n.add(s, d, t - 1), m = c
19763                    } else {
19764                        if (m != l) throw new Error('attribute value must after "="');
19765                        d = e.slice(t, v).replace(/&#?\w+;/g, r), n.add(s, d, t), i.warning('attribute "' + s + '" missed start quot(' + g + ")!!"), t = v + 1, m = c
19766                    }
19767                    break;
19768                case"/":
19769                    switch (m) {
19770                        case o:
19771                            n.setTagName(e.slice(t, v));
19772                        case c:
19773                        case h:
19774                        case p:
19775                            m = p, n.closed = !0;
19776                        case l:
19777                        case u:
19778                        case a:
19779                            break;
19780                        default:
19781                            throw new Error("attribute invalid close char('/')")
19782                    }
19783                    break;
19784                case"":
19785                    i.error("unexpected end of input");
19786                case">":
19787                    switch (m) {
19788                        case o:
19789                            n.setTagName(e.slice(t, v));
19790                        case c:
19791                        case h:
19792                        case p:
19793                            break;
19794                        case l:
19795                        case u:
19796                            d = e.slice(t, v), d.slice(-1) === "/" && (n.closed = !0, d = d.slice(0, -1));
19797                        case a:
19798                            m === a && (d = s), m == l ? (i.warning('attribute "' + d + '" missed quot(")!!'), n.add(s, d.replace(/&#?\w+;/g, r), t)) : (i.warning('attribute "' + d + '" missed value!! "' + d + '" instead!!'), n.add(d, d, t));
19799                            break;
19800                        case f:
19801                            throw new Error("attribute value missed!!")
19802                    }
19803                    return v;
19804                case"\u0080":
19805                    g = " ";
19806                default:
19807                    if (g <= " ") switch (m) {
19808                        case o:
19809                            n.setTagName(e.slice(t, v)), m = h;
19810                            break;
19811                        case u:
19812                            s = e.slice(t, v), m = a;
19813                            break;
19814                        case l:
19815                            var d = e.slice(t, v).replace(/&#?\w+;/g, r);
19816                            i.warning('attribute "' + d + '" missed quot(")!!'), n.add(s, d, t);
19817                        case c:
19818                            m = h
19819                    } else switch (m) {
19820                        case a:
19821                            i.warning('attribute "' + s + '" missed value!! "' + s + '" instead!!'), n.add(s, s, t), t = v, m = u;
19822                            break;
19823                        case c:
19824                            i.warning('attribute space is required"' + s + '"!!');
19825                        case h:
19826                            m = u, t = v;
19827                            break;
19828                        case f:
19829                            m = l, t = v;
19830                            break;
19831                        case p:
19832                            throw new Error("elements closed character '/' and '>' must be connected to")
19833                    }
19834            }
19835            v++
19836        }
19837    }
19838
19839    function y(e, t, n) {
19840        var r = e.tagName, i = null, s = n[n.length - 1].currentNSMap, o = e.length;
19841        while (o--) {
19842            var u = e[o], a = u.qName, f = u.value, l = a.indexOf(":");
19843            if (l > 0) var c = u.prefix = a.slice(0, l), h = a.slice(l + 1),
19844                p = c === "xmlns" && h; else h = a, c = null, p = a === "xmlns" && "";
19845            u.localName = h, p !== !1 && (i == null && (i = {}, E(s, s = {})), s[p] = i[p] = f, u.uri = "http://www.w3.org/2000/xmlns/", t.startPrefixMapping(p, f))
19846        }
19847        var o = e.length;
19848        while (o--) {
19849            u = e[o];
19850            var c = u.prefix;
19851            c && (c === "xml" && (u.uri = "http://www.w3.org/XML/1998/namespace"), c !== "xmlns" && (u.uri = s[c]))
19852        }
19853        var l = r.indexOf(":");
19854        l > 0 ? (c = e.prefix = r.slice(0, l), h = e.localName = r.slice(l + 1)) : (c = null, h = e.localName = r);
19855        var d = e.uri = s[c || ""];
19856        t.startElement(d, h, r, e);
19857        if (e.closed) {
19858            t.endElement(d, h, r);
19859            if (i) for (c in i) t.endPrefixMapping(c)
19860        } else e.currentNSMap = s, e.localNSMap = i, n.push(e)
19861    }
19862
19863    function b(e, t, n, r, i) {
19864        if (/^(?:script|textarea)$/i.test(n)) {
19865            var s = e.indexOf("</" + n + ">", t), o = e.substring(t + 1, s);
19866            if (/[&<]/.test(o)) return /^script$/i.test(n) ? (i.characters(o, 0, o.length), s) : (o = o.replace(/&#?\w+;/g, r), i.characters(o, 0, o.length), s)
19867        }
19868        return t + 1
19869    }
19870
19871    function w(e, t, n, r) {
19872        var i = r[n];
19873        return i == null && (i = r[n] = e.lastIndexOf("</" + n + ">")), i < t
19874    }
19875
19876    function E(e, t) {
19877        for (var n in e) t[n] = e[n]
19878    }
19879
19880    function S(e, t, n, r) {
19881        var i = e.charAt(t + 2);
19882        switch (i) {
19883            case"-":
19884                if (e.charAt(t + 3) === "-") {
19885                    var s = e.indexOf("-->", t + 4);
19886                    return s > t ? (n.comment(e, t + 4, s - t - 4), s + 3) : (r.error("Unclosed comment"), -1)
19887                }
19888                return -1;
19889            default:
19890                if (e.substr(t + 3, 6) == "CDATA[") {
19891                    var s = e.indexOf("]]>", t + 9);
19892                    return n.startCDATA(), n.characters(e, t + 9, s - t - 9), n.endCDATA(), s + 3
19893                }
19894                var o = C(e, t), u = o.length;
19895                if (u > 1 && /!doctype/i.test(o[0][0])) {
19896                    var a = o[1][0], f = u > 3 && /^public$/i.test(o[2][0]) && o[3][0], l = u > 4 && o[4][0],
19897                        c = o[u - 1];
19898                    return n.startDTD(a, f && f.replace(/^(['"])(.*?)\1$/, "$2"), l && l.replace(/^(['"])(.*?)\1$/, "$2")), n.endDTD(), c.index + c[0].length
19899                }
19900        }
19901        return -1
19902    }
19903
19904    function x(e, t, n) {
19905        var r = e.indexOf("?>", t);
19906        if (r) {
19907            var i = e.substring(t, r).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
19908            if (i) {
19909                var s = i[0].length;
19910                return n.processingInstruction(i[1], i[2]), r + 2
19911            }
19912            return -1
19913        }
19914        return -1
19915    }
19916
19917    function T(e) {
19918    }
19919
19920    function N(e, t) {
19921        return e.__proto__ = t, e
19922    }
19923
19924    function C(e, t) {
19925        var n, r = [], i = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;
19926        i.lastIndex = t, i.exec(e);
19927        while (n = i.exec(e)) {
19928            r.push(n);
19929            if (n[1]) return r
19930        }
19931    }
19932
19933    var r = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,
19934        i = new RegExp("[\\-\\.0-9" + r.source.slice(1, -1) + "\u00b7\u0300-\u036f\\ux203F-\u2040]"),
19935        s = new RegExp("^" + r.source + i.source + "*(?::" + r.source + i.source + "*)?$"), o = 0, u = 1, a = 2, f = 3,
19936        l = 4, c = 5, h = 6, p = 7;
19937    return d.prototype = {
19938        parse: function (e, t, n) {
19939            var r = this.domBuilder;
19940            r.startDocument(), E(t, t = {}), v(e, t, n, r, this.errorHandler), r.endDocument()
19941        }
19942    }, T.prototype = {
19943        setTagName: function (e) {
19944            if (!s.test(e)) throw new Error("invalid tagName:" + e);
19945            this.tagName = e
19946        }, add: function (e, t, n) {
19947            if (!s.test(e)) throw new Error("invalid attribute:" + e);
19948            this[this.length++] = {qName: e, value: t, offset: n}
19949        }, length: 0, getLocalName: function (e) {
19950            return this[e].localName
19951        }, getOffset: function (e) {
19952            return this[e].offset
19953        }, getQName: function (e) {
19954            return this[e].qName
19955        }, getURI: function (e) {
19956            return this[e].uri
19957        }, getValue: function (e) {
19958            return this[e].value
19959        }
19960    }, N({}, N.prototype) instanceof N || (N = function (e, t) {
19961        function n() {
19962        }
19963
19964        n.prototype = t, n = new n;
19965        for (t in e) n[t] = e[t];
19966        return n
19967    }), d
19968}), define("ace/mode/xml/dom", [], function (e, t, n) {
19969    function r(e, t) {
19970        for (var n in e) t[n] = e[n]
19971    }
19972
19973    function i(e, t) {
19974        var n = function () {
19975        }, i = e.prototype;
19976        if (Object.create) {
19977            var s = Object.create(t.prototype);
19978            i.__proto__ = s
19979        }
19980        i instanceof t || (n.prototype = t.prototype, n = new n, r(i, n), e.prototype = i = n), i.constructor != e && (typeof e != "function" && console.error("unknown Class:" + e), i.constructor = e)
19981    }
19982
19983    function B(e, t) {
19984        if (t instanceof Error) var n = t; else n = this, Error.call(this, w[e]), this.message = w[e], Error.captureStackTrace && Error.captureStackTrace(this, B);
19985        return n.code = e, t && (this.message = this.message + ": " + t), n
19986    }
19987
19988    function j() {
19989    }
19990
19991    function F(e, t) {
19992        this._node = e, this._refresh = t, I(this)
19993    }
19994
19995    function I(e) {
19996        var t = e._node._inc || e._node.ownerDocument._inc;
19997        if (e._inc != t) {
19998            var n = e._refresh(e._node);
19999            gt(e, "length", n.length), r(n, e), e._inc = t
20000        }
20001    }
20002
20003    function q() {
20004    }
20005
20006    function R(e, t) {
20007        var n = e.length;
20008        while (n--) if (e[n] === t) return n
20009    }
20010
20011    function U(e, t, n, r) {
20012        r ? t[R(t, r)] = n : t[t.length++] = n;
20013        if (e) {
20014            n.ownerElement = e;
20015            var i = e.ownerDocument;
20016            i && (r && Q(i, e, r), K(i, e, n))
20017        }
20018    }
20019
20020    function z(e, t, n) {
20021        var r = R(t, n);
20022        if (!(r >= 0)) throw new B(L, new Error);
20023        var i = t.length - 1;
20024        while (r < i) t[r] = t[++r];
20025        t.length = i;
20026        if (e) {
20027            var s = e.ownerDocument;
20028            s && (Q(s, e, n), n.ownerElement = null)
20029        }
20030    }
20031
20032    function W(e) {
20033        this._features = {};
20034        if (e) for (var t in e) this._features = e[t]
20035    }
20036
20037    function X() {
20038    }
20039
20040    function V(e) {
20041        return e == "<" && "&lt;" || e == ">" && "&gt;" || e == "&" && "&amp;" || e == '"' && "&quot;" || "&#" + e.charCodeAt() + ";"
20042    }
20043
20044    function $(e, t) {
20045        if (t(e)) return !0;
20046        if (e = e.firstChild) do if ($(e, t)) return !0; while (e = e.nextSibling)
20047    }
20048
20049    function J() {
20050    }
20051
20052    function K(e, t, n) {
20053        e && e._inc++;
20054        var r = n.namespaceURI;
20055        r == "http://www.w3.org/2000/xmlns/" && (t._nsMap[n.prefix ? n.localName : ""] = n.value)
20056    }
20057
20058    function Q(e, t, n, r) {
20059        e && e._inc++;
20060        var i = n.namespaceURI;
20061        i == "http://www.w3.org/2000/xmlns/" && delete t._nsMap[n.prefix ? n.localName : ""]
20062    }
20063
20064    function G(e, t, n) {
20065        if (e && e._inc) {
20066            e._inc++;
20067            var r = t.childNodes;
20068            if (n) r[r.length++] = n; else {
20069                var i = t.firstChild, s = 0;
20070                while (i) r[s++] = i, i = i.nextSibling;
20071                r.length = s
20072            }
20073        }
20074    }
20075
20076    function Y(e, t) {
20077        var n = t.previousSibling, r = t.nextSibling;
20078        return n ? n.nextSibling = r : e.firstChild = r, r ? r.previousSibling = n : e.lastChild 
20078= n, G(e.ownerDocument, e), t
20079    }
20080
20081    function Z(e, t, n) {
20082        var r = t.parentNode;
20083        r && r.removeChild(t);
20084        if (t.nodeType === g) {
20085            var i = t.firstChild;
20086            if (i == null) return t;
20087            var s = t.lastChild
20088        } else i = s = t;
20089        var o = n ? n.previousSibling : e.lastChild;
20090        i.previousSibling = o, s.nextSibling = n, o ? o.nextSibling = i : e.firstChild = i, n == null ? e.lastChild = s : n.previousSibling = s;
20091        do i.parentNode = e; while (i !== s && (i = i.nextSibling));
20092        return G(e.ownerDocument || e, e), t.nodeType == g && (t.firstChild = t.lastChild = null), t
20093    }
20094
20095    function et(e, t) {
20096        var n = t.parentNode;
20097        if (n) {
20098            var r = e.lastChild;
20099            n.removeChild(t);
20100            var r = e.lastChild
20101        }
20102        var r = e.lastChild;
20103        return t.parentNode = e, t.previousSibling = r, t.nextSibling = null, r ? r.nextSibling = t : e.firstChild = t, e.lastChild = t, G(e.ownerDocument, e, t), t
20104    }
20105
20106    function tt() {
20107        this._nsMap = {}
20108    }
20109
20110    function nt() {
20111    }
20112
20113    function rt() {
20114    }
20115
20116    function it() {
20117    }
20118
20119    function st() {
20120    }
20121
20122    function ot() {
20123    }
20124
20125    function ut() {
20126    }
20127
20128    function at() {
20129    }
20130
20131    function ft() {
20132    }
20133
20134    function lt() {
20135    }
20136
20137    function ct() {
20138    }
20139
20140    function ht() {
20141    }
20142
20143    function pt() {
20144    }
20145
20146    function dt(e, t) {
20147        switch (e.nodeType) {
20148            case u:
20149                var n = e.attributes, r = n.length, i = e.firstChild, o = e.tagName, h = s === e.namespaceURI;
20150                t.push("<", o);
20151                for (var y = 0; y < r; y++) dt(n.item(y), t);
20152                if (i || h && !/^(?:meta|link|img|br|hr|input|button)$/i.test(o)) {
20153                    t.push(">");
20154                    if (h && /^script$/i.test(o)) i && t.push(i.data); else while (i) dt(i, t), i = i.nextSibling;
20155                    t.push("</", o, ">")
20156                } else t.push("/>");
20157                return;
20158            case v:
20159            case g:
20160                var i = e.firstChild;
20161                while (i) dt(i, t), i = i.nextSibling;
20162                return;
20163            case a:
20164                return t.push(" ", e.name, '="', e.value.replace(/[<&"]/g, V), '"');
20165            case f:
20166                return t.push(e.data.replace(/[<&]/g, V));
20167            case l:
20168                return t.push("<![CDATA[", e.data, "]]>");
20169            case d:
20170                return t.push("<!--", e.data, "-->");
20171            case m:
20172                var b = e.publicId, w = e.systemId;
20173                t.push("<!DOCTYPE ", e.name);
20174                if (b) t.push(' PUBLIC "', b), w && w != "." && t.push('" "', w), t.push('">'); else if (w && w != ".") t.push(' SYSTEM "', w, '">'); else {
20175                    var E = e.internalSubset;
20176                    E && t.push(" [", E, "]"), t.push(">")
20177                }
20178                return;
20179            case p:
20180                return t.push("<?", e.target, " ", e.data, "?>");
20181            case c:
20182                return t.push("&", e.nodeName, ";");
20183            default:
20184                t.push("??", e.nodeName)
20185        }
20186    }
20187
20188    function vt(e, t, n) {
20189        var r;
20190        switch (t.nodeType) {
20191            case u:
20192                r = t.cloneNode(!1), r.ownerDocument = e;
20193            case g:
20194                break;
20195            case a:
20196                n = !0
20197        }
20198        r || (r = t.cloneNode(!1)), r.ownerDocument = e, r.parentNode = null;
20199        if (n) {
20200            var i = t.firstChild;
20201            while (i) r.appendChild(vt(e, i, n)), i = i.nextSibling
20202        }
20203        return r
20204    }
20205
20206    function mt(e, t, n) {
20207        var r = new t.constructor;
20208        for (var i in t) {
20209            var s = t[i];
20210            typeof s != "object" && s != r[i] && (r[i] = s)
20211        }
20212        t.childNodes && (r.childNodes = new j), r.ownerDocument = e;
20213        switch (r.nodeType) {
20214            case u:
20215                var o = t.attributes, f = r.attributes = new q, l = o.length;
20216                f._ownerElement = r;
20217                for (var c = 0; c < l; c++) r.setAttributeNode(mt(e, o.item(c), !0));
20218                break;
20219            case a:
20220                n = !0
20221        }
20222        if (n) {
20223            var h = t.firstChild;
20224            while (h) r.appendChild(mt(e, h, n)), h = h.nextSibling
20225        }
20226        return r
20227    }
20228
20229    function gt(e, t, n) {
20230        e[t] = n
20231    }
20232
20233    function yt(e) {
20234        switch (e.nodeType) {
20235            case 1:
20236            case 11:
20237                var t = [];
20238                e = e.firstChild;
20239                while (e) e.nodeType !== 7 && e.nodeType !== 8 && t.push(yt(e)), e = e.nextSibling;
20240                return t.join("");
20241            default:
20242                return e.nodeValue
20243        }
20244    }
20245
20246    var s = "http://www.w3.org/1999/xhtml", o = {}, u = o.ELEMENT_NODE = 1, a = o.ATTRIBUTE_NODE = 2,
20247        f = o.TEXT_NODE = 3, l = o.CDATA_SECTION_NODE = 4, c = o.ENTITY_REFERENCE_NODE = 5, h = o.ENTITY_NODE = 6,
20248        p = o.PROCESSING_INSTRUCTION_NODE = 7, d = o.COMMENT_NODE = 8, v = o.DOCUMENT_NODE = 9,
20249        m = o.DOCUMENT_TYPE_NODE = 10, g = o.DOCUMENT_FRAGMENT_NODE = 11, y = o.NOTATION_NODE = 12, b = {}, w = {},
20250        E = b.INDEX_SIZE_ERR = (w[1] = "Index size error", 1),
20251        S = b.DOMSTRING_SIZE_ERR = (w[2] = "DOMString size error", 2),
20252        x = b.HIERARCHY_REQUEST_ERR = (w[3] = "Hierarchy request error", 3),
20253        T = b.WRONG_DOCUMENT_ERR = (w[4] = "Wrong document", 4),
20254        N = b.INVALID_CHARACTER_ERR = (w[5] = "Invalid character", 5),
20255        C = b.NO_DATA_ALLOWED_ERR = (w[6] = "No data allowed", 6),
20256        k = b.NO_MODIFICATION_ALLOWED_ERR = (w[7] = "No modification allowed", 7),
20257        L = b.NOT_FOUND_ERR = (w[8] = "Not found", 8), A = b.NOT_SUPPORTED_ERR = (w[9] = "Not supported", 9),
20258        O = b.INUSE_ATTRIBUTE_ERR = (w[10] = "Attribute in use", 10),
20259        M = b.INVALID_STATE_ERR = (w[11] = "Invalid state", 11), _ = b.SYNTAX_ERR = (w[12] = "Syntax error", 12),
20260        D = b.INVALID_MODIFICATION_ERR = (w[13] = "Invalid modification", 13),
20261        P = b.NAMESPACE_ERR = (w[14] = "Invalid namespace", 14),
20262        H = b.INVALID_ACCESS_ERR = (w[15] = "Invalid access", 15);
20263    B.prototype = Error.prototype, r(b, B), j.prototype = {
20264        length: 0, item: function (e) {
20265            return this[e] || null
20266        }
20267    }, F.prototype.item = function (e) {
20268        return I(this), this[e]
20269    }, i(F, j), q.prototype = {
20270        length: 0, item: j.prototype.item, getNamedItem: function (e) {
20271            var t = this.length;
20272            while (t--) {
20273                var n = this[t];
20274                if (n.nodeName == e) return n
20275            }
20276        }, setNamedItem: function (e) {
20277            var t = e.ownerElement;
20278            if (t && t != this._ownerElement) throw new B(O);
20279            var n = this.getNamedItem(e.nodeName);
20280            return U(this._ownerElement, this, e, n), n
20281        }, setNamedItemNS: function (e) {
20282            var t = e.ownerElement, n;
20283            if (t && t != this._ownerElement) throw new B(O);
20284            return n = this.getNamedItemNS(e.namespaceURI, e.localName), U(this._ownerElement, this, e, n), n
20285        }, removeNamedItem: function (e) {
20286            var t = this.getNamedItem(e);
20287            return z(this._ownerElement, this, t), t
20288        }, removeNamedItemNS: function (e, t) {
20289            var n = this.getNamedItemNS(e, t);
20290            return z(this._ownerElement, this, n), n
20291        }, getNamedItemNS: function (e, t) {
20292            var n = this.length;
20293            while (n--) {
20294                var r = this[n];
20295                if (r.localName == t && r.namespaceURI == e) return r
20296            }
20297            return null
20298        }
20299    }, W.prototype = {
20300        hasFeature: function (e, t) {
20301            var n = this._features[e.toLowerCase()];
20302            return n && (!t || t in n) ? !0 : !1
20303        }, createDocument: function (e, t, n) {
20304            var r = new J;
20305            r.implementation = this, r.childNodes = new j, r.doctype = n, n && r.appendChild(n);
20306            if (t) {
20307                var i = r.createElementNS(e, t);
20308                r.appendChild(i)
20309            }
20310            return r
20311        }, createDocumentType: function (e, t, n) {
20312            var r = new ut;
20313            return r.name = e, r.nodeName = e, r.publicId = t, r.systemId = n, r
20314        }
20315    }, X.prototype = {
20316        firstChild: null,
20317        lastChild: null,
20318        previousSibling: null,
20319        nextSibling: null,
20320        attributes: null,
20321        parentNode: null,
20322        childNodes: null,
20323        ownerDocument: null,
20324        nodeValue: null,
20325        namespaceURI: null,
20326        prefix: null,
20327        localName: null,
20328        insertBefore: function (e, t) {
20329            return Z(this, e, t)
20330        },
20331        replaceChild: function (e, t) {
20332            this.insertBefore(e, t), t && this.removeChild(t)
20333        },
20334        removeChild: function (e) {
20335            return Y(this, e)
20336        },
20337        appendChild: function (e) {
20338            return this.insertBefore(e, null)
20339        },
20340        hasChildNodes: function () {
20341            return this.firstChild != null
20342        },
20343        cloneNode: function (e) {
20344            return mt(this.ownerDocument || this, this, e)
20345        },
20346        normalize: function () {
20347            var e = this.firstChild;
20348            while (e) {
20349                var t = e.nextSibling;
20350                t && t.nodeType == f && e.nodeType == f ? (this.removeChild(t), e.appendData(t.data)) : (e.normalize(), e = t)
20351            }
20352        },
20353        isSupported: function (e, t) {
20354            return this.ownerDocument.implementation.hasFeature(e, t)
20355        },
20356        hasAttributes: function () {
20357            return this.attributes.length > 0
20358        },
20359        lookupPrefix: function (e) {
20360            var t = this;
20361            while (t) {
20362                var n = t._nsMap;
20363                if (n) for (var r in n) if (n[r] == e) return r;
20364                t = t.nodeType == 2 ? t.ownerDocument : t.parentNode
20365            }
20366            return null
20367        },
20368        lookupNamespaceURI: function (e) {
20369            var t = this;
20370            while (t) {
20371                var n = t._nsMap;
20372                if (n && e in n) return n[e];
20373                t = t.nodeType == 2 ? t.ownerDocument : t.parentNode
20374            }
20375            return null
20376        },
20377        isDefaultNamespace: function (e) {
20378            var t = this.lookupPrefix(e);
20379            return t == null
20380        }
20381    }, r(o, X), r(o, X.prototype), J.prototype = {
20382        nodeName: "#document",
20383        nodeType: v,
20384        doctype: null,
20385        documentElement: null,
20386        _inc: 1,
20387        insertBefore: function (e, t) {
20388            if (e.nodeType == g) {
20389                var n = e.firstChild;
20390                while (n) {
20391                    var r = n.nextSibling;
20392                    this.insertBefore(n, t), n = r
20393                }
20394                return e
20395            }
20396            return this.documentElement == null && e.nodeType == 1 && (this.documentElement = e), Z(this, e, t), e.ownerDocument = this, e
20397        },
20398        removeChild: function (e) {
20399            return this.documentElement == e && (this.documentElement = null), Y(this, e)
20400        },
20401        importNode: function (e, t) {
20402            return vt(this, e, t)
20403        },
20404        getElementById: function (e) {
20405            var t = null;
20406            return $(this.documentElement, function (n) {
20407                if (n.nodeType == 1 && n.getAttribute("id") == e) return t = n, !0
20408            }), t
20409        },
20410        createElement: function (e) {
20411            var t = new tt;
20412            t.ownerDocument = this, t.nodeName = e, t.tagName = e, t.childNodes = new j;
20413            var n = t.attributes = new q;
20414            return n._ownerElement = t, t
20415        },
20416        createDocumentFragment: function () {
20417            var e = new ct;
20418            return e.ownerDocument = this, e.childNodes = new j, e
20419        },
20420        createTextNode: function (e) {
20421            var t = new it;
20422            return t.ownerDocument = this, t.appendData(e), t
20423        },
20424        createComment: function (e) {
20425            var t = new st;
20426            return t.ownerDocument = this, t.appendData(e), t
20427        },
20428        createCDATASection: function (e) {
20429            var t = new ot;
20430            return t.ownerDocument = this, t.appendData(e), t
20431        },
20432        createProcessingInstruction: function (e, t) {
20433            var n = new ht;
20434            return n.ownerDocument = this, n.tagName = n.target = e, n.nodeValue = n.data = t, n
20435        },
20436        createAttribute: function (e) {
20437            var t = new nt;
20438            return t.ownerDocument = this, t.name = e, t.nodeName = e, t.localName = e, t.specified = !0, t
20439        },
20440        createEntityReference: function (e) {
20441            var t = new lt;
20442            return t.ownerDocument = this, t.nodeName = e, t
20443        },
20444        createElementNS: function (e, t) {
20445            var n = new tt, r = t.split(":"), i = n.attributes = new q;
20446            return n.childNodes = new j, n.ownerDocument = this, n.nodeName = t, n.tagName = t, n.namespaceURI = e, r.length == 2 ? (n.prefix = r[0], n.localName = r[1]) : n.localName = t, i._ownerElement = n, n
20447        },
20448        createAttributeNS: function (e, t) {
20449            var n = new nt, r = t.split(":");
20450            return n.ownerDocument = this, n.nodeName = t, n.name = t, n.namespaceURI = e, n.specified = !0, r.length == 2 ? (n.prefix = r[0], n.localName = r[1]) : n.localName = t, n
20451        }
20452    }, i(J, X), tt.prototype = {
20453        nodeType: u, hasAttribute: function (e) {
20454            return this.getAttributeNode(e) != null
20455        }, getAttribute: function (e) {
20456            var t = this.getAttributeNode(e);
20457            return t && t.value || ""
20458        }, getAttributeNode: function (e) {
20459            return this.attributes.getNamedItem(e)
20460        }, setAttribute: function (e, t) {
20461            var n = this.ownerDocument.createAttribute(e);
20462            n.value = n.nodeValue = "" + t, this.setAttributeNode(n)
20463        }, removeAttribute: function (e) {
20464            var t = this.getAttributeNode(e);
20465            t && this.removeAttributeNode(t)
20466        }, appendChild: function (e) {
20467            return e.nodeType === g ? this.insertBefore(e, null) : et(this, e)
20468        }, setAttributeNode: function (e) {
20469            return this.attributes.setNamedItem(e)
20470        }, setAttributeNodeNS: function (e) {
20471            return this.attributes.setNamedItemNS(e)
20472        }, removeAttributeNode: function (e) {
20473            return this.attributes.removeNamedItem(e.nodeName)
20474        }, removeAttributeNS: function (e, t) {
20475            var n = this.getAttributeNodeNS(e, t);
20476            n && this.removeAttributeNode(n)
20477        }, hasAttributeNS: function (e, t) {
20478            return this.getAttributeNodeNS(e, t) != null
20479        }, getAttributeNS: function (e, t) {
20480            var n = this.getAttributeNodeNS(e, t);
20481            return n && n.value || ""
20482        }, setAttributeNS: function (e, t, n) {
20483            var r = this.ownerDocument.createAttributeNS(e, t);
20484            r.value = r.nodeValue = "" + n, this.setAttributeNode(r)
20485        }, getAttributeNodeNS: function (e, t) {
20486            return this.attributes.getNamedItemNS(e, t)
20487        }, getElementsByTagName: function (e) {
20488            return new F(this, function (t) {
20489                var n = [];
20490                return $(t, function (r) {
20491                    r !== t && r.nodeType == u && (e === "*" || r.tagName == e) && n.push(r)
20492                }), n
20493            })
20494        }, getElementsByTagNameNS: function (e, t) {
20495            return new F(this, function (n) {
20496                var r = [];
20497                return $(n, function (i) {
20498                    i !== n && i.nodeType === u && (e === "*" || i.namespaceURI === e) && (t === "*" || i.localName == t) && r.push(i)
20499                }), r
20500            })
20501        }
20502    }, J.prototype.getElementsByTagName = tt.prototype.getElementsByTagName, J.prototype.getElementsByTagNameNS = tt.prototype.getElementsByTagNameNS, i(tt, X), nt.prototype.nodeType = a, i(nt, X), rt.prototype = {
20503        data: "",
20504        substringData: function (e, t) {
20505            return this.data.substring(e, e + t)
20506        },
20507        appendData: function (e) {
20508            e = this.data + e, this.nodeValue = this.data = e, this.length = e.length
20509        },
20510        insertData: function (e, t) {
20511            this.replaceData(e, 0, t)
20512        },
20513        appendChild: function (e) {
20514            throw new Error(w[3])
20515        },
20516        deleteData: function (e, t) {
20517            this.replaceData(e, t, "")
20518        },
20519        replaceData: function (e, t, n) {
20520            var r = this.data.substring(0, e), i = this.data.substring(e + t);
20521            n = r + n + i, this.nodeValue = this.data = n, this.length = n.length
20522        }
20523    }, i(rt, X), it.prototype = {
20524        nodeName: "#text", nodeType: f, splitText: function (e) {
20525            var t = this.data, n = t.substring(e);
20526            t = t.substring(0, e), this.data = this.nodeValue = t, this.length = t.length;
20527            var r = this.ownerDocument.createTextNode(n);
20528            return this.parentNode && this.parentNode.insertBefore(r, this.nextSibling), r
20529        }
20530    }, i(it, rt), st.prototype = {
20531        nodeName: "#comment",
20532        nodeType: d
20533    }, i(st, rt), ot.prototype = {
20534        nodeName: "#cdata-section",
20535        nodeType: l
20536    }, i(ot, rt), ut.prototype.nodeType = m, i(ut, X), at.prototype.nodeType = y, i(at, X), ft.prototype.nodeType = h, i(ft, X), lt.prototype.nodeType = c, i(lt, X), ct.prototype.nodeName = "#document-fragment", ct.prototype.nodeType = g, i(ct, X), ht.prototype.nodeType = p, i(ht, X), pt.prototype.serializeToString = function (e) {
20537        var t = [];
20538        return dt(e, t), t.join("")
20539    }, X.prototype.toString = function () {
20540        return pt.prototype.serializeToString(this)
20541    };
20542    try {
20543        Object.defineProperty && (Object.defineProperty(F.prototype, "length", {
20544            get: function () {
20545                return I(this), this.$$length
20546            }
20547        }), Object.defineProperty(X.prototype, "textContent", {
20548            get: function () {
20549                return yt(this)
20550            }, set: function (e) {
20551                switch (this.nodeType) {
20552                    case 1:
20553                    case 11:
20554                        while (this.firstChild) this.removeChild(this.firstChild);
20555                        (e || String(e)) && this.appendChild(this.ownerDocument.createTextNode(e));
20556                        break;
20557                    default:
20558                        this.data = e, this.value = value, this.nodeValue = e
20559                }
20560            }
20561        }), gt = function (e, t, n) {
20562            e["$$" + t] = n
20563        })
20564    } catch (bt) {
20565    }
20566    return W
20567}), define("ace/mode/xml/dom-parser", [], function (e, t, n) {
20568    "use strict";
20569
20570    function s(e) {
20571        this.options = e || {locator: {}}
20572    }
20573
20574    function o(e, t, n) {
20575        function s(t) {
20576            var s = e[t];
20577            if (!s) if (i) s = e.length == 2 ? function (n) {
20578                e(t, n)
20579            } : e; else {
20580                var o = arguments.length;
20581                while (--o) if (s = e[arguments[o]]) break
20582            }
20583            r[t] = s && function (e) {
20584                s(e + f(n), e, n)
20585            } || function () {
20586            }
20587        }
20588
20589        if (!e) {
20590            if (t instanceof u) return t;
20591            e = t
20592        }
20593        var r = {}, i = e instanceof Function;
20594        return n = n || {}, s("warning", "warn"), s("error", "warn", "warning"), s("fatalError", "warn", "warning", "error"), r
20595    }
20596
20597    function u() {
20598        this.cdata = !1
20599    }
20600
20601    function a(e, t) {
20602        t.lineNumber = e.lineNumber, t.columnNumber = e.columnNumber
20603    }
20604
20605    function f(e) {
20606        if (e) return "\n@" + (e.systemId || "") + "#[line:" + e.lineNumber + ",col:" + e.columnNumber + "]"
20607    }
20608
20609    function l(e, t, n) {
20610        return typeof e == "string" ? e.substr(t, n) : e.length >= t + n || t ? new java.lang.String(e, t, n) + "" : e
20611    }
20612
20613    function c(e, t) {
20614        e.currentElement ? e.currentElement.appendChild(t) : e.document.appendChild(t)
20615    }
20616
20617    var r = e("./sax"), i = e("./dom");
20618    return s.prototype.parseFromString = function (e, t) {
20619        var n = this.options, i = new r, s = n.domBuilder || new u, a = n.errorHandler, f = n.locator,
20620            l = n.xmlns || {}, c = {lt: "<", gt: ">", amp: "&", quot: '"', apos: "'"};
20621        return f && s.setDocumentLocator(f), i.errorHandler = o(a, s, f), i.domBuilder = n.domBuilder || s, /\/x?html?$/.test(t) && (c.nbsp = "\u00a0", c.copy = "\u00a9", l[""] = "http://www.w3.org/1999/xhtml"), e ? i.parse(e, l, c) : i.errorHandler.error("invalid document source"), s.document
20622    }, u.prototype = {
20623        startDocument: function () {
20624            this.document = (new i).createDocument(null, null, null), this.locator && (this.document.documentURI = this.locator.systemId)
20625        }, startElement: function (e, t, n, r) {
20626            var i = this.document, s = i.createElementNS(e, n || t), o = r.length;
20627            c(this, s), this.currentElement = s, this.locator && a(this.locator, s);
20628            for (var u = 0; u < o; u++) {
20629                var e = r.getURI(u), f = r.getValue(u), n = r.getQName(u), l = i.createAttributeNS(e, n);
20630                l.getOffset && a(l.getOffset(1), l), l.value = l.nodeValue = f, s.setAttributeNode(l)
20631            }
20632        }, endElement: function (e, t, n) {
20633            var r = this.currentElement, i = r.tagName;
20634            this.currentElement = r.parentNode
20635        }, startPrefixMapping: function (e, t) {
20636        }, endPrefixMapping: function (e) {
20637        }, processingInstruction: function (e, t) {
20638            var n = this.document.createProcessingInstruction(e, t);
20639            this.locator && a(this.locator, n), c(this, n)
20640        }, ignorableWhitespace: function (e, t, n) {
20641        }, characters: function (e, t, n) {
20642            e = l.apply(this, arguments);
20643            if (this.currentElement && e) {
20644                if (this.cdata) {
20645                    var r = this.document.createCDATASection(e);
20646                    this.currentElement.appendChild(r)
20647                } else {
20648                    var r = this.document.createTextNode(e);
20649                    this.currentElement.appendChild(r)
20650                }
20651                this.locator && a(this.locator, r)
20652            }
20653        }, skippedEntity: function (e) {
20654        }, endDocument: function () {
20655            this.document.normalize()
20656        }, setDocumentLocator: function (e) {
20657            if (this.locator = e) e.lineNumber = 0
20658        }, comment: function (e, t, n) {
20659            e = l.apply(this, arguments);
20660            var r = this.document.createComment(e);
20661            this.locator && a(this.locator, r), c(this, r)
20662        }, startCDATA: function () {
20663            this.cdata = !0
20664        }, endCDATA: function () {
20665            this.cdata = !1
20666        }, startDTD: function (e, t, n) {
20667            var r = this.document.implementation;
20668            if (r && r.createDocumentType) {
20669                var i = r.createDocumentType(e, t, n);
20670                this.locator && a(this.locator, i), c(this, i)
20671            }
20672        }, warning: function (e) {
20673            console.warn(e, f(this.locator))
20674        }, error: function (e) {
20675            console.error(e, f(this.locator))
20676        }, fatalError: function (e) {
20677            throw console.error(e, f(this.locator)), e
20678        }
20679    }, "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, function (e) {
20680        u.prototype[e] = function () {
20681            return null
20682        }
20683    }), {DOMParser: s}
20684}), define("ace/mode/xml_worker", [], function (e, t, n) {
20685    "use strict";
20686    var r = e("../lib/oop"), i = e("../lib/lang"), s = e("../wor
20686ker/mirror").Mirror,
20687        o = e("./xml/dom-parser").DOMParser, u = t.Worker = function (e) {
20688            s.call(this, e), this.setTimeout(400), this.context = null
20689        };
20690    r.inherits(u, s), function () {
20691        this.setOptions = function (e) {
20692            this.context = e.context
20693        }, this.onUpdate = function () {
20694            var e = this.doc.getValue();
20695            if (!e) return;
20696            var t = new o, n = [];
20697            t.options.errorHandler = {
20698                fatalError: function (e, t, r) {
20699                    n.push({row: r.lineNumber, column: r.columnNumber, text: t, type: "error"})
20700                }, error: function (e, t, r) {
20701                    n.push({row: r.lineNumber, column: r.columnNumber, text: t, type: "error"})
20702                }, warning: function (e, t, r) {
20703                    n.push({row: r.lineNumber, column: r.columnNumber, text: t, type: "warning"})
20704                }
20705            }, t.parseFromString(e), this.sender.emit("error", n)
20706        }
20707    }.call(u.prototype)
20708}), define("ace/lib/es5-shim", [], function (e, t, n) {
20709    function r() {
20710    }
20711
20712    function w(e) {
20713        try {
20714            return Object.defineProperty(e, "sentinel", {}), "sentinel" in e
20715        } catch (t) {
20716        }
20717    }
20718
20719    function H(e) {
20720        return e = +e, e !== e ? e = 0 : e !== 0 && e !== 1 / 0 && e !== -1 / 0 && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), e
20721    }
20722
20723    function B(e) {
20724        var t = typeof e;
20725        return e === null || t === "undefined" || t === "boolean" || t === "number" || t === "string"
20726    }
20727
20728    function j(e) {
20729        var t, n, r;
20730        if (B(e)) return e;
20731        n = e.valueOf;
20732        if (typeof n == "function") {
20733            t = n.call(e);
20734            if (B(t)) return t
20735        }
20736        r = e.toString;
20737        if (typeof r == "function") {
20738            t = r.call(e);
20739            if (B(t)) return t
20740        }
20741        throw new TypeError
20742    }
20743
20744    Function.prototype.bind || (Function.prototype.bind = function (t) {
20745        var n = this;
20746        if (typeof n != "function") throw new TypeError("Function.prototype.bind called on incompatible " + n);
20747        var i = u.call(arguments, 1), s = function () {
20748            if (this instanceof s) {
20749                var e = n.apply(this, i.concat(u.call(arguments)));
20750                return Object(e) === e ? e : this
20751            }
20752            return n.apply(t, i.concat(u.call(arguments)))
20753        };
20754        return n.prototype && (r.prototype = n.prototype, s.prototype = new r, r.prototype = null), s
20755    });
20756    var i = Function.prototype.call, s = Array.prototype, o = Object.prototype, u = s.slice, a = i.bind(o.toString),
20757        f = i.bind(o.hasOwnProperty), l, c, h, p, d;
20758    if (d = f(o, "__defineGetter__")) l = i.bind(o.__defineGetter__), c = i.bind(o.__defineSetter__), h = i.bind(o.__lookupGetter__), p = i.bind(o.__lookupSetter__);
20759    if ([1, 2].splice(0).length != 2) if (!function () {
20760        function e(e) {
20761            var t = new Array(e + 2);
20762            return t[0] = t[1] = 0, t
20763        }
20764
20765        var t = [], n;
20766        t.splice.apply(t, e(20)), t.splice.apply(t, e(26)), n = t.length, t.splice(5, 0, "XXX"), n + 1 == t.length;
20767        if (n + 1 == t.length) return !0
20768    }()) Array.prototype.splice = function (e, t) {
20769        var n = this.length;
20770        e > 0 ? e > n && (e = n) : e == void 0 ? e = 0 : e < 0 && (e = Math.max(n + e, 0)), e + t < n || (t = n - e);
20771        var r = this.slice(e, e + t), i = u.call(arguments, 2), s = i.length;
20772        if (e === n) s && this.push.apply(this, i); else {
20773            var o = Math.min(t, n - e), a = e + o, f = a + s - o, l = n - a, c = n - o;
20774            if (f < a) for (var h = 0; h < l; ++h) this[f + h] = this[a + h]; else if (f > a) for (h = l; h--;) this[f + h] = this[a + h];
20775            if (s && e === c) this.length = c, this.push.apply(this, i); else {
20776                this.length = c + s;
20777                for (h = 0; h < s; ++h) this[e + h] = i[h]
20778            }
20779        }
20780        return r
20781    }; else {
20782        var v = Array.prototype.splice;
20783        Array.prototype.splice = function (e, t) {
20784            return arguments.length ? v.apply(this, [e === void 0 ? 0 : e, t === void 0 ? this.length - e : t].concat(u.call(arguments, 2))) : []
20785        }
20786    }
20787    Array.isArray || (Array.isArray = function (t) {
20788        return a(t) == "[object Array]"
20789    });
20790    var m = Object("a"), g = m[0] != "a" || !(0 in m);
20791    Array.prototype.forEach || (Array.prototype.forEach = function (t) {
20792        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = arguments[1], s = -1,
20793            o = r.length >>> 0;
20794        if (a(t) != "[object Function]") throw new TypeError;
20795        while (++s < o) s in r && t.call(i, r[s], s, n)
20796    }), Array.prototype.map || (Array.prototype.map = function (t) {
20797        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = Array(i),
20798            o = arguments[1];
20799        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
20800        for (var u = 0; u < i; u++) u in r && (s[u] = t.call(o, r[u], u, n));
20801        return s
20802    }), Array.prototype.filter || (Array.prototype.filter = function (t) {
20803        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0, s = [], o,
20804            u = arguments[1];
20805        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
20806        for (var f = 0; f < i; f++) f in r && (o = r[f], t.call(u, o, f, n) && s.push(o));
20807        return s
20808    }), Array.prototype.every || (Array.prototype.every = function (t) {
20809        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
20810            s = arguments[1];
20811        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
20812        for (var o = 0; o < i; o++) if (o in r && !t.call(s, r[o], o, n)) return !1;
20813        return !0
20814    }), Array.prototype.some || (Array.prototype.some = function (t) {
20815        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0,
20816            s = arguments[1];
20817        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
20818        for (var o = 0; o < i; o++) if (o in r && t.call(s, r[o], o, n)) return !0;
20819        return !1
20820    }), Array.prototype.reduce || (Array.prototype.reduce = function (t) {
20821        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
20822        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
20823        if (!i && arguments.length == 1) throw new TypeError("reduce of empty array with 
20823no initial value");
20824        var s = 0, o;
20825        if (arguments.length >= 2) o = arguments[1]; else do {
20826            if (s in r) {
20827                o = r[s++];
20828                break
20829            }
20830            if (++s >= i) throw new TypeError("reduce of empty array with no initial value")
20831        } while (!0);
20832        for (; s < i; s++) s in r && (o = t.call(void 0, o, r[s], s, n));
20833        return o
20834    }), Array.prototype.reduceRight || (Array.prototype.reduceRight = function (t) {
20835        var n = F(this), r = g && a(this) == "[object String]" ? this.split("") : n, i = r.length >>> 0;
20836        if (a(t) != "[object Function]") throw new TypeError(t + " is not a function");
20837        if (!i && arguments.length == 1) throw new TypeError("reduceRight of empty array with no initial value");
20838        var s, o = i - 1;
20839        if (arguments.length >= 2) s = arguments[1]; else do {
20840            if (o in r) {
20841                s = r[o--];
20842                break
20843            }
20844            if (--o < 0) throw new TypeError("reduceRight of empty array with no initial value")
20845        } while (!0);
20846        do o in this && (s = t.call(void 0, s, r[o], o, n)); while (o--);
20847        return s
20848    });
20849    if (!Array.prototype.indexOf || [0, 1].indexOf(1, 2) != -1) Array.prototype.indexOf = function (t) {
20850        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
20851        if (!r) return -1;
20852        var i = 0;
20853        arguments.length > 1 && (i = H(arguments[1])), i = i >= 0 ? i : Math.max(0, r + i);
20854        for (; i < r; i++) if (i in n && n[i] === t) return i;
20855        return -1
20856    };
20857    if (!Array.prototype.lastIndexOf || [0, 1].lastIndexOf(0, -3) != -1) Array.prototype.lastIndexOf = function (t) {
20858        var n = g && a(this) == "[object String]" ? this.split("") : F(this), r = n.length >>> 0;
20859        if (!r) return -1;
20860        var i = r - 1;
20861        arguments.length > 1 && (i = Math.min(i, H(arguments[1]))), i = i >= 0 ? i : r - Math.abs(i);
20862        for (; i >= 0; i--) if (i in n && t === n[i]) return i;
20863        return -1
20864    };
20865    Object.getPrototypeOf || (Object.getPrototypeOf = function (t) {
20866        return t.__proto__ || (t.constructor ? t.constructor.prototype : o)
20867    });
20868    if (!Object.getOwnPropertyDescriptor) {
20869        var y = "Object.getOwnPropertyDescriptor called on a non-object: ";
20870        Object.getOwnPropertyDescriptor = function (t, n) {
20871            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(y + t);
20872            if (!f(t, n)) return;
20873            var r, i, s;
20874            r = {enumerable: !0, configurable: !0};
20875            if (d) {
20876                var u = t.__proto__;
20877                t.__proto__ = o;
20878                var i = h(t, n), s = p(t, n);
20879                t.__proto__ = u;
20880                if (i || s) return i && (r.get = i), s && (r.set = s), r
20881            }
20882            return r.value = t[n], r
20883        }
20884    }
20885    Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function (t) {
20886        return Object.keys(t)
20887    });
20888    if (!Object.create) {
20889        var b;
20890        Object.prototype.__proto__ === null ? b = function () {
20891            return {__proto__: null}
20892        } : b = function () {
20893            var e = {};
20894            for (var t in e) e[t] = null;
20895            return e.constructor = e.hasOwnProperty = e.propertyIsEnumerable = e.isPrototypeOf = e.toLocaleString = e.toString = e.valueOf = e.__proto__ = null, e
20896        }, Object.create = function (t, n) {
20897            var r;
20898            if (t === null) r = b(); else {
20899                if (typeof t != "object") throw new TypeError("typeof prototype[" + typeof t + "] != 'object'");
20900                var i = function () {
20901                };
20902                i.prototype = t, r = new i, r.__proto__ = t
20903            }
20904            return n !== void 0 && Object.defineProperties(r, n), r
20905        }
20906    }
20907    if (Object.defineProperty) {
20908        var E = w({}), S = typeof document == "undefined" || w(document.createElement("div"));
20909        if (!E || !S) var x = Object.defineProperty
20910    }
20911    if (!Object.defineProperty || x) {
20912        var T = "Property description must be an object: ", N = "Object.defineProperty called on non-object: ",
20913            C = "getters & setters can not be defined on this javascript engine";
20914        Object.defineProperty = function (t, n, r) {
20915            if (typeof t != "object" && typeof t != "function" || t === null) throw new TypeError(N + t);
20916            if (typeof r != "object" && typeof r != "function" || r === null) throw new TypeError(T + r);
20917            if (x) try {
20918                return x.call(Object, t, n, r)
20919            } catch (i) {
20920            }
20921            if (f(r, "value")) if (d && (h(t, n) || p(t, n))) {
20922                var s = t.__proto__;
20923                t.__proto__ = o, delete t[n], t[n] = r.value, t.__proto__ = s
20924            } else t[n] = r.value; else {
20925                if (!d) throw new TypeError(C);
20926                f(r, "get") && l(t, n, r.get), f(r, "set") && c(t, n, r.set)
20927            }
20928            return t
20929        }
20930    }
20931    Object.defineProperties || (Object.defineProperties = function (t, n) {
20932        for (var r in n) f(n, r) && Object.defineProperty(t, r, n[r]);
20933        return t
20934    }), Object.seal || (Object.seal = function (t) {
20935        return t
20936    }), Object.freeze || (Object.freeze = function (t) {
20937        return t
20938    });
20939    try {
20940        Object.freeze(function () {
20941        })
20942    } catch (k) {
20943        Object.freeze = function (t) {
20944            return function (n) {
20945                return typeof n == "function" ? n : t(n)
20946            }
20947        }(Object.freeze)
20948    }
20949    Object.preventExtensions || (Object.preventExtensions = function (t) {
20950        return t
20951    }), Object.isSealed || (Object.isSealed = function (t) {
20952        return !1
20953    }), Object.isFrozen || (Object.isFrozen = function (t) {
20954        return !1
20955    }), Object.isExtensible || (Object.isExtensible = function (t) {
20956        if (Object(t) === t) throw new TypeError;
20957        var n = "";
20958        while (f(t, n)) n += "?";
20959        t[n] = !0;
20960        var r = f(t, n);
20961        return delete t[n], r
20962    });
20963    if (!Object.keys) {
20964        var L = !0,
20965            A = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
20966            O = A.length;
20967        for (var M in {toString: null}) L = !1;
20968        Object.keys = function I(e) {
20969            if (typeof e != "object" && typeof e != "function" || e === null) throw new TypeError("Object.keys called on a non-object");
20970            var I = [];
20971            for (var t in e) f(e, t) && I.push(t);
20972            if (L) for (var n = 0, r = O; n < r; n++) {
20973                var i = A[n];
20974                f(e, i) && I.push(i)
20975            }
20976            return I
20977        }
20978    }
20979    Date.now || (Date.now = function () {
20980        return (new Date).getTime()
20981    });
20982    var _ = "	\n\x0b\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";
20983    if (!String.prototype.trim || _.trim()) {
20984        _ = "[" + _ + "]";
20985        var D = new RegExp("^" + _ + _ + "*"), P = new RegExp(_ + _ + "*$");
20986        String.prototype.trim = function () {
20987            return String(this).replace(D, "").replace(P, "")
20988        }
20989    }
20990    var F = function (e) {
20991        if (e == null) throw new TypeError("can't convert " + e + " to object");
20992        return Object(e)
20993    }
20994})
20995
20996define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alph
20996abetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"supp
20996ort.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1}
20996,"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e==="ruleset"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\w\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+": $0;",meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(i.prototype),t.CssCompletions=i}),define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}
20996,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(c.prototype),t.Mode=c});                (function() {
20997                    window.require(["ace/mode/css"], function(m) {
20998                        if (typeof module == "object" && typeof exports == "object" && module) {
20999                            module.exports = m;
21000                        }
21001                    });
21002                })();
21003            
21004
21005define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?"+e+"",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]}
21005,t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/}
21005,{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/}
21005,{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}
21005,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(l.prototype),t.Mode=l}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-ju
21005stify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"supp
21005ort.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1}
21005,"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e==="ruleset"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\w\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+": $0;",meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(i.prototype),t.CssCompletions=i}),define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/wor
21005ker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(c.prototype),t.Mode=c}),define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:t},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:.]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules((new o({jsx:!1})).getRules(),"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("str
21005ing_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,"attribute-value"))return;a.stepBackward()}}if(/^\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:"></"+d+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"attribute-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","on
21005progress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,"for":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{"for":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,"default":1},section:{},summary:{},u:{},ul:{},"var":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1}
21005,controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open"))return this.getTagCompletions(e,t,n,r);if(f(i,"tag-whitespace")||f(i,"attribute-name"))return this.getAttributeCompletions(e,t,n,r);if(f(i,"attribute-value"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:1e6}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:1e6}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]=="object"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:"attribute value",score:1e6}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"];return i.map(function(e){return{caption:e,snippet:e,meta:"html entity",score:1e6}})}}).call(h.prototype),t.HtmlCompletions=h}),define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../wor
21005ker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v});                (function() {
21006                    window.require(["ace/mode/html"], function(m) {
21007                        if (typeof module == "object" && typeof exports == "object" && module) {
21008                            module.exports = m;
21009                        }
21010                    });
21011                })();
21012            
21013
21014define("ace/mode/hxl_highlight_rules", ["require", "exports", "module", "ace/lib/oop", "ace/mode/text_highlight_rules"], function (e, t, n) {
21015    "use strict";
21016    var r = e("../lib/oop"), i = e("./text_highlight_rules").TextHighlightRules, s = function () {
21017        var e = "\\b(?:WARNING|FIXME|HACK|BUG|COMPENSATION|BARLA)\\b", t = "TODO", n = /https?:\/\/[^\s]+/,
21018            r = "@[a-zA-Z0-9]+", i = "[A-Z]+-[0-9]+", s = this.createKeywordMapper({
21019                keyword: "this|super|root|forkey|forval|parent",
21020                "keyword.control": "if|else|do|while|for|break|continue|switch|case|default|return|instanceof|try|throw2|catch2|finally",
21021                "variable.language": "loc|in|out|cfg|data|tmp|init|src|dest",
21022                "variable.language.invalid.illegal": "catch|throw|env",
21023                "support.function": "log|log3|log5|log7|log9|logAll|warning|warning3|warning5|warning7|warning9|error|error3|error5|error7|error9|errorNoStack|info|info3|info5|info7|info9|java|compile|exec|stack|trace|coalesce",
21024                "storage.type.support.function": "bool|int|long|decimal|float|double|string|date|time|dateTime|path",
21025                "constant.language": "null|NULL|empty|EMPTY",
21026                "constant.language.boolean": "true|false"
21027            }, "unknown");
21028        this.$rules = {
21029            start: [{token: "comment.line", regex: "\\/\\/", next: "singlelineComment"}, {
21030                token: "comment.block",
21031                regex: "\\/\\*",
21032                next: "multilineComment"
21033            }, {token: "string.triple", regex: "'''", next: "tripleQuotedString"}, {
21034                token: "string.single",
21035                regex: "[']",
21036                next: "singleQuotedString"
21037            }, {token: "string.double", regex: '"', next: "doubleQuotedString"}, {
21038                token: "constant.numeric",
21039                regex: "[-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]\\d+)?)?(L|l|F|f|D|d|bd|BD)?\\b"
21040            }, {
21041                token: ["identifier.tree.separator", "identifier.tree"],
21042                regex: "(/)([\\w]+)"
21043            }, {token: "support.function.module", regex: "\\$\\$?", push: "operationCall"}, {
21044                token: "keyword.operator",
21045                regex: "=\\[\\]|!|%|/|\\*|\\-|\\+|\\.|&|~|\\^|<<|>>|==|=|:=|!=|<=|>=|>|<|&&|\\|\\||\\?|\\:"
21046            }, {token: "lparen", regex: "[[({]"}, {token: "rparen", regex: "[\\])}]"}, {
21047                token: "support.function.agent",
21048                regex: "(\\w+)(\\.\\w+)+"
21049            }, {token: s, regex: "[a-zA-Z_][a-zA-Z0-9_]*\\b"}],
21050            multilineComment: [{token: "comment", regex: ".*?\\*\\/", next: "start"}, {
21051                token: "comment.documentation",
21052                regex: e
21053            }, {token: "comment.documentation.alternative", regex: t}, {
21054                token: "comment.documentation.mention",
21055                regex: r
21056            }, {token: "comment.markup.underline.link", regex: n}, {
21057                token: "comment.documentation.issue",
21058                regex: i
21059            }, {defaultToken: "comment"}],
21060            singlelineComment: [{token: "", regex: "^", next: "start"}, {
21061                token: "comment.documentation",
21062                regex: e
21063            }, {token: "comment.documentation.alternative", regex: t}, {
21064                token: "comment.documentation.mention",
21065                regex: r
21066            }, {token: "comment.markup.underline.link", regex: n}, {
21067                token: "comment.documentation.issue",
21068                regex: i
21069            }, {defaultToken: "comment.line"}],
21070            singleQuotedString: [{token: "variable.parameter", regex: "%%.*?%%"}, {
21071                token: "string.escaped",
21072                regex: "[\\\\]."
21073            }, {token: "string.single", regex: "[']", next: "start"}, {defaultToken: "string.single"}],
21074            doubleQuotedString: [{token: "variable.parameter", regex: "%%.*?%%"}, {
21075                token: "string.escaped",
21076                regex: "[\\\\]."
21077            }, {token: "string.double", regex: '["]', next: "start"}, {defaultToken: "string.double"}],
21078            tripleQuotedString: [{token: "string.triple", regex: "'''", next: "start"}, {
21079                token: "variable.parameter",
21080                regex: "%%.*?%%"
21081            }, {defaultToken: "string.triple"}],
21082            operationCall: [{
21083                token: function (e, t) {
21084                    return ["keyword.operator", "support.function.operation"]
21085                }, regex: "(\\.)([\\w]+)", next: "start"
21086            }, {token: "keyword.operator", regex: "\\.", next: "start"}, {
21087                token: s,
21088                regex: "[a-zA-Z_][a-zA-Z0-9_]*\\b"
21089            }, {include: "start"}]
21090        }, this.normalizeRules()
21091    };
21092    r.inherits(s, i), t.HxlHighlightRules = s
21093}), define("ace/mode/behaviour/hxl", ["require", "exports", "module", "ace/lib/oop", "ace/mode/behaviour", "ace/mode/behaviour/cstyle", "ace/token_iterator"], function (e, t, n) {
21094    "use strict";
21095    var r = e("../../lib/oop"), i = e("../behaviour").Behaviour, s = e("./cstyle").CstyleBehaviour,
21096        o = e("../../token_iterator").TokenIterator, u = function () {
21097            this.inherit(s), this.add("slash", "insertion", function (e, t, n, r, i) {
21098                if (i === "/") {
21099                    var s = n.getCursorPosition(), o = r.doc.getLine(s.row), u = o.substring(s.column, s.column - 1) + i,
21100                        a = n.session.getTokenAt(s.row, s.column);
21101                    return u === "//" || a && a.type.indexOf("comment") !== -1 || setTimeout(function () {
21102                        n.execCommand("startAutocomplete")
21103                    }, 1), {text: "/", selection: [1, 1]}
21104                }
21105            }), this.add("tripleApostrophe", "insertion", function (e, t, n, r, i) {
21106                if (i === "'") {
21107                    var s = n.getCursorPosition(), o = r.doc.getLine(s.row), u = o.substring(s.column, s.column - 2) + i;
21108                    if (u === "'''") return {text: "''''", selection: [1, 1]}
21109                }
21110            })
21111        };
21112    r.inherits(u, s), t.HxlBehaviour = u
21113}), define("ace/mode/folding/cstyle", ["require", "exports", "module", "ace/lib/oop", "ace/range", "ace/mode/folding/fold_mode"], function (e, t, n) {
21114    "use strict";
21115    var r = e("../../lib/oop"), i = e("../../range").Range, s = e("./fold_mode").FoldMode,
21116        o = t.FoldMode = function (e) {
21117            e && (this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + e.start)), this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + e.end)))
21118        };
21119    r.inherits(o, s), function () {
21120        this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/, this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/, this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/, this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/, this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/, this._getFoldWidgetBase = this.getFoldWidget, this.getFoldWidget = function (e, t, n) {
21121            var r = e.getLine(n);
21122            if (this.singleLineBlockCommentRe.test(r) && !this.startRegionRe.test(r) && !this.tripleStarBlockCommentRe.test(r)) return "";
21123            var i = this._getFoldWidgetBase(e, t, n);
21124            return !i && this.startRegionRe.test(r) ? "start" : i
21125        }, this.getFoldWidgetRange = function (e, t, n, r) {
21126            var i = e.getLine(n);
21127            if (this.startRegionRe.test(i)) return this.getCommentRegionBlock(e, i, n);
21128            var s = i.match(this.foldingStartMarker);
21129            if (s) {
21130                var o = s.index;
21131                if (s[1]) return this.openingBracketBlock(e, s[1], n, o);
21132                var u = e.getCommentFoldRange(n, o + s[0].length, 1);
21133                return u && !u.isMultiLine() && (r ? u = this.get
21133SectionRange(e, n) : t != "all" && (u = null)), u
21134            }
21135            if (t === "markbegin") return;
21136            var s = i.match(this.foldingStopMarker);
21137            if (s) {
21138                var o = s.index + s[0].length;
21139                return s[1] ? this.closingBracketBlock(e, s[1], n, o) : e.getCommentFoldRange(n, o, -1)
21140            }
21141        }, this.getSectionRange = function (e, t) {
21142            var n = e.getLine(t), r = n.search(/\S/), s = t, o = n.length;
21143            t += 1;
21144            var u = t, a = e.getLength();
21145            while (++t < a) {
21146                n = e.getLine(t);
21147                var f = n.search(/\S/);
21148                if (f === -1) continue;
21149                if (r > f) break;
21150                var l = this.getFoldWidgetRange(e, "all", t);
21151                if (l) {
21152                    if (l.start.row <= s) break;
21153                    if (l.isMultiLine()) t = l.end.row; else if (r == f) break
21154                }
21155                u = t
21156            }
21157            return new i(s, o, u, e.getLine(u).length)
21158        }, this.getCommentRegionBlock = function (e, t, n) {
21159            var r = t.search(/\s*$/), s = e.getLength(), o = n, u = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/, a = 1;
21160            while (++n < s) {
21161                t = e.getLine(n);
21162                var f = u.exec(t);
21163                if (!f) continue;
21164                f[1] ? a-- : a++;
21165                if (!a) break
21166            }
21167            var l = n;
21168            if (l > o) return new i(o, r, l, t.length)
21169        }
21170    }.call(o.prototype)
21171}), define("ace/mode/matching_brace_outdent", ["require", "exports", "module", "ace/range"], function (e, t, n) {
21172    "use strict";
21173    var r = e("../range").Range, i = function () {
21174    };
21175    (function () {
21176        this.checkOutdent = function (e, t) {
21177            return /^\s+$/.test(e) ? /^\s*\}/.test(t) : !1
21178        }, this.autoOutdent = function (e, t) {
21179            var n = e.getLine(t), i = n.match(/^(\s*\})/);
21180            if (!i) return 0;
21181            var s = i[1].length, o = e.findMatchingBracket({row: t, column: s});
21182            if (!o || o.row == t) return 0;
21183            var u = this.$getIndent(e.getLine(o.row));
21184            e.replace(new r(t, 0, t, s - 1), u)
21185        }, this.$getIndent = function (e) {
21186            return e.match(/^\s*/)[0]
21187        }
21188    }).call(i.prototype), t.MatchingBraceOutdent = i
21189}
21189), define("ace/mode/hxl_completions", ["require", "exports", "module", "ace/token_iterator"], function (e, t, n) {
21190    "use strict";
21191    var r = e("../token_iterator").TokenIterator, i = function () {
21192    };
21193    (function () {
21194        function e(e, t) {
21195            return e && e.hasOwnProperty(t) ? e[t] : undefined
21196        }
21197
21198        function t(e) {
21199            return e.value === "/" && e.type !== "comment.line"
21200        }
21201
21202        function n(e) {
21203            return e.type === "identifier.tree" || e.type === "variable.language"
21204        }
21205
21206        function i(e) {
21207            return e.type === "variable.language"
21208        }
21209
21210        function s() {
21211            var e = {
21212                data: {pattern: {name: 0, attr: 0, items: {subitem: {name: 0, value: 0}}}},
21213                cfg: {name: 0},
21214                "in": {expand: 0, type: {tailor: 0, file: 0}},
21215                out: {output: 0}
21216            };
21217            if (window.hyperix && window.hyperix.__autocomplete__) var t = window.hyperix.__autocomplete__; else var t = e;
21218            return t
21219        }
21220
21221        function o(e, s, o) {
21222            var a = s.getTokenAt(o.row, o.column), f = new r(s, 0, 0), l = f.getCurrentToken(), c = !1, h = [], p = [];
21223            while (l) c ? n(l) ? a !== l && h.push(l.value) : t(l) || (c = !1, p.push(h), h = []) : i(l) && (c = !0, h.push(l.value)), l = f.stepForward();
21224            return u(p)
21225        }
21226
21227        function u(e) {
21228            var t = {};
21229            return e.forEach(function (e) {
21230                var n = t;
21231                for (var r = 0; r < e.length; r++) n.hasOwnProperty(e[r]) ? n = n[e[r]] : (n[e[r]] = {}, n = n[e[r]])
21232            }), t
21233        }
21234
21235        this.identifierRegexps = [/[a-zA-Z_0-9\-\u00A2-\uFFFF]/], this.getCompletions = function (e, t, n, r, i) {
21236            var s = this.getKeywordCompletions(e, t, n, r), o = this.getPathsCompletions(e, t, n, r),
21237                u = this.getOperationCompletions(e, t, n, r), a = this.getAgentsCompletions(e, t, n, r),
21238                f = [].concat(s, o, u, a);
21239            i(null, f)
21240        }, this.getPathsCompletions = function (u, a, f, l) {
21241            var c = new r(a, f.row, f.column), h = c.getCurrentToken(), p = [], d = !0;
21242            h && (n(h) ? h = c.stepBackward() : t(h) && (d = !0));
21243            while (h && (t(h) || n(h))) n(h) && p.unshift(h.value), i(h) && (d = !1), h = c.stepBackward();
21244            var v = s(), m = o(u, a, f), g = p.reduce(e, v), y = p.reduce(e, m);
21245            if (g && !d) {
21246                var b = Object.keys(g).map(function (e) {
21247                    return {caption: e, snippet: e, meta: "id", score: 800}
21248                });
21249                return b
21250            }
21251            if (y && !d) {
21252                var b = Object.keys(y).map(function (e) {
21253                    return {caption: e, snippet: e, meta: "id", score: 900}
21254                });
21255                return b
21256            }
21257            return []
21258        }, this.getKeywordCompletions = function (e, t, n, r) {
21259            var i = t.$mode.$keywordList.map(function (e) {
21260                return {caption: e, snippet: e, score: 500, meta: "keyword"}
21261            });
21262            return i
21263        }, this.getOperationList = function () {
21264            var e = {
21265                getDisplayContent: {
21266                    "in": {
21267                        urlPath: 0,
21268                        urlContext: 0,
21269                        paramTree: 0,
21270                        sessionTree: 0,
21271                        attrKey: 0,
21272                        attrData: 0,
21273                        rowData: 0,
21274                        rowErrors: 0
21275                    }, out: {content: 0, attrData: 0, rowData: 0, rowErrors: 0}
21276                },
21277                getEditContent: {"in": {}, out: {}},
21278                getHiddenContent: {"in": {}, out: {}},
21279                _getContent: {"in": {}, out: {}}
21280            };
21281            if (window.hyperix && window.hyperix.__autocomplete__ && window.hyperix.__autocomplete__.this) var t = window.hyperix.__autocomplete__.this; else var t = e;
21282            return t
21283        }, this.getOperationCompletions = function (e, t, n, i) {
21284            var s = this.getOperationList(), o = new r(t, n.row, n.column), u = o.getCurrentToken();
21285            u && u.type === "support.function.operation" && (u = o.stepBackward());
21286            if (u && u.type === "keyword.operator" && u.value === ".") {
21287                u = o.stepBackward();
21288                if (u && u.type === "keyword" && u.value === "this") {
21289                    u = o.stepBackward();
21290                    if (u && u.type === "support.function.module" && u.value === "$") {
21291                        var a = Object.keys(s).map(function (e) {
21292                            var t = s[e].hasOwnProperty("in") ? Object.keys(s[e].in).map(function (e) {
21293                                return "&nbsp;/" + e + "<br>"
21294                            }).join("") : "";
21295                            t !== "" && (t = "<hr><i>Input Constraints:</i><br>" + t);
21296                            var n = s[e].hasOwnProperty("out") ? Object.keys(s[e].out).map(function (e) {
21297                                return "&nbsp;/" + e + "<br>"
21298                            }).join("") : "";
21299                            n !== "" && (n = "<hr><i>Output Constraints:</i><br>" + n);
21300                            if (t !== "" && n !== "") var r = "Operation <b>" + e + "</b>"; else var r = "";
21301                            if (r !== "") var i = r + t + n; else i = null;
21302                            return {caption: e, snippet: e, meta: "operation", docHTML: i, score: 1e3}
21303                        });
21304                        return a
21305                    }
21306                }
21307            }
21308        }, this.getAgentsCompletions = function (e, t, n, r) {
21309            return []
21310        }
21311    }).call(i.prototype), t.HxlCompletions = i
21312}), define("ace/mode/hxl", ["require", "exports", "module", "ace/lib/oop", "ace/mode/text", "ace/mode/hxl_highlight_rules", "ace/worker/wor
21312ker_client", "ace/mode/behaviour/hxl", "ace/mode/folding/cstyle", "ace/mode/matching_brace_outdent", "ace/mode/hxl_completions"], function (e, t, n) {
21313    var r = e("../lib/oop"), i = e("./text").Mode, s = e("./hxl_highlight_rules").HxlHighlightRules,
21314        o = e("../worker/worker_client").WorkerClient, u = e("./behaviour/hxl").HxlBehaviour,
21315        a = e("./folding/cstyle").FoldMode, f = e("./matching_brace_outdent").MatchingBraceOutdent,
21316        l = e("./hxl_completions").HxlCompletions, c = function () {
21317            this.HighlightRules = s, this.foldingRules = new a, this.$behaviour = new u, this.$outdent = new f, this.completer = new l;
21318            var e = new s;
21319            this.$keywordList = e.$keywordList
21320        };
21321    r.inherits(c, i), function () {
21322        this.lineCommentStart = "//", this.blockComment = {start: "/*", end: "*/"}, this.createWorker = function (e) {
21323            var t = new o(["ace"], "ace/mode/hxl_worker", "HxlWorker");
21324            return t.attachToDocument(e.getDocument()), t.on("lint", function (t) {
21325                e.setAnnotations(t.data)
21326            }), t.on("terminate", function () {
21327                e.clearAnnotations()
21328            }), t.call("changeOptions", [{
21329                host: window.location.origin,
21330                // TODO
21331                // project: hyperix.constant.HYPERIX_IDE_URL,
21332                project: "/hyperix/ide/app",
21333                service: "codeValidationPage/_validate",
21334                parameter: "sourceCode"
21335            }]), t
21336        }, this.$id = "ace/mode/hxl"
21337    }.call(c.prototype), t.Mode = c
21338})
21339
21340define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?"+e+"",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}
21340function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/}
21340,{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/}
21340,{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}
21340,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(l.prototype),t.Mode=l}),define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=function(){var e="abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while|var",t="null|Infinity|NaN|undefined",n="AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object",r=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t,"supp
21340ort.function":n},"identifier");this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/},{token:"constant.numeric",regex:/[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{regex:"(open(?:\\s+))?module(?=\\s*\\w)",token:"keyword",next:[{regex:"{",token:"paren.lparen",next:[{regex:"}",token:"paren.rparen",next:"start"},{regex:"\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b",token:"keyword"}]},{token:"text",regex:"\\s+"},{token:"identifier",regex:"\\w+"},{token:"punctuation.operator",regex:"."},{token:"text",regex:"\\s+"},{regex:"",next:"start"}]},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.embedRules(i,"doc-",[i.getEndRule("start")]),this.normalizeRules()};r.inherits(o,s),t.JavaHighlightRules=o}),define("ace/mode/folding/java",["require","exports","module","ace/lib/oop","ace/mode/folding/cstyle","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./cstyle").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.importRegex=/^import /,this.getCStyleFoldWidget=this.getFoldWidget,this.getFoldWidget=function(e,t,n){if(t==="markbegin"){var r=e.getLine(n);if(this.importRegex.test(r))if(n==0||!this.importRegex.test(e.getLine(n-1)))return"start"}return this.getCStyleFoldWidget(e,t,n)},this.getCstyleFoldWidgetRange=this.getFoldWidgetRange,this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n),o=i.match(this.importRegex);if(!o||t!=="markbegin")return this.getCstyleFoldWidgetRange(e,t,n,r);var u=o[0].length,a=e.getLength(),f=n,l=n;while(++n<a){var i=e.getLine(n);if(i.match(/^\s*$/))continue;if(!i.match(this.importRegex))break;l=n}if(l>f){var c=e.getLine(l).length;return new s(f,u,l,c)}}}.call(o.prototype)}),define("ace/mode/java",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/java_highlight_rules","ace/mode/folding/java"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript").Mode,s=e("./java_highlight_rules").JavaHighlightRules,o=e("./folding/java").FoldMode,u=function(){i.call(this),this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.createWorker=function(e){return null},this.$id="ace/mode/java"}.call(u.prototype),t.Mode=u});                (function() {
21341                    window.require(["ace/mode/java"], function(m) {
21342                        if (typeof module == "object" && typeof exports == "object" && module) {
21343                            module.exports = m;
21344                        }
21345                    });
21346                })();
21347            
21348
21349define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?"+e+"",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]}
21349,t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/}
21349,{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/}
21349,{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}
21349,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(l.prototype),t.Mode=l});                (function() {
21350                    window.require(["ace/mode/javascript"], function(m) {
21351                        if (typeof module == "object" && typeof exports == "object" && module) {
21352                            module.exports = m;
21353                        }
21354                    });
21355                })();
21356            
21357
21358define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}
21358,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(l.prototype),t.Mode=l});                (function() {
21359                    window.require(["ace/mode/json"], function(m) {
21360                        if (typeof module == "object" && typeof exports == "object" && module) {
21361                            module.exports = m;
21362                        }
21363                    });
21364                })();
21365            
21366
21367define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-ju
21367stify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"supp
21367ort.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),define("ace/mode/less_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=e("./css_highlight_rules"),o=function(){var e="@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|or|and|when|not",t=e.split("|"),n=s.supportType.split("|"),r=this.createKeywordMapper({"support.constant":s.supportConstant,keyword:e,"support.constant.color":s.supportConstantColor,"support.constant.fonts":s.supportConstantFonts},"identifier",!0),i="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+i+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:"constant.numeric",regex:i},{token:["support.function","paren.lparen","string","paren.rparen"],regex:"(url)(\\()(.*)(\\))"},{token:["support.function","paren.lparen"],regex:"(:extend|[a-z0-9_\\-]+)(\\()"},{token:function(e){return t.indexOf(e.toLowerCase())>-1?"keyword":"variable"},regex:"[@\\$][a-z0-9_\\-@\\$]*\\b"},{token:"variable",regex:"[@\\$]\\{[a-z0-9_\\-@\\$]*\\}"},{token:function(e,t){return n.indexOf(e.toLowerCase())>
21367-1?["support.type.property","text"]:["support.type.unknownProperty","text"]},regex:"([a-z0-9-_]+)(\\s*:)"},{token:"keyword",regex:"&"},{token:r,regex:"\\-?[@a-z_][@a-z0-9_\\-]*"},{token:"variable.language",regex:"#[a-z0-9-_]+"},{token:"variable.language",regex:"\\.[a-z0-9-_]+"},{token:"variable.language",regex:":[a-z_][a-z0-9-_]*"},{token:"constant",regex:"[a-z0-9-_]+"},{token:"keyword.operator",regex:"<|>|<=|>=|=|!=|-|%|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]},this.normalizeRules()};r.inherits(o,i),t.LessHighlightRules=o}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1}
21367,"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e==="ruleset"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\w\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+": $0;",meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(i.prototype),t.CssCompletions=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}
21367,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/less",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/less_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/css","ace/mode/css_completions","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./less_highlight_rules").LessHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/css").CssBehaviour,a=e("./css_completions").CssCompletions,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.$completer=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions("ruleset",t,n,r)},this.$id="ace/mode/less"}.call(l.prototype),t.Mode=l});                (function() {
21368                    window.require(["ace/mode/less"], function(m) {
21369                        if (typeof module == "object" && typeof exports == "object" && module) {
21370                            module.exports = m;
21371                        }
21372                    });
21373                })();
21374            
21375
21376define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-ju
21376stify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"supp
21376ort.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./css_highlight_rules"),u=function(){var e=i.arrayToMap(o.supportType.split("|")),t=i.arrayToMap("hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unquote".split("|")),n=i.arrayToMap(o.supportConstant.split("|")),r=i.arrayToMap(o.supportConstantColor.split("|")),s=i.arrayToMap("@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare".split("|")),u=i.arrayToMap("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp".split("|")),a="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
21376this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:a+"(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:"constant.numeric",regex:a},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?"support.type":s.hasOwnProperty(i)?"keyword":n.hasOwnProperty(i)?"constant.language":t.hasOwnProperty(i)?"support.function":r.hasOwnProperty(i.toLowerCase())?"support.constant.color":u.hasOwnProperty(i.toLowerCase())?"variable.language":"text"},regex:"\\-?[@a-z_][@a-z0-9_\\-]*"},{token:"variable",regex:"[a-z_\\-$][a-z0-9_\\-$]*\\b"},{token:"variable.language",regex:"#[a-z0-9-_]+"},{token:"variable.language",regex:"\\.[a-z0-9-_]+"},{token:"variable.language",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{token:"keyword.operator",regex:"<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(u,s),t.ScssHighlightRules=u}),define("ace/mode/sass_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/scss_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./scss_highlight_rules").ScssHighlightRules,o=function(){s.call(this);var e=this.$rules.start;e[1].token=="comment"&&(e.splice(1,1,{onMatch:function(e,t,n){return n.unshift(this.next,-1,e.length-2,t),"comment"},regex:/^\s*\/\*/,next:"comment"},{token:"error.invalid",regex:"/\\*|[{;}]"},{token:"support.type",regex:/^\s*:[\w\-]+\s/}),this.$rules.comment=[{regex:/^\s*/,onMatch:function(e,t,n){return n[1]===-1&&(n[1]=Math.max(n[2],e.length-1)),e.length<=n[1]?(n.shift(),n.shift(),n.shift(),this.next=n.shift(),"text"):(this.next="","comment")},next:"start"},{defaultToken:"comment"}])};r.inherits(o,s),t.SassHighlightRules=o}),define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++n<f){o=e.getLine(n);var h=o.search(i);if(h==-1)continue;if(o[h]!="#")break;c=n}if(c>l){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u<a?"start":"","";if(u==-1){if(i==a&&r[i]=="#"&&s[i]=="#")return e.foldWidgets[n-1]="",e.foldWidgets[n+1]="","start"}else if(u==i&&r[i]=="#"&&o[i]=="#"&&e.getLine(n-2).search(/\S/)==-1)return e.foldWidgets[n-1]="start",e.foldWidgets[n+1]="","";return u!=-1&&u<i?e.foldWidgets[n-1]="start":e.foldWidgets[n-1]="",i<a?"start":""}}.call(o.prototype)}),define("ace/mode/sass",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sass_highlight_rules","ace/mode/folding/coffee"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sass_highlight_rules").SassHighlightRules,o=e("./folding/coffee").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o,this.$behaviour=this.$defaultBehaviour};r.inherits(u,i),function(){this.lineCommentStart="//",this.$id="ace/mode/sass"}.call(u.prototype),t.Mode=u});                (function() {
21377                    window.require(["ace/mode/sass"], function(m) {
21378                        if (typeof module == "object" && typeof exports == "object" && module) {
21379                            module.exports = m;
21380                        }
21381                    });
21382                })();
21383            
21384
21385define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-ju
21385stify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"supp
21385ort.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=e("./css_highlight_rules"),u=function(){var e=i.arrayToMap(o.supportType.split("|")),t=i.arrayToMap("hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|scale_color|transparentize|type_of|unit|unitless|unquote".split("|")),n=i.arrayToMap(o.supportConstant.split("|")),r=i.arrayToMap(o.supportConstantColor.split("|")),s=i.arrayToMap("@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare".split("|")),u=i.arrayToMap("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp".split("|")),a="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
21385this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:a+"(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:"constant.numeric",regex:a},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:function(i){return e.hasOwnProperty(i.toLowerCase())?"support.type":s.hasOwnProperty(i)?"keyword":n.hasOwnProperty(i)?"constant.language":t.hasOwnProperty(i)?"support.function":r.hasOwnProperty(i.toLowerCase())?"support.constant.color":u.hasOwnProperty(i.toLowerCase())?"variable.language":"text"},regex:"\\-?[@a-z_][@a-z0-9_\\-]*"},{token:"variable",regex:"[a-z_\\-$][a-z0-9_\\-$]*\\b"},{token:"variable.language",regex:"#[a-z0-9-_]+"},{token:"variable.language",regex:"\\.[a-z0-9-_]+"},{token:"variable.language",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{token:"keyword.operator",regex:"<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}]}};r.inherits(u,s),t.ScssHighlightRules=u}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}
21385,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/scss",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./scss_highlight_rules").ScssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/css").CssBehaviour,a=e("./folding/cstyle").FoldMode,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(f,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/scss"}.call(f.prototype),t.Mode=f});                (function() {
21386                    window.require(["ace/mode/scss"], function(m) {
21387                        if (typeof module == "object" && typeof exports == "object" && module) {
21388                            module.exports = m;
21389                        }
21390                    });
21391                })();
21392            
21393
21394define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:t},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}
21394],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,"attribute-value"))return;a.stepBackward()}}if(/^\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:"></"+d+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/wor
21394ker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:"<!--",end:"-->"},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/xml_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/xml"}.call(l.prototype),t.Mode=l}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?"+e+"",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"}
21394,{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|
21394Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"}
21394,{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}}
21394,this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(l.prototype),t.Mode=l}),define("ace/mode/svg_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./javascript_highlight_rules").JavaScriptHighlightRules,s=e("./xml_highlight_rules").XmlHighlightRules,o=function(){s.call(this),this.embedTagRules(i,"js-","script"),this.normalizeRules()};r.inherits(o,s),t.SvgHighlightRules=o}),define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),define("ace/mode/svg",["require","exports","module","ace/lib/oop","ace/mode/xml","ace/mode/javascript","ace/mode/svg_highlight_rules","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./xml").Mode,s=e("./javascript").Mode,o=e("./svg_highlight_rules").SvgHighlightRules,u=e("./folding/mixed").FoldMode,a=e("./folding/xml").FoldMode,f=e("./folding/cstyle").FoldMode,l=function(){i.call(this),this.HighlightRules=o,this.createModeDelegates({"js-":s}),this.foldingRules=new u(new a,{"js-":new f})};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.$id="ace/mode/svg"}.call(l.prototype),t.Mode=l});                (function() {
21395                    window.require(["ace/mode/svg"], function(m) {
21396                        if (typeof module == "object" && typeof exports == "object" && module) {
21397                            module.exports = m;
21398                        }
21399                    });
21400                })();
21401            
21402
21403define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|then|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|foreign|not|references|default|null|inner|cross|natural|database|drop|grant",t="true|false",n="avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl",r="int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|money|real|number|integer",i=this.createKeywordMapper({"supp
21403ort.function":n,keyword:e,"constant.language":t,"storage.type":r},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"string",regex:"`.*?`"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]},this.normalizeRules()};r.inherits(s,i),t.SqlHighlightRules=s}),define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sql_highlight_rules").SqlHighlightRules,o=function(){this.HighlightRules=s,this.$behaviour=this.$defaultBehaviour};r.inherits(o,i),function(){this.lineCommentStart="--",this.$id="ace/mode/sql"}.call(o.prototype),t.Mode=o});                (function() {
21404                    window.require(["ace/mode/sql"], function(m) {
21405                        if (typeof module == "object" && typeof exports == "object" && module) {
21406                            module.exports = m;
21407                        }
21408                    });
21409                })();
21410            
21411
21412define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:t},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("str
21412ing_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column<l)return;if(o.column==l){var c=a.stepForward();if(c&&u(c,"attribute-value"))return;a.stepBackward()}}if(/^\s*>/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:"></"+d+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/wor
21412ker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:"<!--",end:"-->"},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/xml_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/xml"}.call(l.prototype),t.Mode=l});                (function() {
21413                    window.require(["ace/mode/xml"], function(m) {
21414                        if (typeof module == "object" && typeof exports == "object" && module) {
21415                            module.exports = m;
21416                        }
21417                    });
21418                })();
21419            
21420
21421define("ace/mode/plain_text",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/behaviour"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour").Behaviour,u=function(){this.HighlightRules=s,this.$behaviour=new o};r.inherits(u,i),function(){this.type="text",this.getNextLineIndent=function(e,t,n){return""},this.$id="ace/mode/plain_text"}.call(u.prototype),t.Mode=u});                (function() {
21422                    window.require(["ace/mode/plain_text"], function(m) {
21423                        if (typeof module == "object" && typeof exports == "object" && module) {
21424                            module.exports = m;
21425                        }
21426                    });
21427                })();
21428            

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.