MailChimp for WordPress - Version 4.1.12

Version Description

Download this release

Release Info

Developer DvanKooten
Plugin Icon 128x128 MailChimp for WordPress
Version 4.1.12
Comparing to
See all releases

Code changes from version 4.1.11 to 4.1.12

CHANGELOG.md CHANGED
@@ -1,6 +1,23 @@
1
  Changelog
2
  =========
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  #### 4.1.11 - November 2, 2017
5
 
6
  **Fixes**
1
  Changelog
2
  =========
3
 
4
+ #### 4.1.12 - December 11, 2017
5
+
6
+ **Fixes**
7
+
8
+ - Ninja Forms double opt-in setting was incorrectly inversed.
9
+
10
+ **Improvements**
11
+
12
+ - Simplified form processing & notice logic.
13
+ - Prevent 404 errors by proactively replacing lowercased `name="name"` input attributes.
14
+ - Updated JavaScript dependencies.
15
+
16
+ **Additions**
17
+
18
+ - Integration for AffiliateWP.
19
+
20
+
21
  #### 4.1.11 - November 2, 2017
22
 
23
  **Fixes**
assets/js/admin.js CHANGED
@@ -1713,7 +1713,7 @@ else window.m = m
1713
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
1714
  },{}],8:[function(require,module,exports){
1715
  /*!
1716
- * EventEmitter v5.2.3 - git.io/ee
1717
  * Unlicense - http://unlicense.org/
1718
  * Oliver Caldwell - http://oli.me.uk/
1719
  * @preserve
1713
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
1714
  },{}],8:[function(require,module,exports){
1715
  /*!
1716
+ * EventEmitter v5.2.4 - git.io/ee
1717
  * Unlicense - http://unlicense.org/
1718
  * Oliver Caldwell - http://oli.me.uk/
1719
  * @preserve
assets/js/admin.min.js CHANGED
@@ -1,3 +1,2 @@
1
- !function(){var e=void 0,t=void 0;!function t(n,r,i){function o(l,s){if(!r[l]){if(!n[l]){var u="function"==typeof e&&e;if(!s&&u)return u(l,!0);if(a)return a(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[l]={exports:{}};n[l][0].call(f.exports,function(e){var t=n[l][1][e];return o(t||e)},f,f.exports,t,n,r,i)}return r[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}({1:[function(e,t,n){"use strict";var r=window.m=e("mithril"),i=e("wolfy87-eventemitter"),o=document.getElementById("mc4wp-admin"),a=new i,l=e("./admin/tabs.js")(o),s=e("./admin/helpers.js"),u=e("./admin/settings.js")(o,s,a),c=e("./admin/list-fetcher.js"),f=document.getElementById("mc4wp-list-fetcher");f&&r.mount(f,new c),window.mc4wp=window.mc4wp||{},window.mc4wp.deps=window.mc4wp.deps||{},window.mc4wp.deps.mithril=r,window.mc4wp.helpers=s,window.mc4wp.events=a,window.mc4wp.settings=u,window.mc4wp.tabs=l},{"./admin/helpers.js":2,"./admin/list-fetcher.js":3,"./admin/settings.js":4,"./admin/tabs.js":5,mithril:7,"wolfy87-eventemitter":8}],2:[function(e,t,n){"use strict";var r={};r.toggleElement=function(e){for(var t=document.querySelectorAll(e),n=0;n<t.length;n++){var r=t[n].clientHeight<=0;t[n].style.display=r?"":"none"}},r.bindEventToElement=function(e,t,n){e.addEventListener?e.addEventListener(t,n):e.attachEvent&&e.attachEvent("on"+t,n)},r.bindEventToElements=function(e,t,n){Array.prototype.forEach.call(e,function(e){r.bindEventToElement(e,t,n)})},r.debounce=function(e,t,n){var r;return function(){var i=this,o=arguments,a=function(){r=null,n||e.apply(i,o)},l=n&&!r;clearTimeout(r),r=setTimeout(a,t),l&&e.apply(i,o)}},function(){var e=document.querySelectorAll("[data-showif]");Array.prototype.forEach.call(e,function(e){function t(){if("radio"!==this.getAttribute("type")||this.checked){var t="checkbox"===this.getAttribute("type")?this.checked:this.value,r=t==n.value;a?(e.style.display=r?"":"none",e.style.visibility=r?"":"hidden"):e.style.opacity=r?"":"0.4",Array.prototype.forEach.call(o,function(e){r?e.removeAttribute("readonly"):e.setAttribute("readonly","readonly")})}}var n=JSON.parse(e.getAttribute("data-showif")),i=document.querySelectorAll('[name="'+n.element+'"]'),o=e.querySelectorAll("input,select,textarea:not([readonly])"),a=void 0===n.hide||n.hide;Array.prototype.forEach.call(i,function(e){t.call(e)}),r.bindEventToElements(i,"change",t)})}(),t.exports=r},{}],3:[function(e,t,n){"use strict";function r(){this.working=!1,this.done=!1,o.mailchimp.api_connected&&0===o.mailchimp.lists.length&&this.fetch()}var i=window.jQuery,o=mc4wp_vars,a=o.i18n;r.prototype.fetch=function(e){e&&e.preventDefault(),this.working=!0,this.done=!1,i.post(ajaxurl,{action:"mc4wp_renew_mailchimp_lists",timeout:18e4}).done(function(e){this.success=!0,e&&window.setTimeout(function(){window.location.reload()},3e3)}.bind(this)).fail(function(e){this.success=!1}.bind(this)).always(function(e){this.working=!1,this.done=!0,m.redraw()}.bind(this))},r.prototype.view=function(){return m("form",{method:"POST",onsubmit:this.fetch.bind(this)},[m("p",[m("input",{type:"submit",value:this.working?a.fetching_mailchimp_lists:a.renew_mailchimp_lists,className:"button",disabled:!!this.working}),m.trust(" &nbsp; "),this.working?[m("span.mc4wp-loader","Loading..."),m.trust(" &nbsp; "),m("em.help",a.fetching_mailchimp_lists_can_take_a_while)]:"",this.done?[this.success?m("em.help.green",a.fetching_mailchimp_lists_done):m("em.help.red",a.fetching_mailchimp_lists_error)]:""])])},t.exports=r},{}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e,t,n){function i(e,t){return c.filter(function(n){return n[e]===t})}function o(){return c}function a(){return c=[],Array.prototype.forEach.call(s,function(e){("boolean"!=typeof e.checked||e.checked)&&"object"===r(u[e.value])&&c.push(u[e.value])}),n.trigger("selectedLists.change",[c]),c}function l(){var e=document.querySelectorAll(".lists--only-selected > *");Array.prototype.forEach.call(e,function(e){i("id",e.getAttribute("data-list-id")).length>0?e.setAttribute("class",e.getAttribute("class").replace("hidden","")):e.setAttribute("class",e.getAttribute("class")+" hidden")})}var s=(e.querySelector("form"),e.querySelectorAll(".mc4wp-list-input")),u=mc4wp_vars.mailchimp.lists,c=[];return n.on("selectedLists.change",l),t.bindEventToElements(s,"change",a),a(),{getSelectedLists:o}};t.exports=i},{}],5:[function(e,t,n){"use strict";var r=e("./url.js"),i=function(e){function t(e){for(var t=0;t<f.length;t++)if(f[t].id===e)return f[t]}function n(e,n){if("string"==typeof e&&(e=t(e)),!e)return!1;void 0==n&&(n=!0),s.removeClass("tab-active").css("display","none"),u.removeClass("nav-tab-active"),Array.prototype.forEach.call(e.nav,function(e){e.className+=" nav-tab-active",e.blur()}),e.element.style.display="block",e.element.className+=" tab-active";var o=r.setParameter(window.location.href,"tab",e.id);return history.pushState&&n&&history.pushState(e.id,"",o),i(e),c.value=o,"function"==typeof tb_remove&&tb_remove(),"fields"===e.id&&window.mc4wp&&window.mc4wp.forms&&window.mc4wp.forms.editor&&mc4wp.forms.editor.refresh(),!0}function i(e){var t=document.title.split("-");document.title=document.title.replace(t[0],e.title+" ")}function o(e){e=e||window.event;var t=this.getAttribute("data-tab");if(!t){var i=this.className.match(/nav-tab-(\w+)?/);i&&(t=i[1])}if(!t){var o=r.parse(this.href);if(!o.tab)return;t=o.tab}return!n(t)||(e.preventDefault(),e.returnValue=!1,!1)}var a=window.jQuery,l=a(e),s=l.find(".tab"),u=l.find(".nav-tab"),c=e.querySelector('input[name="_wp_http_referer"]'),f=[];return a.each(s,function(t,r){var i=r.id.substring(4),o=a(r).find("h2").first().text();f.push({id:i,title:o,element:r,nav:e.querySelectorAll(".nav-tab-"+i),open:function(){return n(i)}})}),u.click(o),a(document.body).on("click",".tab-link",o),function(){if(history.pushState){var e=s.filter(":visible").get(0);if(e){var n=t(e.id.substring(4));n&&(history.replaceState&&null===history.state&&history.replaceState(n.id,""),i(n))}}}(),window.addEventListener&&history.pushState&&window.addEventListener("popstate",function(e){return!e.state||n(e.state,!1)}),{open:n,get:t}};t.exports=i},{"./url.js":6}],6:[function(e,t,n){"use strict";var r={parse:function(e){var t={},n=e.split("&");for(var r in n)if(n.hasOwnProperty(r)){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t},build:function(e){var t=[];for(var n in e)t.push(n+"="+encodeURIComponent(e[n]));return t.join("&")},setParameter:function(e,t,n){var i=r.parse(e);return i[t]=n,r.build(i)}};t.exports=r},{}],7:[function(e,t,n){(function(e){!function(){"use strict";function n(e,t,n,r,i,o){return{tag:e,key:t,attrs:n,children:r,text:i,dom:o,domSize:void 0,state:void 0,_state:void 0,events:void 0,instance:void 0,skip:!1}}function r(e){for(var t,n="div",r=[],i={};t=l.exec(e);){var o=t[1],a=t[2];if(""===o&&""!==a)n=a;else if("#"===o)i.id=a;else if("."===o)r.push(a);else if("["===t[3][0]){var u=t[6];u&&(u=u.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?r.push(u):i[t[4]]=""===u?u:u||!0}}return r.length>0&&(i.className=r.join(" ")),s[e]={tag:n,attrs:i}}function i(e,t,r){var i,o,a=!1,l=t.className||t.class;for(var s in e.attrs)u.call(e.attrs,s)&&(t[s]=e.attrs[s]);void 0!==l&&(void 0!==t.class&&(t.class=void 0,t.className=l),null!=e.attrs.className&&(t.className=e.attrs.className+" "+l));for(var s in t)if(u.call(t,s)&&"key"!==s){a=!0;break}return Array.isArray(r)&&1===r.length&&null!=r[0]&&"#"===r[0].tag?o=r[0].children:i=r,n(e.tag,t.key,a?t:void 0,i,o)}function o(e){var t,o=arguments[1],a=2;if(null==e||"string"!=typeof e&&"function"!=typeof e&&"function"!=typeof e.view)throw Error("The selector must be either a string or a component.");if("string"==typeof e)var l=s[e]||r(e);if(null==o?o={}:("object"!=typeof o||null!=o.tag||Array.isArray(o))&&(o={},a=1),arguments.length===a+1)t=arguments[a],Array.isArray(t)||(t=[t]);else for(t=[];a<arguments.length;)t.push(arguments[a++]);var u=n.normalizeChildren(t);return"string"==typeof e?i(l,o,u):n(e,o.key,o,u)}function a(e){var t=0,n=null,r="function"==typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(){var i=Date.now();0===t||i-t>=16?(t=i,e()):null===n&&(n=r(function(){n=null,e(),t=Date.now()},16-(i-t)))}}n.normalize=function(e){return Array.isArray(e)?n("[",void 0,void 0,n.normalizeChildren(e),void 0,void 0):null!=e&&"object"!=typeof e?n("#",void 0,void 0,!1===e?"":e,void 0,void 0):e},n.normalizeChildren=function(e){for(var t=0;t<e.length;t++)e[t]=n.normalize(e[t]);return e};var l=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,s={},u={}.hasOwnProperty;o.trust=function(e){return null==e&&(e=""),n("<",void 0,void 0,e,void 0,void 0)},o.fragment=function(e,t){return n("[",e.key,e,n.normalizeChildren(t),void 0,void 0)};var c=o,f=function(e){function t(e,t){return function a(c){var f;try{if(!t||null==c||"object"!=typeof c&&"function"!=typeof c||"function"!=typeof(f=c.then))u(function(){t||0!==e.length||console.error("Possible unhandled promise rejection:",c);for(var n=0;n<e.length;n++)e[n](c);i.length=0,o.length=0,s.state=t,s.retry=function(){a(c)}});else{if(c===r)throw new TypeError("Promise can't be resolved w/ itself");n(f.bind(c))}}catch(e){l(e)}}}function n(e){function t(e){return function(t){n++>0||e(t)}}var n=0,r=t(l);try{e(t(a),r)}catch(e){r(e)}}if(!(this instanceof f))throw new Error("Promise must be called with `new`");if("function"!=typeof e)throw new TypeError("executor must be a function");var r=this,i=[],o=[],a=t(i,!0),l=t(o,!1),s=r._instance={resolvers:i,rejectors:o},u="function"==typeof setImmediate?setImmediate:setTimeout;n(e)};if(f.prototype.then=function(e,t){function n(e,t,n,o){t.push(function(t){if("function"!=typeof e)n(t);else try{r(e(t))}catch(e){i&&i(e)}}),"function"==typeof a.retry&&o===a.state&&a.retry()}var r,i,o=this,a=o._instance,l=new f(function(e,t){r=e,i=t});return n(e,a.resolvers,r,!0),n(t,a.rejectors,i,!1),l},f.prototype.catch=function(e){return this.then(null,e)},f.resolve=function(e){return e instanceof f?e:new f(function(t){t(e)})},f.reject=function(e){return new f(function(t,n){n(e)})},f.all=function(e){return new f(function(t,n){var r=e.length,i=0,o=[];if(0===e.length)t([]);else for(var a=0;a<e.length;a++)!function(a){function l(e){i++,o[a]=e,i===r&&t(o)}null==e[a]||"object"!=typeof e[a]&&"function"!=typeof e[a]||"function"!=typeof e[a].then?l(e[a]):e[a].then(l,n)}(a)})},f.race=function(e){return new f(function(t,n){for(var r=0;r<e.length;r++)e[r].then(t,n)})},"undefined"!=typeof window){void 0===window.Promise&&(window.Promise=f);var f=window.Promise}else if(void 0!==e){void 0===e.Promise&&(e.Promise=f);var f=e.Promise}var d=function(e){function t(e,r){if(Array.isArray(r))for(var i=0;i<r.length;i++)t(e+"["+i+"]",r[i]);else if("[object Object]"===Object.prototype.toString.call(r))for(var i in r)t(e+"["+i+"]",r[i]);else n.push(encodeURIComponent(e)+(null!=r&&""!==r?"="+encodeURIComponent(r):""))}if("[object Object]"!==Object.prototype.toString.call(e))return"";var n=[];for(var r in e)t(r,e[r]);return n.join("&")},h=new RegExp("^file://","i"),v=function(e,t){function n(e){v=e}function r(){function e(){0==--t&&"function"==typeof v&&v()}var t=0;return function n(r){var i=r.then;return r.then=function(){t++;var o=i.apply(r,arguments);return o.then(e,function(n){if(e(),0===t)throw n}),n(o)},r}}function i(e,t){if("string"==typeof e){var n=e;e=t||{},null==e.url&&(e.url=n)}return e}function o(n,o){var a=r();n=i(n,o);var d=new t(function(t,r){null==n.method&&(n.method="GET"),n.method=n.method.toUpperCase();var i="GET"!==n.method&&"TRACE"!==n.method&&("boolean"!=typeof n.useBody||n.useBody);"function"!=typeof n.serialize&&(n.serialize="undefined"!=typeof FormData&&n.data instanceof FormData?function(e){return e}:JSON.stringify),"function"!=typeof n.deserialize&&(n.deserialize=u),"function"!=typeof n.extract&&(n.extract=c),n.url=l(n.url,n.data),i?n.data=n.serialize(n.data):n.url=s(n.url,n.data);var o=new e.XMLHttpRequest,a=!1,d=o.abort;o.abort=function(){a=!0,d.call(o)},o.open(n.method,n.url,"boolean"!=typeof n.async||n.async,"string"==typeof n.user?n.user:void 0,"string"==typeof n.password?n.password:void 0),n.serialize!==JSON.stringify||!i||n.headers&&n.headers.hasOwnProperty("Content-Type")||o.setRequestHeader("Content-Type","application/json; charset=utf-8"),n.deserialize!==u||n.headers&&n.headers.hasOwnProperty("Accept")||o.setRequestHeader("Accept","application/json, text/*"),n.withCredentials&&(o.withCredentials=n.withCredentials);for(var v in n.headers)({}).hasOwnProperty.call(n.headers,v)&&o.setRequestHeader(v,n.headers[v]);"function"==typeof n.config&&(o=n.config(o,n)||o),o.onreadystatechange=function(){if(!a&&4===o.readyState)try{var e=n.extract!==c?n.extract(o,n):n.deserialize(n.extract(o,n));if(o.status>=200&&o.status<300||304===o.status||h.test(n.url))t(f(n.type,e));else{var i=new Error(o.responseText);for(var l in e)i[l]=e[l];r(i)}}catch(e){r(e)}},i&&null!=n.data?o.send(n.data):o.send()});return!0===n.background?d:a(d)}function a(n,o){var a=r();n=i(n,o);var u=new t(function(t,r){var i=n.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+p++,o=e.document.createElement("script");e[i]=function(r){o.parentNode.removeChild(o),t(f(n.type,r)),delete e[i]},o.onerror=function(){o.parentNode.removeChild(o),r(new Error("JSONP request failed")),delete e[i]},null==n.data&&(n.data={}),n.url=l(n.url,n.data),n.data[n.callbackKey||"callback"]=i,o.src=s(n.url,n.data),e.document.documentElement.appendChild(o)});return!0===n.background?u:a(u)}function l(e,t){if(null==t)return e;for(var n=e.match(/:[^\/]+/gi)||[],r=0;r<n.length;r++){var i=n[r].slice(1);null!=t[i]&&(e=e.replace(n[r],t[i]))}return e}function s(e,t){var n=d(t);if(""!==n){e+=(e.indexOf("?")<0?"?":"&")+n}return e}function u(e){try{return""!==e?JSON.parse(e):null}catch(t){throw new Error(e)}}function c(e){return e.responseText}function f(e,t){if("function"==typeof e){if(!Array.isArray(t))return new e(t);for(var n=0;n<t.length;n++)t[n]=new e(t[n])}return t}var v,p=0;return{request:o,jsonp:a,setCompletionCallback:n}}(window,f),p=function(e){function t(e){return H=e}function r(e){return e.attrs&&e.attrs.xmlns||K[e.tag]}function i(e,t,n,r,i,a,l){for(var s=n;s<r;s++){var u=t[s];null!=u&&o(e,u,i,l,a)}}function o(e,t,n,r,i){var o=t.tag;if("string"!=typeof o)return f(e,t,n,r,i);switch(t.state={},null!=t.attrs&&D(t.attrs,t,n),o){case"#":return a(e,t,i);case"<":return l(e,t,i);case"[":return s(e,t,n,r,i);default:return u(e,t,n,r,i)}}function a(e,t,n){return t.dom=B.createTextNode(t.children),A(e,t.dom,n),t.dom}function l(e,t,n){var r=t.children.match(/^\s*?<(\w+)/im)||[],i={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[r[1]]||"div",o=B.createElement(i);o.innerHTML=t.children,t.dom=o.firstChild,t.domSize=o.childNodes.length;for(var a,l=B.createDocumentFragment();a=o.firstChild;)l.appendChild(a);return A(e,l,n),l}function s(e,t,n,r,o){var a=B.createDocumentFragment();if(null!=t.children){var l=t.children;i(a,l,0,l.length,n,null,r)}return t.dom=a.firstChild,t.domSize=a.childNodes.length,A(e,a,o),a}function u(e,t,o,a,l){var s=t.tag,u=t.attrs,c=u&&u.is;a=r(t)||a;var f=a?c?B.createElementNS(a,s,{is:c}):B.createElementNS(a,s):c?B.createElement(s,{is:c}):B.createElement(s);if(t.dom=f,null!=u&&j(t,u,a),A(e,f,l),null!=t.attrs&&null!=t.attrs.contenteditable)k(t);else if(null!=t.text&&(""!==t.text?f.textContent=t.text:t.children=[n("#",void 0,void 0,t.text,void 0,void 0)]),null!=t.children){var d=t.children;i(f,d,0,d.length,o,null,a),z(t)}return f}function c(e,t){var r;if("function"==typeof e.tag.view){if(e.state=Object.create(e.tag),r=e.state.view,null!=r.$$reentrantLock$$)return J;r.$$reentrantLock$$=!0}else{if(e.state=void 0,r=e.tag,null!=r.$$reentrantLock$$)return J;r.$$reentrantLock$$=!0,e.state=null!=e.tag.prototype&&"function"==typeof e.tag.prototype.view?new e.tag(e):e.tag(e)}if(e._state=e.state,null!=e.attrs&&D(e.attrs,e,t),D(e._state,e,t),e.instance=n.normalize(e._state.view.call(e.state,e)),e.instance===e)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null}function f(e,t,n,r,i){if(c(t,n),null!=t.instance){var a=o(e,t.instance,n,r,i);return t.dom=t.instance.dom,t.domSize=null!=t.dom?t.instance.domSize:0,A(e,a,i),a}return t.domSize=0,J}function d(e,t,n,r,a,l,s){if(t!==n&&(null!=t||null!=n))if(null==t)i(e,n,0,n.length,a,l,s);else if(null==n)S(t,0,t.length,n);else{if(t.length===n.length){for(var u=!1,c=0;c<n.length;c++)if(null!=n[c]&&null!=t[c]){u=null==n[c].key&&null==t[c].key;break}if(u){for(var c=0;c<t.length;c++)t[c]!==n[c]&&(null==t[c]&&null!=n[c]?o(e,n[c],a,s,E(t,c+1,l)):null==n[c]?S(t,c,c+1,n):h(e,t[c],n[c],a,E(t,c+1,l),r,s));return}}if(r=r||w(t,n)){var f=t.pool;t=t.concat(t.pool)}for(var d,v=0,p=0,m=t.length-1,y=n.length-1;m>=v&&y>=p;){var g=t[v],k=n[p];if(g!==k||r)if(null==g)v++;else if(null==k)p++;else if(g.key===k.key){var _=null!=f&&v>=t.length-f.length||null==f&&r;v++,p++,h(e,g,k,a,E(t,v,l),_,s),r&&g.tag===k.tag&&A(e,x(g),l)}else{var g=t[m];if(g!==k||r)if(null==g)m--;else if(null==k)p++;else{if(g.key!==k.key)break;var _=null!=f&&m>=t.length-f.length||null==f&&r;h(e,g,k,a,E(t,m+1,l),_,s),(r||p<y)&&A(e,x(g),E(t,v,l)),m--,p++}else m--,p++}else v++,p++}for(;m>=v&&y>=p;){var g=t[m],k=n[y];if(g!==k||r)if(null==g)m--;else if(null==k)y--;else if(g.key===k.key){var _=null!=f&&m>=t.length-f.length||null==f&&r;h(e,g,k,a,E(t,m+1,l),_,s),r&&g.tag===k.tag&&A(e,x(g),l),null!=g.dom&&(l=g.dom),m--,y--}else{if(d||(d=b(t,m)),null!=k){var C=d[k.key];if(null!=C){var L=t[C],_=null!=f&&C>=t.length-f.length||null==f&&r;h(e,L,k,a,E(t,m+1,l),r,s),A(e,x(L),l),t[C].skip=!0,null!=L.dom&&(l=L.dom)}else{var j=o(e,k,a,s,l);l=j}}y--}else m--,y--;if(y<p)break}i(e,n,p,y+1,a,l,s),S(t,v,m+1,n)}}function h(e,t,n,r,i,a,l){var s=t.tag;if(s===n.tag){if(n.state=t.state,n._state=t._state,n.events=t.events,!a&&F(n,t))return;if("string"==typeof s)switch(null!=n.attrs&&(a?(n.state={},D(n.attrs,n,r)):U(n.attrs,n,r)),s){case"#":v(t,n);break;case"<":p(e,t,n,i);break;case"[":m(e,t,n,a,r,i,l);break;default:y(t,n,a,r,l)}else g(e,t,n,r,i,a,l)}else _(t,null),o(e,n,r,l,i)}function v(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children),t.dom=e.dom}function p(e,t,n,r){t.children!==n.children?(x(t),l(e,n,r)):(n.dom=t.dom,n.domSize=t.domSize)}function m(e,t,n,r,i,o,a){d(e,t.children,n.children,r,i,o,a);var l=0,s=n.children;if(n.dom=null,null!=s){for(var u=0;u<s.length;u++){var c=s[u];null!=c&&null!=c.dom&&(null==n.dom&&(n.dom=c.dom),l+=c.domSize||1)}1!==l&&(n.domSize=l)}}function y(e,t,i,o,a){var l=t.dom=e.dom;a=r(t)||a,"textarea"===t.tag&&(null==t.attrs&&(t.attrs={}),null!=t.text&&(t.attrs.value=t.text,t.text=void 0)),T(t,e.attrs,t.attrs,a),null!=t.attrs&&null!=t.attrs.contenteditable?k(t):null!=e.text&&null!=t.text&&""!==t.text?e.text.toString()!==t.text.toString()&&(e.dom.firstChild.nodeValue=t.text):(null!=e.text&&(e.children=[n("#",void 0,void 0,e.text,void 0,e.dom.firstChild)]),null!=t.text&&(t.children=[n("#",void 0,void 0,t.text,void 0,void 0)]),d(l,e.children,t.children,i,o,null,a))}function g(e,t,r,i,a,l,s){if(l)c(r,i);else{if(r.instance=n.normalize(r._state.view.call(r.state,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");null!=r.attrs&&U(r.attrs,r,i),U(r._state,r,i)}null!=r.instance?(null==t.instance?o(e,r.instance,i,s,a):h(e,t.instance,r.instance,i,a,l,s),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=t.instance?(_(t.instance,null),r.dom=void 0,r.domSize=0):(r.dom=t.dom,r.domSize=t.domSize)}function w(e,t){if(null!=e.pool&&Math.abs(e.pool.length-t.length)<=Math.abs(e.length-t.length)){var n=e[0]&&e[0].children&&e[0].children.length||0,r=e.pool[0]&&e.pool[0].children&&e.pool[0].children.length||0,i=t[0]&&t[0].children&&t[0].children.length||0;if(Math.abs(r-i)<=Math.abs(n-i))return!0}return!1}function b(e,t){for(var n={},r=0,r=0;r<t;r++){var i=e[r];if(null!=i){var o=i.key;null!=o&&(n[o]=r)}}return n}function x(e){var t=e.domSize;if(null!=t||null==e.dom){var n=B.createDocumentFragment();if(t>0){for(var r=e.dom;--t;)n.appendChild(r.nextSibling);n.insertBefore(r,n.firstChild)}return n}return e.dom}function E(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function A(e,t,n){n&&n.parentNode?e.insertBefore(t,n):e.appendChild(t)}function k(e){var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=e.text||null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted")}function S(e,t,n,r){for(var i=t;i<n;i++){var o=e[i];null!=o&&(o.skip?o.skip=!1:_(o,r))}}function _(e,t){function n(){if(++i===r&&(L(e),e.dom)){var n=e.domSize||1;if(n>1)for(var o=e.dom;--n;)C(o.nextSibling);C(e.dom),null==t||null!=e.domSize||$(e.attrs)||"string"!=typeof e.tag||(t.pool?t.pool.push(e):t.pool=[e])}}var r=1,i=0;if(e.attrs&&"function"==typeof e.attrs.onbeforeremove){var o=e.attrs.onbeforeremove.call(e.state,e);null!=o&&"function"==typeof o.then&&(r++,o.then(n,n))}if("string"!=typeof e.tag&&"function"==typeof e._state.onbeforeremove){var o=e._state.onbeforeremove.call(e.state,e);null!=o&&"function"==typeof o.then&&(r++,o.then(n,n))}n()}function C(e){var t=e.parentNode;null!=t&&t.removeChild(e)}function L(e){if(e.attrs&&"function"==typeof e.attrs.onremove&&e.attrs.onremove.call(e.state,e),"string"!=typeof e.tag&&"function"==typeof e._state.onremove&&e._state.onremove.call(e.state,e),null!=e.instance)L(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var r=t[n];null!=r&&L(r)}}}function j(e,t,n){for(var r in t)O(e,r,null,t[r],n)}function O(e,t,n,r,i){var o=e.dom;if("key"!==t&&"is"!==t&&(n!==r||N(e,t)||"object"==typeof r)&&void 0!==r&&!P(t)){var a=t.indexOf(":");if(a>-1&&"xlink"===t.substr(0,a))o.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(a+1),r);else if("o"===t[0]&&"n"===t[1]&&"function"==typeof r)M(e,t,r);else if("style"===t)q(o,n,r);else if(t in o&&!R(t)&&void 0===i&&!I(e)){if("value"===t){var l=""+r;if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===l&&e.dom===B.activeElement)return;if("select"===e.tag)if(null===r){if(-1===e.dom.selectedIndex&&e.dom===B.activeElement)return}else if(null!==n&&e.dom.value===l&&e.dom===B.activeElement)return;if("option"===e.tag&&null!=n&&e.dom.value===l)return}if("input"===e.tag&&"type"===t)return void o.setAttribute(t,r);o[t]=r}else"boolean"==typeof r?r?o.setAttribute(t,""):o.removeAttribute(t):o.setAttribute("className"===t?"class":t,r)}}function z(e){var t=e.attrs;"select"===e.tag&&null!=t&&("value"in t&&O(e,"value",null,t.value,void 0),"selectedIndex"in t&&O(e,"selectedIndex",null,t.selectedIndex,void 0))}function T(e,t,n,r){if(null!=n)for(var i in n)O(e,i,t&&t[i],n[i],r);if(null!=t)for(var i in t)null!=n&&i in n||("className"===i&&(i="class"),"o"!==i[0]||"n"!==i[1]||P(i)?"key"!==i&&e.dom.removeAttribute(i):M(e,i,void 0))}function N(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===B.activeElement}function P(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function R(e){return"href"===e||"list"===e||"form"===e||"width"===e||"height"===e}function I(e){return e.attrs.is||e.tag.indexOf("-")>-1}function $(e){return null!=e&&(e.oncreate||e.onupdate||e.onbeforeremove||e.onremove)}function q(e,t,n){if(t===n&&(e.style.cssText="",t=null),null==n)e.style.cssText="";else if("string"==typeof n)e.style.cssText=n;else{"string"==typeof t&&(e.style.cssText="");for(var r in n)e.style[r]=n[r];if(null!=t&&"string"!=typeof t)for(var r in t)r in n||(e.style[r]="")}}function M(e,t,n){var r=e.dom,i="function"!=typeof H?n:function(e){var t=n.call(r,e);return H.call(r,e),t};if(t in r)r[t]="function"==typeof n?i:null;else{var o=t.slice(2);if(void 0===e.events&&(e.events={}),e.events[t]===i)return;null!=e.events[t]&&r.removeEventListener(o,e.events[t],!1),"function"==typeof n&&(e.events[t]=i,r.addEventListener(o,e.events[t],!1))}}function D(e,t,n){"function"==typeof e.oninit&&e.oninit.call(t.state,t),"function"==typeof e.oncreate&&n.push(e.oncreate.bind(t.state,t))}function U(e,t,n){"function"==typeof e.onupdate&&n.push(e.onupdate.bind(t.state,t))}function F(e,t){var n,r;return null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate&&(n=e.attrs.onbeforeupdate.call(e.state,e,t)),"string"!=typeof e.tag&&"function"==typeof e._state.onbeforeupdate&&(r=e._state.onbeforeupdate.call(e.state,e,t)),!(void 0===n&&void 0===r||n||r)&&(e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,!0)}function V(e,t){if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var r=[],i=B.activeElement,o=e.namespaceURI;null==e.vnodes&&(e.textContent=""),Array.isArray(t)||(t=[t]),d(e,e.vnodes,n.normalizeChildren(t),!1,r,null,"http://www.w3.org/1999/xhtml"===o?void 0:o),e.vnodes=t;for(var a=0;a<r.length;a++)r[a]();null!=i&&B.activeElement!==i&&i.focus()}var H,B=e.document,J=B.createDocumentFragment(),K={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};return{render:V,setEventCallback:t}},m=function(e){function t(e,t){n(e),o.push(e,a(t))}function n(e){var t=o.indexOf(e);t>-1&&o.splice(t,2)}function r(){for(var e=1;e<o.length;e+=2)o[e]()}var i=p(e);i.setEventCallback(function(e){!1===e.redraw?e.redraw=void 0:r()});var o=[];return{subscribe:t,unsubscribe:n,redraw:r,render:i.render}}(window);v.setCompletionCallback(m.redraw);c.mount=function(e){return function(t,r){if(null===r)return e.render(t,[]),void e.unsubscribe(t);if(null==r.view&&"function"!=typeof r)throw new Error("m.mount(element, component) expects a component, not a vnode");var i=function(){e.render(t,n(r))};e.subscribe(t,i),e.redraw()}}(m);var y=f,g=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},i=0;i<t.length;i++){var o=t[i].split("="),a=decodeURIComponent(o[0]),l=2===o.length?decodeURIComponent(o[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var s=a.split(/\]\[?|\[/),u=n;a.indexOf("[")>-1&&s.pop();for(var c=0;c<s.length;c++){var f=s[c],d=s[c+1],h=""==d||!isNaN(parseInt(d,10)),v=c===s.length-1;if(""===f){var a=s.slice(0,c).join();null==r[a]&&(r[a]=0),f=r[a]++}null==u[f]&&(u[f]=v?l:h?[]:{}),u=u[f]}}return n},w=function(e){function t(t){var n=e.location[t].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);return"pathname"===t&&"/"!==n[0]&&(n="/"+n),n}function n(e){return function(){null==i&&(i=a(function(){i=null,e()}))}}function r(e,t,n){var r=e.indexOf("?"),i=e.indexOf("#"),o=r>-1?r:i>-1?i:e.length;if(r>-1){var a=i>-1?i:e.length,l=g(e.slice(r+1,a));for(var s in l)t[s]=l[s]}if(i>-1){var u=g(e.slice(i+1));for(var s in u)n[s]=u[s]}return e.slice(0,o)}var i,o="function"==typeof e.history.pushState,a="function"==typeof setImmediate?setImmediate:setTimeout,l={prefix:"#!"};return l.getPath=function(){switch(l.prefix.charAt(0)){case"#":return t("hash").slice(l.prefix.length);case"?":return t("search").slice(l.prefix.length)+t("hash");default:return t("pathname").slice(l.prefix.length)+t("search")+t("hash")}},l.setPath=function(t,n,i){var a={},s={};if(t=r(t,a,s),null!=n){for(var u in n)a[u]=n[u];t=t.replace(/:([^\/]+)/g,function(e,t){return delete a[t],n[t]})}var c=d(a);c&&(t+="?"+c);var f=d(s);if(f&&(t+="#"+f),o){var h=i?i.state:null,v=i?i.title:null;e.onpopstate(),i&&i.replace?e.history.replaceState(h,v,l.prefix+t):e.history.pushState(h,v,l.prefix+t)}else e.location.href=l.prefix+t},l.defineRoutes=function(t,i,a){function s(){var n=l.getPath(),o={},s=r(n,o,o),u=e.history.state;if(null!=u)for(var c in u)o[c]=u[c];for(var f in t){var d=new RegExp("^"+f.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(d.test(s))return void s.replace(d,function(){for(var e=f.match(/:[^\/]+/g)||[],r=[].slice.call(arguments,1,-2),a=0;a<e.length;a++)o[e[a].replace(/:|\./g,"")]=decodeURIComponent(r[a]);i(t[f],o,n,f)})}a(n,o)}o?e.onpopstate=n(s):"#"===l.prefix.charAt(0)&&(e.onhashchange=s),s()},l};c.route=function(e,t){var r,i,o,a,l,s=w(e),u=function(e){return e},c=function(e,c,f){if(null==e)throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined");var d=function(){null!=r&&t.render(e,r(n(i,o.key,o)))},h=function(e){if(e===c)throw new Error("Could not resolve default route "+c);s.setPath(c,null,{replace:!0})};s.defineRoutes(f,function(e,t,n){var s=l=function(e,c){s===l&&(i=null==c||"function"!=typeof c.view&&"function"!=typeof c?"div":c,o=t,a=n,l=null,r=(e.render||u).bind(e),d())};e.view||"function"==typeof e?s({},e):e.onmatch?y.resolve(e.onmatch(t,n)).then(function(t){s(e,t)},h):s(e,"div")},h),t.subscribe(e,d)};return c.set=function(e,t,n){null!=l&&(n=n||{},n.replace=!0),l=null,s.setPath(e,t,n)},c.get=function(){return a},c.prefix=function(e){s.prefix=e},c.link=function(e){e.dom.setAttribute("href",s.prefix+e.attrs.href),e.dom.onclick=function(e){if(!(e.ctrlKey||e.metaKey||e.shiftKey||2===e.which)){e.preventDefault(),e.redraw=!1;var t=this.getAttribute("href");0===t.indexOf(s.prefix)&&(t=t.slice(s.prefix.length)),c.set(t,void 0,void 0)}}},c.param=function(e){return void 0!==o&&void 0!==e?o[e]:o},c}(window,m),c.withAttr=function(e,t,n){return function(r){t.call(n||this,e in r.currentTarget?r.currentTarget[e]:r.currentTarget.getAttribute(e))}};var b=p(window);c.render=b.render,c.redraw=m.redraw,c.request=v.request,c.jsonp=v.jsonp,c.parseQueryString=g,c.buildQueryString=d,c.version="1.1.5",c.vnode=n,void 0!==t?t.exports=c:window.m=c}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,n,r){!function(e){"use strict";function r(){}function i(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function o(e){return function(){return this[e].apply(this,arguments)}}function a(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!=typeof e)&&a(e.listener)}var l=r.prototype,s=e.EventEmitter;l.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},l.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},l.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},l.addListener=function(e,t){if(!a(t))throw new TypeError("listener must be a function");var n,r=this.getListenersAsObject(e),o="object"==typeof t;for(n in r)r.hasOwnProperty(n)&&-1===i(r[n],t)&&r[n].push(o?t:{listener:t,once:!1});return this},l.on=o("addListener"),l.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},l.once=o("addOnceListener"),l.defineEvent=function(e){return this.getListeners(e),this},l.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},l.removeListener=function(e,t){var n,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&-1!==(n=i(o[r],t))&&o[r].splice(n,1);return this},l.off=o("removeListener"),l.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},l.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},l.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,a=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):a.call(this,r,i));return this},l.removeEvent=function(e){var t,n=typeof e,r=this._getEvents()
2
- ;if("string"===n)delete r[e];else if(e instanceof RegExp)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},l.removeAllListeners=o("removeEvent"),l.emitEvent=function(e,t){var n,r,i,o,a=this.getListenersAsObject(e);for(o in a)if(a.hasOwnProperty(o))for(n=a[o].slice(0),i=0;i<n.length;i++)r=n[i],!0===r.once&&this.removeListener(e,r.listener),r.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,r.listener);return this},l.trigger=o("emitEvent"),l.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},l.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},l._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},l._getEvents=function(){return this._events||(this._events={})},r.noConflict=function(){return e.EventEmitter=s,r},"function"==typeof t&&t.amd?t(function(){return r}):"object"==typeof n&&n.exports?n.exports=r:e.EventEmitter=r}(this||{})},{}]},{},[1])}();
3
  //# sourceMappingURL=admin.min.js.map
1
+ !function(){var e=void 0,t=void 0;!function t(n,r,i){function o(l,s){if(!r[l]){if(!n[l]){var u="function"==typeof e&&e;if(!s&&u)return u(l,!0);if(a)return a(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[l]={exports:{}};n[l][0].call(f.exports,function(e){var t=n[l][1][e];return o(t||e)},f,f.exports,t,n,r,i)}return r[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}({1:[function(e,t,n){"use strict";var r=window.m=e("mithril"),i=e("wolfy87-eventemitter"),o=document.getElementById("mc4wp-admin"),a=new i,l=e("./admin/tabs.js")(o),s=e("./admin/helpers.js"),u=e("./admin/settings.js")(o,s,a),c=e("./admin/list-fetcher.js"),f=document.getElementById("mc4wp-list-fetcher");f&&r.mount(f,new c),window.mc4wp=window.mc4wp||{},window.mc4wp.deps=window.mc4wp.deps||{},window.mc4wp.deps.mithril=r,window.mc4wp.helpers=s,window.mc4wp.events=a,window.mc4wp.settings=u,window.mc4wp.tabs=l},{"./admin/helpers.js":2,"./admin/list-fetcher.js":3,"./admin/settings.js":4,"./admin/tabs.js":5,mithril:7,"wolfy87-eventemitter":8}],2:[function(e,t,n){"use strict";var r={};r.toggleElement=function(e){for(var t=document.querySelectorAll(e),n=0;n<t.length;n++){var r=t[n].clientHeight<=0;t[n].style.display=r?"":"none"}},r.bindEventToElement=function(e,t,n){e.addEventListener?e.addEventListener(t,n):e.attachEvent&&e.attachEvent("on"+t,n)},r.bindEventToElements=function(e,t,n){Array.prototype.forEach.call(e,function(e){r.bindEventToElement(e,t,n)})},r.debounce=function(e,t,n){var r;return function(){var i=this,o=arguments,a=n&&!r;clearTimeout(r),r=setTimeout(function(){r=null,n||e.apply(i,o)},t),a&&e.apply(i,o)}},function(){var e=document.querySelectorAll("[data-showif]");Array.prototype.forEach.call(e,function(e){function t(){if("radio"!==this.getAttribute("type")||this.checked){var t=("checkbox"===this.getAttribute("type")?this.checked:this.value)==n.value;a?(e.style.display=t?"":"none",e.style.visibility=t?"":"hidden"):e.style.opacity=t?"":"0.4",Array.prototype.forEach.call(o,function(e){t?e.removeAttribute("readonly"):e.setAttribute("readonly","readonly")})}}var n=JSON.parse(e.getAttribute("data-showif")),i=document.querySelectorAll('[name="'+n.element+'"]'),o=e.querySelectorAll("input,select,textarea:not([readonly])"),a=void 0===n.hide||n.hide;Array.prototype.forEach.call(i,function(e){t.call(e)}),r.bindEventToElements(i,"change",t)})}(),t.exports=r},{}],3:[function(e,t,n){"use strict";function r(){this.working=!1,this.done=!1,o.mailchimp.api_connected&&0===o.mailchimp.lists.length&&this.fetch()}var i=window.jQuery,o=mc4wp_vars,a=o.i18n;r.prototype.fetch=function(e){e&&e.preventDefault(),this.working=!0,this.done=!1,i.post(ajaxurl,{action:"mc4wp_renew_mailchimp_lists",timeout:18e4}).done(function(e){this.success=!0,e&&window.setTimeout(function(){window.location.reload()},3e3)}.bind(this)).fail(function(e){this.success=!1}.bind(this)).always(function(e){this.working=!1,this.done=!0,m.redraw()}.bind(this))},r.prototype.view=function(){return m("form",{method:"POST",onsubmit:this.fetch.bind(this)},[m("p",[m("input",{type:"submit",value:this.working?a.fetching_mailchimp_lists:a.renew_mailchimp_lists,className:"button",disabled:!!this.working}),m.trust(" &nbsp; "),this.working?[m("span.mc4wp-loader","Loading..."),m.trust(" &nbsp; "),m("em.help",a.fetching_mailchimp_lists_can_take_a_while)]:"",this.done?[this.success?m("em.help.green",a.fetching_mailchimp_lists_done):m("em.help.red",a.fetching_mailchimp_lists_error)]:""])])},t.exports=r},{}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.exports=function(e,t,n){function i(){return l=[],Array.prototype.forEach.call(o,function(e){("boolean"!=typeof e.checked||e.checked)&&"object"===r(a[e.value])&&l.push(a[e.value])}),n.trigger("selectedLists.change",[l]),l}e.querySelector("form");var o=e.querySelectorAll(".mc4wp-list-input"),a=mc4wp_vars.mailchimp.lists,l=[];return n.on("selectedLists.change",function(){var e=document.querySelectorAll(".lists--only-selected > *");Array.prototype.forEach.call(e,function(e){(function(e,t){return l.filter(function(n){return n[e]===t})})("id",e.getAttribute("data-list-id")).length>0?e.setAttribute("class",e.getAttribute("class").replace("hidden","")):e.setAttribute("class",e.getAttribute("class")+" hidden")})}),t.bindEventToElements(o,"change",i),i(),{getSelectedLists:function(){return l}}}},{}],5:[function(e,t,n){"use strict";var r=e("./url.js");t.exports=function(e){function t(e){for(var t=0;t<f.length;t++)if(f[t].id===e)return f[t]}function n(e,n){if("string"==typeof e&&(e=t(e)),!e)return!1;void 0==n&&(n=!0),s.removeClass("tab-active").css("display","none"),u.removeClass("nav-tab-active"),Array.prototype.forEach.call(e.nav,function(e){e.className+=" nav-tab-active",e.blur()}),e.element.style.display="block",e.element.className+=" tab-active";var o=r.setParameter(window.location.href,"tab",e.id);return history.pushState&&n&&history.pushState(e.id,"",o),i(e),c.value=o,"function"==typeof tb_remove&&tb_remove(),"fields"===e.id&&window.mc4wp&&window.mc4wp.forms&&window.mc4wp.forms.editor&&mc4wp.forms.editor.refresh(),!0}function i(e){var t=document.title.split("-");document.title=document.title.replace(t[0],e.title+" ")}function o(e){e=e||window.event;var t=this.getAttribute("data-tab");if(!t){var i=this.className.match(/nav-tab-(\w+)?/);i&&(t=i[1])}if(!t){var o=r.parse(this.href);if(!o.tab)return;t=o.tab}return!n(t)||(e.preventDefault(),e.returnValue=!1,!1)}var a=window.jQuery,l=a(e),s=l.find(".tab"),u=l.find(".nav-tab"),c=e.querySelector('input[name="_wp_http_referer"]'),f=[];return a.each(s,function(t,r){var i=r.id.substring(4),o=a(r).find("h2").first().text();f.push({id:i,title:o,element:r,nav:e.querySelectorAll(".nav-tab-"+i),open:function(){return n(i)}})}),u.click(o),a(document.body).on("click",".tab-link",o),function(){if(history.pushState){var e=s.filter(":visible").get(0);if(e){var n=t(e.id.substring(4));n&&(history.replaceState&&null===history.state&&history.replaceState(n.id,""),i(n))}}}(),window.addEventListener&&history.pushState&&window.addEventListener("popstate",function(e){return!e.state||n(e.state,!1)}),{open:n,get:t}}},{"./url.js":6}],6:[function(e,t,n){"use strict";var r={parse:function(e){var t={},n=e.split("&");for(var r in n)if(n.hasOwnProperty(r)){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t},build:function(e){var t=[];for(var n in e)t.push(n+"="+encodeURIComponent(e[n]));return t.join("&")},setParameter:function(e,t,n){var i=r.parse(e);return i[t]=n,r.build(i)}};t.exports=r},{}],7:[function(e,t,n){(function(e){!function(){"use strict";function n(e,t,n,r,i,o){return{tag:e,key:t,attrs:n,children:r,text:i,dom:o,domSize:void 0,state:void 0,_state:void 0,events:void 0,instance:void 0,skip:!1}}function r(e){var t,r=arguments[1],l=2;if(null==e||"string"!=typeof e&&"function"!=typeof e&&"function"!=typeof e.view)throw Error("The selector must be either a string or a component.");if("string"==typeof e)var s=o[e]||function(e){for(var t,n="div",r=[],a={};t=i.exec(e);){var l=t[1],s=t[2];if(""===l&&""!==s)n=s;else if("#"===l)a.id=s;else if("."===l)r.push(s);else if("["===t[3][0]){var u=t[6];u&&(u=u.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?r.push(u):a[t[4]]=""===u?u:u||!0}}return r.length>0&&(a.className=r.join(" ")),o[e]={tag:n,attrs:a}}(e);if(null==r?r={}:("object"!=typeof r||null!=r.tag||Array.isArray(r))&&(r={},l=1),arguments.length===l+1)t=arguments[l],Array.isArray(t)||(t=[t]);else for(t=[];l<arguments.length;)t.push(arguments[l++]);var u=n.normalizeChildren(t);return"string"==typeof e?function(e,t,r){var i,o,l=!1,s=t.className||t.class;for(var u in e.attrs)a.call(e.attrs,u)&&(t[u]=e.attrs[u]);void 0!==s&&(void 0!==t.class&&(t.class=void 0,t.className=s),null!=e.attrs.className&&(t.className=e.attrs.className+" "+s));for(var u in t)if(a.call(t,u)&&"key"!==u){l=!0;break}return Array.isArray(r)&&1===r.length&&null!=r[0]&&"#"===r[0].tag?o=r[0].children:i=r,n(e.tag,t.key,l?t:void 0,i,o)}(s,r,u):n(e,r.key,r,u)}n.normalize=function(e){return Array.isArray(e)?n("[",void 0,void 0,n.normalizeChildren(e),void 0,void 0):null!=e&&"object"!=typeof e?n("#",void 0,void 0,!1===e?"":e,void 0,void 0):e},n.normalizeChildren=function(e){for(var t=0;t<e.length;t++)e[t]=n.normalize(e[t]);return e};var i=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,o={},a={}.hasOwnProperty;r.trust=function(e){return null==e&&(e=""),n("<",void 0,void 0,e,void 0,void 0)},r.fragment=function(e,t){return n("[",e.key,e,n.normalizeChildren(t),void 0,void 0)};var l=r;if((s=function(e){function t(e,t){return function a(s){var f;try{if(!t||null==s||"object"!=typeof s&&"function"!=typeof s||"function"!=typeof(f=s.then))c(function(){t||0!==e.length||console.error("Possible unhandled promise rejection:",s);for(var n=0;n<e.length;n++)e[n](s);i.length=0,o.length=0,u.state=t,u.retry=function(){a(s)}});else{if(s===r)throw new TypeError("Promise can't be resolved w/ itself");n(f.bind(s))}}catch(e){l(e)}}}function n(e){function t(e){return function(t){n++>0||e(t)}}var n=0,r=t(l);try{e(t(a),r)}catch(e){r(e)}}if(!(this instanceof s))throw new Error("Promise must be called with `new`");if("function"!=typeof e)throw new TypeError("executor must be a function");var r=this,i=[],o=[],a=t(i,!0),l=t(o,!1),u=r._instance={resolvers:i,rejectors:o},c="function"==typeof setImmediate?setImmediate:setTimeout;n(e)}).prototype.then=function(e,t){function n(e,t,n,a){t.push(function(t){if("function"!=typeof e)n(t);else try{r(e(t))}catch(e){i&&i(e)}}),"function"==typeof o.retry&&a===o.state&&o.retry()}var r,i,o=this._instance,a=new s(function(e,t){r=e,i=t});return n(e,o.resolvers,r,!0),n(t,o.rejectors,i,!1),a},s.prototype.catch=function(e){return this.then(null,e)},s.resolve=function(e){return e instanceof s?e:new s(function(t){t(e)})},s.reject=function(e){return new s(function(t,n){n(e)})},s.all=function(e){return new s(function(t,n){var r=e.length,i=0,o=[];if(0===e.length)t([]);else for(var a=0;a<e.length;a++)!function(a){function l(e){i++,o[a]=e,i===r&&t(o)}null==e[a]||"object"!=typeof e[a]&&"function"!=typeof e[a]||"function"!=typeof e[a].then?l(e[a]):e[a].then(l,n)}(a)})},s.race=function(e){return new s(function(t,n){for(var r=0;r<e.length;r++)e[r].then(t,n)})},"undefined"!=typeof window){void 0===window.Promise&&(window.Promise=s);var s=window.Promise}else if(void 0!==e){void 0===e.Promise&&(e.Promise=s);s=e.Promise}var u=function(e){function t(e,r){if(Array.isArray(r))for(var i=0;i<r.length;i++)t(e+"["+i+"]",r[i]);else if("[object Object]"===Object.prototype.toString.call(r))for(var i in r)t(e+"["+i+"]",r[i]);else n.push(encodeURIComponent(e)+(null!=r&&""!==r?"="+encodeURIComponent(r):""))}if("[object Object]"!==Object.prototype.toString.call(e))return"";var n=[];for(var r in e)t(r,e[r]);return n.join("&")},c=new RegExp("^file://","i"),f=function(e,t){function n(){function e(){0==--t&&"function"==typeof f&&f()}var t=0;return function n(r){var i=r.then;return r.then=function(){t++;var o=i.apply(r,arguments);return o.then(e,function(n){if(e(),0===t)throw n}),n(o)},r}}function r(e,t){if("string"==typeof e){var n=e;null==(e=t||{}).url&&(e.url=n)}return e}function i(e,t){if(null==t)return e;for(var n=e.match(/:[^\/]+/gi)||[],r=0;r<n.length;r++){var i=n[r].slice(1);null!=t[i]&&(e=e.replace(n[r],t[i]))}return e}function o(e,t){var n=u(t);return""!==n&&(e+=(e.indexOf("?")<0?"?":"&")+n),e}function a(e){try{return""!==e?JSON.parse(e):null}catch(t){throw new Error(e)}}function l(e){return e.responseText}function s(e,t){if("function"==typeof e){if(!Array.isArray(t))return new e(t);for(var n=0;n<t.length;n++)t[n]=new e(t[n])}return t}var f,d=0;return{request:function(u,f){var d=n();u=r(u,f);var h=new t(function(t,n){null==u.method&&(u.method="GET"),u.method=u.method.toUpperCase();var r="GET"!==u.method&&"TRACE"!==u.method&&("boolean"!=typeof u.useBody||u.useBody);"function"!=typeof u.serialize&&(u.serialize="undefined"!=typeof FormData&&u.data instanceof FormData?function(e){return e}:JSON.stringify),"function"!=typeof u.deserialize&&(u.deserialize=a),"function"!=typeof u.extract&&(u.extract=l),u.url=i(u.url,u.data),r?u.data=u.serialize(u.data):u.url=o(u.url,u.data);var f=new e.XMLHttpRequest,d=!1,h=f.abort;f.abort=function(){d=!0,h.call(f)},f.open(u.method,u.url,"boolean"!=typeof u.async||u.async,"string"==typeof u.user?u.user:void 0,"string"==typeof u.password?u.password:void 0),u.serialize!==JSON.stringify||!r||u.headers&&u.headers.hasOwnProperty("Content-Type")||f.setRequestHeader("Content-Type","application/json; charset=utf-8"),u.deserialize!==a||u.headers&&u.headers.hasOwnProperty("Accept")||f.setRequestHeader("Accept","application/json, text/*"),u.withCredentials&&(f.withCredentials=u.withCredentials);for(var v in u.headers)({}).hasOwnProperty.call(u.headers,v)&&f.setRequestHeader(v,u.headers[v]);"function"==typeof u.config&&(f=u.config(f,u)||f),f.onreadystatechange=function(){if(!d&&4===f.readyState)try{var e=u.extract!==l?u.extract(f,u):u.deserialize(u.extract(f,u));if(f.status>=200&&f.status<300||304===f.status||c.test(u.url))t(s(u.type,e));else{var r=new Error(f.responseText);for(var i in e)r[i]=e[i];n(r)}}catch(e){n(e)}},r&&null!=u.data?f.send(u.data):f.send()});return!0===u.background?h:d(h)},jsonp:function(a,l){var u=n();a=r(a,l);var c=new t(function(t,n){var r=a.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+d++,l=e.document.createElement("script");e[r]=function(n){l.parentNode.removeChild(l),t(s(a.type,n)),delete e[r]},l.onerror=function(){l.parentNode.removeChild(l),n(new Error("JSONP request failed")),delete e[r]},null==a.data&&(a.data={}),a.url=i(a.url,a.data),a.data[a.callbackKey||"callback"]=r,l.src=o(a.url,a.data),e.document.documentElement.appendChild(l)});return!0===a.background?c:u(c)},setCompletionCallback:function(e){f=e}}}(window,s),d=function(e){function t(e){return e.attrs&&e.attrs.xmlns||S[e.tag]}function r(e,t,n,r,o,a,l){for(var s=n;s<r;s++){var u=t[s];null!=u&&i(e,u,o,l,a)}}function i(e,l,s,u,c){var h=l.tag;if("string"!=typeof h)return function(e,t,n,r,o){{if(a(t,n),null!=t.instance){var l=i(e,t.instance,n,r,o);return t.dom=t.instance.dom,t.domSize=null!=t.dom?t.instance.domSize:0,f(e,l,o),l}return t.domSize=0,k}}(e,l,s,u,c);switch(l.state={},null!=l.attrs&&b(l.attrs,l,s),h){case"#":return function(e,t,n){return t.dom=A.createTextNode(t.children),f(e,t.dom,n),t.dom}(e,l,c);case"<":return o(e,l,c);case"[":return function(e,t,n,i,o){var a=A.createDocumentFragment();if(null!=t.children){var l=t.children;r(a,l,0,l.length,n,null,i)}return t.dom=a.firstChild,t.domSize=a.childNodes.length,f(e,a,o),a}(e,l,s,u,c);default:return function(e,i,o,a,l){var s=i.tag,u=i.attrs,c=u&&u.is,h=(a=t(i)||a)?c?A.createElementNS(a,s,{is:c}):A.createElementNS(a,s):c?A.createElement(s,{is:c}):A.createElement(s);i.dom=h,null!=u&&function(e,t,n){for(var r in t)y(e,r,null,t[r],n)}(i,u,a);if(f(e,h,l),null!=i.attrs&&null!=i.attrs.contenteditable)d(i);else if(null!=i.text&&(""!==i.text?h.textContent=i.text:i.children=[n("#",void 0,void 0,i.text,void 0,void 0)]),null!=i.children){var v=i.children;r(h,v,0,v.length,o,null,a),function(e){var t=e.attrs;"select"===e.tag&&null!=t&&("value"in t&&y(e,"value",null,t.value,void 0),"selectedIndex"in t&&y(e,"selectedIndex",null,t.selectedIndex,void 0))}(i)}return h}(e,l,s,u,c)}}function o(e,t,n){var r={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[(t.children.match(/^\s*?<(\w+)/im)||[])[1]]||"div",i=A.createElement(r);i.innerHTML=t.children,t.dom=i.firstChild,t.domSize=i.childNodes.length;for(var o,a=A.createDocumentFragment();o=i.firstChild;)a.appendChild(o);return f(e,a,n),a}function a(e,t){var r;if("function"==typeof e.tag.view){if(e.state=Object.create(e.tag),null!=(r=e.state.view).$$reentrantLock$$)return k;r.$$reentrantLock$$=!0}else{if(e.state=void 0,null!=(r=e.tag).$$reentrantLock$$)return k;r.$$reentrantLock$$=!0,e.state=null!=e.tag.prototype&&"function"==typeof e.tag.prototype.view?new e.tag(e):e.tag(e)}if(e._state=e.state,null!=e.attrs&&b(e.attrs,e,t),b(e._state,e,t),e.instance=n.normalize(e._state.view.call(e.state,e)),e.instance===e)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null}function l(e,t,n,o,a,l,d){if(t!==n&&(null!=t||null!=n))if(null==t)r(e,n,0,n.length,a,l,d);else if(null==n)h(t,0,t.length,n);else{if(t.length===n.length){for(var v=!1,p=0;p<n.length;p++)if(null!=n[p]&&null!=t[p]){v=null==n[p].key&&null==t[p].key;break}if(v){for(p=0;p<t.length;p++)t[p]!==n[p]&&(null==t[p]&&null!=n[p]?i(e,n[p],a,d,c(t,p+1,l)):null==n[p]?h(t,p,p+1,n):s(e,t[p],n[p],a,c(t,p+1,l),o,d));return}}if(o=o||function(e,t){if(null!=e.pool&&Math.abs(e.pool.length-t.length)<=Math.abs(e.length-t.length)){var n=e[0]&&e[0].children&&e[0].children.length||0,r=e.pool[0]&&e.pool[0].children&&e.pool[0].children.length||0,i=t[0]&&t[0].children&&t[0].children.length||0;if(Math.abs(r-i)<=Math.abs(n-i))return!0}return!1}(t,n)){var m=t.pool;t=t.concat(t.pool)}for(var y,g=0,w=0,b=t.length-1,x=n.length-1;b>=g&&x>=w;){if((A=t[g])!==(k=n[w])||o)if(null==A)g++;else if(null==k)w++;else if(A.key===k.key){var E=null!=m&&g>=t.length-m.length||null==m&&o;w++,s(e,A,k,a,c(t,++g,l),E,d),o&&A.tag===k.tag&&f(e,u(A),l)}else{if((A=t[b])!==k||o)if(null==A)b--;else if(null==k)w++;else{if(A.key!==k.key)break;E=null!=m&&b>=t.length-m.length||null==m&&o;s(e,A,k,a,c(t,b+1,l),E,d),(o||w<x)&&f(e,u(A),c(t,g,l)),b--,w++}else b--,w++}else g++,w++}for(;b>=g&&x>=w;){var A,k;if((A=t[b])!==(k=n[x])||o)if(null==A)b--;else if(null==k)x--;else if(A.key===k.key){E=null!=m&&b>=t.length-m.length||null==m&&o;s(e,A,k,a,c(t,b+1,l),E,d),o&&A.tag===k.tag&&f(e,u(A),l),null!=A.dom&&(l=A.dom),b--,x--}else{if(y||(y=function(e,t){for(var n={},r=0,r=0;r<t;r++){var i=e[r];if(null!=i){var o=i.key;null!=o&&(n[o]=r)}}return n}(t,b)),null!=k){var S=y[k.key];if(null!=S){var _=t[S];E=null!=m&&S>=t.length-m.length||null==m&&o;s(e,_,k,a,c(t,b+1,l),o,d),f(e,u(_),l),t[S].skip=!0,null!=_.dom&&(l=_.dom)}else{l=i(e,k,a,d,l)}}x--}else b--,x--;if(x<w)break}r(e,n,w,x+1,a,l,d),h(t,g,b+1,n)}}function s(e,r,c,f,h,p,m){var E=r.tag;if(E===c.tag){if(c.state=r.state,c._state=r._state,c.events=r.events,!p&&function(e,t){var n,r;null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate&&(n=e.attrs.onbeforeupdate.call(e.state,e,t));"string"!=typeof e.tag&&"function"==typeof e._state.onbeforeupdate&&(r=e._state.onbeforeupdate.call(e.state,e,t));if(!(void 0===n&&void 0===r||n||r))return e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,!0;return!1}(c,r))return;if("string"==typeof E)switch(null!=c.attrs&&(p?(c.state={},b(c.attrs,c,f)):x(c.attrs,c,f)),E){case"#":!function(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children);t.dom=e.dom}(r,c);break;case"<":!function(e,t,n,r){t.children!==n.children?(u(t),o(e,n,r)):(n.dom=t.dom,n.domSize=t.domSize)}(e,r,c,h);break;case"[":!function(e,t,n,r,i,o,a){l(e,t.children,n.children,r,i,o,a);var s=0,u=n.children;if(n.dom=null,null!=u){for(var c=0;c<u.length;c++){var f=u[c];null!=f&&null!=f.dom&&(null==n.dom&&(n.dom=f.dom),s+=f.domSize||1)}1!==s&&(n.domSize=s)}}(e,r,c,p,f,h,m);break;default:!function(e,r,i,o,a){var s=r.dom=e.dom;a=t(r)||a,"textarea"===r.tag&&(null==r.attrs&&(r.attrs={}),null!=r.text&&(r.attrs.value=r.text,r.text=void 0));(function(e,t,n,r){if(null!=n)for(var i in n)y(e,i,t&&t[i],n[i],r);if(null!=t)for(var i in t)null!=n&&i in n||("className"===i&&(i="class"),"o"!==i[0]||"n"!==i[1]||g(i)?"key"!==i&&e.dom.removeAttribute(i):w(e,i,void 0))})(r,e.attrs,r.attrs,a),null!=r.attrs&&null!=r.attrs.contenteditable?d(r):null!=e.text&&null!=r.text&&""!==r.text?e.text.toString()!==r.text.toString()&&(e.dom.firstChild.nodeValue=r.text):(null!=e.text&&(e.children=[n("#",void 0,void 0,e.text,void 0,e.dom.firstChild)]),null!=r.text&&(r.children=[n("#",void 0,void 0,r.text,void 0,void 0)]),l(s,e.children,r.children,i,o,null,a))}(r,c,p,f,m)}else!function(e,t,r,o,l,u,c){if(u)a(r,o);else{if(r.instance=n.normalize(r._state.view.call(r.state,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");null!=r.attrs&&x(r.attrs,r,o),x(r._state,r,o)}null!=r.instance?(null==t.instance?i(e,r.instance,o,c,l):s(e,t.instance,r.instance,o,l,u,c),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=t.instance?(v(t.instance,null),r.dom=void 0,r.domSize=0):(r.dom=t.dom,r.domSize=t.domSize)}(e,r,c,f,h,p,m)}else v(r,null),i(e,c,f,m,h)}function u(e){var t=e.domSize;if(null!=t||null==e.dom){var n=A.createDocumentFragment();if(t>0){for(var r=e.dom;--t;)n.appendChild(r.nextSibling);n.insertBefore(r,n.firstChild)}return n}return e.dom}function c(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function f(e,t,n){n&&n.parentNode?e.insertBefore(t,n):e.appendChild(t)}function d(e){var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=e.text||null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted")}function h(e,t,n,r){for(var i=t;i<n;i++){var o=e[i];null!=o&&(o.skip?o.skip=!1:v(o,r))}}function v(e,t){function n(){if(++i===r&&(m(e),e.dom)){var n=e.domSize||1;if(n>1)for(var o=e.dom;--n;)p(o.nextSibling);p(e.dom),null==t||null!=e.domSize||function(e){return null!=e&&(e.oncreate||e.onupdate||e.onbeforeremove||e.onremove)}(e.attrs)||"string"!=typeof e.tag||(t.pool?t.pool.push(e):t.pool=[e])}}var r=1,i=0;if(e.attrs&&"function"==typeof e.attrs.onbeforeremove){null!=(o=e.attrs.onbeforeremove.call(e.state,e))&&"function"==typeof o.then&&(r++,o.then(n,n))}if("string"!=typeof e.tag&&"function"==typeof e._state.onbeforeremove){var o;null!=(o=e._state.onbeforeremove.call(e.state,e))&&"function"==typeof o.then&&(r++,o.then(n,n))}n()}function p(e){var t=e.parentNode;null!=t&&t.removeChild(e)}function m(e){if(e.attrs&&"function"==typeof e.attrs.onremove&&e.attrs.onremove.call(e.state,e),"string"!=typeof e.tag&&"function"==typeof e._state.onremove&&e._state.onremove.call(e.state,e),null!=e.instance)m(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var r=t[n];null!=r&&m(r)}}}function y(e,t,n,r,i){var o=e.dom;if("key"!==t&&"is"!==t&&(n!==r||function(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===A.activeElement}(e,t)||"object"==typeof r)&&void 0!==r&&!g(t)){var a=t.indexOf(":");if(a>-1&&"xlink"===t.substr(0,a))o.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(a+1),r);else if("o"===t[0]&&"n"===t[1]&&"function"==typeof r)w(e,t,r);else if("style"===t)!function(e,t,n){t===n&&(e.style.cssText="",t=null);if(null==n)e.style.cssText="";else if("string"==typeof n)e.style.cssText=n;else{"string"==typeof t&&(e.style.cssText="");for(var r in n)e.style[r]=n[r];if(null!=t&&"string"!=typeof t)for(var r in t)r in n||(e.style[r]="")}}(o,n,r);else if(t in o&&!function(e){return"href"===e||"list"===e||"form"===e||"width"===e||"height"===e}(t)&&void 0===i&&!function(e){return e.attrs.is||e.tag.indexOf("-")>-1}(e)){if("value"===t){var l=""+r;if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===l&&e.dom===A.activeElement)return;if("select"===e.tag)if(null===r){if(-1===e.dom.selectedIndex&&e.dom===A.activeElement)return}else if(null!==n&&e.dom.value===l&&e.dom===A.activeElement)return;if("option"===e.tag&&null!=n&&e.dom.value===l)return}if("input"===e.tag&&"type"===t)return void o.setAttribute(t,r);o[t]=r}else"boolean"==typeof r?r?o.setAttribute(t,""):o.removeAttribute(t):o.setAttribute("className"===t?"class":t,r)}}function g(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function w(e,t,n){var r=e.dom,i="function"!=typeof E?n:function(e){var t=n.call(r,e);return E.call(r,e),t};if(t in r)r[t]="function"==typeof n?i:null;else{var o=t.slice(2);if(void 0===e.events&&(e.events={}),e.events[t]===i)return;null!=e.events[t]&&r.removeEventListener(o,e.events[t],!1),"function"==typeof n&&(e.events[t]=i,r.addEventListener(o,e.events[t],!1))}}function b(e,t,n){"function"==typeof e.oninit&&e.oninit.call(t.state,t),"function"==typeof e.oncreate&&n.push(e.oncreate.bind(t.state,t))}function x(e,t,n){"function"==typeof e.onupdate&&n.push(e.onupdate.bind(t.state,t))}var E,A=e.document,k=A.createDocumentFragment(),S={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};return{render:function(e,t){if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var r=[],i=A.activeElement,o=e.namespaceURI;null==e.vnodes&&(e.textContent=""),Array.isArray(t)||(t=[t]),l(e,e.vnodes,n.normalizeChildren(t),!1,r,null,"http://www.w3.org/1999/xhtml"===o?void 0:o),e.vnodes=t;for(var a=0;a<r.length;a++)r[a]();null!=i&&A.activeElement!==i&&i.focus()},setEventCallback:function(e){return E=e}}},h=function(e){function t(e){var t=i.indexOf(e);t>-1&&i.splice(t,2)}function n(){for(var e=1;e<i.length;e+=2)i[e]()}var r=d(e);r.setEventCallback(function(e){!1===e.redraw?e.redraw=void 0:n()});var i=[];return{subscribe:function(e,n){t(e),i.push(e,function(e){var t=0,n=null,r="function"==typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(){var i=Date.now();0===t||i-t>=16?(t=i,e()):null===n&&(n=r(function(){n=null,e(),t=Date.now()},16-(i-t)))}}(n))},unsubscribe:t,redraw:n,render:r.render}}(window);f.setCompletionCallback(h.redraw);l.mount=function(e){return function(t,r){if(null===r)return e.render(t,[]),void e.unsubscribe(t);if(null==r.view&&"function"!=typeof r)throw new Error("m.mount(element, component) expects a component, not a vnode");e.subscribe(t,function(){e.render(t,n(r))}),e.redraw()}}(h);var v=s,p=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},i=0;i<t.length;i++){var o=t[i].split("="),a=decodeURIComponent(o[0]),l=2===o.length?decodeURIComponent(o[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var s=a.split(/\]\[?|\[/),u=n;a.indexOf("[")>-1&&s.pop();for(var c=0;c<s.length;c++){var f=s[c],d=s[c+1],h=""==d||!isNaN(parseInt(d,10)),v=c===s.length-1;if(""===f){null==r[a=s.slice(0,c).join()]&&(r[a]=0),f=r[a]++}null==u[f]&&(u[f]=v?l:h?[]:{}),u=u[f]}}return n},m=function(e){function t(t){var n=e.location[t].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);return"pathname"===t&&"/"!==n[0]&&(n="/"+n),n}function n(e,t,n){var r=e.indexOf("?"),i=e.indexOf("#"),o=r>-1?r:i>-1?i:e.length;if(r>-1){var a=i>-1?i:e.length,l=p(e.slice(r+1,a));for(var s in l)t[s]=l[s]}if(i>-1){var u=p(e.slice(i+1));for(var s in u)n[s]=u[s]}return e.slice(0,o)}var r,i="function"==typeof e.history.pushState,o="function"==typeof setImmediate?setImmediate:setTimeout,a={prefix:"#!"};return a.getPath=function(){switch(a.prefix.charAt(0)){case"#":return t("hash").slice(a.prefix.length);case"?":return t("search").slice(a.prefix.length)+t("hash");default:return t("pathname").slice(a.prefix.length)+t("search")+t("hash")}},a.setPath=function(t,r,o){var l={},s={};if(t=n(t,l,s),null!=r){for(var c in r)l[c]=r[c];t=t.replace(/:([^\/]+)/g,function(e,t){return delete l[t],r[t]})}var f=u(l);f&&(t+="?"+f);var d=u(s);if(d&&(t+="#"+d),i){var h=o?o.state:null,v=o?o.title:null;e.onpopstate(),o&&o.replace?e.history.replaceState(h,v,a.prefix+t):e.history.pushState(h,v,a.prefix+t)}else e.location.href=a.prefix+t},a.defineRoutes=function(t,l,s){function u(){var r=a.getPath(),i={},o=n(r,i,i),u=e.history.state;if(null!=u)for(var c in u)i[c]=u[c];for(var f in t){var d=new RegExp("^"+f.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(d.test(o))return void o.replace(d,function(){for(var e=f.match(/:[^\/]+/g)||[],n=[].slice.call(arguments,1,-2),o=0;o<e.length;o++)i[e[o].replace(/:|\./g,"")]=decodeURIComponent(n[o]);l(t[f],i,r,f)})}s(r,i)}i?e.onpopstate=function(e){return function(){null==r&&(r=o(function(){r=null,e()}))}}(u):"#"===a.prefix.charAt(0)&&(e.onhashchange=u),u()},a};l.route=function(e,t){var r,i,o,a,l,s=m(e),u=function(e,u,c){if(null==e)throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined");var f=function(){null!=r&&t.render(e,r(n(i,o.key,o)))},d=function(e){if(e===u)throw new Error("Could not resolve default route "+u);s.setPath(u,null,{replace:!0})};s.defineRoutes(c,function(e,t,n){var s=l=function(e,u){s===l&&(i=null==u||"function"!=typeof u.view&&"function"!=typeof u?"div":u,o=t,a=n,l=null,r=(e.render||function(e){return e}).bind(e),f())};e.view||"function"==typeof e?s({},e):e.onmatch?v.resolve(e.onmatch(t,n)).then(function(t){s(e,t)},d):s(e,"div")},d),t.subscribe(e,f)};return u.set=function(e,t,n){null!=l&&((n=n||{}).replace=!0),l=null,s.setPath(e,t,n)},u.get=function(){return a},u.prefix=function(e){s.prefix=e},u.link=function(e){e.dom.setAttribute("href",s.prefix+e.attrs.href),e.dom.onclick=function(e){if(!(e.ctrlKey||e.metaKey||e.shiftKey||2===e.which)){e.preventDefault(),e.redraw=!1;var t=this.getAttribute("href");0===t.indexOf(s.prefix)&&(t=t.slice(s.prefix.length)),u.set(t,void 0,void 0)}}},u.param=function(e){return void 0!==o&&void 0!==e?o[e]:o},u}(window,h),l.withAttr=function(e,t,n){return function(r){t.call(n||this,e in r.currentTarget?r.currentTarget[e]:r.currentTarget.getAttribute(e))}};var y=d(window);l.render=y.render,l.redraw=h.redraw,l.request=f.request,l.jsonp=f.jsonp,l.parseQueryString=p,l.buildQueryString=u,l.version="1.1.5",l.vnode=n,void 0!==t?t.exports=l:window.m=l}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,n,r){!function(e){"use strict";function r(){}function i(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function o(e){return function(){return this[e].apply(this,arguments)}}function a(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!=typeof e)&&a(e.listener)}var l=r.prototype,s=e.EventEmitter;l.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},l.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},l.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&((t={})[e]=n),t||n},l.addListener=function(e,t){if(!a(t))throw new TypeError("listener must be a function");var n,r=this.getListenersAsObject(e),o="object"==typeof t;for(n in r)r.hasOwnProperty(n)&&-1===i(r[n],t)&&r[n].push(o?t:{listener:t,once:!1});return this},l.on=o("addListener"),l.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},l.once=o("addOnceListener"),l.defineEvent=function(e){return this.getListeners(e),this},l.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},l.removeListener=function(e,t){var n,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&-1!==(n=i(o[r],t))&&o[r].splice(n,1);return this},l.off=o("removeListener"),l.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},l.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},l.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,a=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):a.call(this,r,i));return this},l.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if(e instanceof RegExp)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},l.removeAllListeners=o("removeEvent"),l.emitEvent=function(e,t){var n,r,i,o,a=this.getListenersAsObject(e);for(o in a)if(a.hasOwnProperty(o))for(n=a[o].slice(0),i=0;i<n.length;i++)!0===(r=n[i]).once&&this.removeListener(e,r.listener),r.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,r.listener);return this},l.trigger=o("emitEvent"),l.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},l.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},l._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},l._getEvents=function(){return this._events||(this._events={})},r.noConflict=function(){return e.EventEmitter=s,r},"function"==typeof t&&t.amd?t(function(){return r}):"object"==typeof n&&n.exports?n.exports=r:e.EventEmitter=r}(this||{})},{}]},{},[1])}();
 
2
  //# sourceMappingURL=admin.min.js.map
assets/js/admin.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["admin.js"],"names":["require","undefined","define","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","m","window","EventEmitter","context","document","getElementById","events","tabs","helpers","settings","ListFetcher","mount","mc4wp","deps","mithril","./admin/helpers.js","./admin/list-fetcher.js","./admin/settings.js","./admin/tabs.js","wolfy87-eventemitter","2","toggleElement","selector","elements","querySelectorAll","show","clientHeight","style","display","bindEventToElement","element","event","handler","addEventListener","attachEvent","bindEventToElements","Array","prototype","forEach","debounce","func","wait","immediate","timeout","this","args","arguments","later","apply","callNow","clearTimeout","setTimeout","showIfElements","getAttribute","checked","value","conditionMet","config","hide","visibility","opacity","inputs","inputElement","removeAttribute","setAttribute","JSON","parse","parentElements","parentElement","3","working","done","mailchimp","api_connected","lists","fetch","$","jQuery","mc4wp_vars","i18n","preventDefault","post","ajaxurl","action","data","success","location","reload","bind","fail","always","redraw","view","method","onsubmit","type","fetching_mailchimp_lists","renew_mailchimp_lists","className","disabled","trust","fetching_mailchimp_lists_can_take_a_while","fetching_mailchimp_lists_done","fetching_mailchimp_lists_error","4","_typeof","Symbol","iterator","obj","constructor","Settings","getSelectedListsWhere","searchKey","searchValue","selectedLists","filter","el","getSelectedLists","updateSelectedLists","listInputs","input","push","trigger","toggleVisibleLists","rows","replace","querySelector","on","5","URL","Tabs","get","id","_open","tab","updateState","$tabs","removeClass","css","$tabNavs","nav","blur","url","setParameter","href","history","pushState","title","refererField","tb_remove","forms","editor","refresh","split","switchTab","tabId","match","urlParams","returnValue","$context","find","each","substring","first","text","open","click","body","activeTab","replaceState","state","./url.js","6","query","hasOwnProperty","b","decodeURIComponent","build","ret","d","encodeURIComponent","join","key","7","global","Vnode","tag","attrs0","children","dom","attrs","domSize","_state","instance","skip","compileSelector","classes","selectorParser","exec","attrValue","selectorCache","execSelector","childList","hasAttrs","class","hasOwn","isArray","hyperscript","start","cached","normalized","normalizeChildren","throttle","callback","last","pending","requestAnimationFrame","now","Date","normalize","node","html","fragment","attrs1","PromisePolyfill","executor","list","shouldAbsorb","execute","then","callAsync","console","error","resolvers","rejectors","retry","self","TypeError","executeOnce","rejectCurrent","run","fn","runs","onerror","resolveCurrent","_instance","setImmediate","onFulfilled","onRejection","handle","next","resolveNext","rejectNext","promise","resolve","reject","catch","all","total","count","values","consume","race","Promise","buildQueryString","object","destructure","key0","Object","toString","FILE_PROTOCOL_REGEX","RegExp","requestService","$window","setCompletionCallback","oncompletion","finalizer","complete","finalize","promise0","then0","extra","request","toUpperCase","useBody","serialize","FormData","stringify","deserialize","extract","interpolate","assemble","xhr","XMLHttpRequest","aborted","_abort","abort","async","user","password","headers","setRequestHeader","withCredentials","onreadystatechange","readyState","response","status","test","cast","responseText","send","background","jsonp","callbackName","Math","round","random","callbackCount","script","createElement","parentNode","removeChild","callbackKey","src","documentElement","appendChild","tokens","slice","querystring","indexOf","type0","coreRenderer","setEventCallback","onevent","getNameSpace","vnode","xmlns","nameSpace","createNodes","parent","vnodes","end","hooks","nextSibling","ns","createNode","createComponent","initLifecycle","createText","createHTML","createFragment","$doc","createTextNode","insertNode","match1","parent1","caption","thead","tbody","tfoot","tr","th","td","colgroup","col","temp","innerHTML","firstChild","childNodes","child","createDocumentFragment","attrs2","is","createElementNS","setAttrs","contenteditable","setContentEditable","textContent","setLateAttrs","initComponent","sentinel","create","$$reentrantLock$$","$emptyFragment","updateNodes","old","recycling","removeNodes","isUnkeyed","getNextSibling","updateNode","isRecyclable","pool","concat","map","oldStart","oldEnd","v","shouldRecycle","toFragment","getKeyMap","oldIndex","movable","oldTag","shouldNotUpdate","updateLifecycle","updateText","updateHTML","updateFragment","updateElement","updateComponent","removeNode","nodeValue","updateAttrs","abs","oldChildrenLength","poolChildrenLength","vnodesChildrenLength","key2","count0","insertBefore","content","continuation","called","expected","onremove","removeNodeFromDOM","hasIntegrationMethods","onbeforeremove","result","setAttr","isFormAttribute","isLifecycleMethod","nsLastIndex","substr","setAttributeNS","updateEvent","updateStyle","isAttribute","isCustomElement","normalized0","activeElement","selectedIndex","attr","source","oncreate","onupdate","cssText","eventName","removeEventListener","oninit","forceVnodeUpdate","forceComponentUpdate","onbeforeupdate","render","active","namespace","namespaceURI","focus","svg","math","redrawService","subscribe","key1","unsubscribe","callbacks","index","splice","renderService","redrawService0","root","component","run0","parseQueryString","string","charAt","entries","data0","counters","entry","key5","levels","cursor","pop","j","level","nextLevel","isNumber","isNaN","parseInt","isValue","coreRouter","normalize1","fragment0","debounceAsync","callback0","asyncId","callAsync0","parsePath","path","queryData","hashData","queryIndex","hashIndex","pathEnd","queryEnd","queryParams","key4","hashParams","supportsPushState","router","prefix","getPath","setPath","options","match2","token","hash","onpopstate","defineRoutes","routes","resolveRoute","params","pathname","k","route0","matcher","keys","onhashchange","route","render1","attrs3","currentPath","lastUpdate","routeService","identity","defaultRoute","run1","bail","payload","update","routeResolver","comp","onmatch","resolved","set","prefix0","link","vnode1","onclick","ctrlKey","metaKey","shiftKey","which","param","key3","withAttr","attrName","callback1","currentTarget","_28","version","8","indexOfListener","listeners","listener","alias","name","isValidListener","proto","originalGlobalValue","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","removeEvent","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","noConflict","amd"],"mappings":"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","file":"admin.min.js","sourcesContent":["(function () { var require = undefined; var define = undefined; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\n// dependencies\n\nvar m = window.m = require('mithril');\nvar EventEmitter = require('wolfy87-eventemitter');\n\n// vars\nvar context = document.getElementById('mc4wp-admin');\nvar events = new EventEmitter();\nvar tabs = require('./admin/tabs.js')(context);\nvar helpers = require('./admin/helpers.js');\nvar settings = require('./admin/settings.js')(context, helpers, events);\n\n// list fetcher\nvar ListFetcher = require('./admin/list-fetcher.js');\nvar mount = document.getElementById('mc4wp-list-fetcher');\nif (mount) {\n m.mount(mount, new ListFetcher());\n}\n\n// expose some things\nwindow.mc4wp = window.mc4wp || {};\nwindow.mc4wp.deps = window.mc4wp.deps || {};\nwindow.mc4wp.deps.mithril = m;\nwindow.mc4wp.helpers = helpers;\nwindow.mc4wp.events = events;\nwindow.mc4wp.settings = settings;\nwindow.mc4wp.tabs = tabs;\n\n},{\"./admin/helpers.js\":2,\"./admin/list-fetcher.js\":3,\"./admin/settings.js\":4,\"./admin/tabs.js\":5,\"mithril\":7,\"wolfy87-eventemitter\":8}],2:[function(require,module,exports){\n'use strict';\n\nvar helpers = {};\n\nhelpers.toggleElement = function (selector) {\n\tvar elements = document.querySelectorAll(selector);\n\tfor (var i = 0; i < elements.length; i++) {\n\t\tvar show = elements[i].clientHeight <= 0;\n\t\telements[i].style.display = show ? '' : 'none';\n\t}\n};\n\nhelpers.bindEventToElement = function (element, event, handler) {\n\tif (element.addEventListener) {\n\t\telement.addEventListener(event, handler);\n\t} else if (element.attachEvent) {\n\t\telement.attachEvent('on' + event, handler);\n\t}\n};\n\nhelpers.bindEventToElements = function (elements, event, handler) {\n\tArray.prototype.forEach.call(elements, function (element) {\n\t\thelpers.bindEventToElement(element, event, handler);\n\t});\n};\n\n// polling\nhelpers.debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\n/**\n * Showif.js\n */\n(function () {\n\tvar showIfElements = document.querySelectorAll('[data-showif]');\n\n\t// dependent elements\n\tArray.prototype.forEach.call(showIfElements, function (element) {\n\t\tvar config = JSON.parse(element.getAttribute('data-showif'));\n\t\tvar parentElements = document.querySelectorAll('[name=\"' + config.element + '\"]');\n\t\tvar inputs = element.querySelectorAll('input,select,textarea:not([readonly])');\n\t\tvar hide = config.hide === undefined || config.hide;\n\n\t\tfunction toggleElement() {\n\n\t\t\t// do nothing with unchecked radio inputs\n\t\t\tif (this.getAttribute('type') === \"radio\" && !this.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar value = this.getAttribute(\"type\") === \"checkbox\" ? this.checked : this.value;\n\t\t\tvar conditionMet = value == config.value;\n\n\t\t\tif (hide) {\n\t\t\t\telement.style.display = conditionMet ? '' : 'none';\n\t\t\t\telement.style.visibility = conditionMet ? '' : 'hidden';\n\t\t\t} else {\n\t\t\t\telement.style.opacity = conditionMet ? '' : '0.4';\n\t\t\t}\n\n\t\t\t// disable input fields to stop sending their values to server\n\t\t\tArray.prototype.forEach.call(inputs, function (inputElement) {\n\t\t\t\tconditionMet ? inputElement.removeAttribute('readonly') : inputElement.setAttribute('readonly', 'readonly');\n\t\t\t});\n\t\t}\n\n\t\t// find checked element and call toggleElement function\n\t\tArray.prototype.forEach.call(parentElements, function (parentElement) {\n\t\t\ttoggleElement.call(parentElement);\n\t\t});\n\n\t\t// bind on all changes\n\t\thelpers.bindEventToElements(parentElements, 'change', toggleElement);\n\t});\n})();\n\nmodule.exports = helpers;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar $ = window.jQuery;\nvar config = mc4wp_vars;\nvar i18n = config.i18n;\n\nfunction ListFetcher() {\n this.working = false;\n this.done = false;\n\n // start fetching right away when no lists but api key given\n if (config.mailchimp.api_connected && config.mailchimp.lists.length === 0) {\n this.fetch();\n }\n}\n\nListFetcher.prototype.fetch = function (e) {\n e && e.preventDefault();\n\n this.working = true;\n this.done = false;\n\n $.post(ajaxurl, {\n action: \"mc4wp_renew_mailchimp_lists\",\n timeout: 180000\n }).done(function (data) {\n this.success = true;\n\n if (data) {\n window.setTimeout(function () {\n window.location.reload();\n }, 3000);\n }\n }.bind(this)).fail(function (data) {\n this.success = false;\n }.bind(this)).always(function (data) {\n this.working = false;\n this.done = true;\n\n m.redraw();\n }.bind(this));\n};\n\nListFetcher.prototype.view = function () {\n return m('form', {\n method: \"POST\",\n onsubmit: this.fetch.bind(this)\n }, [m('p', [m('input', {\n type: \"submit\",\n value: this.working ? i18n.fetching_mailchimp_lists : i18n.renew_mailchimp_lists,\n className: \"button\",\n disabled: !!this.working\n }), m.trust(' &nbsp; '), this.working ? [m('span.mc4wp-loader', \"Loading...\"), m.trust(' &nbsp; '), m('em.help', i18n.fetching_mailchimp_lists_can_take_a_while)] : '', this.done ? [this.success ? m('em.help.green', i18n.fetching_mailchimp_lists_done) : m('em.help.red', i18n.fetching_mailchimp_lists_error)] : ''])]);\n};\n\nmodule.exports = ListFetcher;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar Settings = function Settings(context, helpers, events) {\n\t'use strict';\n\n\t// vars\n\n\tvar form = context.querySelector('form');\n\tvar listInputs = context.querySelectorAll('.mc4wp-list-input');\n\tvar lists = mc4wp_vars.mailchimp.lists;\n\tvar selectedLists = [];\n\n\t// functions\n\tfunction getSelectedListsWhere(searchKey, searchValue) {\n\t\treturn selectedLists.filter(function (el) {\n\t\t\treturn el[searchKey] === searchValue;\n\t\t});\n\t}\n\n\tfunction getSelectedLists() {\n\t\treturn selectedLists;\n\t}\n\n\tfunction updateSelectedLists() {\n\t\tselectedLists = [];\n\n\t\tArray.prototype.forEach.call(listInputs, function (input) {\n\t\t\t// skip unchecked checkboxes\n\t\t\tif (typeof input.checked === \"boolean\" && !input.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_typeof(lists[input.value]) === \"object\") {\n\t\t\t\tselectedLists.push(lists[input.value]);\n\t\t\t}\n\t\t});\n\n\t\tevents.trigger('selectedLists.change', [selectedLists]);\n\t\treturn selectedLists;\n\t}\n\n\tfunction toggleVisibleLists() {\n\t\tvar rows = document.querySelectorAll('.lists--only-selected > *');\n\t\tArray.prototype.forEach.call(rows, function (el) {\n\n\t\t\tvar listId = el.getAttribute('data-list-id');\n\t\t\tvar isSelected = getSelectedListsWhere('id', listId).length > 0;\n\n\t\t\tif (isSelected) {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class').replace('hidden', ''));\n\t\t\t} else {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class') + \" hidden\");\n\t\t\t}\n\t\t});\n\t}\n\n\tevents.on('selectedLists.change', toggleVisibleLists);\n\thelpers.bindEventToElements(listInputs, 'change', updateSelectedLists);\n\n\tupdateSelectedLists();\n\n\treturn {\n\t\tgetSelectedLists: getSelectedLists\n\t};\n};\n\nmodule.exports = Settings;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nvar URL = require('./url.js');\n\n// Tabs\nvar Tabs = function Tabs(context) {\n\n\t// TODO: last piece of jQuery... can we get rid of it?\n\tvar $ = window.jQuery;\n\n\tvar $context = $(context);\n\tvar $tabs = $context.find('.tab');\n\tvar $tabNavs = $context.find('.nav-tab');\n\tvar refererField = context.querySelector('input[name=\"_wp_http_referer\"]');\n\tvar tabs = [];\n\n\t$.each($tabs, function (i, t) {\n\t\tvar id = t.id.substring(4);\n\t\tvar title = $(t).find('h2').first().text();\n\n\t\ttabs.push({\n\t\t\tid: id,\n\t\t\ttitle: title,\n\t\t\telement: t,\n\t\t\tnav: context.querySelectorAll('.nav-tab-' + id),\n\t\t\topen: function open() {\n\t\t\t\treturn _open(id);\n\t\t\t}\n\t\t});\n\t});\n\n\tfunction get(id) {\n\n\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].id === id) {\n\t\t\t\treturn tabs[i];\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tfunction _open(tab, updateState) {\n\n\t\t// make sure we have a tab object\n\t\tif (typeof tab === \"string\") {\n\t\t\ttab = get(tab);\n\t\t}\n\n\t\tif (!tab) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// should we update state?\n\t\tif (updateState == undefined) {\n\t\t\tupdateState = true;\n\t\t}\n\n\t\t// hide all tabs & remove active class\n\t\t$tabs.removeClass('tab-active').css('display', 'none');\n\t\t$tabNavs.removeClass('nav-tab-active');\n\n\t\t// add `nav-tab-active` to this tab\n\t\tArray.prototype.forEach.call(tab.nav, function (nav) {\n\t\t\tnav.className += \" nav-tab-active\";\n\t\t\tnav.blur();\n\t\t});\n\n\t\t// show target tab\n\t\ttab.element.style.display = 'block';\n\t\ttab.element.className += \" tab-active\";\n\n\t\t// create new URL\n\t\tvar url = URL.setParameter(window.location.href, \"tab\", tab.id);\n\n\t\t// update hash\n\t\tif (history.pushState && updateState) {\n\t\t\thistory.pushState(tab.id, '', url);\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\n\t\t// update referer field\n\t\trefererField.value = url;\n\n\t\t// if thickbox is open, close it.\n\t\tif (typeof tb_remove === \"function\") {\n\t\t\ttb_remove();\n\t\t}\n\n\t\t// refresh editor after switching tabs\n\t\t// TODO: decouple this! law of demeter etc.\n\t\tif (tab.id === 'fields' && window.mc4wp && window.mc4wp.forms && window.mc4wp.forms.editor) {\n\t\t\tmc4wp.forms.editor.refresh();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction title(tab) {\n\t\tvar title = document.title.split('-');\n\t\tdocument.title = document.title.replace(title[0], tab.title + \" \");\n\t}\n\n\tfunction switchTab(e) {\n\t\te = e || window.event;\n\n\t\t// get from data attribute\n\t\tvar tabId = this.getAttribute('data-tab');\n\n\t\t// get from classname\n\t\tif (!tabId) {\n\t\t\tvar match = this.className.match(/nav-tab-(\\w+)?/);\n\t\t\tif (match) {\n\t\t\t\ttabId = match[1];\n\t\t\t}\n\t\t}\n\n\t\t// get from href\n\t\tif (!tabId) {\n\t\t\tvar urlParams = URL.parse(this.href);\n\t\t\tif (!urlParams.tab) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttabId = urlParams.tab;\n\t\t}\n\n\t\tvar opened = _open(tabId);\n\n\t\tif (opened) {\n\t\t\te.preventDefault();\n\t\t\te.returnValue = false;\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction init() {\n\n\t\t// check for current tab\n\t\tif (!history.pushState) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar activeTab = $tabs.filter(':visible').get(0);\n\t\tif (!activeTab) {\n\t\t\treturn;\n\t\t}\n\t\tvar tab = get(activeTab.id.substring(4));\n\t\tif (!tab) return;\n\n\t\t// check if tab is in html5 history\n\t\tif (history.replaceState && history.state === null) {\n\t\t\thistory.replaceState(tab.id, '');\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\t}\n\n\t$tabNavs.click(switchTab);\n\t$(document.body).on('click', '.tab-link', switchTab);\n\tinit();\n\n\tif (window.addEventListener && history.pushState) {\n\t\twindow.addEventListener('popstate', function (e) {\n\t\t\tif (!e.state) return true;\n\t\t\tvar tabId = e.state;\n\t\t\treturn _open(tabId, false);\n\t\t});\n\t}\n\n\treturn {\n\t\topen: _open,\n\t\tget: get\n\t};\n};\n\nmodule.exports = Tabs;\n\n},{\"./url.js\":6}],6:[function(require,module,exports){\n'use strict';\n\nvar URL = {\n\tparse: function parse(url) {\n\t\tvar query = {};\n\t\tvar a = url.split('&');\n\t\tfor (var i in a) {\n\t\t\tif (!a.hasOwnProperty(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar b = a[i].split('=');\n\t\t\tquery[decodeURIComponent(b[0])] = decodeURIComponent(b[1]);\n\t\t}\n\n\t\treturn query;\n\t},\n\tbuild: function build(data) {\n\t\tvar ret = [];\n\t\tfor (var d in data) {\n\t\t\tret.push(d + \"=\" + encodeURIComponent(data[d]));\n\t\t}return ret.join(\"&\");\n\t},\n\tsetParameter: function setParameter(url, key, value) {\n\t\tvar data = URL.parse(url);\n\t\tdata[key] = value;\n\t\treturn URL.build(data);\n\t}\n};\n\nmodule.exports = URL;\n\n},{}],7:[function(require,module,exports){\n(function (global){\n;(function() {\n\"use strict\"\nfunction Vnode(tag, key, attrs0, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: undefined, _state: undefined, events: undefined, instance: undefined, skip: false}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node != null && typeof node !== \"object\") return Vnode(\"#\", undefined, undefined, node === false ? \"\" : node, undefined, undefined)\n\treturn node\n}\nVnode.normalizeChildren = function normalizeChildren(children) {\n\tfor (var i = 0; i < children.length; i++) {\n\t\tchildren[i] = Vnode.normalize(children[i])\n\t}\n\treturn children\n}\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue === \"\" ? attrValue : attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\nfunction execSelector(state, attrs, children) {\n\tvar hasAttrs = false, childList, text\n\tvar className = attrs.className || attrs.class\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key)) {\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className !== undefined) {\n\t\tif (attrs.class !== undefined) {\n\t\t\tattrs.class = undefined\n\t\t\tattrs.className = className\n\t\t}\n\t\tif (state.attrs.className != null) {\n\t\t\tattrs.className = state.attrs.className + \" \" + className\n\t\t}\n\t}\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\thasAttrs = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\ttext = children[0].children\n\t} else {\n\t\tchildList = children\n\t}\n\treturn Vnode(state.tag, attrs.key, hasAttrs ? attrs : undefined, childList, text)\n}\nfunction hyperscript(selector) {\n\t// Because sloppy mode sucks\n\tvar attrs = arguments[1], start = 2, children\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\tif (typeof selector === \"string\") {\n\t\tvar cached = selectorCache[selector] || compileSelector(selector)\n\t}\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = 1\n\t}\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\tvar normalized = Vnode.normalizeChildren(children)\n\tif (typeof selector === \"string\") {\n\t\treturn execSelector(cached, attrs, normalized)\n\t} else {\n\t\treturn Vnode(selector, attrs.key, attrs, normalized)\n\t}\n}\nhyperscript.trust = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\nhyperscript.fragment = function(attrs1, children) {\n\treturn Vnode(\"[\", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined)\n}\nvar m = hyperscript\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") window.Promise = PromisePolyfill\n\tvar PromisePolyfill = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") global.Promise = PromisePolyfill\n\tvar PromisePolyfill = global.Promise\n} else {\n}\nvar buildQueryString = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\tvar args = []\n\tfor (var key0 in object) {\n\t\tdestructure(key0, object[key0])\n\t}\n\treturn args.join(\"&\")\n\tfunction destructure(key0, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key0) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\nvar FILE_PROTOCOL_REGEX = new RegExp(\"^file://\", \"i\")\nvar _8 = function($window, Promise) {\n\tvar callbackCount = 0\n\tvar oncompletion\n\tfunction setCompletionCallback(callback) {oncompletion = callback}\n\tfunction finalizer() {\n\t\tvar count = 0\n\t\tfunction complete() {if (--count === 0 && typeof oncompletion === \"function\") oncompletion()}\n\t\treturn function finalize(promise0) {\n\t\t\tvar then0 = promise0.then\n\t\t\tpromise0.then = function() {\n\t\t\t\tcount++\n\t\t\t\tvar next = then0.apply(promise0, arguments)\n\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\tcomplete()\n\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t})\n\t\t\t\treturn finalize(next)\n\t\t\t}\n\t\t\treturn promise0\n\t\t}\n\t}\n\tfunction normalize(args, extra) {\n\t\tif (typeof args === \"string\") {\n\t\t\tvar url = args\n\t\t\targs = extra || {}\n\t\t\tif (args.url == null) args.url = url\n\t\t}\n\t\treturn args\n\t}\n\tfunction request(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tif (args.method == null) args.method = \"GET\"\n\t\t\targs.method = args.method.toUpperCase()\n\t\t\tvar useBody = (args.method === \"GET\" || args.method === \"TRACE\") ? false : (typeof args.useBody === \"boolean\" ? args.useBody : true)\n\t\t\tif (typeof args.serialize !== \"function\") args.serialize = typeof FormData !== \"undefined\" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify\n\t\t\tif (typeof args.deserialize !== \"function\") args.deserialize = deserialize\n\t\t\tif (typeof args.extract !== \"function\") args.extract = extract\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\tif (useBody) args.data = args.serialize(args.data)\n\t\t\telse args.url = assemble(args.url, args.data)\n\t\t\tvar xhr = new $window.XMLHttpRequest(),\n\t\t\t\taborted = false,\n\t\t\t\t_abort = xhr.abort\n\t\t\txhr.abort = function abort() {\n\t\t\t\taborted = true\n\t\t\t\t_abort.call(xhr)\n\t\t\t}\n\t\t\txhr.open(args.method, args.url, typeof args.async === \"boolean\" ? args.async : true, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\t\t\tif (args.serialize === JSON.stringify && useBody && !(args.headers && args.headers.hasOwnProperty(\"Content-Type\"))) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (args.deserialize === deserialize && !(args.headers && args.headers.hasOwnProperty(\"Accept\"))) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tfor (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t}\n\t\t\tif (typeof args.config === \"function\") xhr = args.config(xhr, args) || xhr\n\t\t\txhr.onreadystatechange = function() {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif(aborted) return\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args))\n\t\t\t\t\t\tif ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || FILE_PROTOCOL_REGEX.test(args.url)) {\n\t\t\t\t\t\t\tresolve(cast(args.type, response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar error = new Error(xhr.responseText)\n\t\t\t\t\t\t\tfor (var key in response) error[key] = response[key]\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useBody && (args.data != null)) xhr.send(args.data)\n\t\t\telse xhr.send()\n\t\t})\n\t\treturn args.background === true ? promise0 : finalize(promise0)\n\t}\n\tfunction jsonp(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(cast(args.type, data))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tif (args.data == null) args.data = {}\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\targs.data[args.callbackKey || \"callback\"] = callbackName\n\t\t\tscript.src = assemble(args.url, args.data)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t})\n\t\treturn args.background === true? promise0 : finalize(promise0)\n\t}\n\tfunction interpolate(url, data) {\n\t\tif (data == null) return url\n\t\tvar tokens = url.match(/:[^\\/]+/gi) || []\n\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\tvar key = tokens[i].slice(1)\n\t\t\tif (data[key] != null) {\n\t\t\t\turl = url.replace(tokens[i], data[key])\n\t\t\t}\n\t\t}\n\t\treturn url\n\t}\n\tfunction assemble(url, data) {\n\t\tvar querystring = buildQueryString(data)\n\t\tif (querystring !== \"\") {\n\t\t\tvar prefix = url.indexOf(\"?\") < 0 ? \"?\" : \"&\"\n\t\t\turl += prefix + querystring\n\t\t}\n\t\treturn url\n\t}\n\tfunction deserialize(data) {\n\t\ttry {return data !== \"\" ? JSON.parse(data) : null}\n\t\tcatch (e) {throw new Error(data)}\n\t}\n\tfunction extract(xhr) {return xhr.responseText}\n\tfunction cast(type0, data) {\n\t\tif (typeof type0 === \"function\") {\n\t\t\tif (Array.isArray(data)) {\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\tdata[i] = new type0(data[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\telse return new type0(data)\n\t\t}\n\t\treturn data\n\t}\n\treturn {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback}\n}\nvar requestService = _8(window, PromisePolyfill)\nvar coreRenderer = function($window) {\n\tvar $doc = $window.document\n\tvar $emptyFragment = $doc.createDocumentFragment()\n\tvar nameSpace = {\n\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\tmath: \"http://www.w3.org/1998/Math/MathML\"\n\t}\n\tvar onevent\n\tfunction setEventCallback(callback) {return onevent = callback}\n\tfunction getNameSpace(vnode) {\n\t\treturn vnode.attrs && vnode.attrs.xmlns || nameSpace[vnode.tag]\n\t}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": return createText(parent, vnode, nextSibling)\n\t\t\t\tcase \"<\": return createHTML(parent, vnode, nextSibling)\n\t\t\t\tcase \"[\": return createFragment(parent, vnode, hooks, ns, nextSibling)\n\t\t\t\tdefault: return createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse return createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t\treturn vnode.dom\n\t}\n\tfunction createHTML(parent, vnode, nextSibling) {\n\t\tvar match1 = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\tvar parent1 = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}[match1[1]] || \"div\"\n\t\tvar temp = $doc.createElement(parent1)\n\t\ttemp.innerHTML = vnode.children\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tvar attrs2 = vnode.attrs\n\t\tvar is = attrs2 && attrs2.is\n\t\tns = getNameSpace(vnode) || ns\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\t\tif (attrs2 != null) {\n\t\t\tsetAttrs(vnode, attrs2, ns)\n\t\t}\n\t\tinsertNode(parent, element, nextSibling)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tsetLateAttrs(vnode)\n\t\t\t}\n\t\t}\n\t\treturn element\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tvnode._state = vnode.state\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tinitLifecycle(vnode._state, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tvar element = createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t\tinsertNode(parent, element, nextSibling)\n\t\t\treturn element\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t\treturn $emptyFragment\n\t\t}\n\t}\n\t//update\n\tfunction updateNodes(parent, old, vnodes, recycling, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)\n\t\telse if (vnodes == null) removeNodes(old, 0, old.length, vnodes)\n\t\telse {\n\t\t\tif (old.length === vnodes.length) {\n\t\t\t\tvar isUnkeyed = false\n\t\t\t\tfor (var i = 0; i < vnodes.length; i++) {\n\t\t\t\t\tif (vnodes[i] != null && old[i] != null) {\n\t\t\t\t\t\tisUnkeyed = vnodes[i].key == null && old[i].key == null\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isUnkeyed) {\n\t\t\t\t\tfor (var i = 0; i < old.length; i++) {\n\t\t\t\t\t\tif (old[i] === vnodes[i]) continue\n\t\t\t\t\t\telse if (old[i] == null && vnodes[i] != null) createNode(parent, vnodes[i], hooks, ns, getNextSibling(old, i + 1, nextSibling))\n\t\t\t\t\t\telse if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes)\n\t\t\t\t\t\telse updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), recycling, ns)\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\trecycling = recycling || isRecyclable(old, vnodes)\n\t\t\tif (recycling) {\n\t\t\t\tvar pool = old.pool\n\t\t\t\told = old.concat(old.pool)\n\t\t\t}\n\t\t\tvar oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldStart], v = vnodes[start]\n\t\t\t\tif (o === v && !recycling) oldStart++, start++\n\t\t\t\telse if (o == null) oldStart++\n\t\t\t\telse if (v == null) start++\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldStart >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar o = old[oldEnd]\n\t\t\t\t\tif (o === v && !recycling) oldEnd--, start++\n\t\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\t\telse if (v == null) start++\n\t\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\t\tif (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling))\n\t\t\t\t\t\toldEnd--, start++\n\t\t\t\t\t}\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldEnd], v = vnodes[end]\n\t\t\t\tif (o === v && !recycling) oldEnd--, end--\n\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\telse if (v == null) end--\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t\tif (o.dom != null) nextSibling = o.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!map) map = getKeyMap(old, oldEnd)\n\t\t\t\t\tif (v != null) {\n\t\t\t\t\t\tvar oldIndex = map[v.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tvar movable = old[oldIndex]\n\t\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldIndex >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\t\tupdateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns)\n\t\t\t\t\t\t\tinsertNode(parent, toFragment(movable), nextSibling)\n\t\t\t\t\t\t\told[oldIndex].skip = true\n\t\t\t\t\t\t\tif (movable.dom != null) nextSibling = movable.dom\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar dom = createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\tnextSibling = dom\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tend--\n\t\t\t\t}\n\t\t\t\tif (end < start) break\n\t\t\t}\n\t\t\tcreateNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\tremoveNodes(old, oldStart, oldEnd + 1, vnodes)\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode._state = old._state\n\t\t\tvnode.events = old.events\n\t\t\tif (!recycling && shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tif (recycling) {\n\t\t\t\t\t\tvnode.state = {}\n\t\t\t\t\t\tinitLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t\t}\n\t\t\t\t\telse updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, recycling, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(old, null)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\ttoFragment(old)\n\t\t\tcreateHTML(parent, vnode, nextSibling)\n\t\t}\n\t\telse vnode.dom = old.dom, vnode.domSize = old.domSize\n\t}\n\tfunction updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, recycling, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, recycling, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tns = getNameSpace(vnode) || ns\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle0 multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse if (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t}\n\t\telse {\n\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\tupdateNodes(element, old.children, vnode.children, recycling, hooks, null, ns)\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tif (recycling) {\n\t\t\tinitComponent(vnode, hooks)\n\t\t} else {\n\t\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tupdateLifecycle(vnode._state, vnode, hooks)\n\t\t}\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(old.instance, null)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction isRecyclable(old, vnodes) {\n\t\tif (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) {\n\t\t\tvar oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0\n\t\t\tvar poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0\n\t\t\tvar vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0\n\t\t\tif (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tfunction getKeyMap(vnodes, end) {\n\t\tvar map = {}, i = 0\n\t\tfor (var i = 0; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key2 = vnode.key\n\t\t\t\tif (key2 != null) map[key2] = i\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\tfunction toFragment(vnode) {\n\t\tvar count0 = vnode.domSize\n\t\tif (count0 != null || vnode.dom == null) {\n\t\t\tvar fragment = $doc.createDocumentFragment()\n\t\t\tif (count0 > 0) {\n\t\t\t\tvar dom = vnode.dom\n\t\t\t\twhile (--count0) fragment.appendChild(dom.nextSibling)\n\t\t\t\tfragment.insertBefore(dom, fragment.firstChild)\n\t\t\t}\n\t\t\treturn fragment\n\t\t}\n\t\telse return vnode.dom\n\t}\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\tfunction setContentEditable(vnode) {\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t}\n\t//remove\n\tfunction removeNodes(vnodes, start, end, context) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tif (vnode.skip) vnode.skip = false\n\t\t\t\telse removeNode(vnode, context)\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNode(vnode, context) {\n\t\tvar expected = 1, called = 0\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode.attrs.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode._state.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tcontinuation()\n\t\tfunction continuation() {\n\t\t\tif (++called === expected) {\n\t\t\t\tonremove(vnode)\n\t\t\t\tif (vnode.dom) {\n\t\t\t\t\tvar count0 = vnode.domSize || 1\n\t\t\t\t\tif (count0 > 1) {\n\t\t\t\t\t\tvar dom = vnode.dom\n\t\t\t\t\t\twhile (--count0) {\n\t\t\t\t\t\t\tremoveNodeFromDOM(dom.nextSibling)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tremoveNodeFromDOM(vnode.dom)\n\t\t\t\t\tif (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === \"string\") { //TODO test custom elements\n\t\t\t\t\t\tif (!context.pool) context.pool = [vnode]\n\t\t\t\t\t\telse context.pool.push(vnode)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNodeFromDOM(node) {\n\t\tvar parent = node.parentNode\n\t\tif (parent != null) parent.removeChild(node)\n\t}\n\tfunction onremove(vnode) {\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") vnode.attrs.onremove.call(vnode.state, vnode)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onremove === \"function\") vnode._state.onremove.call(vnode.state, vnode)\n\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\telse {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//attrs2\n\tfunction setAttrs(vnode, attrs2, ns) {\n\t\tfor (var key2 in attrs2) {\n\t\t\tsetAttr(vnode, key2, null, attrs2[key2], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key2, old, value, ns) {\n\t\tvar element = vnode.dom\n\t\tif (key2 === \"key\" || key2 === \"is\" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== \"object\" || typeof value === \"undefined\" || isLifecycleMethod(key2)) return\n\t\tvar nsLastIndex = key2.indexOf(\":\")\n\t\tif (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === \"xlink\") {\n\t\t\telement.setAttributeNS(\"http://www.w3.org/1999/xlink\", key2.slice(nsLastIndex + 1), value)\n\t\t}\n\t\telse if (key2[0] === \"o\" && key2[1] === \"n\" && typeof value === \"function\") updateEvent(vnode, key2, value)\n\t\telse if (key2 === \"style\") updateStyle(element, old, value)\n\t\telse if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) {\n\t\t\tif (key2 === \"value\") {\n\t\t\t\tvar normalized0 = \"\" + value // eslint-disable-line no-implicit-coercion\n\t\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\t\tif ((vnode.tag === \"input\" || vnode.tag === \"textarea\") && vnode.dom.value === normalized0 && vnode.dom === $doc.activeElement) return\n\t\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"select\") {\n\t\t\t\t\tif (value === null) {\n\t\t\t\t\t\tif (vnode.dom.selectedIndex === -1 && vnode.dom === $doc.activeElement) return\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (old !== null && vnode.dom.value === normalized0 && vnode.dom === $doc.activeElement) return\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"option\" && old != null && vnode.dom.value === normalized0) return\n\t\t\t}\n\t\t\t// If you assign an input type1 that is not supported by IE 11 with an assignment expression, an error0 will occur.\n\t\t\tif (vnode.tag === \"input\" && key2 === \"type\") {\n\t\t\t\telement.setAttribute(key2, value)\n\t\t\t\treturn\n\t\t\t}\n\t\t\telement[key2] = value\n\t\t}\n\t\telse {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) element.setAttribute(key2, \"\")\n\t\t\t\telse element.removeAttribute(key2)\n\t\t\t}\n\t\t\telse element.setAttribute(key2 === \"className\" ? \"class\" : key2, value)\n\t\t}\n\t}\n\tfunction setLateAttrs(vnode) {\n\t\tvar attrs2 = vnode.attrs\n\t\tif (vnode.tag === \"select\" && attrs2 != null) {\n\t\t\tif (\"value\" in attrs2) setAttr(vnode, \"value\", null, attrs2.value, undefined)\n\t\t\tif (\"selectedIndex\" in attrs2) setAttr(vnode, \"selectedIndex\", null, attrs2.selectedIndex, undefined)\n\t\t}\n\t}\n\tfunction updateAttrs(vnode, old, attrs2, ns) {\n\t\tif (attrs2 != null) {\n\t\t\tfor (var key2 in attrs2) {\n\t\t\t\tsetAttr(vnode, key2, old && old[key2], attrs2[key2], ns)\n\t\t\t}\n\t\t}\n\t\tif (old != null) {\n\t\t\tfor (var key2 in old) {\n\t\t\t\tif (attrs2 == null || !(key2 in attrs2)) {\n\t\t\t\t\tif (key2 === \"className\") key2 = \"class\"\n\t\t\t\t\tif (key2[0] === \"o\" && key2[1] === \"n\" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined)\n\t\t\t\t\telse if (key2 !== \"key\") vnode.dom.removeAttribute(key2)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction isAttribute(attr) {\n\t\treturn attr === \"href\" || attr === \"list\" || attr === \"form\" || attr === \"width\" || attr === \"height\"// || attr === \"type\"\n\t}\n\tfunction isCustomElement(vnode){\n\t\treturn vnode.attrs.is || vnode.tag.indexOf(\"-\") > -1\n\t}\n\tfunction hasIntegrationMethods(source) {\n\t\treturn source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove)\n\t}\n\t//style\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) element.style.cssText = \"\", old = null\n\t\tif (style == null) element.style.cssText = \"\"\n\t\telse if (typeof style === \"string\") element.style.cssText = style\n\t\telse {\n\t\t\tif (typeof old === \"string\") element.style.cssText = \"\"\n\t\t\tfor (var key2 in style) {\n\t\t\t\telement.style[key2] = style[key2]\n\t\t\t}\n\t\t\tif (old != null && typeof old !== \"string\") {\n\t\t\t\tfor (var key2 in old) {\n\t\t\t\t\tif (!(key2 in style)) element.style[key2] = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//event\n\tfunction updateEvent(vnode, key2, value) {\n\t\tvar element = vnode.dom\n\t\tvar callback = typeof onevent !== \"function\" ? value : function(e) {\n\t\t\tvar result = value.call(element, e)\n\t\t\tonevent.call(element, e)\n\t\t\treturn result\n\t\t}\n\t\tif (key2 in element) element[key2] = typeof value === \"function\" ? callback : null\n\t\telse {\n\t\t\tvar eventName = key2.slice(2)\n\t\t\tif (vnode.events === undefined) vnode.events = {}\n\t\t\tif (vnode.events[key2] === callback) return\n\t\t\tif (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false)\n\t\t\tif (typeof value === \"function\") {\n\t\t\t\tvnode.events[key2] = callback\n\t\t\t\telement.addEventListener(eventName, vnode.events[key2], false)\n\t\t\t}\n\t\t}\n\t}\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") source.oninit.call(vnode.state, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(source.oncreate.bind(vnode.state, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(source.onupdate.bind(vnode.state, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tvar forceVnodeUpdate, forceComponentUpdate\n\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeupdate === \"function\") forceComponentUpdate = vnode._state.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\tfunction render(dom, vnodes) {\n\t\tif (!dom) throw new Error(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = $doc.activeElement\n\t\tvar namespace = dom.namespaceURI\n\t\t// First time0 rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\t\tif (!Array.isArray(vnodes)) vnodes = [vnodes]\n\t\tupdateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), false, hooks, null, namespace === \"http://www.w3.org/1999/xhtml\" ? undefined : namespace)\n\t\tdom.vnodes = vnodes\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t\t// document.activeElement can return null in IE https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n\t\tif (active != null && $doc.activeElement !== active) active.focus()\n\t}\n\treturn {render: render, setEventCallback: setEventCallback}\n}\nfunction throttle(callback) {\n\t//60fps translates to 16.6ms, round it down since setTimeout requires int\n\tvar time = 16\n\tvar last = 0, pending = null\n\tvar timeout = typeof requestAnimationFrame === \"function\" ? requestAnimationFrame : setTimeout\n\treturn function() {\n\t\tvar now = Date.now()\n\t\tif (last === 0 || now - last >= time) {\n\t\t\tlast = now\n\t\t\tcallback()\n\t\t}\n\t\telse if (pending === null) {\n\t\t\tpending = timeout(function() {\n\t\t\t\tpending = null\n\t\t\t\tcallback()\n\t\t\t\tlast = Date.now()\n\t\t\t}, time - (now - last))\n\t\t}\n\t}\n}\nvar _11 = function($window) {\n\tvar renderService = coreRenderer($window)\n\trenderService.setEventCallback(function(e) {\n\t\tif (e.redraw === false) e.redraw = undefined\n\t\telse redraw()\n\t})\n\tvar callbacks = []\n\tfunction subscribe(key1, callback) {\n\t\tunsubscribe(key1)\n\t\tcallbacks.push(key1, throttle(callback))\n\t}\n\tfunction unsubscribe(key1) {\n\t\tvar index = callbacks.indexOf(key1)\n\t\tif (index > -1) callbacks.splice(index, 2)\n\t}\n\tfunction redraw() {\n\t\tfor (var i = 1; i < callbacks.length; i += 2) {\n\t\t\tcallbacks[i]()\n\t\t}\n\t}\n\treturn {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render}\n}\nvar redrawService = _11(window)\nrequestService.setCompletionCallback(redrawService.redraw)\nvar _16 = function(redrawService0) {\n\treturn function(root, component) {\n\t\tif (component === null) {\n\t\t\tredrawService0.render(root, [])\n\t\t\tredrawService0.unsubscribe(root)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif (component.view == null && typeof component !== \"function\") throw new Error(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t\n\t\tvar run0 = function() {\n\t\t\tredrawService0.render(root, Vnode(component))\n\t\t}\n\t\tredrawService0.subscribe(root, run0)\n\t\tredrawService0.redraw()\n\t}\n}\nm.mount = _16(redrawService)\nvar Promise = PromisePolyfill\nvar parseQueryString = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\tvar entries = string.split(\"&\"), data0 = {}, counters = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key5 = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\t\tvar levels = key5.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data0\n\t\tif (key5.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tvar isValue = j === levels.length - 1\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key5 = levels.slice(0, j).join()\n\t\t\t\tif (counters[key5] == null) counters[key5] = 0\n\t\t\t\tlevel = counters[key5]++\n\t\t\t}\n\t\t\tif (cursor[level] == null) {\n\t\t\t\tcursor[level] = isValue ? value : isNumber ? [] : {}\n\t\t\t}\n\t\t\tcursor = cursor[level]\n\t\t}\n\t}\n\treturn data0\n}\nvar coreRouter = function($window) {\n\tvar supportsPushState = typeof $window.history.pushState === \"function\"\n\tvar callAsync0 = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction normalize1(fragment0) {\n\t\tvar data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\tif (fragment0 === \"pathname\" && data[0] !== \"/\") data = \"/\" + data\n\t\treturn data\n\t}\n\tvar asyncId\n\tfunction debounceAsync(callback0) {\n\t\treturn function() {\n\t\t\tif (asyncId != null) return\n\t\t\tasyncId = callAsync0(function() {\n\t\t\t\tasyncId = null\n\t\t\t\tcallback0()\n\t\t\t})\n\t\t}\n\t}\n\tfunction parsePath(path, queryData, hashData) {\n\t\tvar queryIndex = path.indexOf(\"?\")\n\t\tvar hashIndex = path.indexOf(\"#\")\n\t\tvar pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length\n\t\tif (queryIndex > -1) {\n\t\t\tvar queryEnd = hashIndex > -1 ? hashIndex : path.length\n\t\t\tvar queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd))\n\t\t\tfor (var key4 in queryParams) queryData[key4] = queryParams[key4]\n\t\t}\n\t\tif (hashIndex > -1) {\n\t\t\tvar hashParams = parseQueryString(path.slice(hashIndex + 1))\n\t\t\tfor (var key4 in hashParams) hashData[key4] = hashParams[key4]\n\t\t}\n\t\treturn path.slice(0, pathEnd)\n\t}\n\tvar router = {prefix: \"#!\"}\n\trouter.getPath = function() {\n\t\tvar type2 = router.prefix.charAt(0)\n\t\tswitch (type2) {\n\t\t\tcase \"#\": return normalize1(\"hash\").slice(router.prefix.length)\n\t\t\tcase \"?\": return normalize1(\"search\").slice(router.prefix.length) + normalize1(\"hash\")\n\t\t\tdefault: return normalize1(\"pathname\").slice(router.prefix.length) + normalize1(\"search\") + normalize1(\"hash\")\n\t\t}\n\t}\n\trouter.setPath = function(path, data, options) {\n\t\tvar queryData = {}, hashData = {}\n\t\tpath = parsePath(path, queryData, hashData)\n\t\tif (data != null) {\n\t\t\tfor (var key4 in data) queryData[key4] = data[key4]\n\t\t\tpath = path.replace(/:([^\\/]+)/g, function(match2, token) {\n\t\t\t\tdelete queryData[token]\n\t\t\t\treturn data[token]\n\t\t\t})\n\t\t}\n\t\tvar query = buildQueryString(queryData)\n\t\tif (query) path += \"?\" + query\n\t\tvar hash = buildQueryString(hashData)\n\t\tif (hash) path += \"#\" + hash\n\t\tif (supportsPushState) {\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\t$window.onpopstate()\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, router.prefix + path)\n\t\t\telse $window.history.pushState(state, title, router.prefix + path)\n\t\t}\n\t\telse $window.location.href = router.prefix + path\n\t}\n\trouter.defineRoutes = function(routes, resolve, reject) {\n\t\tfunction resolveRoute() {\n\t\t\tvar path = router.getPath()\n\t\t\tvar params = {}\n\t\t\tvar pathname = parsePath(path, params, params)\n\t\t\tvar state = $window.history.state\n\t\t\tif (state != null) {\n\t\t\t\tfor (var k in state) params[k] = state[k]\n\t\t\t}\n\t\t\tfor (var route0 in routes) {\n\t\t\t\tvar matcher = new RegExp(\"^\" + route0.replace(/:[^\\/]+?\\.{3}/g, \"(.*?)\").replace(/:[^\\/]+/g, \"([^\\\\/]+)\") + \"\\/?$\")\n\t\t\t\tif (matcher.test(pathname)) {\n\t\t\t\t\tpathname.replace(matcher, function() {\n\t\t\t\t\t\tvar keys = route0.match(/:[^\\/]+/g) || []\n\t\t\t\t\t\tvar values = [].slice.call(arguments, 1, -2)\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\t\t\t\t\tparams[keys[i].replace(/:|\\./g, \"\")] = decodeURIComponent(values[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(routes[route0], params, path, route0)\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\treject(path, params)\n\t\t}\n\t\tif (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)\n\t\telse if (router.prefix.charAt(0) === \"#\") $window.onhashchange = resolveRoute\n\t\tresolveRoute()\n\t}\n\treturn router\n}\nvar _20 = function($window, redrawService0) {\n\tvar routeService = coreRouter($window)\n\tvar identity = function(v) {return v}\n\tvar render1, component, attrs3, currentPath, lastUpdate\n\tvar route = function(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\tvar run1 = function() {\n\t\t\tif (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3)))\n\t\t}\n\t\tvar bail = function(path) {\n\t\t\tif (path !== defaultRoute) routeService.setPath(defaultRoute, null, {replace: true})\n\t\t\telse throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t}\n\t\trouteService.defineRoutes(routes, function(payload, params, path) {\n\t\t\tvar update = lastUpdate = function(routeResolver, comp) {\n\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\tattrs3 = params, currentPath = path, lastUpdate = null\n\t\t\t\trender1 = (routeResolver.render || identity).bind(routeResolver)\n\t\t\t\trun1()\n\t\t\t}\n\t\t\tif (payload.view || typeof payload === \"function\") update({}, payload)\n\t\t\telse {\n\t\t\t\tif (payload.onmatch) {\n\t\t\t\t\tPromise.resolve(payload.onmatch(params, path)).then(function(resolved) {\n\t\t\t\t\t\tupdate(payload, resolved)\n\t\t\t\t\t}, bail)\n\t\t\t\t}\n\t\t\t\telse update(payload, \"div\")\n\t\t\t}\n\t\t}, bail)\n\t\tredrawService0.subscribe(root, run1)\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) {\n\t\t\toptions = options || {}\n\t\t\toptions.replace = true\n\t\t}\n\t\tlastUpdate = null\n\t\trouteService.setPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = function(prefix0) {routeService.prefix = prefix0}\n\troute.link = function(vnode1) {\n\t\tvnode1.dom.setAttribute(\"href\", routeService.prefix + vnode1.attrs.href)\n\t\tvnode1.dom.onclick = function(e) {\n\t\t\tif (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return\n\t\t\te.preventDefault()\n\t\t\te.redraw = false\n\t\t\tvar href = this.getAttribute(\"href\")\n\t\t\tif (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length)\n\t\t\troute.set(href, undefined, undefined)\n\t\t}\n\t}\n\troute.param = function(key3) {\n\t\tif(typeof attrs3 !== \"undefined\" && typeof key3 !== \"undefined\") return attrs3[key3]\n\t\treturn attrs3\n\t}\n\treturn route\n}\nm.route = _20(window, redrawService)\nm.withAttr = function(attrName, callback1, context) {\n\treturn function(e) {\n\t\tcallback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName))\n\t}\n}\nvar _28 = coreRenderer(window)\nm.render = _28.render\nm.redraw = redrawService.redraw\nm.request = requestService.request\nm.jsonp = requestService.jsonp\nm.parseQueryString = parseQueryString\nm.buildQueryString = buildQueryString\nm.version = \"1.1.5\"\nm.vnode = Vnode\nif (typeof module !== \"undefined\") module[\"exports\"] = m\nelse window.m = m\n}());\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],8:[function(require,module,exports){\n/*!\n * EventEmitter v5.2.3 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n\n},{}]},{},[1]);\n })();"]}
1
+ {"version":3,"sources":["admin.js"],"names":["require","undefined","define","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","m","window","EventEmitter","context","document","getElementById","events","tabs","helpers","settings","ListFetcher","mount","mc4wp","deps","mithril","./admin/helpers.js","./admin/list-fetcher.js","./admin/settings.js","./admin/tabs.js","wolfy87-eventemitter","2","toggleElement","selector","elements","querySelectorAll","show","clientHeight","style","display","bindEventToElement","element","event","handler","addEventListener","attachEvent","bindEventToElements","Array","prototype","forEach","debounce","func","wait","immediate","timeout","this","args","arguments","callNow","clearTimeout","setTimeout","apply","showIfElements","getAttribute","checked","conditionMet","value","config","hide","visibility","opacity","inputs","inputElement","removeAttribute","setAttribute","JSON","parse","parentElements","parentElement","3","working","done","mailchimp","api_connected","lists","fetch","$","jQuery","mc4wp_vars","i18n","preventDefault","post","ajaxurl","action","data","success","location","reload","bind","fail","always","redraw","view","method","onsubmit","type","fetching_mailchimp_lists","renew_mailchimp_lists","className","disabled","trust","fetching_mailchimp_lists_can_take_a_while","fetching_mailchimp_lists_done","fetching_mailchimp_lists_error","4","_typeof","Symbol","iterator","obj","constructor","updateSelectedLists","selectedLists","listInputs","input","push","trigger","querySelector","on","rows","el","searchKey","searchValue","filter","getSelectedListsWhere","replace","getSelectedLists","5","URL","get","id","_open","tab","updateState","$tabs","removeClass","css","$tabNavs","nav","blur","url","setParameter","href","history","pushState","title","refererField","tb_remove","forms","editor","refresh","split","switchTab","tabId","match","urlParams","returnValue","$context","find","each","substring","first","text","open","click","body","activeTab","replaceState","state","init","./url.js","6","query","hasOwnProperty","b","decodeURIComponent","build","ret","d","encodeURIComponent","join","key","7","global","Vnode","tag","attrs0","children","dom","attrs","domSize","_state","instance","skip","hyperscript","start","cached","selectorCache","classes","selectorParser","exec","attrValue","compileSelector","isArray","normalized","normalizeChildren","childList","hasAttrs","class","hasOwn","execSelector","normalize","node","html","fragment","attrs1","PromisePolyfill","executor","list","shouldAbsorb","execute","then","callAsync","console","error","resolvers","rejectors","retry","self","TypeError","executeOnce","rejectCurrent","run","fn","runs","onerror","resolveCurrent","_instance","setImmediate","onFulfilled","onRejection","handle","callback","next","resolveNext","rejectNext","promise","resolve","reject","catch","all","total","count","values","consume","race","Promise","buildQueryString","object","destructure","key0","Object","toString","FILE_PROTOCOL_REGEX","RegExp","requestService","$window","finalizer","complete","oncompletion","finalize","promise0","then0","extra","interpolate","tokens","slice","assemble","querystring","indexOf","deserialize","extract","xhr","responseText","cast","type0","callbackCount","request","toUpperCase","useBody","serialize","FormData","stringify","XMLHttpRequest","aborted","_abort","abort","async","user","password","headers","setRequestHeader","withCredentials","onreadystatechange","readyState","response","status","test","send","background","jsonp","callbackName","Math","round","random","script","createElement","parentNode","removeChild","callbackKey","src","documentElement","appendChild","setCompletionCallback","_8","coreRenderer","getNameSpace","vnode","xmlns","nameSpace","createNodes","parent","vnodes","end","hooks","nextSibling","ns","createNode","initComponent","insertNode","$emptyFragment","createComponent","initLifecycle","$doc","createTextNode","createText","createHTML","createDocumentFragment","firstChild","childNodes","createFragment","attrs2","is","createElementNS","key2","setAttr","setAttrs","contenteditable","setContentEditable","textContent","selectedIndex","setLateAttrs","parent1","caption","thead","tbody","tfoot","tr","th","td","colgroup","col","temp","innerHTML","child","sentinel","create","$$reentrantLock$$","updateNodes","old","recycling","removeNodes","isUnkeyed","getNextSibling","updateNode","pool","abs","oldChildrenLength","poolChildrenLength","vnodesChildrenLength","isRecyclable","concat","map","oldStart","oldEnd","v","shouldRecycle","toFragment","getKeyMap","oldIndex","movable","oldTag","forceVnodeUpdate","forceComponentUpdate","onbeforeupdate","shouldNotUpdate","updateLifecycle","nodeValue","updateText","updateHTML","updateFragment","isLifecycleMethod","updateEvent","updateAttrs","updateElement","removeNode","updateComponent","count0","insertBefore","content","continuation","called","expected","onremove","removeNodeFromDOM","source","oncreate","onupdate","onbeforeremove","hasIntegrationMethods","result","attr","activeElement","isFormAttribute","nsLastIndex","substr","setAttributeNS","cssText","updateStyle","isAttribute","isCustomElement","normalized0","onevent","eventName","removeEventListener","oninit","svg","math","render","active","namespace","namespaceURI","focus","setEventCallback","redrawService","unsubscribe","key1","index","callbacks","splice","renderService","subscribe","last","pending","requestAnimationFrame","now","Date","throttle","_11","redrawService0","root","component","_16","parseQueryString","string","charAt","entries","data0","counters","entry","key5","levels","cursor","pop","j","level","nextLevel","isNumber","isNaN","parseInt","isValue","coreRouter","normalize1","fragment0","parsePath","path","queryData","hashData","queryIndex","hashIndex","pathEnd","queryEnd","queryParams","key4","hashParams","asyncId","supportsPushState","callAsync0","router","prefix","getPath","setPath","options","match2","token","hash","onpopstate","defineRoutes","routes","resolveRoute","params","pathname","k","route0","matcher","keys","callback0","debounceAsync","onhashchange","route","render1","attrs3","currentPath","lastUpdate","routeService","defaultRoute","run1","bail","payload","update","routeResolver","comp","onmatch","resolved","set","prefix0","link","vnode1","onclick","ctrlKey","metaKey","shiftKey","which","param","key3","_20","withAttr","attrName","callback1","currentTarget","_28","version","8","indexOfListener","listeners","listener","alias","name","isValidListener","proto","originalGlobalValue","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","removeEvent","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","noConflict","amd"],"mappings":"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","file":"admin.min.js","sourcesContent":["(function () { var require = undefined; var define = undefined; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\n// dependencies\n\nvar m = window.m = require('mithril');\nvar EventEmitter = require('wolfy87-eventemitter');\n\n// vars\nvar context = document.getElementById('mc4wp-admin');\nvar events = new EventEmitter();\nvar tabs = require('./admin/tabs.js')(context);\nvar helpers = require('./admin/helpers.js');\nvar settings = require('./admin/settings.js')(context, helpers, events);\n\n// list fetcher\nvar ListFetcher = require('./admin/list-fetcher.js');\nvar mount = document.getElementById('mc4wp-list-fetcher');\nif (mount) {\n m.mount(mount, new ListFetcher());\n}\n\n// expose some things\nwindow.mc4wp = window.mc4wp || {};\nwindow.mc4wp.deps = window.mc4wp.deps || {};\nwindow.mc4wp.deps.mithril = m;\nwindow.mc4wp.helpers = helpers;\nwindow.mc4wp.events = events;\nwindow.mc4wp.settings = settings;\nwindow.mc4wp.tabs = tabs;\n\n},{\"./admin/helpers.js\":2,\"./admin/list-fetcher.js\":3,\"./admin/settings.js\":4,\"./admin/tabs.js\":5,\"mithril\":7,\"wolfy87-eventemitter\":8}],2:[function(require,module,exports){\n'use strict';\n\nvar helpers = {};\n\nhelpers.toggleElement = function (selector) {\n\tvar elements = document.querySelectorAll(selector);\n\tfor (var i = 0; i < elements.length; i++) {\n\t\tvar show = elements[i].clientHeight <= 0;\n\t\telements[i].style.display = show ? '' : 'none';\n\t}\n};\n\nhelpers.bindEventToElement = function (element, event, handler) {\n\tif (element.addEventListener) {\n\t\telement.addEventListener(event, handler);\n\t} else if (element.attachEvent) {\n\t\telement.attachEvent('on' + event, handler);\n\t}\n};\n\nhelpers.bindEventToElements = function (elements, event, handler) {\n\tArray.prototype.forEach.call(elements, function (element) {\n\t\thelpers.bindEventToElement(element, event, handler);\n\t});\n};\n\n// polling\nhelpers.debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\n/**\n * Showif.js\n */\n(function () {\n\tvar showIfElements = document.querySelectorAll('[data-showif]');\n\n\t// dependent elements\n\tArray.prototype.forEach.call(showIfElements, function (element) {\n\t\tvar config = JSON.parse(element.getAttribute('data-showif'));\n\t\tvar parentElements = document.querySelectorAll('[name=\"' + config.element + '\"]');\n\t\tvar inputs = element.querySelectorAll('input,select,textarea:not([readonly])');\n\t\tvar hide = config.hide === undefined || config.hide;\n\n\t\tfunction toggleElement() {\n\n\t\t\t// do nothing with unchecked radio inputs\n\t\t\tif (this.getAttribute('type') === \"radio\" && !this.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar value = this.getAttribute(\"type\") === \"checkbox\" ? this.checked : this.value;\n\t\t\tvar conditionMet = value == config.value;\n\n\t\t\tif (hide) {\n\t\t\t\telement.style.display = conditionMet ? '' : 'none';\n\t\t\t\telement.style.visibility = conditionMet ? '' : 'hidden';\n\t\t\t} else {\n\t\t\t\telement.style.opacity = conditionMet ? '' : '0.4';\n\t\t\t}\n\n\t\t\t// disable input fields to stop sending their values to server\n\t\t\tArray.prototype.forEach.call(inputs, function (inputElement) {\n\t\t\t\tconditionMet ? inputElement.removeAttribute('readonly') : inputElement.setAttribute('readonly', 'readonly');\n\t\t\t});\n\t\t}\n\n\t\t// find checked element and call toggleElement function\n\t\tArray.prototype.forEach.call(parentElements, function (parentElement) {\n\t\t\ttoggleElement.call(parentElement);\n\t\t});\n\n\t\t// bind on all changes\n\t\thelpers.bindEventToElements(parentElements, 'change', toggleElement);\n\t});\n})();\n\nmodule.exports = helpers;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar $ = window.jQuery;\nvar config = mc4wp_vars;\nvar i18n = config.i18n;\n\nfunction ListFetcher() {\n this.working = false;\n this.done = false;\n\n // start fetching right away when no lists but api key given\n if (config.mailchimp.api_connected && config.mailchimp.lists.length === 0) {\n this.fetch();\n }\n}\n\nListFetcher.prototype.fetch = function (e) {\n e && e.preventDefault();\n\n this.working = true;\n this.done = false;\n\n $.post(ajaxurl, {\n action: \"mc4wp_renew_mailchimp_lists\",\n timeout: 180000\n }).done(function (data) {\n this.success = true;\n\n if (data) {\n window.setTimeout(function () {\n window.location.reload();\n }, 3000);\n }\n }.bind(this)).fail(function (data) {\n this.success = false;\n }.bind(this)).always(function (data) {\n this.working = false;\n this.done = true;\n\n m.redraw();\n }.bind(this));\n};\n\nListFetcher.prototype.view = function () {\n return m('form', {\n method: \"POST\",\n onsubmit: this.fetch.bind(this)\n }, [m('p', [m('input', {\n type: \"submit\",\n value: this.working ? i18n.fetching_mailchimp_lists : i18n.renew_mailchimp_lists,\n className: \"button\",\n disabled: !!this.working\n }), m.trust(' &nbsp; '), this.working ? [m('span.mc4wp-loader', \"Loading...\"), m.trust(' &nbsp; '), m('em.help', i18n.fetching_mailchimp_lists_can_take_a_while)] : '', this.done ? [this.success ? m('em.help.green', i18n.fetching_mailchimp_lists_done) : m('em.help.red', i18n.fetching_mailchimp_lists_error)] : ''])]);\n};\n\nmodule.exports = ListFetcher;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar Settings = function Settings(context, helpers, events) {\n\t'use strict';\n\n\t// vars\n\n\tvar form = context.querySelector('form');\n\tvar listInputs = context.querySelectorAll('.mc4wp-list-input');\n\tvar lists = mc4wp_vars.mailchimp.lists;\n\tvar selectedLists = [];\n\n\t// functions\n\tfunction getSelectedListsWhere(searchKey, searchValue) {\n\t\treturn selectedLists.filter(function (el) {\n\t\t\treturn el[searchKey] === searchValue;\n\t\t});\n\t}\n\n\tfunction getSelectedLists() {\n\t\treturn selectedLists;\n\t}\n\n\tfunction updateSelectedLists() {\n\t\tselectedLists = [];\n\n\t\tArray.prototype.forEach.call(listInputs, function (input) {\n\t\t\t// skip unchecked checkboxes\n\t\t\tif (typeof input.checked === \"boolean\" && !input.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_typeof(lists[input.value]) === \"object\") {\n\t\t\t\tselectedLists.push(lists[input.value]);\n\t\t\t}\n\t\t});\n\n\t\tevents.trigger('selectedLists.change', [selectedLists]);\n\t\treturn selectedLists;\n\t}\n\n\tfunction toggleVisibleLists() {\n\t\tvar rows = document.querySelectorAll('.lists--only-selected > *');\n\t\tArray.prototype.forEach.call(rows, function (el) {\n\n\t\t\tvar listId = el.getAttribute('data-list-id');\n\t\t\tvar isSelected = getSelectedListsWhere('id', listId).length > 0;\n\n\t\t\tif (isSelected) {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class').replace('hidden', ''));\n\t\t\t} else {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class') + \" hidden\");\n\t\t\t}\n\t\t});\n\t}\n\n\tevents.on('selectedLists.change', toggleVisibleLists);\n\thelpers.bindEventToElements(listInputs, 'change', updateSelectedLists);\n\n\tupdateSelectedLists();\n\n\treturn {\n\t\tgetSelectedLists: getSelectedLists\n\t};\n};\n\nmodule.exports = Settings;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nvar URL = require('./url.js');\n\n// Tabs\nvar Tabs = function Tabs(context) {\n\n\t// TODO: last piece of jQuery... can we get rid of it?\n\tvar $ = window.jQuery;\n\n\tvar $context = $(context);\n\tvar $tabs = $context.find('.tab');\n\tvar $tabNavs = $context.find('.nav-tab');\n\tvar refererField = context.querySelector('input[name=\"_wp_http_referer\"]');\n\tvar tabs = [];\n\n\t$.each($tabs, function (i, t) {\n\t\tvar id = t.id.substring(4);\n\t\tvar title = $(t).find('h2').first().text();\n\n\t\ttabs.push({\n\t\t\tid: id,\n\t\t\ttitle: title,\n\t\t\telement: t,\n\t\t\tnav: context.querySelectorAll('.nav-tab-' + id),\n\t\t\topen: function open() {\n\t\t\t\treturn _open(id);\n\t\t\t}\n\t\t});\n\t});\n\n\tfunction get(id) {\n\n\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].id === id) {\n\t\t\t\treturn tabs[i];\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tfunction _open(tab, updateState) {\n\n\t\t// make sure we have a tab object\n\t\tif (typeof tab === \"string\") {\n\t\t\ttab = get(tab);\n\t\t}\n\n\t\tif (!tab) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// should we update state?\n\t\tif (updateState == undefined) {\n\t\t\tupdateState = true;\n\t\t}\n\n\t\t// hide all tabs & remove active class\n\t\t$tabs.removeClass('tab-active').css('display', 'none');\n\t\t$tabNavs.removeClass('nav-tab-active');\n\n\t\t// add `nav-tab-active` to this tab\n\t\tArray.prototype.forEach.call(tab.nav, function (nav) {\n\t\t\tnav.className += \" nav-tab-active\";\n\t\t\tnav.blur();\n\t\t});\n\n\t\t// show target tab\n\t\ttab.element.style.display = 'block';\n\t\ttab.element.className += \" tab-active\";\n\n\t\t// create new URL\n\t\tvar url = URL.setParameter(window.location.href, \"tab\", tab.id);\n\n\t\t// update hash\n\t\tif (history.pushState && updateState) {\n\t\t\thistory.pushState(tab.id, '', url);\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\n\t\t// update referer field\n\t\trefererField.value = url;\n\n\t\t// if thickbox is open, close it.\n\t\tif (typeof tb_remove === \"function\") {\n\t\t\ttb_remove();\n\t\t}\n\n\t\t// refresh editor after switching tabs\n\t\t// TODO: decouple this! law of demeter etc.\n\t\tif (tab.id === 'fields' && window.mc4wp && window.mc4wp.forms && window.mc4wp.forms.editor) {\n\t\t\tmc4wp.forms.editor.refresh();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction title(tab) {\n\t\tvar title = document.title.split('-');\n\t\tdocument.title = document.title.replace(title[0], tab.title + \" \");\n\t}\n\n\tfunction switchTab(e) {\n\t\te = e || window.event;\n\n\t\t// get from data attribute\n\t\tvar tabId = this.getAttribute('data-tab');\n\n\t\t// get from classname\n\t\tif (!tabId) {\n\t\t\tvar match = this.className.match(/nav-tab-(\\w+)?/);\n\t\t\tif (match) {\n\t\t\t\ttabId = match[1];\n\t\t\t}\n\t\t}\n\n\t\t// get from href\n\t\tif (!tabId) {\n\t\t\tvar urlParams = URL.parse(this.href);\n\t\t\tif (!urlParams.tab) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttabId = urlParams.tab;\n\t\t}\n\n\t\tvar opened = _open(tabId);\n\n\t\tif (opened) {\n\t\t\te.preventDefault();\n\t\t\te.returnValue = false;\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction init() {\n\n\t\t// check for current tab\n\t\tif (!history.pushState) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar activeTab = $tabs.filter(':visible').get(0);\n\t\tif (!activeTab) {\n\t\t\treturn;\n\t\t}\n\t\tvar tab = get(activeTab.id.substring(4));\n\t\tif (!tab) return;\n\n\t\t// check if tab is in html5 history\n\t\tif (history.replaceState && history.state === null) {\n\t\t\thistory.replaceState(tab.id, '');\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\t}\n\n\t$tabNavs.click(switchTab);\n\t$(document.body).on('click', '.tab-link', switchTab);\n\tinit();\n\n\tif (window.addEventListener && history.pushState) {\n\t\twindow.addEventListener('popstate', function (e) {\n\t\t\tif (!e.state) return true;\n\t\t\tvar tabId = e.state;\n\t\t\treturn _open(tabId, false);\n\t\t});\n\t}\n\n\treturn {\n\t\topen: _open,\n\t\tget: get\n\t};\n};\n\nmodule.exports = Tabs;\n\n},{\"./url.js\":6}],6:[function(require,module,exports){\n'use strict';\n\nvar URL = {\n\tparse: function parse(url) {\n\t\tvar query = {};\n\t\tvar a = url.split('&');\n\t\tfor (var i in a) {\n\t\t\tif (!a.hasOwnProperty(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar b = a[i].split('=');\n\t\t\tquery[decodeURIComponent(b[0])] = decodeURIComponent(b[1]);\n\t\t}\n\n\t\treturn query;\n\t},\n\tbuild: function build(data) {\n\t\tvar ret = [];\n\t\tfor (var d in data) {\n\t\t\tret.push(d + \"=\" + encodeURIComponent(data[d]));\n\t\t}return ret.join(\"&\");\n\t},\n\tsetParameter: function setParameter(url, key, value) {\n\t\tvar data = URL.parse(url);\n\t\tdata[key] = value;\n\t\treturn URL.build(data);\n\t}\n};\n\nmodule.exports = URL;\n\n},{}],7:[function(require,module,exports){\n(function (global){\n;(function() {\n\"use strict\"\nfunction Vnode(tag, key, attrs0, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: undefined, _state: undefined, events: undefined, instance: undefined, skip: false}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node != null && typeof node !== \"object\") return Vnode(\"#\", undefined, undefined, node === false ? \"\" : node, undefined, undefined)\n\treturn node\n}\nVnode.normalizeChildren = function normalizeChildren(children) {\n\tfor (var i = 0; i < children.length; i++) {\n\t\tchildren[i] = Vnode.normalize(children[i])\n\t}\n\treturn children\n}\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue === \"\" ? attrValue : attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\nfunction execSelector(state, attrs, children) {\n\tvar hasAttrs = false, childList, text\n\tvar className = attrs.className || attrs.class\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key)) {\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className !== undefined) {\n\t\tif (attrs.class !== undefined) {\n\t\t\tattrs.class = undefined\n\t\t\tattrs.className = className\n\t\t}\n\t\tif (state.attrs.className != null) {\n\t\t\tattrs.className = state.attrs.className + \" \" + className\n\t\t}\n\t}\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\thasAttrs = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\ttext = children[0].children\n\t} else {\n\t\tchildList = children\n\t}\n\treturn Vnode(state.tag, attrs.key, hasAttrs ? attrs : undefined, childList, text)\n}\nfunction hyperscript(selector) {\n\t// Because sloppy mode sucks\n\tvar attrs = arguments[1], start = 2, children\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\tif (typeof selector === \"string\") {\n\t\tvar cached = selectorCache[selector] || compileSelector(selector)\n\t}\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = 1\n\t}\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\tvar normalized = Vnode.normalizeChildren(children)\n\tif (typeof selector === \"string\") {\n\t\treturn execSelector(cached, attrs, normalized)\n\t} else {\n\t\treturn Vnode(selector, attrs.key, attrs, normalized)\n\t}\n}\nhyperscript.trust = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\nhyperscript.fragment = function(attrs1, children) {\n\treturn Vnode(\"[\", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined)\n}\nvar m = hyperscript\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") window.Promise = PromisePolyfill\n\tvar PromisePolyfill = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") global.Promise = PromisePolyfill\n\tvar PromisePolyfill = global.Promise\n} else {\n}\nvar buildQueryString = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\tvar args = []\n\tfor (var key0 in object) {\n\t\tdestructure(key0, object[key0])\n\t}\n\treturn args.join(\"&\")\n\tfunction destructure(key0, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key0) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\nvar FILE_PROTOCOL_REGEX = new RegExp(\"^file://\", \"i\")\nvar _8 = function($window, Promise) {\n\tvar callbackCount = 0\n\tvar oncompletion\n\tfunction setCompletionCallback(callback) {oncompletion = callback}\n\tfunction finalizer() {\n\t\tvar count = 0\n\t\tfunction complete() {if (--count === 0 && typeof oncompletion === \"function\") oncompletion()}\n\t\treturn function finalize(promise0) {\n\t\t\tvar then0 = promise0.then\n\t\t\tpromise0.then = function() {\n\t\t\t\tcount++\n\t\t\t\tvar next = then0.apply(promise0, arguments)\n\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\tcomplete()\n\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t})\n\t\t\t\treturn finalize(next)\n\t\t\t}\n\t\t\treturn promise0\n\t\t}\n\t}\n\tfunction normalize(args, extra) {\n\t\tif (typeof args === \"string\") {\n\t\t\tvar url = args\n\t\t\targs = extra || {}\n\t\t\tif (args.url == null) args.url = url\n\t\t}\n\t\treturn args\n\t}\n\tfunction request(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tif (args.method == null) args.method = \"GET\"\n\t\t\targs.method = args.method.toUpperCase()\n\t\t\tvar useBody = (args.method === \"GET\" || args.method === \"TRACE\") ? false : (typeof args.useBody === \"boolean\" ? args.useBody : true)\n\t\t\tif (typeof args.serialize !== \"function\") args.serialize = typeof FormData !== \"undefined\" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify\n\t\t\tif (typeof args.deserialize !== \"function\") args.deserialize = deserialize\n\t\t\tif (typeof args.extract !== \"function\") args.extract = extract\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\tif (useBody) args.data = args.serialize(args.data)\n\t\t\telse args.url = assemble(args.url, args.data)\n\t\t\tvar xhr = new $window.XMLHttpRequest(),\n\t\t\t\taborted = false,\n\t\t\t\t_abort = xhr.abort\n\t\t\txhr.abort = function abort() {\n\t\t\t\taborted = true\n\t\t\t\t_abort.call(xhr)\n\t\t\t}\n\t\t\txhr.open(args.method, args.url, typeof args.async === \"boolean\" ? args.async : true, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\t\t\tif (args.serialize === JSON.stringify && useBody && !(args.headers && args.headers.hasOwnProperty(\"Content-Type\"))) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (args.deserialize === deserialize && !(args.headers && args.headers.hasOwnProperty(\"Accept\"))) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tfor (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t}\n\t\t\tif (typeof args.config === \"function\") xhr = args.config(xhr, args) || xhr\n\t\t\txhr.onreadystatechange = function() {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif(aborted) return\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args))\n\t\t\t\t\t\tif ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || FILE_PROTOCOL_REGEX.test(args.url)) {\n\t\t\t\t\t\t\tresolve(cast(args.type, response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar error = new Error(xhr.responseText)\n\t\t\t\t\t\t\tfor (var key in response) error[key] = response[key]\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useBody && (args.data != null)) xhr.send(args.data)\n\t\t\telse xhr.send()\n\t\t})\n\t\treturn args.background === true ? promise0 : finalize(promise0)\n\t}\n\tfunction jsonp(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(cast(args.type, data))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tif (args.data == null) args.data = {}\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\targs.data[args.callbackKey || \"callback\"] = callbackName\n\t\t\tscript.src = assemble(args.url, args.data)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t})\n\t\treturn args.background === true? promise0 : finalize(promise0)\n\t}\n\tfunction interpolate(url, data) {\n\t\tif (data == null) return url\n\t\tvar tokens = url.match(/:[^\\/]+/gi) || []\n\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\tvar key = tokens[i].slice(1)\n\t\t\tif (data[key] != null) {\n\t\t\t\turl = url.replace(tokens[i], data[key])\n\t\t\t}\n\t\t}\n\t\treturn url\n\t}\n\tfunction assemble(url, data) {\n\t\tvar querystring = buildQueryString(data)\n\t\tif (querystring !== \"\") {\n\t\t\tvar prefix = url.indexOf(\"?\") < 0 ? \"?\" : \"&\"\n\t\t\turl += prefix + querystring\n\t\t}\n\t\treturn url\n\t}\n\tfunction deserialize(data) {\n\t\ttry {return data !== \"\" ? JSON.parse(data) : null}\n\t\tcatch (e) {throw new Error(data)}\n\t}\n\tfunction extract(xhr) {return xhr.responseText}\n\tfunction cast(type0, data) {\n\t\tif (typeof type0 === \"function\") {\n\t\t\tif (Array.isArray(data)) {\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\tdata[i] = new type0(data[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\telse return new type0(data)\n\t\t}\n\t\treturn data\n\t}\n\treturn {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback}\n}\nvar requestService = _8(window, PromisePolyfill)\nvar coreRenderer = function($window) {\n\tvar $doc = $window.document\n\tvar $emptyFragment = $doc.createDocumentFragment()\n\tvar nameSpace = {\n\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\tmath: \"http://www.w3.org/1998/Math/MathML\"\n\t}\n\tvar onevent\n\tfunction setEventCallback(callback) {return onevent = callback}\n\tfunction getNameSpace(vnode) {\n\t\treturn vnode.attrs && vnode.attrs.xmlns || nameSpace[vnode.tag]\n\t}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": return createText(parent, vnode, nextSibling)\n\t\t\t\tcase \"<\": return createHTML(parent, vnode, nextSibling)\n\t\t\t\tcase \"[\": return createFragment(parent, vnode, hooks, ns, nextSibling)\n\t\t\t\tdefault: return createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse return createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t\treturn vnode.dom\n\t}\n\tfunction createHTML(parent, vnode, nextSibling) {\n\t\tvar match1 = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\tvar parent1 = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}[match1[1]] || \"div\"\n\t\tvar temp = $doc.createElement(parent1)\n\t\ttemp.innerHTML = vnode.children\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tvar attrs2 = vnode.attrs\n\t\tvar is = attrs2 && attrs2.is\n\t\tns = getNameSpace(vnode) || ns\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\t\tif (attrs2 != null) {\n\t\t\tsetAttrs(vnode, attrs2, ns)\n\t\t}\n\t\tinsertNode(parent, element, nextSibling)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tsetLateAttrs(vnode)\n\t\t\t}\n\t\t}\n\t\treturn element\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tvnode._state = vnode.state\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tinitLifecycle(vnode._state, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tvar element = createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t\tinsertNode(parent, element, nextSibling)\n\t\t\treturn element\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t\treturn $emptyFragment\n\t\t}\n\t}\n\t//update\n\tfunction updateNodes(parent, old, vnodes, recycling, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)\n\t\telse if (vnodes == null) removeNodes(old, 0, old.length, vnodes)\n\t\telse {\n\t\t\tif (old.length === vnodes.length) {\n\t\t\t\tvar isUnkeyed = false\n\t\t\t\tfor (var i = 0; i < vnodes.length; i++) {\n\t\t\t\t\tif (vnodes[i] != null && old[i] != null) {\n\t\t\t\t\t\tisUnkeyed = vnodes[i].key == null && old[i].key == null\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isUnkeyed) {\n\t\t\t\t\tfor (var i = 0; i < old.length; i++) {\n\t\t\t\t\t\tif (old[i] === vnodes[i]) continue\n\t\t\t\t\t\telse if (old[i] == null && vnodes[i] != null) createNode(parent, vnodes[i], hooks, ns, getNextSibling(old, i + 1, nextSibling))\n\t\t\t\t\t\telse if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes)\n\t\t\t\t\t\telse updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), recycling, ns)\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\trecycling = recycling || isRecyclable(old, vnodes)\n\t\t\tif (recycling) {\n\t\t\t\tvar pool = old.pool\n\t\t\t\told = old.concat(old.pool)\n\t\t\t}\n\t\t\tvar oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldStart], v = vnodes[start]\n\t\t\t\tif (o === v && !recycling) oldStart++, start++\n\t\t\t\telse if (o == null) oldStart++\n\t\t\t\telse if (v == null) start++\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldStart >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar o = old[oldEnd]\n\t\t\t\t\tif (o === v && !recycling) oldEnd--, start++\n\t\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\t\telse if (v == null) start++\n\t\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\t\tif (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling))\n\t\t\t\t\t\toldEnd--, start++\n\t\t\t\t\t}\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldEnd], v = vnodes[end]\n\t\t\t\tif (o === v && !recycling) oldEnd--, end--\n\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\telse if (v == null) end--\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t\tif (o.dom != null) nextSibling = o.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!map) map = getKeyMap(old, oldEnd)\n\t\t\t\t\tif (v != null) {\n\t\t\t\t\t\tvar oldIndex = map[v.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tvar movable = old[oldIndex]\n\t\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldIndex >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\t\tupdateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns)\n\t\t\t\t\t\t\tinsertNode(parent, toFragment(movable), nextSibling)\n\t\t\t\t\t\t\told[oldIndex].skip = true\n\t\t\t\t\t\t\tif (movable.dom != null) nextSibling = movable.dom\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar dom = createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\tnextSibling = dom\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tend--\n\t\t\t\t}\n\t\t\t\tif (end < start) break\n\t\t\t}\n\t\t\tcreateNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\tremoveNodes(old, oldStart, oldEnd + 1, vnodes)\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode._state = old._state\n\t\t\tvnode.events = old.events\n\t\t\tif (!recycling && shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tif (recycling) {\n\t\t\t\t\t\tvnode.state = {}\n\t\t\t\t\t\tinitLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t\t}\n\t\t\t\t\telse updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, recycling, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(old, null)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\ttoFragment(old)\n\t\t\tcreateHTML(parent, vnode, nextSibling)\n\t\t}\n\t\telse vnode.dom = old.dom, vnode.domSize = old.domSize\n\t}\n\tfunction updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, recycling, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, recycling, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tns = getNameSpace(vnode) || ns\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle0 multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse if (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t}\n\t\telse {\n\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\tupdateNodes(element, old.children, vnode.children, recycling, hooks, null, ns)\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tif (recycling) {\n\t\t\tinitComponent(vnode, hooks)\n\t\t} else {\n\t\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tupdateLifecycle(vnode._state, vnode, hooks)\n\t\t}\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(old.instance, null)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction isRecyclable(old, vnodes) {\n\t\tif (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) {\n\t\t\tvar oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0\n\t\t\tvar poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0\n\t\t\tvar vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0\n\t\t\tif (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tfunction getKeyMap(vnodes, end) {\n\t\tvar map = {}, i = 0\n\t\tfor (var i = 0; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key2 = vnode.key\n\t\t\t\tif (key2 != null) map[key2] = i\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\tfunction toFragment(vnode) {\n\t\tvar count0 = vnode.domSize\n\t\tif (count0 != null || vnode.dom == null) {\n\t\t\tvar fragment = $doc.createDocumentFragment()\n\t\t\tif (count0 > 0) {\n\t\t\t\tvar dom = vnode.dom\n\t\t\t\twhile (--count0) fragment.appendChild(dom.nextSibling)\n\t\t\t\tfragment.insertBefore(dom, fragment.firstChild)\n\t\t\t}\n\t\t\treturn fragment\n\t\t}\n\t\telse return vnode.dom\n\t}\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\tfunction setContentEditable(vnode) {\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t}\n\t//remove\n\tfunction removeNodes(vnodes, start, end, context) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tif (vnode.skip) vnode.skip = false\n\t\t\t\telse removeNode(vnode, context)\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNode(vnode, context) {\n\t\tvar expected = 1, called = 0\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode.attrs.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode._state.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tcontinuation()\n\t\tfunction continuation() {\n\t\t\tif (++called === expected) {\n\t\t\t\tonremove(vnode)\n\t\t\t\tif (vnode.dom) {\n\t\t\t\t\tvar count0 = vnode.domSize || 1\n\t\t\t\t\tif (count0 > 1) {\n\t\t\t\t\t\tvar dom = vnode.dom\n\t\t\t\t\t\twhile (--count0) {\n\t\t\t\t\t\t\tremoveNodeFromDOM(dom.nextSibling)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tremoveNodeFromDOM(vnode.dom)\n\t\t\t\t\tif (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === \"string\") { //TODO test custom elements\n\t\t\t\t\t\tif (!context.pool) context.pool = [vnode]\n\t\t\t\t\t\telse context.pool.push(vnode)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNodeFromDOM(node) {\n\t\tvar parent = node.parentNode\n\t\tif (parent != null) parent.removeChild(node)\n\t}\n\tfunction onremove(vnode) {\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") vnode.attrs.onremove.call(vnode.state, vnode)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onremove === \"function\") vnode._state.onremove.call(vnode.state, vnode)\n\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\telse {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//attrs2\n\tfunction setAttrs(vnode, attrs2, ns) {\n\t\tfor (var key2 in attrs2) {\n\t\t\tsetAttr(vnode, key2, null, attrs2[key2], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key2, old, value, ns) {\n\t\tvar element = vnode.dom\n\t\tif (key2 === \"key\" || key2 === \"is\" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== \"object\" || typeof value === \"undefined\" || isLifecycleMethod(key2)) return\n\t\tvar nsLastIndex = key2.indexOf(\":\")\n\t\tif (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === \"xlink\") {\n\t\t\telement.setAttributeNS(\"http://www.w3.org/1999/xlink\", key2.slice(nsLastIndex + 1), value)\n\t\t}\n\t\telse if (key2[0] === \"o\" && key2[1] === \"n\" && typeof value === \"function\") updateEvent(vnode, key2, value)\n\t\telse if (key2 === \"style\") updateStyle(element, old, value)\n\t\telse if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) {\n\t\t\tif (key2 === \"value\") {\n\t\t\t\tvar normalized0 = \"\" + value // eslint-disable-line no-implicit-coercion\n\t\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\t\tif ((vnode.tag === \"input\" || vnode.tag === \"textarea\") && vnode.dom.value === normalized0 && vnode.dom === $doc.activeElement) return\n\t\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"select\") {\n\t\t\t\t\tif (value === null) {\n\t\t\t\t\t\tif (vnode.dom.selectedIndex === -1 && vnode.dom === $doc.activeElement) return\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (old !== null && vnode.dom.value === normalized0 && vnode.dom === $doc.activeElement) return\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"option\" && old != null && vnode.dom.value === normalized0) return\n\t\t\t}\n\t\t\t// If you assign an input type1 that is not supported by IE 11 with an assignment expression, an error0 will occur.\n\t\t\tif (vnode.tag === \"input\" && key2 === \"type\") {\n\t\t\t\telement.setAttribute(key2, value)\n\t\t\t\treturn\n\t\t\t}\n\t\t\telement[key2] = value\n\t\t}\n\t\telse {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) element.setAttribute(key2, \"\")\n\t\t\t\telse element.removeAttribute(key2)\n\t\t\t}\n\t\t\telse element.setAttribute(key2 === \"className\" ? \"class\" : key2, value)\n\t\t}\n\t}\n\tfunction setLateAttrs(vnode) {\n\t\tvar attrs2 = vnode.attrs\n\t\tif (vnode.tag === \"select\" && attrs2 != null) {\n\t\t\tif (\"value\" in attrs2) setAttr(vnode, \"value\", null, attrs2.value, undefined)\n\t\t\tif (\"selectedIndex\" in attrs2) setAttr(vnode, \"selectedIndex\", null, attrs2.selectedIndex, undefined)\n\t\t}\n\t}\n\tfunction updateAttrs(vnode, old, attrs2, ns) {\n\t\tif (attrs2 != null) {\n\t\t\tfor (var key2 in attrs2) {\n\t\t\t\tsetAttr(vnode, key2, old && old[key2], attrs2[key2], ns)\n\t\t\t}\n\t\t}\n\t\tif (old != null) {\n\t\t\tfor (var key2 in old) {\n\t\t\t\tif (attrs2 == null || !(key2 in attrs2)) {\n\t\t\t\t\tif (key2 === \"className\") key2 = \"class\"\n\t\t\t\t\tif (key2[0] === \"o\" && key2[1] === \"n\" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined)\n\t\t\t\t\telse if (key2 !== \"key\") vnode.dom.removeAttribute(key2)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction isAttribute(attr) {\n\t\treturn attr === \"href\" || attr === \"list\" || attr === \"form\" || attr === \"width\" || attr === \"height\"// || attr === \"type\"\n\t}\n\tfunction isCustomElement(vnode){\n\t\treturn vnode.attrs.is || vnode.tag.indexOf(\"-\") > -1\n\t}\n\tfunction hasIntegrationMethods(source) {\n\t\treturn source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove)\n\t}\n\t//style\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) element.style.cssText = \"\", old = null\n\t\tif (style == null) element.style.cssText = \"\"\n\t\telse if (typeof style === \"string\") element.style.cssText = style\n\t\telse {\n\t\t\tif (typeof old === \"string\") element.style.cssText = \"\"\n\t\t\tfor (var key2 in style) {\n\t\t\t\telement.style[key2] = style[key2]\n\t\t\t}\n\t\t\tif (old != null && typeof old !== \"string\") {\n\t\t\t\tfor (var key2 in old) {\n\t\t\t\t\tif (!(key2 in style)) element.style[key2] = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//event\n\tfunction updateEvent(vnode, key2, value) {\n\t\tvar element = vnode.dom\n\t\tvar callback = typeof onevent !== \"function\" ? value : function(e) {\n\t\t\tvar result = value.call(element, e)\n\t\t\tonevent.call(element, e)\n\t\t\treturn result\n\t\t}\n\t\tif (key2 in element) element[key2] = typeof value === \"function\" ? callback : null\n\t\telse {\n\t\t\tvar eventName = key2.slice(2)\n\t\t\tif (vnode.events === undefined) vnode.events = {}\n\t\t\tif (vnode.events[key2] === callback) return\n\t\t\tif (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false)\n\t\t\tif (typeof value === \"function\") {\n\t\t\t\tvnode.events[key2] = callback\n\t\t\t\telement.addEventListener(eventName, vnode.events[key2], false)\n\t\t\t}\n\t\t}\n\t}\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") source.oninit.call(vnode.state, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(source.oncreate.bind(vnode.state, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(source.onupdate.bind(vnode.state, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tvar forceVnodeUpdate, forceComponentUpdate\n\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeupdate === \"function\") forceComponentUpdate = vnode._state.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\tfunction render(dom, vnodes) {\n\t\tif (!dom) throw new Error(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = $doc.activeElement\n\t\tvar namespace = dom.namespaceURI\n\t\t// First time0 rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\t\tif (!Array.isArray(vnodes)) vnodes = [vnodes]\n\t\tupdateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), false, hooks, null, namespace === \"http://www.w3.org/1999/xhtml\" ? undefined : namespace)\n\t\tdom.vnodes = vnodes\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t\t// document.activeElement can return null in IE https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n\t\tif (active != null && $doc.activeElement !== active) active.focus()\n\t}\n\treturn {render: render, setEventCallback: setEventCallback}\n}\nfunction throttle(callback) {\n\t//60fps translates to 16.6ms, round it down since setTimeout requires int\n\tvar time = 16\n\tvar last = 0, pending = null\n\tvar timeout = typeof requestAnimationFrame === \"function\" ? requestAnimationFrame : setTimeout\n\treturn function() {\n\t\tvar now = Date.now()\n\t\tif (last === 0 || now - last >= time) {\n\t\t\tlast = now\n\t\t\tcallback()\n\t\t}\n\t\telse if (pending === null) {\n\t\t\tpending = timeout(function() {\n\t\t\t\tpending = null\n\t\t\t\tcallback()\n\t\t\t\tlast = Date.now()\n\t\t\t}, time - (now - last))\n\t\t}\n\t}\n}\nvar _11 = function($window) {\n\tvar renderService = coreRenderer($window)\n\trenderService.setEventCallback(function(e) {\n\t\tif (e.redraw === false) e.redraw = undefined\n\t\telse redraw()\n\t})\n\tvar callbacks = []\n\tfunction subscribe(key1, callback) {\n\t\tunsubscribe(key1)\n\t\tcallbacks.push(key1, throttle(callback))\n\t}\n\tfunction unsubscribe(key1) {\n\t\tvar index = callbacks.indexOf(key1)\n\t\tif (index > -1) callbacks.splice(index, 2)\n\t}\n\tfunction redraw() {\n\t\tfor (var i = 1; i < callbacks.length; i += 2) {\n\t\t\tcallbacks[i]()\n\t\t}\n\t}\n\treturn {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render}\n}\nvar redrawService = _11(window)\nrequestService.setCompletionCallback(redrawService.redraw)\nvar _16 = function(redrawService0) {\n\treturn function(root, component) {\n\t\tif (component === null) {\n\t\t\tredrawService0.render(root, [])\n\t\t\tredrawService0.unsubscribe(root)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif (component.view == null && typeof component !== \"function\") throw new Error(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t\n\t\tvar run0 = function() {\n\t\t\tredrawService0.render(root, Vnode(component))\n\t\t}\n\t\tredrawService0.subscribe(root, run0)\n\t\tredrawService0.redraw()\n\t}\n}\nm.mount = _16(redrawService)\nvar Promise = PromisePolyfill\nvar parseQueryString = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\tvar entries = string.split(\"&\"), data0 = {}, counters = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key5 = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\t\tvar levels = key5.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data0\n\t\tif (key5.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tvar isValue = j === levels.length - 1\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key5 = levels.slice(0, j).join()\n\t\t\t\tif (counters[key5] == null) counters[key5] = 0\n\t\t\t\tlevel = counters[key5]++\n\t\t\t}\n\t\t\tif (cursor[level] == null) {\n\t\t\t\tcursor[level] = isValue ? value : isNumber ? [] : {}\n\t\t\t}\n\t\t\tcursor = cursor[level]\n\t\t}\n\t}\n\treturn data0\n}\nvar coreRouter = function($window) {\n\tvar supportsPushState = typeof $window.history.pushState === \"function\"\n\tvar callAsync0 = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction normalize1(fragment0) {\n\t\tvar data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\tif (fragment0 === \"pathname\" && data[0] !== \"/\") data = \"/\" + data\n\t\treturn data\n\t}\n\tvar asyncId\n\tfunction debounceAsync(callback0) {\n\t\treturn function() {\n\t\t\tif (asyncId != null) return\n\t\t\tasyncId = callAsync0(function() {\n\t\t\t\tasyncId = null\n\t\t\t\tcallback0()\n\t\t\t})\n\t\t}\n\t}\n\tfunction parsePath(path, queryData, hashData) {\n\t\tvar queryIndex = path.indexOf(\"?\")\n\t\tvar hashIndex = path.indexOf(\"#\")\n\t\tvar pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length\n\t\tif (queryIndex > -1) {\n\t\t\tvar queryEnd = hashIndex > -1 ? hashIndex : path.length\n\t\t\tvar queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd))\n\t\t\tfor (var key4 in queryParams) queryData[key4] = queryParams[key4]\n\t\t}\n\t\tif (hashIndex > -1) {\n\t\t\tvar hashParams = parseQueryString(path.slice(hashIndex + 1))\n\t\t\tfor (var key4 in hashParams) hashData[key4] = hashParams[key4]\n\t\t}\n\t\treturn path.slice(0, pathEnd)\n\t}\n\tvar router = {prefix: \"#!\"}\n\trouter.getPath = function() {\n\t\tvar type2 = router.prefix.charAt(0)\n\t\tswitch (type2) {\n\t\t\tcase \"#\": return normalize1(\"hash\").slice(router.prefix.length)\n\t\t\tcase \"?\": return normalize1(\"search\").slice(router.prefix.length) + normalize1(\"hash\")\n\t\t\tdefault: return normalize1(\"pathname\").slice(router.prefix.length) + normalize1(\"search\") + normalize1(\"hash\")\n\t\t}\n\t}\n\trouter.setPath = function(path, data, options) {\n\t\tvar queryData = {}, hashData = {}\n\t\tpath = parsePath(path, queryData, hashData)\n\t\tif (data != null) {\n\t\t\tfor (var key4 in data) queryData[key4] = data[key4]\n\t\t\tpath = path.replace(/:([^\\/]+)/g, function(match2, token) {\n\t\t\t\tdelete queryData[token]\n\t\t\t\treturn data[token]\n\t\t\t})\n\t\t}\n\t\tvar query = buildQueryString(queryData)\n\t\tif (query) path += \"?\" + query\n\t\tvar hash = buildQueryString(hashData)\n\t\tif (hash) path += \"#\" + hash\n\t\tif (supportsPushState) {\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\t$window.onpopstate()\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, router.prefix + path)\n\t\t\telse $window.history.pushState(state, title, router.prefix + path)\n\t\t}\n\t\telse $window.location.href = router.prefix + path\n\t}\n\trouter.defineRoutes = function(routes, resolve, reject) {\n\t\tfunction resolveRoute() {\n\t\t\tvar path = router.getPath()\n\t\t\tvar params = {}\n\t\t\tvar pathname = parsePath(path, params, params)\n\t\t\tvar state = $window.history.state\n\t\t\tif (state != null) {\n\t\t\t\tfor (var k in state) params[k] = state[k]\n\t\t\t}\n\t\t\tfor (var route0 in routes) {\n\t\t\t\tvar matcher = new RegExp(\"^\" + route0.replace(/:[^\\/]+?\\.{3}/g, \"(.*?)\").replace(/:[^\\/]+/g, \"([^\\\\/]+)\") + \"\\/?$\")\n\t\t\t\tif (matcher.test(pathname)) {\n\t\t\t\t\tpathname.replace(matcher, function() {\n\t\t\t\t\t\tvar keys = route0.match(/:[^\\/]+/g) || []\n\t\t\t\t\t\tvar values = [].slice.call(arguments, 1, -2)\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\t\t\t\t\tparams[keys[i].replace(/:|\\./g, \"\")] = decodeURIComponent(values[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(routes[route0], params, path, route0)\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\treject(path, params)\n\t\t}\n\t\tif (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)\n\t\telse if (router.prefix.charAt(0) === \"#\") $window.onhashchange = resolveRoute\n\t\tresolveRoute()\n\t}\n\treturn router\n}\nvar _20 = function($window, redrawService0) {\n\tvar routeService = coreRouter($window)\n\tvar identity = function(v) {return v}\n\tvar render1, component, attrs3, currentPath, lastUpdate\n\tvar route = function(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\tvar run1 = function() {\n\t\t\tif (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3)))\n\t\t}\n\t\tvar bail = function(path) {\n\t\t\tif (path !== defaultRoute) routeService.setPath(defaultRoute, null, {replace: true})\n\t\t\telse throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t}\n\t\trouteService.defineRoutes(routes, function(payload, params, path) {\n\t\t\tvar update = lastUpdate = function(routeResolver, comp) {\n\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\tattrs3 = params, currentPath = path, lastUpdate = null\n\t\t\t\trender1 = (routeResolver.render || identity).bind(routeResolver)\n\t\t\t\trun1()\n\t\t\t}\n\t\t\tif (payload.view || typeof payload === \"function\") update({}, payload)\n\t\t\telse {\n\t\t\t\tif (payload.onmatch) {\n\t\t\t\t\tPromise.resolve(payload.onmatch(params, path)).then(function(resolved) {\n\t\t\t\t\t\tupdate(payload, resolved)\n\t\t\t\t\t}, bail)\n\t\t\t\t}\n\t\t\t\telse update(payload, \"div\")\n\t\t\t}\n\t\t}, bail)\n\t\tredrawService0.subscribe(root, run1)\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) {\n\t\t\toptions = options || {}\n\t\t\toptions.replace = true\n\t\t}\n\t\tlastUpdate = null\n\t\trouteService.setPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = function(prefix0) {routeService.prefix = prefix0}\n\troute.link = function(vnode1) {\n\t\tvnode1.dom.setAttribute(\"href\", routeService.prefix + vnode1.attrs.href)\n\t\tvnode1.dom.onclick = function(e) {\n\t\t\tif (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return\n\t\t\te.preventDefault()\n\t\t\te.redraw = false\n\t\t\tvar href = this.getAttribute(\"href\")\n\t\t\tif (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length)\n\t\t\troute.set(href, undefined, undefined)\n\t\t}\n\t}\n\troute.param = function(key3) {\n\t\tif(typeof attrs3 !== \"undefined\" && typeof key3 !== \"undefined\") return attrs3[key3]\n\t\treturn attrs3\n\t}\n\treturn route\n}\nm.route = _20(window, redrawService)\nm.withAttr = function(attrName, callback1, context) {\n\treturn function(e) {\n\t\tcallback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName))\n\t}\n}\nvar _28 = coreRenderer(window)\nm.render = _28.render\nm.redraw = redrawService.redraw\nm.request = requestService.request\nm.jsonp = requestService.jsonp\nm.parseQueryString = parseQueryString\nm.buildQueryString = buildQueryString\nm.version = \"1.1.5\"\nm.vnode = Vnode\nif (typeof module !== \"undefined\") module[\"exports\"] = m\nelse window.m = m\n}());\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],8:[function(require,module,exports){\n/*!\n * EventEmitter v5.2.4 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n\n},{}]},{},[1]);\n })();"]}
assets/js/forms-admin.js CHANGED
@@ -4986,8 +4986,10 @@ function updateHeightsInViewport(cm) {
4986
  // Read and store the height of line widgets associated with the
4987
  // given line.
4988
  function updateWidgetHeight(line) {
4989
- if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i)
4990
- { line.widgets[i].height = line.widgets[i].node.parentNode.offsetHeight; } }
 
 
4991
  }
4992
 
4993
  // Compute the lines that are visible in a given viewport (defaults
@@ -8783,18 +8785,26 @@ function lookupKeyForEditor(cm, name, handle) {
8783
  // for bound mouse clicks.
8784
 
8785
  var stopSeq = new Delayed;
 
8786
  function dispatchKey(cm, name, e, handle) {
8787
  var seq = cm.state.keySeq;
8788
  if (seq) {
8789
  if (isModifierKey(name)) { return "handled" }
8790
- stopSeq.set(50, function () {
8791
- if (cm.state.keySeq == seq) {
8792
- cm.state.keySeq = null;
8793
- cm.display.input.reset();
8794
- }
8795
- });
8796
- name = seq + " " + name;
 
 
 
8797
  }
 
 
 
 
8798
  var result = lookupKeyForEditor(cm, name, handle);
8799
 
8800
  if (result == "multi")
@@ -8807,10 +8817,6 @@ function dispatchKey(cm, name, e, handle) {
8807
  restartBlink(cm);
8808
  }
8809
 
8810
- if (seq && !result && /\'$/.test(name)) {
8811
- e_preventDefault(e);
8812
- return true
8813
- }
8814
  return !!result
8815
  }
8816
 
@@ -11362,7 +11368,7 @@ CodeMirror$1.fromTextArea = fromTextArea;
11362
 
11363
  addLegacyProps(CodeMirror$1);
11364
 
11365
- CodeMirror$1.version = "5.31.0";
11366
 
11367
  return CodeMirror$1;
11368
 
@@ -12406,8 +12412,6 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12406
  "interface": kw("class"),
12407
  "implements": C,
12408
  "namespace": C,
12409
- "module": kw("module"),
12410
- "enum": kw("module"),
12411
 
12412
  // scope modifiers
12413
  "public": kw("modifier"),
@@ -12514,7 +12518,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12514
  var kw = keywords[word]
12515
  return ret(kw.type, kw.style, word)
12516
  }
12517
- if (word == "async" && stream.match(/^\s*[\(\w]/, false))
12518
  return ret("async", "keyword", word)
12519
  }
12520
  return ret("variable", "variable", word)
@@ -12731,9 +12735,12 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12731
  if (isTS && value == "type") {
12732
  cx.marked = "keyword"
12733
  return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
12734
- } if (isTS && value == "declare") {
12735
  cx.marked = "keyword"
12736
  return cont(statement)
 
 
 
12737
  } else {
12738
  return cont(pushlex("stat"), maybelabel);
12739
  }
@@ -12747,7 +12754,6 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12747
  if (type == "class") return cont(pushlex("form"), className, poplex);
12748
  if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
12749
  if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
12750
- if (type == "module") return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
12751
  if (type == "async") return cont(statement)
12752
  if (value == "@") return cont(expression, statement)
12753
  return pass(pushlex("stat"), expression, expect(";"), poplex);
@@ -12797,6 +12803,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12797
  if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
12798
  if (type == "operator") {
12799
  if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
 
 
12800
  if (value == "?") return cont(expression, expect(":"), expr);
12801
  return cont(expr);
12802
  }
@@ -12923,6 +12931,18 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12923
  if (value == "?") return cont(maybetype);
12924
  }
12925
  }
 
 
 
 
 
 
 
 
 
 
 
 
12926
  function typeexpr(type, value) {
12927
  if (type == "variable" || value == "void") {
12928
  if (value == "keyof") {
@@ -12966,6 +12986,12 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12966
  function maybeTypeArgs(_, value) {
12967
  if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
12968
  }
 
 
 
 
 
 
12969
  function vardef() {
12970
  return pass(pattern, maybetype, maybeAssign, vardefCont);
12971
  }
@@ -13019,8 +13045,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
13019
  function functiondef(type, value) {
13020
  if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
13021
  if (type == "variable") {register(value); return cont(functiondef);}
13022
- if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, maybetype, statement, popcontext);
13023
- if (isTS && value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, functiondef)
13024
  }
13025
  function funarg(type, value) {
13026
  if (value == "@") cont(expression, funarg)
@@ -13036,7 +13062,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
13036
  if (type == "variable") {register(value); return cont(classNameAfter);}
13037
  }
13038
  function classNameAfter(type, value) {
13039
- if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, classNameAfter)
13040
  if (value == "extends" || value == "implements" || (isTS && type == ","))
13041
  return cont(isTS ? typeexpr : expression, classNameAfter);
13042
  if (type == "{") return cont(pushlex("}"), classBody, poplex);
4986
  // Read and store the height of line widgets associated with the
4987
  // given line.
4988
  function updateWidgetHeight(line) {
4989
+ if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {
4990
+ var w = line.widgets[i], parent = w.node.parentNode;
4991
+ if (parent) { w.height = parent.offsetHeight; }
4992
+ } }
4993
  }
4994
 
4995
  // Compute the lines that are visible in a given viewport (defaults
8785
  // for bound mouse clicks.
8786
 
8787
  var stopSeq = new Delayed;
8788
+
8789
  function dispatchKey(cm, name, e, handle) {
8790
  var seq = cm.state.keySeq;
8791
  if (seq) {
8792
  if (isModifierKey(name)) { return "handled" }
8793
+ if (/\'$/.test(name))
8794
+ { cm.state.keySeq = null; }
8795
+ else
8796
+ { stopSeq.set(50, function () {
8797
+ if (cm.state.keySeq == seq) {
8798
+ cm.state.keySeq = null;
8799
+ cm.display.input.reset();
8800
+ }
8801
+ }); }
8802
+ if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true }
8803
  }
8804
+ return dispatchKeyInner(cm, name, e, handle)
8805
+ }
8806
+
8807
+ function dispatchKeyInner(cm, name, e, handle) {
8808
  var result = lookupKeyForEditor(cm, name, handle);
8809
 
8810
  if (result == "multi")
8817
  restartBlink(cm);
8818
  }
8819
 
 
 
 
 
8820
  return !!result
8821
  }
8822
 
11368
 
11369
  addLegacyProps(CodeMirror$1);
11370
 
11371
+ CodeMirror$1.version = "5.32.0";
11372
 
11373
  return CodeMirror$1;
11374
 
12412
  "interface": kw("class"),
12413
  "implements": C,
12414
  "namespace": C,
 
 
12415
 
12416
  // scope modifiers
12417
  "public": kw("modifier"),
12518
  var kw = keywords[word]
12519
  return ret(kw.type, kw.style, word)
12520
  }
12521
+ if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\(\w]/, false))
12522
  return ret("async", "keyword", word)
12523
  }
12524
  return ret("variable", "variable", word)
12735
  if (isTS && value == "type") {
12736
  cx.marked = "keyword"
12737
  return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
12738
+ } else if (isTS && value == "declare") {
12739
  cx.marked = "keyword"
12740
  return cont(statement)
12741
+ } else if (isTS && (value == "module" || value == "enum") && cx.stream.match(/^\s*\w/, false)) {
12742
+ cx.marked = "keyword"
12743
+ return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
12744
  } else {
12745
  return cont(pushlex("stat"), maybelabel);
12746
  }
12754
  if (type == "class") return cont(pushlex("form"), className, poplex);
12755
  if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
12756
  if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
 
12757
  if (type == "async") return cont(statement)
12758
  if (value == "@") return cont(expression, statement)
12759
  return pass(pushlex("stat"), expression, expect(";"), poplex);
12803
  if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
12804
  if (type == "operator") {
12805
  if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
12806
+ if (isTS && value == "<" && cx.stream.match(/^([^>]|<.*?>)*>\s*\(/, false))
12807
+ return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me);
12808
  if (value == "?") return cont(expression, expect(":"), expr);
12809
  return cont(expr);
12810
  }
12931
  if (value == "?") return cont(maybetype);
12932
  }
12933
  }
12934
+ function mayberettype(type) {
12935
+ if (isTS && type == ":") {
12936
+ if (cx.stream.match(/^\s*\w+\s+is\b/, false)) return cont(expression, isKW, typeexpr)
12937
+ else return cont(typeexpr)
12938
+ }
12939
+ }
12940
+ function isKW(_, value) {
12941
+ if (value == "is") {
12942
+ cx.marked = "keyword"
12943
+ return cont()
12944
+ }
12945
+ }
12946
  function typeexpr(type, value) {
12947
  if (type == "variable" || value == "void") {
12948
  if (value == "keyof") {
12986
  function maybeTypeArgs(_, value) {
12987
  if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
12988
  }
12989
+ function typeparam() {
12990
+ return pass(typeexpr, maybeTypeDefault)
12991
+ }
12992
+ function maybeTypeDefault(_, value) {
12993
+ if (value == "=") return cont(typeexpr)
12994
+ }
12995
  function vardef() {
12996
  return pass(pattern, maybetype, maybeAssign, vardefCont);
12997
  }
13045
  function functiondef(type, value) {
13046
  if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
13047
  if (type == "variable") {register(value); return cont(functiondef);}
13048
+ if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext);
13049
+ if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef)
13050
  }
13051
  function funarg(type, value) {
13052
  if (value == "@") cont(expression, funarg)
13062
  if (type == "variable") {register(value); return cont(classNameAfter);}
13063
  }
13064
  function classNameAfter(type, value) {
13065
+ if (value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter)
13066
  if (value == "extends" || value == "implements" || (isTS && type == ","))
13067
  return cont(isTS ? typeexpr : expression, classNameAfter);
13068
  if (type == "{") return cont(pushlex("}"), classBody, poplex);
assets/js/forms-admin.min.js CHANGED
@@ -1,9 +1,2 @@
1
- !function(){var e=void 0,t=void 0;!function t(r,n,i){function o(l,s){if(!n[l]){if(!r[l]){var c="function"==typeof e&&e;if(!s&&c)return c(l,!0);if(a)return a(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[l]={exports:{}};r[l][0].call(d.exports,function(e){var t=r[l][1][e];return o(t||e)},d,d.exports,t,r,n,i)}return n[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}({1:[function(e,t,r){"use strict";var n=function(e,t){var r={};return r.showType=function(r){var n=r.type();return n=n.charAt(0).toUpperCase()+n.slice(1),e("div",[e("label",t.fieldType),e("span",n)])},r.label=function(r){return e("div",[e("label",t.fieldLabel),e("input.widefat",{type:"text",value:r.label(),onchange:e.withAttr("value",r.label),placeholder:r.title()})])},r.value=function(r){var n="hidden"===r.type();return e("div",[e("label",[n?t.value:t.initialValue," ",n?"":e("small",{style:"float: right; font-weight: normal;"},t.optional)]),e("input.widefat",{type:"text",value:r.value(),onchange:e.withAttr("value",r.value)}),n?"":e("p.help",t.valueHelp)])},r.numberMinMax=function(r){return e("div",[e("div.row",[e("div.col.col-3",[e("label",t.min),e("input",{type:"number",onchange:e.withAttr("value",r.min)})]),e("div.col.col-3",[e("label",t.max),e("input",{type:"number",onchange:e.withAttr("value",r.max)})])])])},r.isRequired=function(r){var n={type:"checkbox",checked:r.required(),onchange:e.withAttr("checked",r.required)},i=void 0;return r.forceRequired()&&(n.required=!0,n.disabled=!0,i=e("p.help",t.forceRequired)),e("div",[e("label.cb-wrap",[e("input",n),t.isFieldRequired]),i])},r.placeholder=function(r){return e("div",[e("label",[t.placeholder," ",e("small",{style:"float: right; font-weight: normal;"},t.optional)]),e("input.widefat",{type:"text",value:r.placeholder(),onchange:e.withAttr("value",r.placeholder),placeholder:""}),e("p.help",t.placeholderHelp)])},r.useParagraphs=function(r){return e("div",[e("label.cb-wrap",[e("input",{type:"checkbox",checked:r.wrap(),onchange:e.withAttr("checked",r.wrap)}),t.wrapInParagraphTags])])},r.choiceType=function(r){var n=[e("option",{value:"select",selected:"select"===r.type()&&"selected"},t.dropdown),e("option",{value:"radio",selected:"radio"===r.type()&&"selected"},t.radioButtons)];return r.acceptsMultipleValues&&n.push(e("option",{value:"checkbox",selected:"checkbox"===r.type()&&"selected"},t.checkboxes)),e("div",[e("label",t.choiceType),e("select",{value:r.type(),onchange:e.withAttr("value",r.type)},n)])},r.choices=function(r){var n=[];return n.push(e("div",[e("label",t.choices),e("div.limit-height",[e("table",[r.choices().map(function(n,i){return e("tr",{"data-id":i},[e("td.cb",e("input",{name:"selected",type:"checkbox"===r.type()?"checkbox":"radio",onchange:e.withAttr("value",r.selectChoice.bind(r)),checked:n.selected(),value:n.value(),title:t.preselect})),e("td.stretch",e("input.widefat",{type:"text",value:n.label(),placeholder:n.title(),onchange:e.withAttr("value",n.label)})),e("td",e("span",{title:t.remove,class:"dashicons dashicons-no-alt hover-activated",onclick:function(e){this.choices().splice(e,1)}.bind(r,i)},""))])})])])])),n},r};t.exports=n},{}],2:[function(e,t,r){"use strict";var n=function(t,r){var n={},i=e("./field-forms-rows.js")(t,r);return n.render=function(e){var t=e.type();if("function"==typeof n[t])return n[t](e);switch(t){case"select":case"radio":case"checkbox":return n.choice(e)}return n.text(e)},n.text=function(e){return[i.label(e),i.placeholder(e),i.value(e),i.isRequired(e),i.useParagraphs(e)]},n.choice=function(e){var t=[i.label(e),i.choiceType(e),i.choices(e)];return"select"===e.type()&&t.push(i.placeholder(e)),t.push(i.useParagraphs(e)),"select"!==e.type()&&"radio"!==e.type()||t.push(i.isRequired(e)),t},n.hidden=function(e){return e.placeholder(""),e.label(""),e.wrap(!1),[i.showType(e),i.value(e)]},n.submit=function(e){return e.label(""),e.placeholder(""),[i.value(e),i.useParagraphs(e)]},n.number=function(e){return[n.text(e),i.numberMinMax(e)]},n};t.exports=n},{"./field-forms-rows.js":1}],3:[function(e,t,r){"use strict";var n=e("html"),i=function(e){e.dom.checked&&e.dom.setAttribute("checked","true"),e.dom.value&&e.dom.setAttribute("value",e.dom.value),e.dom.selected&&e.dom.setAttribute("selected","true")},o=function(e){function t(t){var i=void 0,o=void 0,a=void 0,l=document.createElement("div");return i=t.label().length>0?e("label",{},t.label()):"",o="function"==typeof r[t.type()]?r[t.type()](t):r.default(t),a=t.wrap()?e("p",[i,o]):[i,o],e.render(l,a),n.prettyPrint(l.innerHTML)+"\n"}var r={};return r.select=function(t){var r={name:t.name(),required:t.required()},n=!1,o=t.choices().map(function(t){return t.selected()&&(n=!0),e("option",{value:t.value()!==t.label()?t.value():void 0,selected:t.selected(),oncreate:i},t.label())}),a=t.placeholder();return a.length>0&&o.unshift(e("option",{disabled:!0,value:"",selected:!n,oncreate:i},a)),e("select",r,o)},r.checkbox=function(t){return t.choices().map(function(r){var n=t.name()+("checkbox"===t.type()?"[]":""),o=t.required()&&"radio"===t.type();return e("label",[e("input",{name:n,type:t.type(),value:r.value(),checked:r.selected(),required:o,oncreate:i})," ",e("span",r.label())])})},r.radio=r.checkbox,r.default=function(t){var r={type:t.type()};return t.name()&&(r.name=t.name()),t.min()&&(r.min=t.min()),t.max()&&(r.max=t.max()),t.value().length>0&&(r.value=t.value()),t.placeholder().length>0&&(r.placeholder=t.placeholder()),r.required=t.required(),r.oncreate=i,e("input",r)},t};t.exports=o},{html:20}],4:[function(e,t,r){"use strict";var n=function(t,r,n,i,o,a){function l(e){d=i.get(e),d&&d.choices().length>0&&d.value(d.choices().map(function(e){return e.label()}).join("|")),t.redraw()}function s(){}function c(){var e=f(d);n.insert(e),l(""),t.redraw()}function u(){var e=i.getCategories(),r=i.getAll(),n=t("div.available-fields.small-margin",[t("h4",a.chooseField),e.map(function(e){var n=r.filter(function(t){return t.category===e});if(n.length)return t("div.tiny-margin",[t("strong",e),n.map(function(e){var r="button";e.forceRequired()&&(r+=" is-required");var n=e.inFormContent();return null!==n&&(r+=" "+(n?"in-form":"not-in-form")),t("button",{className:r,type:"button",onclick:t.withAttr("value",l),value:e.index},e.title())})])})]),o=null;return d&&(o=h(t("div.field-wizard",[t("h3",[d.title(),d.forceRequired()?t("span.red","*"):"",d.name().length?t("code",d.name()):""]),d.help().length?t("p",t.trust(d.help())):"",p.render(d),t("p",[t("button",{class:"button-primary",type:"button",onkeydown:function(e){e=e||window.event,13==e.keyCode&&c()},onclick:c},a.addToForm)])]),l)),[n,o]}var d,f=e("./field-generator.js")(t),h=e("./overlay.js")(t,a),p=e("./field-forms.js")(t,a);return n.on("blur",t.redraw),{view:u,controller:s}};t.exports=n},{"./field-forms.js":2,"./field-generator.js":3,"./overlay.js":10}],5:[function(e,t,r){"use strict";var n=function(e,t){function r(){u.forEach(e.deregister)}function n(t,r,n){var i=e.register(t,r);n||u.push(i)}function i(e){var t={phone:"tel",dropdown:"select",checkboxes:"checkbox",birthday:"text"};return void 0!==t[e]?t[e]:e}function o(e){var r=t.listFields,o=i(e.field_type),a={name:e.tag,title:e.name,required:e.required,forceRequired:e.required,type:o,choices:e.choices,acceptsMultipleValues:!1};return"address"!==a.type?n(r,a,!1):(n(r,{name:a.name+"[addr1]",type:"text",mailchimpType:"address",title:t.streetAddress}),n(r,{name:a.name+"[city]",type:"text",mailchimpType:"address",title:t.city}),n(r,{name:a.name+"[state]",type:"text",mailchimpType:"address",title:t.state}),n(r,{name:a.name+"[zip]",type:"text",mailchimpType:"address",title:t.zip}),n(r,{name:a.name+"[country]",type:"select",mailchimpType:"address",title:t.country,choices:mc4wp_vars.countries})),!0}function a(e){var r=t.interestCategories,o=i(e.field_type);n(r,{title:e.name,name:"INTERESTS["+e.id+"]",type:o,choices:e.interests,acceptsMultipleValues:"checkbox"===o},!1)}function l(e){e.merge_fields=e.merge_fields.sort(function(e,t){return"EMAIL"===e.tag||e.public&&!t.public?-1:!e.public&&t.public?1:0}),e.merge_fields.forEach(o),e.interest_categories.forEach(a)}function s(e){r(),e.forEach(l)}function c(e){var r,i=t.formFields;n(i,{name:"",value:t.subscribe,type:"submit",title:t.submitButton},!0),r={};for(var o in e)r[e[o].id]=e[o].name;n(i,{name:"_mc4wp_lists",type:"checkbox",title:t.listChoice,choices:r,help:t.listChoiceDescription,acceptsMultipleValues:!0},!0),r={subscribe:"Subscribe",unsubscribe:"Unsubscribe"},n(i,{name:"_mc4wp_action",type:"radio",title:t.formAction,choices:r,value:"subscribe",help:t.formActionDescription},!0)}var u=[];return{registerCustomFields:c,registerListFields:l,registerListsFields:s}};t.exports=n},{}],6:[function(e,t,r){"use strict";var n=e("mithril/stream");t.exports=function(e,t){function r(e){return"function"==typeof e.map?e.map(function(e){return new p({label:e})}):Object.keys(e).map(function(t){var r=e[t];return new p({label:r,value:t})})}function i(n,i){var o,a=c("name",i.name).shift();return a?void(!a.forceRequired()&&i.forceRequired&&a.forceRequired(!0)):(i.choices&&(i.choices=r(i.choices),i.value&&(i.choices=i.choices.map(function(e){return e.value()===i.value&&e.selected(!0),e}))),f.indexOf(n)<0&&f.push(n),o=new h(i),o.category=n,d.push(o),u&&window.clearTimeout(u),u=window.setTimeout(e.redraw,200),t.trigger("fields.change"),o)}function o(t){var r=d.indexOf(t);r>-1&&(delete d[r],e.redraw())}function a(e){return d[e]}function l(){return d=d.map(function(e,t){return e.index=t,e})}function s(){return f}function c(e,t){return d.filter(function(r){return r[e]()===t})}var u,d=[],f=[],h=function(e){this.name=n(e.name),this.title=n(e.title||e.name),this.type=n(e.type),this.mailchimpType=n(e.mailchimpType||""),this.label=n(e.title||""),this.value=n(e.value||""),this.placeholder=n(e.placeholder||""),this.required=n(e.required||!1),this.forceRequired=n(e.forceRequired||!1),this.wrap=n(e.wrap||!0),this.min=n(e.min||null),this.max=n(e.max||null),this.help=n(e.help||""),this.choices=n(e.choices||[]),this.inFormContent=n(null),this.acceptsMultipleValues=e.acceptsMultipleValues,this.selectChoice=function(e){var t=this;this.choices(this.choices().map(function(r){return r.value()===e?r.selected(!0):"checkbox"!==t.type()&&r.selected(!1),r}))}},p=function(e){this.label=n(e.label),this.title=n(e.title||e.label),this.selected=n(e.selected||!1),this.value=n(e.value||e.label)};return{get:a,getAll:l,getCategories:s,deregister:o,register:i,getAllWhere:c}}},{"mithril/stream":21}],7:[function(e,t,r){"use strict";var n=e("codemirror");e("codemirror/mode/xml/xml"),e("codemirror/mode/javascript/javascript"),e("codemirror/mode/css/css"),e("codemirror/mode/htmlmixed/htmlmixed"),e("codemirror/addon/fold/xml-fold"),e("codemirror/addon/edit/matchtags"),e("codemirror/addon/edit/closetag.js");var i=function(e){function t(){return o&&(i.innerHTML=a.getValue().toLowerCase(),o=!1),i}var r,i=document.createElement("form"),o=!1,a={};return i.innerHTML=e.value.toLowerCase(),n&&(r=n.fromTextArea(e,{selectionPointer:!0,matchTags:{bothTags:!0},mode:"htmlmixed",htmlMode:!0,autoCloseTags:!0,autoRefresh:!0}),window.dispatchEvent&&r.on("change",function(){if("function"==typeof Event){var t=new Event("change",{bubbles:!0});e.dispatchEvent(t)}})),window.addEventListener("load",function(){n.signal(r,"change")}),e.addEventListener("change",function(){o=!0}),a.getValue=function(){return r?r.getValue():e.value},a.query=function(e){return t().querySelectorAll(e.toLowerCase())},a.containsField=function(e){return null!==t().elements.namedItem(e.toLowerCase())},a.insert=function(t){r?(r.replaceSelection(t),r.focus()):e.value+=t},a.on=function(t,n){return r?(t="input"===t?"changes":t,r.on(t,n)):e.addEventListener(t,n)},a.refresh=function(){r&&r.refresh()},a};t.exports=i},{codemirror:15,"codemirror/addon/edit/closetag.js":12,"codemirror/addon/edit/matchtags":13,"codemirror/addon/fold/xml-fold":14,"codemirror/mode/css/css":16,"codemirror/mode/htmlmixed/htmlmixed":17,"codemirror/mode/javascript/javascript":18,"codemirror/mode/xml/xml":19}],8:[function(e,t,r){"use strict";var n=function(e,t,r,n,i,o){function a(){n.getAll().forEach(function(e){if(!(e.name().length<=0)){var r=e.name();"checkbox"===e.type()&&(r+="[]");var n=t.containsField(r);if(e.inFormContent(n),"address"===e.mailchimpType()){e.originalRequiredValue=void 0===e.originalRequiredValue?e.forceRequired():e.originalRequiredValue;var i=e.name().replace(/\[(\w+)\]/g,"");t.query('[name^="'+i+'"]').length>0?(void 0===e.originalRequiredValue&&(e.originalRequiredValue=e.forceRequired()),e.forceRequired(!0)):e.forceRequired(e.originalRequiredValue)}}}),l(),e.redraw()}function l(){var e=n.getAllWhere("forceRequired",!0).map(function(e){return e.name().toUpperCase().replace(/\[(\w+)\]/g,".$1")}),r=t.query("[required]");Array.prototype.forEach.call(r,function(t){var r=t.name.toUpperCase();"_"!==r[0]&&(r=r.replace(/\[(\w+)\]/g,".$1"),-1===e.indexOf(r)&&e.push(r))}),s.value=e.join(",")}var s=document.getElementById("required-fields");t.on("change",o.debounce(a,500)),i.on("fields.change",o.debounce(a,500))};t.exports=n},{}],9:[function(e,t,r){"use strict";function n(e,t){l[e]=t,o()}function i(e){delete l[e],o()}function o(){var e="";for(var t in l)e+='<div class="notice notice-warning inline"><p>'+l[t]+"</p></div>";var r=document.querySelector(".mc4wp-notices");if(!r){r=document.createElement("div"),r.className="mc4wp-notices";var n=document.querySelector("h1, h2");n.parentNode.insertBefore(r,n.nextSibling)}r.innerHTML=e}function a(e,t){var r=function(){e.getValue().toLowerCase().indexOf('name="groupings')>-1?n("deprecated_groupings","Your form contains old style <code>GROUPINGS</code> fields. <br /><br />Please remove these fields from your form and then re-add them through the available field buttons to make sure your data is getting through to MailChimp correctly."):i("deprecated_groupings")},o=function(){var r=t.getAllWhere("forceRequired",!0),o=r.filter(function(t){return!e.containsField(t.name().toUpperCase())}),a="<strong>Heads up!</strong> Your form is missing list fields that are required in MailChimp. Either add these fields to your form or mark them as optional in MailChimp.";a+='<br /><ul class="ul-square" style="margin-bottom: 0;"><li>'+o.map(function(e){return e.title()}).join("</li><li>")+"</li></ul>",o.length>0?n("required_fields_missing",a):i("required_fields_missing")};r(),e.on("focus",r),e.on("blur",r),o(),e.on("blur",o),e.on("focus",o)}var l={};t.exports={init:a}},{}],10:[function(e,t,r){"use strict";var n=function(e,t){function r(){document.removeEventListener("keydown",n),window.removeEventListener("resize",i),l()}function n(e){e=e||window.event,27==e.keyCode&&r(),13==e.keyCode&&e.preventDefault()}function i(){if(a){var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,t=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,r=(e-a.clientWidth-40)/2,n=(t-a.clientHeight-40)/2;a.style.left=(r>0?r:0)+"px",a.style.top=(n>0?n:0)+"px"}}function o(e){a=e.dom,i()}var a=void 0,l=void 0;return function(a,s){return l=s,document.addEventListener("keydown",n),window.addEventListener("resize",i),[e("div.overlay-wrap",e("div.overlay",{oncreate:o},[e("span",{class:"close dashicons dashicons-no",title:t.close,onclick:r}),a])),e("div.overlay-background",{title:t.close,onclick:r})]}};t.exports=n},{}],11:[function(e,t,r){"use strict";var n=window.mc4wp_forms_i18n,i=window.mc4wp.deps.mithril,o=mc4wp.events,a=mc4wp.settings,l=mc4wp.helpers,s=mc4wp.tabs,c=e("./admin/form-watcher.js"),u=e("./admin/form-editor.js"),d=e("./admin/field-helper.js"),f=e("./admin/fields-factory.js"),h=e("./admin/fields.js")(i,o),p=document.getElementById("mc4wp-form-content"),m=window.formEditor=new u(p),g=(new c(i,formEditor,a,h,o,l),new d(i,s,formEditor,h,o,n)),v=e("./admin/notices");i.mount(document.getElementById("mc4wp-field-wizard"),g);var y=new f(h,n);o.on("selectedLists.change",y.registerListsFields),y.registerListsFields(a.getSelectedLists()),y.registerCustomFields(mc4wp_vars.mailchimp.lists),window.setTimeout(function(){i.redraw()},2e3),v.init(m,h),window.mc4wp=window.mc4wp||{},window.mc4wp.forms=window.mc4wp.forms||{},window.mc4wp.forms.editor=m,window.mc4wp.forms.fields=h},{"./admin/field-helper.js":4,"./admin/fields-factory.js":5,"./admin/fields.js":6,"./admin/form-editor.js":7,"./admin/form-watcher.js":8,"./admin/notices":9}],12:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../fold/xml-fold")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../fold/xml-fold"],i):i(CodeMirror)}(function(e){function t(t){if(t.getOption("disableInput"))return e.Pass;for(var r=t.listSelections(),n=[],s=0;s<r.length;s++){if(!r[s].empty())return e.Pass;var c=r[s].head,u=t.getTokenAt(c),d=e.innerMode(t.getMode(),u.state),f=d.state;if("xml"!=d.mode.name||!f.tagName)return e.Pass;var h=t.getOption("autoCloseTags"),p="html"==d.mode.configuration,m="object"==typeof h&&h.dontCloseTags||p&&a,g="object"==typeof h&&h.indentTags||p&&l,v=f.tagName;u.end>c.ch&&(v=v.slice(0,v.length-u.end+c.ch));var y=v.toLowerCase();if(!v||"string"==u.type&&(u.end!=c.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==f.type||u.string.indexOf("/")==u.string.length-1||m&&i(m,y)>-1||o(t,v,c,f,!0))return e.Pass;var b=g&&i(g,y)>-1;n[s]={indent:b,text:">"+(b?"\n\n":"")+"</"+v+">",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var s=r.length-1;s>=0;s--){var w=n[s];t.replaceRange(w.text,r[s].head,r[s].anchor,"+insert");var x=t.listSelections().slice(0);x[s]={head:w.newPos,anchor:w.newPos},t.setSelections(x),w.indent&&(t.indentLine(w.newPos.line,null,!0),t.indentLine(w.newPos.line+1,null,!0))}}function r(t,r){for(var n=t.listSelections(),i=[],a=r?"/":"</",l=0;l<n.length;l++){if(!n[l].empty())return e.Pass;var s=n[l].head,c=t.getTokenAt(s),u=e.innerMode(t.getMode(),c.state),d=u.state;if(r&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=s.ch-1))return e.Pass;var f;if("xml"!=u.mode.name)if("htmlmixed"==t.getMode().name&&"javascript"==u.mode.name)f=a+"script";else{if("htmlmixed"!=t.getMode().name||"css"!=u.mode.name)return e.Pass;f=a+"style"}else{if(!d.context||!d.context.tagName||o(t,d.context.tagName,s,d))return e.Pass;f=a+d.context.tagName}">"!=t.getLine(s.line).charAt(c.end)&&(f+=">"),i[l]=f}t.replaceSelections(i),n=t.listSelections();for(var l=0;l<n.length;l++)(l==n.length-1||n[l].head.line<n[l+1].head.line)&&t.indentLine(n[l].head.line)}function n(t){return t.getOption("disableInput")?e.Pass:r(t,!0)}function i(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;++r)if(e[r]==t)return r;return-1}function o(t,r,n,i,o){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,n.line+500),l=e.scanForClosingTag(t,n,null,a);if(!l||l.tag!=r)return!1;for(var s=i.context,c=o?1:0;s&&s.tagName==r;s=s.prev)++c;n=l.to;for(var u=1;u<c;u++){var d=e.scanForClosingTag(t,n,null,a);if(!d||d.tag!=r)return!1;n=d.to}return!0}e.defineOption("autoCloseTags",!1,function(r,i,o){if(o!=e.Init&&o&&r.removeKeyMap("autoCloseTags"),i){var a={name:"autoCloseTags"};("object"!=typeof i||i.whenClosing)&&(a["'/'"]=function(e){return n(e)}),("object"!=typeof i||i.whenOpening)&&(a["'>'"]=function(e){return t(e)}),r.addKeyMap(a)}});var a=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],l=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return r(e)}})},{"../../lib/codemirror":15,"../fold/xml-fold":14}],13:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../fold/xml-fold")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../fold/xml-fold"],i):i(CodeMirror)}(function(e){"use strict";function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function r(r){r.state.failedTagMatch=!1,r.operation(function(){if(t(r),!r.somethingSelected()){var n=r.getCursor(),i=r.getViewport();i.from=Math.min(i.from,n.line),i.to=Math.max(n.line+1,i.to);var o=e.findMatchingTag(r,n,i);if(o){if(r.state.matchBothTags){var a="open"==o.at?o.open:o.close;a&&(r.state.tagHit=r.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var l="close"==o.at?o.open:o.close;l?r.state.tagOther=r.markText(l.from,l.to,{className:"CodeMirror-matchingtag"}):r.state.failedTagMatch=!0}}})}function n(e){e.state.failedTagMatch&&r(e)}e.defineOption("matchTags",!1,function(i,o,a){a&&a!=e.Init&&(i.off("cursorActivity",r),i.off("viewportChange",n),t(i)),o&&(i.state.matchBothTags="object"==typeof o&&o.bothTags,i.on("cursorActivity",r),i.on("viewportChange",n),r(i))}),e.commands.toMatchingTag=function(t){var r=e.findMatchingTag(t,t.getCursor());if(r){var n="close"==r.at?r.open:r.close;n&&t.extendSelection(n.to,n.from)}}})},{"../../lib/codemirror":15,"../fold/xml-fold":14}],14:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line-t.line||e.ch-t.ch}function r(e,t,r,n){this.line=t,this.ch=r,this.cm=e,this.text=e.getLine(t),this.min=n?Math.max(n.from,e.firstLine()):e.firstLine(),this.max=n?Math.min(n.to-1,e.lastLine()):e.lastLine()}function n(e,t){var r=e.cm.getTokenTypeAt(f(e.line,t));return r&&/\btag\b/.test(r)}function i(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function o(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function a(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(i(e))continue;return}{if(n(e,t+1)){var r=e.text.lastIndexOf("/",t),o=r>-1&&!/\S/.test(e.text.slice(r+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t+1}}}function l(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(o(e))continue;return}if(n(e,t+1)){p.lastIndex=t,e.ch=t;var r=p.exec(e.text);if(r&&r.index==t)return r}else e.ch=t}}function s(e){for(;;){p.lastIndex=e.ch;var t=p.exec(e.text);if(!t){if(i(e))continue;return}{if(n(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function c(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){if(o(e))continue;return}{if(n(e,t+1)){var r=e.text.lastIndexOf("/",t),i=r>-1&&!/\S/.test(e.text.slice(r+1,t));return e.ch=t+1,i?"selfClose":"regular"}e.ch=t}}}function u(e,t){for(var r=[];;){var n,i=s(e),o=e.line,l=e.ch-(i?i[0].length:0);if(!i||!(n=a(e)))return;if("selfClose"!=n)if(i[1]){for(var c=r.length-1;c>=0;--c)if(r[c]==i[2]){r.length=c;break}if(c<0&&(!t||t==i[2]))return{tag:i[2],from:f(o,l),to:f(e.line,e.ch)}}else r.push(i[2])}}function d(e,t){for(var r=[];;){var n=c(e);if(!n)return;if("selfClose"!=n){var i=e.line,o=e.ch,a=l(e);if(!a)return;if(a[1])r.push(a[2]);else{for(var s=r.length-1;s>=0;--s)if(r[s]==a[2]){r.length=s;break}if(s<0&&(!t||t==a[2]))return{tag:a[2],from:f(e.line,e.ch),to:f(i,o)}}}else l(e)}}var f=e.Pos,h="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",p=new RegExp("<(/?)(["+h+"][A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");e.registerHelper("fold","xml",function(e,t){for(var n=new r(e,t.line,0);;){var i,o=s(n);if(!o||n.line!=t.line||!(i=a(n)))return;if(!o[1]&&"selfClose"!=i){var l=f(n.line,n.ch),c=u(n,o[2]);return c&&{from:l,to:c.from}}}}),e.findMatchingTag=function(e,n,i){var o=new r(e,n.line,n.ch,i);if(-1!=o.text.indexOf(">")||-1!=o.text.indexOf("<")){var s=a(o),c=s&&f(o.line,o.ch),h=s&&l(o);if(s&&h&&!(t(o,n)>0)){var p={from:f(o.line,o.ch),to:c,tag:h[2]};return"selfClose"==s?{open:p,close:null,at:"open"}:h[1]?{open:d(o,h[2]),close:p,at:"close"}:(o=new r(e,c.line,c.ch,i),{open:p,close:u(o,h[2]),at:"open"})}}},e.findEnclosingTag=function(e,t,n,i){for(var o=new r(e,t.line,t.ch,n);;){var a=d(o,i);if(!a)break;var l=new r(e,t.line,t.ch,n),s=u(l,a.tag);if(s)return{open:a,close:s}}},e.scanForClosingTag=function(e,t,n,i){return u(new r(e,t.line,t.ch,i?{from:0,to:i}:null),n)}})},{"../../lib/codemirror":15}],15:[function(e,r,n){!function(e,i){"object"==typeof n&&void 0!==r?r.exports=i():"function"==typeof t&&t.amd?t(i):e.CodeMirror=i()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function r(e,r){return t(e).appendChild(r)}function n(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,r,i){var o=n(e,t,r,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function l(t,r){var n=t.className;e(r).test(n)||(t.className+=(n?" ":"")+r)}function s(t,r){for(var n=t.split(" "),i=0;i<n.length;i++)n[i]&&!e(n[i]).test(r)&&(r+=" "+n[i]);return r}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,r){t||(t={});for(var n in e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function d(e,t,r,n,i){null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);for(var o=n||0,a=i||0;;){var l=e.indexOf("\t",o);if(l<0||l>=t)return a+(t-o);a+=l-o,a+=r-a%r,o=l+1}}function f(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}function h(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);-1==o&&(o=e.length);var a=o-n;if(o==e.length||i+a>=t)return n+Math.min(a,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}function p(e){for(;Va.length<=e;)Va.push(m(Va)+" ");return Va[e]}function m(e){return e[e.length-1]}function g(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function v(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}function y(){}function b(e,t){var r;return Object.create?r=Object.create(e):(y.prototype=e,r=new y),t&&u(t,r),r}function w(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||Ga.test(e))}function x(e,t){return t?!!(t.source.indexOf("\\w")>-1&&w(e))||t.test(e):w(e)}function k(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function C(e){return e.charCodeAt(0)>=768&&$a.test(e)}function S(e,t,r){for(;(r<0?t>0:t<e.length)&&C(e.charAt(t));)t+=r;return t}function T(e,t,r){for(var n=t>r?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}function L(e,t,r){var o=this;this.input=r,o.scrollbarFiller=n("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=n("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=i("div",null,"CodeMirror-code"),o.selectionDiv=n("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=n("div",null,"CodeMirror-cursors"),o.measure=n("div",null,"CodeMirror-measure"),o.lineMeasure=n("div",null,"CodeMirror-measure"),o.lineSpace=i("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var a=i("div",[o.lineSpace],"CodeMirror-lines");o.mover=n("div",[a],null,"position: relative"),o.sizer=n("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=n("div",null,null,"position: absolute; height: "+ja+"px; width: 1px;"),o.gutters=n("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=n("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=n("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),va&&ya<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),ba||ha&&Aa||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,r.init(o)}function M(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function A(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function O(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function N(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function _(e){if(null==e.parent)return null;for(var t=e.parent,r=f(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function E(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var a=0;a<e.lines.length;++a){var l=e.lines[a],s=l.height;if(t<s)break;t-=s}return r+a}function W(e,t){return t>=e.first&&t<e.first+e.size}function F(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function D(e,t,r){if(void 0===r&&(r=null),!(this instanceof D))return new D(e,t,r);this.line=e,this.ch=t,this.sticky=r}function z(e,t){return e.line-t.line||e.ch-t.ch}function P(e,t){return e.sticky==t.sticky&&0==z(e,t)}function H(e){return D(e.line,e.ch)}function I(e,t){return z(e,t)<0?t:e}function R(e,t){return z(e,t)<0?e:t}function j(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function B(e,t){if(t.line<e.first)return D(e.first,0);var r=e.first+e.size-1;return t.line>r?D(r,M(e,r).text.length):q(t,M(e,t.line).text.length)}function q(e,t){var r=e.ch;return null==r||r>t?D(e.line,t):r<0?D(e.line,0):e}function U(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=B(e,t[n]);return r}function K(){Ya=!0}function V(){Xa=!0}function G(e,t,r){this.marker=e,this.from=t,this.to=r}function $(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function Y(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function X(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Z(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);if(l||o.from==t&&"bookmark"==a.type&&(!r||!o.marker.insertLeft)){var s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new G(a,o.from,s?null:o.to))}}return n}function J(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);if(l||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new G(a,s?null:o.from-t,null==o.to?null:o.to-t))}}return n}function Q(e,t){if(t.full)return null
2
- ;var r=W(e,t.from.line)&&M(e,t.from.line).markedSpans,n=W(e,t.to.line)&&M(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,a=0==z(t.from,t.to),l=Z(r,i,a),s=J(n,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(l)for(var d=0;d<l.length;++d){var f=l[d];if(null==f.to){var h=$(s,f.marker);h?c&&(f.to=null==h.to?null:h.to+u):f.to=i}}if(s)for(var p=0;p<s.length;++p){var g=s[p];if(null!=g.to&&(g.to+=u),null==g.from){var v=$(l,g.marker);v||(g.from=u,c&&(l||(l=[])).push(g))}else g.from+=u,c&&(l||(l=[])).push(g)}l&&(l=ee(l)),s&&s!=l&&(s=ee(s));var y=[l];if(!c){var b,w=t.text.length-2;if(w>0&&l)for(var x=0;x<l.length;++x)null==l[x].to&&(b||(b=[])).push(new G(l[x].marker,null,null));for(var k=0;k<w;++k)y.push(b);y.push(s)}return y}function ee(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&!1!==r.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function te(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&-1!=f(n,r)||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var a=n[o],l=a.find(0),s=0;s<i.length;++s){var c=i[s];if(!(z(c.to,l.from)<0||z(c.from,l.to)>0)){var u=[s,1],d=z(c.from,l.from),h=z(c.to,l.to);(d<0||!a.inclusiveLeft&&!d)&&u.push({from:c.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:l.to,to:c.to}),i.splice.apply(i,u),s+=u.length-3}}return i}function re(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function ne(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function ie(e){return e.inclusiveLeft?-1:0}function oe(e){return e.inclusiveRight?1:0}function ae(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=z(n.from,i.from)||ie(e)-ie(t);if(o)return-o;var a=z(n.to,i.to)||oe(e)-oe(t);return a||t.id-e.id}function le(e,t){var r,n=Xa&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)i=n[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!r||ae(r,i.marker)<0)&&(r=i.marker);return r}function se(e){return le(e,!0)}function ce(e){return le(e,!1)}function ue(e,t,r,n,i){var o=M(e,t),a=Xa&&o.markedSpans;if(a)for(var l=0;l<a.length;++l){var s=a[l];if(s.marker.collapsed){var c=s.marker.find(0),u=z(c.from,r)||ie(s.marker)-ie(i),d=z(c.to,n)||oe(s.marker)-oe(i);if(!(u>=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?z(c.to,r)>=0:z(c.to,r)>0)||u>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?z(c.from,n)<=0:z(c.from,n)<0)))return!0}}}function de(e){for(var t;t=se(e);)e=t.find(-1,!0).line;return e}function fe(e){for(var t;t=ce(e);)e=t.find(1,!0).line;return e}function he(e){for(var t,r;t=ce(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}function pe(e,t){var r=M(e,t),n=de(r);return r==n?t:_(n)}function me(e,t){if(t>e.lastLine())return t;var r,n=M(e,t);if(!ge(e,n))return t;for(;r=ce(n);)n=r.find(1,!0).line;return _(n)+1}function ge(e,t){var r=Xa&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if(n=r[i],n.marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&ve(e,t,n))return!0}}function ve(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return ve(e,n.line,$(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&ve(e,t,i))return!0}function ye(e){e=de(e);for(var t=0,r=e.parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;r=o,o=r.parent)for(var a=0;a<o.children.length;++a){var l=o.children[a];if(l==r)break;t+=l.height}return t}function be(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=se(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ce(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,n=o.to.line,r+=n.text.length-o.to.ch}return r}function we(e){var t=e.display,r=e.doc;t.maxLine=M(r,r.first),t.maxLineLength=be(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=be(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function xe(e,t,r,n){if(!e)return n(t,r,"ltr",0);for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<r&&a.to>t||t==r&&a.to==t)&&(n(Math.max(a.from,t),Math.min(a.to,r),1==a.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}function ke(e,t,r){var n;Za=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:Za=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:Za=i)}return null!=n?n:Za}function Ce(e,t){var r=e.order;return null==r&&(r=e.order=Ja(e.text,t)),r}function Se(e,t){return e._handlers&&e._handlers[t]||Qa}function Te(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent("on"+t,r);else{var n=e._handlers,i=n&&n[t];if(i){var o=f(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function Le(e,t){var r=Se(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)}function Me(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Le(e,r||t.type,e,t),We(t)||t.codemirrorIgnore}function Ae(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)-1==f(r,t[n])&&r.push(t[n])}function Oe(e,t){return Se(e,t).length>0}function Ne(e){e.prototype.on=function(e,t){el(this,e,t)},e.prototype.off=function(e,t){Te(this,e,t)}}function _e(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Ee(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function We(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Fe(e){_e(e),Ee(e)}function De(e){return e.target||e.srcElement}function ze(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Oa&&e.ctrlKey&&1==t&&(t=3),t}function Pe(e){if(null==Ia){var t=n("span","​");r(e,n("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Ia=t.offsetWidth<=1&&t.offsetHeight>2&&!(va&&ya<8))}var i=Ia?n("span","​"):n("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function He(e){if(null!=Ra)return Ra;var n=r(e,document.createTextNode("AخA")),i=Wa(n,0,1).getBoundingClientRect(),o=Wa(n,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(Ra=o.right-i.right<3)}function Ie(e){if(null!=ol)return ol;var t=r(e,n("span","x")),i=t.getBoundingClientRect(),o=Wa(t,0,1).getBoundingClientRect();return ol=Math.abs(i.left-o.left)>1}function Re(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),al[e]=t}function je(e,t){ll[e]=t}function Be(e){if("string"==typeof e&&ll.hasOwnProperty(e))e=ll[e];else if(e&&"string"==typeof e.name&&ll.hasOwnProperty(e.name)){var t=ll[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Be("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Be("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function qe(e,t){t=Be(t);var r=al[t.name];if(!r)return qe(e,"text/plain");var n=r(e,t);if(sl.hasOwnProperty(t.name)){var i=sl[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)n[a]=t.modeProps[a];return n}function Ue(e,t){u(t,sl.hasOwnProperty(e)?sl[e]:sl[e]={})}function Ke(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Ve(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Ge(e,t,r){return!e.startState||e.startState(t,r)}function $e(e,t,r,n){var i=[e.state.modeGen],o={};rt(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var a=r.state,l=0;l<e.state.overlays.length;++l)!function(n){r.baseTokens=i;var l=e.state.overlays[n],s=1,c=0;r.state=!0,rt(e,t.text,l.mode,r,function(e,t){for(var r=s;c<e;){var n=i[s];n>e&&i.splice(s,1,e,i[s+1],n),s+=2,c=Math.min(e,n)}if(t)if(l.opaque)i.splice(r,s-r,e,"overlay "+t),s=r+2;else for(;r<s;r+=2){var o=i[r+1];i[r+1]=(o?o+" ":"")+"overlay "+t}},o),r.state=a,r.baseTokens=null,r.baseTokenPos=1}(l);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Ye(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=Xe(e,_(t)),i=t.text.length>e.options.maxHighlightLength&&Ke(e.doc.mode,n.state),o=$e(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function Xe(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new dl(n,!0,t);var o=nt(e,t,r),a=o>n.first&&M(n,o-1).stateAfter,l=a?dl.fromSaved(n,a,o):new dl(n,Ge(n.mode),o);return n.iter(o,t,function(r){Ze(e,r.text,l);var n=l.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&n<i.viewTo?l.save():null,l.nextLine()}),r&&(n.modeFrontier=l.line),l}function Ze(e,t,r,n){var i=e.doc.mode,o=new cl(t,e.options.tabSize,r);for(o.start=o.pos=n||0,""==t&&Je(i,r.state);!o.eol();)Qe(i,o,r.state),o.start=o.pos}function Je(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=Ve(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Qe(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=Ve(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function et(e,t,r,n){var i,o=e.doc,a=o.mode;t=B(o,t);var l,s=M(o,t.line),c=Xe(e,t.line,r),u=new cl(s.text,e.options.tabSize,c);for(n&&(l=[]);(n||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=Qe(a,u,c.state),n&&l.push(new fl(u,i,Ke(o.mode,c.state)));return n?l:new fl(u,i,c.state)}function tt(e,t){if(e)for(;;){var r=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?"bgClass":"textClass";null==t[n]?t[n]=r[2]:new RegExp("(?:^|s)"+r[2]+"(?:$|s)").test(t[n])||(t[n]+=" "+r[2])}return e}function rt(e,t,r,n,i,o,a){var l=r.flattenSpans;null==l&&(l=e.options.flattenSpans);var s,c=0,u=null,d=new cl(t,e.options.tabSize,n),f=e.options.addModeClass&&[null];for(""==t&&tt(Je(r,n.state),o);!d.eol();){if(d.pos>e.options.maxHighlightLength?(l=!1,a&&Ze(e,t,n,d.pos),d.pos=t.length,s=null):s=tt(Qe(r,d,n.state,f),o),f){var h=f[0].name;h&&(s="m-"+(s?h+" "+s:h))}if(!l||u!=s){for(;c<d.start;)c=Math.min(d.start,c+5e3),i(c,u);u=s}d.start=d.pos}for(;c<d.pos;){var p=Math.min(d.pos,c+5e3);i(p,u),c=p}}function nt(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=M(o,l-1),c=s.stateAfter;if(c&&(!r||l+(c instanceof ul?c.lookAhead:0)<=o.modeFrontier))return l;var u=d(s.text,null,e.options.tabSize);(null==i||n>u)&&(i=l-1,n=u)}return i}function it(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var r=e.first,n=t-1;n>r;n--){var i=M(e,n).stateAfter;if(i&&(!(i instanceof ul)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}}function ot(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),re(e),ne(e,r);var i=n?n(e):1;i!=e.height&&N(e,i)}function at(e){e.parent=null,re(e)}function lt(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?gl:ml;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function st(e,t){var r=i("span",null,null,ba?"padding-right: .1px":null),n={pre:i("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(va||ba)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,l=void 0;n.pos=0,n.addToken=ut,He(e.display.measure)&&(l=Ce(a,e.doc.direction))&&(n.addToken=ft(n.addToken,l)),n.map=[];pt(a,n,Ye(e,a,t!=e.display.externalMeasured&&_(a))),a.styleClasses&&(a.styleClasses.bgClass&&(n.bgClass=s(a.styleClasses.bgClass,n.bgClass||"")),a.styleClasses.textClass&&(n.textClass=s(a.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Pe(e.display.measure))),0==o?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(ba){var c=n.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return Le(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=s(n.pre.className,n.textClass||"")),n}function ct(e){var t=n("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function ut(e,t,r,i,o,a,l){if(t){var s,c=e.splitSpaces?dt(t,e.trailingSpace):t,u=e.cm.state.specialChars,d=!1;if(u.test(t)){s=document.createDocumentFragment();for(var f=0;;){u.lastIndex=f;var h=u.exec(t),m=h?h.index-f:t.length-f;if(m){var g=document.createTextNode(c.slice(f,f+m));va&&ya<9?s.appendChild(n("span",[g])):s.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;f+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;v=s.appendChild(n("span",p(b),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?(v=s.appendChild(n("span","\r"==h[0]?"␍":"␤","cm-invalidchar")),v.setAttribute("cm-text",h[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(h[0]),v.setAttribute("cm-text",h[0]),va&&ya<9?s.appendChild(n("span",[v])):s.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,s=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,s),va&&ya<9&&(d=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),r||i||o||d||l){var w=r||"";i&&(w+=i),o&&(w+=o);var x=n("span",[s],w,l);return a&&(x.title=a),e.content.appendChild(x)}e.content.appendChild(s)}}function dt(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),n+=o,r=" "==o}return n}function ft(e,t){return function(r,n,i,o,a,l,s){i=i?i+" cm-force-border":"cm-force-border";for(var c=r.pos,u=c+n.length;;){for(var d=void 0,f=0;f<t.length&&(d=t[f],!(d.to>c&&d.from<=c));f++);if(d.to>=u)return e(r,n,i,o,a,l,s);e(r,n.slice(0,d.to-c),i,o,null,l,s),o=null,n=n.slice(d.to-c),c=d.to}}}function ht(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function pt(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var a,l,s,c,u,d,f,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){s=c=u=d=l="",f=null,v=1/0;for(var y=[],b=void 0,w=0;w<n.length;++w){var x=n[w],k=x.marker;"bookmark"==k.type&&x.from==p&&k.widgetNode?y.push(k):x.from<=p&&(null==x.to||x.to>p||k.collapsed&&x.to==p&&x.from==p)?(null!=x.to&&x.to!=p&&v>x.to&&(v=x.to,c=""),k.className&&(s+=" "+k.className),k.css&&(l=(l?l+";":"")+k.css),k.startStyle&&x.from==p&&(u+=" "+k.startStyle),k.endStyle&&x.to==v&&(b||(b=[])).push(k.endStyle,x.to),k.title&&!d&&(d=k.title),k.collapsed&&(!f||ae(f.marker,k)<0)&&(f=x)):x.from>p&&v>x.from&&(v=x.from)}if(b)for(var C=0;C<b.length;C+=2)b[C+1]==v&&(c+=" "+b[C]);if(!f||f.from==p)for(var S=0;S<y.length;++S)ht(t,0,y[S]);if(f&&(f.from||0)==p){if(ht(t,(null==f.to?h+1:f.to)-p,f.marker,null==f.from),null==f.to)return;f.to==p&&(f=!1)}}if(p>=h)break;for(var T=Math.min(h,v);;){if(g){var L=p+g.length;if(!f){var M=L>T?g.slice(0,T-p):g;t.addToken(t,M,a?a+s:s,u,p+M.length==v?c:"",d,l)}if(L>=T){g=g.slice(T-p),p=T;break}p=L,u=""}g=i.slice(o,o=r[m++]),a=lt(r[m++],t.cm.options)}}else for(var A=1;A<r.length;A+=2)t.addToken(t,i.slice(o,o=r[A]),lt(r[A+1],t.cm.options))}function mt(e,t,r){this.line=t,this.rest=he(t),this.size=this.rest?_(m(this.rest))-r+1:1,this.node=this.text=null,this.hidden=ge(e,t)}function gt(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new mt(e.doc,M(e.doc,o),o);n=o+a.size,i.push(a)}return i}function vt(e){vl?vl.ops.push(e):e.ownsGroup=vl={ops:[e],delayedCallbacks:[]}}function yt(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r].call(null);for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(r<t.length)}function bt(e,t){var r=e.ownsGroup;if(r)try{yt(r)}finally{vl=null,t(r)}}function wt(e,t){var r=Se(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);vl?n=vl.delayedCallbacks:yl?n=yl:(n=yl=[],setTimeout(xt,0));for(var o=0;o<r.length;++o)!function(e){n.push(function(){return r[e].apply(null,i)})}(o)}}function xt(){var e=yl;yl=null;for(var t=0;t<e.length;++t)e[t]()}function kt(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?Lt(e,t):"gutter"==o?At(e,t,r,n):"class"==o?Mt(e,t):"widget"==o&&Ot(e,t,n)}t.changes=null}function Ct(e){return e.node==e.text&&(e.node=n("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),va&&ya<8&&(e.node.style.zIndex=2)),e.node}function St(e,t){var r=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(r&&(r+=" CodeMirror-linebackground"),t.background)r?t.background.className=r:(t.background.parentNode.removeChild(t.background),t.background=null);else if(r){var i=Ct(t);t.background=i.insertBefore(n("div",null,r),i.firstChild),e.display.input.setUneditable(t.background)}}function Tt(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):st(e,t)}function Lt(e,t){var r=t.text.className,n=Tt(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,Mt(e,t)):r&&(t.text.className=r)}function Mt(e,t){St(e,t),t.line.wrapClass?Ct(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var r=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=r||""}function At(e,t,r,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Ct(t);t.gutterBackground=n("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var l=Ct(t),s=t.gutter=n("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),l.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(n("div",F(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],d=a.hasOwnProperty(u)&&a[u];d&&s.appendChild(n("div",[d],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function Ot(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild,i=void 0;n;n=i)i=n.nextSibling,"CodeMirror-linewidget"==n.className&&t.node.removeChild(n);_t(e,t,r)}function Nt(e,t,r,n){var i=Tt(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),Mt(e,t),At(e,t,r,n),_t(e,t,n),t.node}function _t(e,t,r){if(Et(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)Et(e,t.rest[n],t,r,!1)}function Et(e,t,r,i,o){if(t.widgets)for(var a=Ct(r),l=0,s=t.widgets;l<s.length;++l){var c=s[l],u=n("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),Wt(c,u,r,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,r.gutter||r.text):a.appendChild(u),wt(c,"redraw")}}function Wt(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+"px",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+"px"))}function Ft(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),r(t.display.measure,n("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function Dt(e,t){for(var r=De(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&"true"==r.getAttribute("cm-ignore-events")||r.parentNode==e.sizer&&r!=e.mover)return!0}function zt(e){return e.lineSpace.offsetTop}function Pt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Ht(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=r(e.measure,n("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function It(e){return ja-e.display.nativeBarWidth}function Rt(e){return e.display.scroller.clientWidth-It(e)-e.display.barWidth}function jt(e){return e.display.scroller.clientHeight-It(e)-e.display.barHeight}function Bt(e,t,r){var n=e.options.lineWrapping,i=n&&Rt(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),l=0;l<a.length-1;l++){var s=a[l],c=a[l+1];Math.abs(s.bottom-c.bottom)>2&&o.push((s.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}function qt(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(var i=0;i<e.rest.length;i++)if(_(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Ut(e,t){t=de(t);var n=_(t),i=e.display.externalMeasured=new mt(e.doc,t,n);i.lineN=n;var o=i.built=st(e,i);return i.text=o.pre,r(e.display.lineMeasure,o.pre),i}function Kt(e,t,r,n){return $t(e,Gt(e,t),r,n)}function Vt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Tr(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function Gt(e,t){var r=_(t),n=Vt(e,r);n&&!n.text?n=null:n&&n.changes&&(kt(e,n,r,wr(e)),e.curOp.forceUpdate=!0),n||(n=Ut(e,t));var i=qt(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function $t(e,t,r,n,i){t.before&&(r=-1);var o,a=r+(n||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Bt(e,t.view,t.rect),t.hasHeights=!0),o=Zt(e,t,r,n),o.bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function Yt(e,t,r){for(var n,i,o,a,l,s,c=0;c<e.length;c+=3)if(l=e[c],s=e[c+1],t<l?(i=0,o=1,a="left"):t<s?(i=t-l,o=i+1):(c==e.length-3||t==s&&e[c+3]>t)&&(o=s-l,i=o-1,t>=s&&(a="right")),null!=i){if(n=e[c+2],l==s&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)n=e[2+(c-=3)],a="left";if("right"==r&&i==s-l)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)n=e[(c+=3)+2],a="right";break}return{node:n,start:i,end:o,collapse:a,coverStart:l,coverEnd:s}}function Xt(e,t){var r=bl;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function Zt(e,t,r,n){var i,o=Yt(t.map,r,n),a=o.node,l=o.start,s=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;u<4;u++){for(;l&&C(t.line.text.charAt(o.coverStart+l));)--l;for(;o.coverStart+s<o.coverEnd&&C(t.line.text.charAt(o.coverStart+s));)++s;if(i=va&&ya<9&&0==l&&s==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():Xt(Wa(a,l,s).getClientRects(),n),i.left||i.right||0==l)break;s=l,l-=1,c="right"}va&&ya<11&&(i=Jt(e.display.measure,i))}else{l>0&&(c=n="right");var d;i=e.options.lineWrapping&&(d=a.getClientRects()).length>1?d["right"==n?d.length-1:0]:a.getBoundingClientRect()}if(va&&ya<9&&!l&&(!i||!i.left&&!i.right)){var f=a.parentNode.getClientRects()[0];i=f?{left:f.left,right:f.left+br(e.display),top:f.top,bottom:f.bottom}:bl}for(var h=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(h+p)/2,g=t.view.measure.heights,v=0;v<g.length-1&&!(m<g[v]);v++);var y=v?g[v-1]:0,b=g[v],w={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:y,bottom:b};return i.left||i.right||(w.bogus=!0),e.options.singleCursorHeightPerLine||(w.rtop=h,w.rbottom=p),w}function Jt(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!Ie(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}function Qt(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function er(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var r=0;r<e.display.view.length;r++)Qt(e.display.view[r])}function tr(e){er(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function rr(){return xa&&Ma?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function nr(){return xa&&Ma?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function ir(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=Ft(e.widgets[r]));return t}function or(e,t,r,n,i){if(!i){var o=ir(t);r.top+=o,r.bottom+=o}if("line"==n)return r;n||(n="local");var a=ye(t);if("local"==n?a+=zt(e.display):a-=e.display.viewOffset,"page"==n||"window"==n){var l=e.display.lineSpace.getBoundingClientRect();a+=l.top+("window"==n?0:nr());var s=l.left+("window"==n?0:rr());r.left+=s,r.right+=s}return r.top+=a,r.bottom+=a,r}function ar(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=rr(),i-=nr();else if("local"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:n-a.left,top:i-a.top}}function lr(e,t,r,n,i){return n||(n=M(e.doc,t.line)),or(e,n,Kt(e,n,t.ch,i),r)}function sr(e,t,r,n,i,o){function a(t,a){var l=$t(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,or(e,n,l,r)}function l(e,t,r){var n=s[t],i=1==n.level;return a(r?e-1:e,i!=r)}n=n||M(e.doc,t.line),i||(i=Gt(e,n));var s=Ce(n,e.doc.direction),c=t.ch,u=t.sticky;if(c>=n.text.length?(c=n.text.length,u="before"):c<=0&&(c=0,u="after"),!s)return a("before"==u?c-1:c,"before"==u);var d=ke(s,c,u),f=Za,h=l(c,d,"before"==u);return null!=f&&(h.other=l(c,f,"before"!=u)),h}function cr(e,t){var r=0;t=B(e.doc,t),e.options.lineWrapping||(r=br(e.display)*t.ch);var n=M(e.doc,t.line),i=ye(n)+zt(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function ur(e,t,r,n,i){var o=D(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function dr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return ur(n.first,0,null,!0,-1);var i=E(n,r),o=n.first+n.size-1;if(i>o)return ur(n.first+n.size-1,M(n,o).text.length,null,!0,1);t<0&&(t=0);for(var a=M(n,i);;){var l=mr(e,a,i,t,r),s=ce(a),c=s&&s.find(0,!0);if(!s||!(l.ch>c.from.ch||l.ch==c.from.ch&&l.xRel>0))return l;i=_(a=c.to.line)}}function fr(e,t,r,n){n-=ir(t);var i=t.text.length,o=T(function(t){return $t(e,r,t-1).bottom<=n},i,0);return i=T(function(t){return $t(e,r,t).top>n},o,i),{begin:o,end:i}}function hr(e,t,r,n){return r||(r=Gt(e,t)),fr(e,t,r,or(e,t,$t(e,r,n),"line").top)}function pr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function mr(e,t,r,n,i){i-=ye(t);var o=Gt(e,t),a=ir(t),l=0,s=t.text.length,c=!0,u=Ce(t,e.doc.direction);if(u){var d=(e.options.lineWrapping?vr:gr)(e,t,r,o,u,n,i);c=1!=d.level,l=c?d.from:d.to-1,s=c?d.to:d.from-1}var f,h,p=null,m=null,g=T(function(t){var r=$t(e,o,t);return r.top+=a,r.bottom+=a,!!pr(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,m=r),!0)},l,s),v=!1;if(m){var y=n-m.left<m.right-n,b=y==c;g=p+(b?0:1),h=b?"after":"before",f=y?m.left:m.right}else{c||g!=s&&g!=l||g++,h=0==g?"after":g==t.text.length?"before":$t(e,o,g-(c?1:0)).bottom+a<=i==c?"after":"before";var w=sr(e,D(r,g,h),"line",t,o);f=w.left,v=i<w.top||i>=w.bottom}return g=S(t.text,g,1),ur(r,g,h,v,n-f)}function gr(e,t,r,n,i,o,a){var l=T(function(l){var s=i[l],c=1!=s.level;return pr(sr(e,D(r,c?s.to:s.from,c?"before":"after"),"line",t,n),o,a,!0)},0,i.length-1),s=i[l];if(l>0){var c=1!=s.level,u=sr(e,D(r,c?s.from:s.to,c?"after":"before"),"line",t,n);pr(u,o,a,!0)&&u.top>a&&(s=i[l-1])}return s}function vr(e,t,r,n,i,o,a){var l=fr(e,t,n,a),s=l.begin,c=l.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,d=null,f=0;f<i.length;f++){var h=i[f];if(!(h.from>=c||h.to<=s)){var p=1!=h.level,m=$t(e,n,p?Math.min(c,h.to)-1:Math.max(s,h.from)).right,g=m<o?o-m+1e9:m-o;(!u||d>g)&&(u=h,d=g)}}return u||(u=i[i.length-1]),u.from<s&&(u={from:s,to:u.to,level:u.level}),u.to>c&&(u={from:u.from,to:c,level:u.level}),u}function yr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==pl){pl=n("pre");for(var i=0;i<49;++i)pl.appendChild(document.createTextNode("x")),pl.appendChild(n("br"));pl.appendChild(document.createTextNode("x"))}r(e.measure,pl);var o=pl.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function br(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=n("span","xxxxxxxxxx"),i=n("pre",[t]);r(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function wr(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)r[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[a]]=o.clientWidth;return{fixedPos:xr(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function xr(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function kr(e){var t=yr(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/br(e.display)-3);return function(i){if(ge(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function Cr(e){var t=e.doc,r=kr(e);t.iter(function(e){var t=r(e);t!=e.height&&N(e,t)})}function Sr(e,t,r,n){var i=e.display;if(!r&&"true"==De(t).getAttribute("cm-not-content"))return null;var o,a,l=i.lineSpace.getBoundingClientRect();try{o=t.clientX-l.left,a=t.clientY-l.top}catch(t){return null}var s,c=dr(e,o,a);if(n&&1==c.xRel&&(s=M(e.doc,c.line).text).length==c.ch){var u=d(s,s.length,e.options.tabSize)-s.length
3
- ;c=D(c.line,Math.max(0,Math.round((o-Ht(e.display).left)/br(e.display))-u))}return c}function Tr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function Lr(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Mr(e,t){void 0===t&&(t=!0);for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),a=0;a<r.sel.ranges.length;a++)if(t||a!=r.sel.primIndex){var l=r.sel.ranges[a];if(!(l.from().line>=e.display.viewTo||l.to().line<e.display.viewFrom)){var s=l.empty();(s||e.options.showCursorWhenSelecting)&&Ar(e,l.head,i),s||Nr(e,l,o)}}return n}function Ar(e,t,r){var i=sr(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=r.appendChild(n("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=r.appendChild(n("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function Or(e,t){return e.top-t.top||e.left-t.left}function Nr(e,t,r){function i(e,t,r,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),s.appendChild(n("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?d-e:r)+"px;\n height: "+(i-t)+"px"))}function o(t,r,n){function o(r,n){return lr(e,D(t,r),"div",h,n)}function a(t,r,n){var i=hr(e,h,null,t),a="ltr"==r==("after"==n)?"left":"right";return o("after"==n?i.begin:i.end-(/\s/.test(h.text.charAt(i.end-1))?2:1),a)[a]}var s,c,h=M(l,t),p=h.text.length,m=Ce(h,l.direction);return xe(m,r||0,null==n?p:n,function(e,t,l,h){var g="ltr"==l,v=o(e,g?"left":"right"),y=o(t-1,g?"right":"left"),b=null==r&&0==e,w=null==n&&t==p,x=0==h,k=!m||h==m.length-1;if(y.top-v.top<=3){var C=(f?b:w)&&x,S=(f?w:b)&&k,T=C?u:(g?v:y).left,L=S?d:(g?y:v).right;i(T,v.top,L-T,v.bottom)}else{var M,A,O,N;g?(M=f&&b&&x?u:v.left,A=f?d:a(e,l,"before"),O=f?u:a(t,l,"after"),N=f&&w&&k?d:y.right):(M=f?a(e,l,"before"):u,A=!f&&b&&x?d:v.right,O=!f&&w&&k?u:y.left,N=f?a(t,l,"after"):d),i(M,v.top,A-M,v.bottom),v.bottom<y.top&&i(u,v.bottom,null,y.top),i(O,y.top,N-O,y.bottom)}(!s||Or(v,s)<0)&&(s=v),Or(y,s)<0&&(s=y),(!c||Or(v,c)<0)&&(c=v),Or(y,c)<0&&(c=y)}),{start:s,end:c}}var a=e.display,l=e.doc,s=document.createDocumentFragment(),c=Ht(e.display),u=c.left,d=Math.max(a.sizerWidth,Rt(e)-a.sizer.offsetLeft)-c.right,f="ltr"==l.direction,h=t.from(),p=t.to();if(h.line==p.line)o(h.line,h.ch,p.ch);else{var m=M(l,h.line),g=M(l,p.line),v=de(m)==de(g),y=o(h.line,h.ch,v?m.text.length+1:null).end,b=o(p.line,v?0:null,p.ch).start;v&&(y.top<b.top-2?(i(y.right,y.top,null,y.bottom),i(u,b.top,b.left,b.bottom)):i(y.right,y.top,b.left-y.right,y.bottom)),y.bottom<b.top&&i(u,y.bottom,null,b.top)}r.appendChild(s)}function _r(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Er(e){e.state.focused||(e.display.input.focus(),Fr(e))}function Wr(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Dr(e))},100)}function Fr(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Le(e,"focus",e,t),e.state.focused=!0,l(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),ba&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),_r(e))}function Dr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Le(e,"blur",e,t),e.state.focused=!1,za(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function zr(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i=t.view[n],o=void 0;if(!i.hidden){if(va&&ya<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var l=i.node.getBoundingClientRect();o=l.bottom-l.top}var s=i.line.height-o;if(o<2&&(o=yr(t)),(s>.005||s<-.005)&&(N(i.line,o),Pr(i.line),i.rest))for(var c=0;c<i.rest.length;c++)Pr(i.rest[c])}}}function Pr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function Hr(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-zt(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=E(t,n),a=E(t,i);if(r&&r.ensure){var l=r.ensure.from.line,s=r.ensure.to.line;l<o?(o=l,a=E(t,ye(M(t,l))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=a&&(o=E(t,ye(M(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function Ir(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=xr(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;a<r.length;a++)if(!r[a].hidden){e.options.fixedGutter&&(r[a].gutter&&(r[a].gutter.style.left=o),r[a].gutterBackground&&(r[a].gutterBackground.style.left=o));var l=r[a].alignable;if(l)for(var s=0;s<l.length;s++)l[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function Rr(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=F(e.options,t.first+t.size-1),i=e.display;if(r.length!=i.lineNumChars){var o=i.measure.appendChild(n("div",[n("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,l=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-l)+1,i.lineNumWidth=i.lineNumInnerWidth+l,i.lineNumChars=i.lineNumInnerWidth?r.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",En(e),!0}return!1}function jr(e,t){if(!Me(e,"scrollCursorIntoView")){var r=e.display,i=r.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Ta){var a=n("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-zt(e.display))+"px;\n height: "+(t.bottom-t.top+It(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}function Br(e,t,r,n){null==n&&(n=0);var i;e.options.lineWrapping||t!=r||(t=t.ch?D(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t,r="before"==t.sticky?D(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,l=sr(e,t),s=r&&r!=t?sr(e,r):l;i={left:Math.min(l.left,s.left),top:Math.min(l.top,s.top)-n,right:Math.max(l.left,s.left),bottom:Math.max(l.bottom,s.bottom)+n};var c=Ur(e,i),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=c.scrollTop&&(Zr(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(Qr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}function qr(e,t){var r=Ur(e,t);null!=r.scrollTop&&Zr(e,r.scrollTop),null!=r.scrollLeft&&Qr(e,r.scrollLeft)}function Ur(e,t){var r=e.display,n=yr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=jt(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+Pt(r),s=t.top<n,c=t.bottom>l-n;if(t.top<i)a.scrollTop=s?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?l:t.bottom)-o);u!=i&&(a.scrollTop=u)}var d=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,f=Rt(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>f;return h&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.left<d?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>f+d-3&&(a.scrollLeft=t.right+(h?0:10)-f),a}function Kr(e,t){null!=t&&(Yr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Vr(e){Yr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Gr(e,t,r){null==t&&null==r||Yr(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function $r(e,t){Yr(e),e.curOp.scrollToPos=t}function Yr(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;Xr(e,cr(e,t.from),cr(e,t.to),t.margin)}}function Xr(e,t,r,n){var i=Ur(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Gr(e,i.scrollLeft,i.scrollTop)}function Zr(e,t){Math.abs(e.doc.scrollTop-t)<2||(ha||Nn(e,{top:t}),Jr(e,t,!0),ha&&Nn(e),Cn(e,100))}function Jr(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Qr(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,Ir(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function en(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+Pt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+It(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function tn(e,t){t||(t=en(e));var r=e.display.barWidth,n=e.display.barHeight;rn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&zr(e),rn(e,en(e)),r=e.display.barWidth,n=e.display.barHeight}function rn(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function nn(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&za(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new kl[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),el(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,r){"horizontal"==r?Qr(e,t):Zr(e,t)},e),e.display.scrollbars.addClass&&l(e.display.wrapper,e.display.scrollbars.addClass)}function on(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Cl},vt(e.curOp)}function an(e){bt(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;ln(e)})}function ln(e){for(var t=e.ops,r=0;r<t.length;r++)sn(t[r]);for(var n=0;n<t.length;n++)cn(t[n]);for(var i=0;i<t.length;i++)un(t[i]);for(var o=0;o<t.length;o++)dn(t[o]);for(var a=0;a<t.length;a++)fn(t[a])}function sn(e){var t=e.cm,r=t.display;Tn(t),e.updateMaxLine&&we(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<r.viewFrom||e.scrollToPos.to.line>=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Sl(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function cn(e){e.updatedDisplay=e.mustUpdate&&An(e.cm,e.update)}function un(e){var t=e.cm,r=t.display;e.updatedDisplay&&zr(t),e.barMeasure=en(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Kt(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+It(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Rt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function dn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&Qr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==a();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&tn(t,e.barMeasure),e.updatedDisplay&&Wn(t,e.barMeasure),e.selectionChanged&&_r(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&Er(e.cm)}function fn(e){var t=e.cm,r=t.display,n=t.doc;if(e.updatedDisplay&&On(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null!=e.scrollTop&&Jr(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&Qr(t,e.scrollLeft,!0,!0),e.scrollToPos){jr(t,Br(t,B(n,e.scrollToPos.from),B(n,e.scrollToPos.to),e.scrollToPos.margin))}var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a<i.length;++a)i[a].lines.length||Le(i[a],"hide");if(o)for(var l=0;l<o.length;++l)o[l].lines.length&&Le(o[l],"unhide");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Le(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function hn(e,t){if(e.curOp)return t();on(e);try{return t()}finally{an(e)}}function pn(e,t){return function(){if(e.curOp)return t.apply(e,arguments);on(e);try{return t.apply(e,arguments)}finally{an(e)}}}function mn(e){return function(){if(this.curOp)return e.apply(this,arguments);on(this);try{return e.apply(this,arguments)}finally{an(this)}}}function gn(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);on(t);try{return e.apply(this,arguments)}finally{an(t)}}}function vn(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Xa&&pe(e.doc,t)<i.viewTo&&bn(e);else if(r<=i.viewFrom)Xa&&me(e.doc,r+n)>i.viewFrom?bn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)bn(e);else if(t<=i.viewFrom){var o=wn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):bn(e)}else if(r>=i.viewTo){var a=wn(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):bn(e)}else{var l=wn(e,t,t,-1),s=wn(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(gt(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):bn(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function yn(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[Tr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==f(a,r)&&a.push(r)}}}function bn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function wn(e,t,r,n){var i,o=Tr(e,t),a=e.display.view;if(!Xa||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var l=e.display.viewFrom,s=0;s<o;s++)l+=a[s].size;if(l!=t){if(n>0){if(o==a.length-1)return null;i=l+a[o].size-t,o++}else i=l-t;t+=i,r+=i}for(;pe(e.doc,r)!=r;){if(o==(n<0?0:a.length-1))return null;r+=n*a[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function xn(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=gt(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=gt(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice(Tr(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(gt(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,Tr(e,r)))),n.viewTo=r}function kn(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function Cn(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,c(Sn,e))}function Sn(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=Xe(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(n.line>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength?Ke(t.mode,n.state):null,s=$e(e,o,n,!0);l&&(n.state=l),o.styles=s.styles;var c=o.styleClasses,u=s.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var d=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),f=0;!d&&f<a.length;++f)d=a[f]!=o.styles[f];d&&i.push(n.line),o.stateAfter=n.save(),n.nextLine()}else o.text.length<=e.options.maxHighlightLength&&Ze(e,o.text,n),o.stateAfter=n.line%5==0?n.save():null,n.nextLine();if(+new Date>r)return Cn(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&hn(e,function(){for(var t=0;t<i.length;t++)yn(e,i[t],"text")})}}function Tn(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=It(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=It(e)+"px",t.scrollbarsClipped=!0)}function Ln(e){if(e.hasFocus())return null;var t=a();if(!t||!o(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&o(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}function Mn(e){if(e&&e.activeElt&&e.activeElt!=a()&&(e.activeElt.focus(),e.anchorNode&&o(document.body,e.anchorNode)&&o(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}function An(e,r){var n=e.display,i=e.doc;if(r.editorIsHidden)return bn(e),!1;if(!r.force&&r.visible.from>=n.viewFrom&&r.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==kn(e))return!1;Rr(e)&&(bn(e),r.dims=wr(e));var o=i.first+i.size,a=Math.max(r.visible.from-e.options.viewportMargin,i.first),l=Math.min(o,r.visible.to+e.options.viewportMargin);n.viewFrom<a&&a-n.viewFrom<20&&(a=Math.max(i.first,n.viewFrom)),n.viewTo>l&&n.viewTo-l<20&&(l=Math.min(o,n.viewTo)),Xa&&(a=pe(e.doc,a),l=me(e.doc,l));var s=a!=n.viewFrom||l!=n.viewTo||n.lastWrapHeight!=r.wrapperHeight||n.lastWrapWidth!=r.wrapperWidth;xn(e,a,l),n.viewOffset=ye(M(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var c=kn(e);if(!s&&0==c&&!r.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var u=Ln(e);return c>4&&(n.lineDiv.style.display="none"),_n(e,n.updateLineNumbers,r.dims),c>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Mn(u),t(n.cursorDiv),t(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=r.wrapperHeight,n.lastWrapWidth=r.wrapperWidth,Cn(e,400)),n.updateLineNumbers=null,!0}function On(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Rt(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+Pt(e.display)-jt(e),r.top)}),t.visible=Hr(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&An(e,t);n=!1){zr(e);var i=en(e);Lr(e),tn(e,i),Wn(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Nn(e,t){var r=new Sl(e,t);if(An(e,r)){zr(e),On(e,r);var n=en(e);Lr(e),tn(e,n),Wn(e,n),r.finish()}}function _n(e,r,n){function i(t){var r=t.nextSibling;return ba&&Oa&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var o=e.display,a=e.options.lineNumbers,l=o.lineDiv,s=l.firstChild,c=o.view,u=o.viewFrom,d=0;d<c.length;d++){var h=c[d];if(h.hidden);else if(h.node&&h.node.parentNode==l){for(;s!=h.node;)s=i(s);var p=a&&null!=r&&r<=u&&h.lineNumber;h.changes&&(f(h.changes,"gutter")>-1&&(p=!1),kt(e,h,u,n)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(F(e.options,u)))),s=h.node.nextSibling}else{var m=Nt(e,h,u,n);l.insertBefore(m,s)}u+=h.size}for(;s;)s=i(s)}function En(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Wn(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+It(e)+"px"}function Fn(e){var r=e.display.gutters,i=e.options.gutters;t(r);for(var o=0;o<i.length;++o){var a=i[o],l=r.appendChild(n("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=l,l.style.width=(e.display.lineNumWidth||1)+"px")}r.style.display=o?"":"none",En(e)}function Dn(e){var t=f(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function zn(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}}function Pn(e){var t=zn(e);return t.x*=Ll,t.y*=Ll,t}function Hn(e,t){var r=zn(t),n=r.x,i=r.y,o=e.display,a=o.scroller,l=a.scrollWidth>a.clientWidth,s=a.scrollHeight>a.clientHeight;if(n&&l||i&&s){if(i&&Oa&&ba)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var d=0;d<u.length;d++)if(u[d].node==c){e.display.currentWheelTarget=c;break e}if(n&&!ha&&!ka&&null!=Ll)return i&&s&&Zr(e,Math.max(0,a.scrollTop+i*Ll)),Qr(e,Math.max(0,a.scrollLeft+n*Ll)),(!i||i&&s)&&_e(t),void(o.wheelStartX=null);if(i&&null!=Ll){var f=i*Ll,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;f<0?h=Math.max(0,h+f-50):p=Math.min(e.doc.height,p+f+50),Nn(e,{top:h,bottom:p})}Tl<20&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=n,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,r=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,r&&(Ll=(Ll*Tl+r)/(Tl+1),++Tl)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function In(e,t){var r=e[t];e.sort(function(e,t){return z(e.from(),t.from())}),t=f(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(z(o.to(),i.from())>=0){var a=R(o.from(),i.from()),l=I(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new Al(s?l:a,s?a:l))}}return new Ml(e,t)}function Rn(e,t){return new Ml([new Al(e,t||e)],0)}function jn(e){return e.text?D(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Bn(e,t){if(z(e,t.from)<0)return e;if(z(e,t.to)<=0)return jn(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=jn(t).ch-t.to.ch),D(r,n)}function qn(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new Al(Bn(i.anchor,t),Bn(i.head,t)))}return In(r,e.sel.primIndex)}function Un(e,t,r){return e.line==t.line?D(r.line,e.ch-t.ch+r.ch):D(r.line+(e.line-t.line),e.ch)}function Kn(e,t,r){for(var n=[],i=D(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=Un(l.from,i,o),c=Un(jn(l),i,o);if(i=l.to,o=c,"around"==r){var u=e.sel.ranges[a],d=z(u.head,u.anchor)<0;n[a]=new Al(d?c:s,d?s:c)}else n[a]=new Al(s,s)}return new Ml(n,e.sel.primIndex)}function Vn(e){e.doc.mode=qe(e.options,e.doc.modeOption),Gn(e)}function Gn(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,Cn(e,100),e.state.modeGen++,e.curOp&&vn(e)}function $n(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Yn(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){ot(e,r,i,n),wt(e,"change",e,t)}function a(e,t){for(var r=[],o=e;o<t;++o)r.push(new hl(c[o],i(o),n));return r}var l=t.from,s=t.to,c=t.text,u=M(e,l.line),d=M(e,s.line),f=m(c),h=i(c.length-1),p=s.line-l.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if($n(e,t)){var g=a(0,c.length-1);o(d,d.text,h),p&&e.remove(l.line,p),g.length&&e.insert(l.line,g)}else if(u==d)if(1==c.length)o(u,u.text.slice(0,l.ch)+f+u.text.slice(s.ch),h);else{var v=a(1,c.length-1);v.push(new hl(f+u.text.slice(s.ch),h,n)),o(u,u.text.slice(0,l.ch)+c[0],i(0)),e.insert(l.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,l.ch)+c[0]+d.text.slice(s.ch),i(0)),e.remove(l.line+1,p);else{o(u,u.text.slice(0,l.ch)+c[0],i(0)),o(d,f+d.text.slice(s.ch),h);var y=a(1,c.length-1);p>1&&e.remove(l.line+1,p-1),e.insert(l.line+1,y)}wt(e,"change",e,t)}function Xn(e,t,r){function n(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var l=e.linked[a];if(l.doc!=i){var s=o&&l.sharedHist;r&&!s||(t(l.doc,s),n(l.doc,e,s))}}}n(e,null,!0)}function Zn(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Cr(e),Vn(e),Jn(e),e.options.lineWrapping||we(e),e.options.mode=t.modeOption,vn(e)}function Jn(e){("rtl"==e.doc.direction?l:za)(e.display.lineDiv,"CodeMirror-rtl")}function Qn(e){hn(e,function(){Jn(e),vn(e)})}function ei(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function ti(e,t){var r={from:H(t.from),to:jn(t),text:A(e,t.from,t.to)};return si(e,r,t.from.line,t.to.line+1),Xn(e,function(e){return si(e,r,t.from.line,t.to.line+1)},!0),r}function ri(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function ni(e,t){return t?(ri(e.done),m(e.done)):e.done.length&&!m(e.done).ranges?m(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),m(e.done)):void 0}function ii(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>l-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=ni(i,i.lastOp==n)))a=m(o.changes),0==z(t.from,t.to)&&0==z(t.from,a.to)?a.to=jn(t):o.changes.push(ti(e,t));else{var s=m(i.done);for(s&&s.ranges||li(e.sel,i.done),o={changes:[ti(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=l,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,a||Le(e,"historyAdded")}function oi(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function ai(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||oi(e,o,m(i.done),t))?i.done[i.done.length-1]=t:li(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&ri(i.undone)}function li(e,t){var r=m(t);r&&r.ranges&&r.equals(e)||t.push(e)}function si(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function ci(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function ui(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(ci(r[i]));return n}function di(e,t){var r=ui(e,t),n=Q(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],a=n[i];if(o&&a)e:for(var l=0;l<a.length;++l){for(var s=a[l],c=0;c<o.length;++c)if(o[c].marker==s.marker)continue e;o.push(s)}else a&&(r[i]=a)}return r}function fi(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?Ml.prototype.deepCopy.call(o):o);else{var a=o.changes,l=[];n.push({changes:l});for(var s=0;s<a.length;++s){var c=a[s],u=void 0;if(l.push({from:c.from,to:c.to,text:c.text}),t)for(var d in c)(u=d.match(/^spans_(\d+)$/))&&f(t,Number(u[1]))>-1&&(m(l)[d]=c[d],delete c[d])}}}return n}function hi(e,t,r,n){if(n){var i=e.anchor;if(r){var o=z(t,i)<0;o!=z(r,i)<0?(i=t,t=r):o!=z(t,r)<0&&(t=r)}return new Al(i,t)}return new Al(r||t,t)}function pi(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),wi(e,new Ml([hi(e.sel.primary(),t,r,i)],0),n)}function mi(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)n[o]=hi(e.sel.ranges[o],t[o],null,i);wi(e,In(n,e.sel.primIndex),r)}function gi(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,wi(e,In(i,e.sel.primIndex),n)}function vi(e,t,r,n){wi(e,Rn(t,r),n)}function yi(e,t,r){var n={ranges:t.ranges,update:function(t){var r=this;this.ranges=[];for(var n=0;n<t.length;n++)r.ranges[n]=new Al(B(e,t[n].anchor),B(e,t[n].head))},origin:r&&r.origin};return Le(e,"beforeSelectionChange",e,n),e.cm&&Le(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?In(n.ranges,n.ranges.length-1):t}function bi(e,t,r){var n=e.history.done,i=m(n);i&&i.ranges?(n[n.length-1]=t,xi(e,t,r)):wi(e,t,r)}function wi(e,t,r){xi(e,t,r),ai(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function xi(e,t,r){(Oe(e,"beforeSelectionChange")||e.cm&&Oe(e.cm,"beforeSelectionChange"))&&(t=yi(e,t,r)),ki(e,Si(e,t,r&&r.bias||(z(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||Vr(e.cm)}function ki(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ae(e.cm)),wt(e,"cursorActivity",e))}function Ci(e){ki(e,Si(e,e.sel,null,!1))}function Si(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],l=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=Li(e,a.anchor,l&&l.anchor,r,n),c=Li(e,a.head,l&&l.head,r,n);(i||s!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new Al(s,c))}return i?In(i,t.primIndex):t}function Ti(e,t,r,n,i){var o=M(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var l=o.markedSpans[a],s=l.marker;if((null==l.from||(s.inclusiveLeft?l.from<=t.ch:l.from<t.ch))&&(null==l.to||(s.inclusiveRight?l.to>=t.ch:l.to>t.ch))){if(i&&(Le(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(r){var c=s.find(n<0?1:-1),u=void 0;if((n<0?s.inclusiveRight:s.inclusiveLeft)&&(c=Mi(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=z(c,r))&&(n<0?u<0:u>0))return Ti(e,c,t,n,i)}var d=s.find(n<0?-1:1);return(n<0?s.inclusiveLeft:s.inclusiveRight)&&(d=Mi(e,d,n,d.line==t.line?o:null)),d?Ti(e,d,t,n,i):null}}return t}function Li(e,t,r,n,i){var o=n||1,a=Ti(e,t,r,o,i)||!i&&Ti(e,t,r,o,!0)||Ti(e,t,r,-o,i)||!i&&Ti(e,t,r,-o,!0);return a||(e.cantEdit=!0,D(e.first,0))}function Mi(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?B(e,D(t.line-1)):null:r>0&&t.ch==(n||M(e,t.line)).text.length?t.line<e.first+e.size-1?D(t.line+1,0):null:new D(t.line,t.ch+r)}function Ai(e){e.setSelection(D(e.firstLine(),0),D(e.lastLine()),qa)}function Oi(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){
4
- return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=B(e,t)),r&&(n.to=B(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),Le(e,"beforeChange",e,n),e.cm&&Le(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function Ni(e,t,r){if(e.cm){if(!e.cm.curOp)return pn(e.cm,Ni)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(Oe(e,"beforeChange")||e.cm&&Oe(e.cm,"beforeChange"))||(t=Oi(e,t,!0))){var n=Ya&&!r&&te(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)_i(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else _i(e,t)}}function _i(e,t){if(1!=t.text.length||""!=t.text[0]||0!=z(t.from,t.to)){var r=qn(e,t);ii(e,t,r,e.cm?e.cm.curOp.id:NaN),Fi(e,t,r,Q(e,t));var n=[];Xn(e,function(e,r){r||-1!=f(n,e.history)||(Ii(e.history,t),n.push(e.history)),Fi(e,t,null,Q(e,t))})}}function Ei(e,t,r){if(!e.cm||!e.cm.state.suppressEdits||r){for(var n,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,l="undo"==t?i.undone:i.done,s=0;s<a.length&&(n=a[s],r?!n.ranges||n.equals(e.sel):n.ranges);s++);if(s!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;n=a.pop(),n.ranges;){if(li(n,l),r&&!n.equals(e.sel))return void wi(e,n,{clearRedo:!1});o=n}var c=[];li(o,l),l.push({changes:c,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;for(var u=Oe(e,"beforeChange")||e.cm&&Oe(e.cm,"beforeChange"),d=n.changes.length-1;d>=0;--d){var h=function(r){var i=n.changes[r];if(i.origin=t,u&&!Oi(e,i,!1))return a.length=0,{};c.push(ti(e,i));var o=r?qn(e,i):m(a);Fi(e,i,o,di(e,i)),!r&&e.cm&&e.cm.scrollIntoView({from:i.from,to:jn(i)});var l=[];Xn(e,function(e,t){t||-1!=f(l,e.history)||(Ii(e.history,i),l.push(e.history)),Fi(e,i,null,di(e,i))})}(d);if(h)return h.v}}}}function Wi(e,t){if(0!=t&&(e.first+=t,e.sel=new Ml(g(e.sel.ranges,function(e){return new Al(D(e.anchor.line+t,e.anchor.ch),D(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){vn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)yn(e.cm,n,"gutter")}}function Fi(e,t,r,n){if(e.cm&&!e.cm.curOp)return pn(e.cm,Fi)(e,t,r,n);if(t.to.line<e.first)return void Wi(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Wi(e,i),t={from:D(e.first,0),to:D(t.to.line+i,t.to.ch),text:[m(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:D(o,M(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=A(e,t.from,t.to),r||(r=qn(e,t)),e.cm?Di(e.cm,t,n):Yn(e,t,n),xi(e,r,qa)}}function Di(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=_(de(M(n,o.line))),n.iter(s,a.line+1,function(e){if(e==i.maxLine)return l=!0,!0})),n.sel.contains(t.from,t.to)>-1&&Ae(e),Yn(n,t,r,kr(e)),e.options.lineWrapping||(n.iter(s,o.line+t.text.length,function(e){var t=be(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)}),l&&(e.curOp.updateMaxLine=!0)),it(n,o.line),Cn(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?vn(e):o.line!=a.line||1!=t.text.length||$n(e.doc,t)?vn(e,o.line,a.line+1,c):yn(e,o.line,"text");var u=Oe(e,"changes"),d=Oe(e,"change");if(d||u){var f={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};d&&wt(e,"change",e,f),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}function zi(e,t,r,n,i){if(n||(n=r),z(n,r)<0){var o;o=[n,r],r=o[0],n=o[1]}"string"==typeof t&&(t=e.splitLines(t)),Ni(e,{from:r,to:n,text:t,origin:i})}function Pi(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Hi(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var l=0;l<o.ranges.length;l++)Pi(o.ranges[l].anchor,t,r,n),Pi(o.ranges[l].head,t,r,n)}else{for(var s=0;s<o.changes.length;++s){var c=o.changes[s];if(r<c.from.line)c.from=D(c.from.line+n,c.from.ch),c.to=D(c.to.line+n,c.to.ch);else if(t<=c.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function Ii(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Hi(e.done,r,n,i),Hi(e.undone,r,n,i)}function Ri(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=M(e,j(e,t)):i=_(t),null==i?null:(n(o,i)&&e.cm&&yn(e.cm,i,r),o)}function ji(e){var t=this;this.lines=e,this.parent=null;for(var r=0,n=0;n<e.length;++n)e[n].parent=t,r+=e[n].height;this.height=r}function Bi(e){var t=this;this.children=e;for(var r=0,n=0,i=0;i<e.length;++i){var o=e[i];r+=o.chunkSize(),n+=o.height,o.parent=t}this.size=r,this.height=n,this.parent=null}function qi(e,t,r){ye(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Kr(e,r)}function Ui(e,t,r,n){var i=new Ol(e,r,n),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),Ri(e,t,"widget",function(t){var r=t.widgets||(t.widgets=[]);if(null==i.insertAt?r.push(i):r.splice(Math.min(r.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!ge(e,t)){var n=ye(t)<e.scrollTop;N(t,t.height+Ft(i)),n&&Kr(o,i.height),o.curOp.forceUpdate=!0}return!0}),wt(o,"lineWidgetAdded",o,i,"number"==typeof t?t:_(t)),i}function Ki(e,t,r,n,o){if(n&&n.shared)return Vi(e,t,r,n,o);if(e.cm&&!e.cm.curOp)return pn(e.cm,Ki)(e,t,r,n,o);var a=new _l(e,o),l=z(t,r);if(n&&u(n,a,!1),l>0||0==l&&!1!==a.clearWhenEmpty)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(ue(e,t.line,t,r,a)||t.line!=r.line&&ue(e,r.line,t,r,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");V()}a.addToHistory&&ii(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,c=t.line,d=e.cm;if(e.iter(c,r.line+1,function(e){d&&a.collapsed&&!d.options.lineWrapping&&de(e)==d.display.maxLine&&(s=!0),a.collapsed&&c!=t.line&&N(e,0),X(e,new G(a,c==t.line?t.ch:null,c==r.line?r.ch:null)),++c}),a.collapsed&&e.iter(t.line,r.line+1,function(t){ge(e,t)&&N(t,0)}),a.clearOnEnter&&el(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(K(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++Nl,a.atomic=!0),d){if(s&&(d.curOp.updateMaxLine=!0),a.collapsed)vn(d,t.line,r.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var f=t.line;f<=r.line;f++)yn(d,f,"text");a.atomic&&Ci(d.doc),wt(d,"markerAdded",d,a)}return a}function Vi(e,t,r,n,i){n=u(n),n.shared=!1;var o=[Ki(e,t,r,n,i)],a=o[0],l=n.widgetNode;return Xn(e,function(e){l&&(n.widgetNode=l.cloneNode(!0)),o.push(Ki(e,B(e,t),B(e,r),n,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;a=m(o)}),new El(o,a)}function Gi(e){return e.findMarks(D(e.first,0),e.clipPos(D(e.lastLine())),function(e){return e.parent})}function $i(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(z(o,a)){var l=Ki(e,o,a,n.primary,n.primary.type);n.markers.push(l),l.parent=n}}}function Yi(e){for(var t=0;t<e.length;t++)!function(t){var r=e[t],n=[r.primary.doc];Xn(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];-1==f(n,o.doc)&&(o.parent=null,r.markers.splice(i--,1))}}(t)}function Xi(e){var t=this;if(Qi(t),!Me(t,e)&&!Dt(t.display,e)){_e(e),va&&(Dl=+new Date);var r=Sr(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),a=0,l=0;l<i;++l)!function(e,n){if(!t.options.allowDropFileTypes||-1!=f(t.options.allowDropFileTypes,e.type)){var l=new FileReader;l.onload=pn(t,function(){var e=l.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[n]=e,++a==i){r=B(t.doc,r);var s={from:r,to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Ni(t.doc,s),bi(t.doc,Rn(r,jn(s)))}}),l.readAsText(e)}}(n[l],l);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var s=e.dataTransfer.getData("Text");if(s){var c;if(t.state.draggingText&&!t.state.draggingText.copy&&(c=t.listSelections()),xi(t.doc,Rn(r,r)),c)for(var u=0;u<c.length;++u)zi(t.doc,"",c[u].anchor,c[u].head,"drag");t.replaceSelection(s,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Zi(e,t){if(va&&(!e.state.draggingText||+new Date-Dl<100))return void Fe(t);if(!Me(e,t)&&!Dt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!Ca)){var r=n("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",ka&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),ka&&r.parentNode.removeChild(r)}}function Ji(e,t){var i=Sr(e,t);if(i){var o=document.createDocumentFragment();Ar(e,i,o),e.display.dragCursor||(e.display.dragCursor=n("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),r(e.display.dragCursor,o)}}function Qi(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function eo(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}function to(){zl||(ro(),zl=!0)}function ro(){var e;el(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,eo(no)},100))}),el(window,"blur",function(){return eo(Dr)})}function no(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function io(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var r,n,i,o,a=0;a<t.length-1;a++){var l=t[a];if(/^(cmd|meta|m)$/i.test(l))o=!0;else if(/^a(lt)?$/i.test(l))r=!0;else if(/^(c|ctrl|control)$/i.test(l))n=!0;else{if(!/^s(hift)?$/i.test(l))throw new Error("Unrecognized modifier name: "+l);i=!0}}return r&&(e="Alt-"+e),n&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function oo(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=g(r.split(" "),io),o=0;o<i.length;o++){var a=void 0,l=void 0;o==i.length-1?(l=i.join(" "),a=n):(l=i.slice(0,o+1).join(" "),a="...");var s=t[l];if(s){if(s!=a)throw new Error("Inconsistent bindings for "+l)}else t[l]=a}delete e[r]}for(var c in t)e[c]=t[c];return e}function ao(e,t,r,n){t=uo(t);var i=t.call?t.call(e,n):t[e];if(!1===i)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return ao(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=ao(e,t.fallthrough[o],r,n);if(a)return a}}}function lo(e){var t="string"==typeof e?e:Pl[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function so(e,t,r){var n=e;return t.altKey&&"Alt"!=n&&(e="Alt-"+e),(Fa?t.metaKey:t.ctrlKey)&&"Ctrl"!=n&&(e="Ctrl-"+e),(Fa?t.ctrlKey:t.metaKey)&&"Cmd"!=n&&(e="Cmd-"+e),!r&&t.shiftKey&&"Shift"!=n&&(e="Shift-"+e),e}function co(e,t){if(ka&&34==e.keyCode&&e.char)return!1;var r=Pl[e.keyCode];return null!=r&&!e.altGraphKey&&so(r,e,t)}function uo(e){return"string"==typeof e?jl[e]:e}function fo(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&z(o.from,m(n).to)<=0;){var a=n.pop();if(z(a.from,o.from)<0){o.from=a.from;break}}n.push(o)}hn(e,function(){for(var t=n.length-1;t>=0;t--)zi(e.doc,"",n[t].from,n[t].to,"+delete");Vr(e)})}function ho(e,t,r){var n=S(e.text,t+r,r);return n<0||n>e.text.length?null:n}function po(e,t,r){var n=ho(e,t.ch,r);return null==n?null:new D(t.line,n,r<0?"after":"before")}function mo(e,t,r,n,i){if(e){var o=Ce(r,t.doc.direction);if(o){var a,l=i<0?m(o):o[0],s=i<0==(1==l.level),c=s?"after":"before";if(l.level>0||"rtl"==t.doc.direction){var u=Gt(t,r);a=i<0?r.text.length-1:0;var d=$t(t,u,a).top;a=T(function(e){return $t(t,u,e).top==d},i<0==(1==l.level)?l.from:l.to-1,a),"before"==c&&(a=ho(r,a,1))}else a=i<0?l.to:l.from;return new D(n,a,c)}}return new D(n,i<0?r.text.length:0,i<0?"before":"after")}function go(e,t,r,n){var i=Ce(t,e.doc.direction);if(!i)return po(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ke(i,r.ch,r.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(n>0?a.to>r.ch:a.from<r.ch))return po(t,r,n);var l,s=function(e,r){return ho(t,e instanceof D?e.ch:e,r)},c=function(r){return e.options.lineWrapping?(l=l||Gt(e,t),hr(e,t,l,r)):{begin:0,end:t.text.length}},u=c("before"==r.sticky?s(r,-1):r.ch);if("rtl"==e.doc.direction||1==a.level){var d=1==a.level==n<0,f=s(r,d?1:-1);if(null!=f&&(d?f<=a.to&&f<=u.end:f>=a.from&&f>=u.begin)){var h=d?"before":"after";return new D(r.line,f,h)}}var p=function(e,t,n){for(var o=function(e,t){return t?new D(r.line,s(e,1),"before"):new D(r.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],l=t>0==(1!=a.level),c=l?n.begin:s(n.end,-1);if(a.from<=c&&c<a.to)return o(c,l);if(c=l?a.from:s(a.to,-1),n.begin<=c&&c<n.end)return o(c,l)}},m=p(o+n,n,u);if(m)return m;var g=n>0?u.end:s(u.begin,-1);return null==g||n>0&&g==t.text.length||!(m=p(n>0?0:i.length-1,n,c(g)))?null:m}function vo(e,t){var r=M(e.doc,t),n=de(r);return n!=r&&(t=_(n)),mo(!0,e,n,t,1)}function yo(e,t){var r=M(e.doc,t),n=fe(r);return n!=r&&(t=_(n)),mo(!0,e,r,t,-1)}function bo(e,t){var r=vo(e,t.line),n=M(e.doc,r.line),i=Ce(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\S/)),a=t.line==r.line&&t.ch<=o&&t.ch;return D(r.line,a?0:o,r.sticky)}return r}function wo(e,t,r){if("string"==typeof t&&!(t=Bl[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=Ba}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}function xo(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=ao(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&ao(t,e.options.extraKeys,r,e)||ao(t,e.options.keyMap,r,e)}function ko(e,t,r,n){var i=e.state.keySeq;if(i){if(lo(t))return"handled";ql.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=xo(e,t,n);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&wt(e,"keyHandled",e,t,r),"handled"!=o&&"multi"!=o||(_e(r),_r(e)),i&&!o&&/\'$/.test(t)?(_e(r),!0):!!o}function Co(e,t){var r=co(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?ko(e,"Shift-"+r,t,function(t){return wo(e,t,!0)})||ko(e,r,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return wo(e,t)}):ko(e,r,t,function(t){return wo(e,t)}))}function So(e,t,r){return ko(e,"'"+r+"'",t,function(t){return wo(e,t,!0)})}function To(e){var t=this;if(t.curOp.focus=a(),!Me(t,e)){va&&ya<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=Co(t,e);ka&&(Ul=n?r:null,!n&&88==r&&!il&&(Oa?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=r||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||Lo(t)}}function Lo(e){function t(e){18!=e.keyCode&&e.altKey||(za(r,"CodeMirror-crosshair"),Te(document,"keyup",t),Te(document,"mouseover",t))}var r=e.display.lineDiv;l(r,"CodeMirror-crosshair"),el(document,"keyup",t),el(document,"mouseover",t)}function Mo(e){16==e.keyCode&&(this.doc.sel.shift=!1),Me(this,e)}function Ao(e){var t=this;if(!(Dt(t.display,e)||Me(t,e)||e.ctrlKey&&!e.altKey||Oa&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(ka&&r==Ul)return Ul=null,void _e(e);if(!ka||e.which&&!(e.which<10)||!Co(t,e)){var i=String.fromCharCode(null==n?r:n);"\b"!=i&&(So(t,e,i)||t.display.input.onKeyPress(e))}}}function Oo(e,t){var r=+new Date;return Gl&&Gl.compare(r,e,t)?(Vl=Gl=null,"triple"):Vl&&Vl.compare(r,e,t)?(Gl=new Kl(r,e,t),Vl=null,"double"):(Vl=new Kl(r,e,t),Gl=null,"single")}function No(e){var t=this,r=t.display;if(!(Me(t,e)||r.activeTouch&&r.input.supportsTouch())){if(r.input.ensurePolled(),r.shift=e.shiftKey,Dt(r,e))return void(ba||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100)));if(!Io(t,e)){var n=Sr(t,e),i=ze(e),o=n?Oo(n,i):"single";window.focus(),1==i&&t.state.selectingText&&t.state.selectingText(e),n&&_o(t,i,n,o,e)||(1==i?n?Wo(t,n,o,e):De(e)==r.scroller&&_e(e):2==i?(n&&pi(t.doc,n),setTimeout(function(){return r.input.focus()},20)):3==i&&(Da?Ro(t,e):Wr(t)))}}}function _o(e,t,r,n,i){var o="Click";return"double"==n?o="Double"+o:"triple"==n&&(o="Triple"+o),o=(1==t?"Left":2==t?"Middle":"Right")+o,ko(e,so(o,i),i,function(t){if("string"==typeof t&&(t=Bl[t]),!t)return!1;var n=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n=t(e,r)!=Ba}finally{e.state.suppressEdits=!1}return n})}function Eo(e,t,r){var n=e.getOption("configureMouse"),i=n?n(e,t,r):{};if(null==i.unit){var o=Na?r.shiftKey&&r.metaKey:r.altKey;i.unit=o?"rectangle":"single"==t?"char":"double"==t?"word":"line"}return(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||r.shiftKey),null==i.addNew&&(i.addNew=Oa?r.metaKey:r.ctrlKey),null==i.moveOnDrag&&(i.moveOnDrag=!(Oa?r.altKey:r.ctrlKey)),i}function Wo(e,t,r,n){va?setTimeout(c(Er,e),0):e.curOp.focus=a();var i,o=Eo(e,r,n),l=e.doc.sel;e.options.dragDrop&&tl&&!e.isReadOnly()&&"single"==r&&(i=l.contains(t))>-1&&(z((i=l.ranges[i]).from(),t)<0||t.xRel>0)&&(z(i.to(),t)>0||t.xRel<0)?Fo(e,n,t,o):zo(e,n,t,o)}function Fo(e,t,r,n){var i=e.display,o=!1,a=pn(e,function(t){ba&&(i.scroller.draggable=!1),e.state.draggingText=!1,Te(document,"mouseup",a),Te(document,"mousemove",l),Te(i.scroller,"dragstart",s),Te(i.scroller,"drop",a),o||(_e(t),n.addNew||pi(e.doc,r,null,null,n.extend),ba||va&&9==ya?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),l=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},s=function(){return o=!0};ba&&(i.scroller.draggable=!0),e.state.draggingText=a,a.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),el(document,"mouseup",a),el(document,"mousemove",l),el(i.scroller,"dragstart",s),el(i.scroller,"drop",a),Wr(e),setTimeout(function(){return i.input.focus()},20)}function Do(e,t,r){if("char"==r)return new Al(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new Al(D(t.line,0),B(e.doc,D(t.line+1,0)));var n=r(e,t);return new Al(n.from,n.to)}function zo(e,t,r,n){function i(t){if(0!=z(v,t))if(v=t,"rectangle"==n.unit){for(var i=[],o=e.options.tabSize,a=d(M(c,r.line).text,r.ch,o),l=d(M(c,t.line).text,t.ch,o),s=Math.min(a,l),m=Math.max(a,l),g=Math.min(r.line,t.line),y=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=y;g++){var b=M(c,g).text,w=h(b,s,o);s==m?i.push(new Al(D(g,w),D(g,w))):b.length>w&&i.push(new Al(D(g,w),D(g,h(b,m,o))))}i.length||i.push(new Al(r,r)),wi(c,In(p.ranges.slice(0,f).concat(i),f),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var x,k=u,C=Do(e,t,n.unit),S=k.anchor;z(C.anchor,S)>0?(x=C.head,S=R(k.from(),C.anchor)):(x=C.anchor,S=I(k.to(),C.head));var T=p.ranges.slice(0);T[f]=Po(e,new Al(B(c,S),x)),wi(c,In(T,f),Ua)}}function o(t){var r=++b,l=Sr(e,t,!0,"rectangle"==n.unit);if(l)if(0!=z(l,v)){e.curOp.focus=a(),i(l);var u=Hr(s,c);(l.line>=u.to||l.line<u.from)&&setTimeout(pn(e,function(){b==r&&o(t)}),150)}else{var d=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;d&&setTimeout(pn(e,function(){b==r&&(s.scroller.scrollTop+=d,o(t))}),50)}}function l(t){e.state.selectingText=!1,b=1/0,_e(t),s.input.focus(),Te(document,"mousemove",w),Te(document,"mouseup",x),c.history.lastSelOrigin=null}var s=e.display,c=e.doc;_e(t);var u,f,p=c.sel,m=p.ranges;if(n.addNew&&!n.extend?(f=c.sel.contains(r),u=f>-1?m[f]:new Al(r,r)):(u=c.sel.primary(),f=c.sel.primIndex),"rectangle"==n.unit)n.addNew||(u=new Al(r,r)),r=Sr(e,t,!0,!0),f=-1;else{var g=Do(e,r,n.unit);u=n.extend?hi(u,g.anchor,g.head,n.extend):g}n.addNew?-1==f?(f=m.length,wi(c,In(m.concat([u]),f),{scroll:!1,origin:"*mouse"})):m.length>1&&m[f].empty()&&"char"==n.unit&&!n.extend?(wi(c,In(m.slice(0,f).concat(m.slice(f+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):gi(c,f,u,Ua):(f=0,wi(c,new Ml([u],0),Ua),p=c.sel);var v=r,y=s.wrapper.getBoundingClientRect(),b=0,w=pn(e,function(e){ze(e)?o(e):l(e)}),x=pn(e,l);e.state.selectingText=x,el(document,"mousemove",w),el(document,"mouseup",x)}function Po(e,t){var r=t.anchor,n=t.head,i=M(e.doc,r.line);if(0==z(r,n)&&r.sticky==n.sticky)return t;var o=Ce(i);if(!o)return t;var a=ke(o,r.ch,r.sticky),l=o[a];if(l.from!=r.ch&&l.to!=r.ch)return t;var s=a+(l.from==r.ch==(1!=l.level)?0:1);if(0==s||s==o.length)return t;var c;if(n.line!=r.line)c=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var u=ke(o,n.ch,n.sticky),d=u-a||(n.ch-r.ch)*(1==l.level?-1:1);c=u==s-1||u==s?d<0:d>0}var f=o[s+(c?-1:0)],h=c==(1==f.level),p=h?f.from:f.to,m=h?"after":"before";return r.ch==p&&r.sticky==m?t:new Al(new D(r.line,p,m),n)}function Ho(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&_e(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!Oe(e,r))return We(t);o-=l.top-a.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var c=a.gutters.childNodes[s];if(c&&c.getBoundingClientRect().right>=i){return Le(e,r,e,E(e.doc,o),e.options.gutters[s],t),We(t)}}}function Io(e,t){return Ho(e,t,"gutterClick",!0)}function Ro(e,t){Dt(e.display,t)||jo(e,t)||Me(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function jo(e,t){return!!Oe(e,"gutterContextMenu")&&Ho(e,t,"gutterContextMenu",!1)}function Bo(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),tr(e)}function qo(e){Fn(e),vn(e),Ir(e)}function Uo(e,t,r){if(!t!=!(r&&r!=$l)){var n=e.display.dragFunctions,i=t?el:Te;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function Ko(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(za(e.display.wrapper,"CodeMirror-wrap"),we(e)),Cr(e),vn(e),tr(e),setTimeout(function(){return tn(e)},100)}function Vo(e,t){var r=this;if(!(this instanceof Vo))return new Vo(e,t);this.options=t=t?u(t):{},u(Yl,t,!1),Dn(t);var n=t.value;"string"==typeof n&&(n=new Fl(n,t.mode,null,t.lineSeparator,t.direction)),this.doc=n;var i=new Vo.inputStyles[t.inputStyle](this),o=this.display=new L(e,n,i);o.wrapper.CodeMirror=this,Fn(this),Bo(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),nn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Ha,keySeq:null,specialChars:null},t.autofocus&&!Aa&&o.input.focus(),va&&ya<11&&setTimeout(function(){return r.display.input.reset(!0)},20),Go(this),to(),on(this),this.curOp.forceUpdate=!0,Zn(this,n),t.autofocus&&!Aa||this.hasFocus()?setTimeout(c(Fr,this),20):Dr(this);for(var a in Xl)Xl.hasOwnProperty(a)&&Xl[a](r,t[a],$l);Rr(this),t.finishInit&&t.finishInit(this);for(var l=0;l<Zl.length;++l)Zl[l](r);an(this),ba&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}function Go(e){function t(){i.activeTouch&&(o=setTimeout(function(){return i.activeTouch=null},1e3),a=i.activeTouch,a.end=+new Date)}function r(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function n(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}var i=e.display;el(i.scroller,"mousedown",pn(e,No)),va&&ya<11?el(i.scroller,"dblclick",pn(e,function(t){if(!Me(e,t)){var r=Sr(e,t);if(r&&!Io(e,t)&&!Dt(e.display,t)){_e(t);var n=e.findWordAt(r);pi(e.doc,n.anchor,n.head)}}})):el(i.scroller,"dblclick",function(t){return Me(e,t)||_e(t)}),Da||el(i.scroller,"contextmenu",function(t){return Ro(e,t)});var o,a={end:0};el(i.scroller,"touchstart",function(t){if(!Me(e,t)&&!r(t)&&!Io(e,t)){i.input.ensurePolled(),clearTimeout(o);var n=+new Date;i.activeTouch={start:n,moved:!1,prev:n-a.end<=300?a:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),el(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),el(i.scroller,"touchend",function(r){var o=i.activeTouch;if(o&&!Dt(i,r)&&null!=o.left&&!o.moved&&new Date-o.start<300){var a,l=e.coordsChar(i.activeTouch,"page");a=!o.prev||n(o,o.prev)?new Al(l,l):!o.prev.prev||n(o,o.prev.prev)?e.findWordAt(l):new Al(D(l.line,0),B(e.doc,D(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),_e(r)}t()}),el(i.scroller,"touchcancel",t),el(i.scroller,"scroll",function(){i.scroller.clientHeight&&(Zr(e,i.scroller.scrollTop),Qr(e,i.scroller.scrollLeft,!0),Le(e,"scroll",e))}),el(i.scroller,"mousewheel",function(t){return Hn(e,t)}),el(i.scroller,"DOMMouseScroll",function(t){return Hn(e,t)}),el(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Me(e,t)||Fe(t)},over:function(t){Me(e,t)||(Ji(e,t),Fe(t))},start:function(t){return Zi(e,t)},drop:pn(e,Xi),leave:function(t){Me(e,t)||Qi(e)}};var l=i.input.getField();el(l,"keyup",function(t){return Mo.call(e,t)}),el(l,"keydown",pn(e,To)),el(l,"keypress",pn(e,Ao)),el(l,"focus",function(t){return Fr(e,t)}),el(l,"blur",function(t){return Dr(e,t)})}function $o(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=Xe(e,t).state:r="prev");var a=e.options.tabSize,l=M(o,t),s=d(l.text,null,a);l.stateAfter&&(l.stateAfter=null);var c,u=l.text.match(/^\s*/)[0];if(n||/\S/.test(l.text)){if("smart"==r&&((c=o.mode.indent(i,l.text.slice(u.length),l.text))==Ba||c>150)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?d(M(o,t-1).text,null,a):0:"add"==r?c=s+e.options.indentUnit:"subtract"==r?c=s-e.options.indentUnit:"number"==typeof r&&(c=s+r),c=Math.max(0,c);var f="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,f+="\t";if(h<c&&(f+=p(c-h)),f!=u)return zi(o,f,D(t,0),D(t,u.length),"+input"),l.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=D(t,u.length);gi(o,g,new Al(y,y));break}}}function Yo(e){Jl=e}function Xo(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var a=e.state.pasteIncoming||"paste"==i,l=rl(t),s=null;if(a&&n.ranges.length>1)if(Jl&&Jl.text.join("\n")==t){if(n.ranges.length%Jl.text.length==0){s=[];for(var c=0;c<Jl.text.length;c++)s.push(o.splitLines(Jl.text[c]))}}else l.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(s=g(l,function(e){return[e]}));for(var u,d=n.ranges.length-1;d>=0;d--){var f=n.ranges[d],h=f.from(),p=f.to();f.empty()&&(r&&r>0?h=D(h.line,h.ch-r):e.state.overwrite&&!a?p=D(p.line,Math.min(M(o,p.line).text.length,p.ch+m(l).length)):Jl&&Jl.lineWise&&Jl.text.join("\n")==t&&(h=p=D(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:s?s[d%s.length]:l,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Ni(e.doc,v),wt(e,"inputRead",e,v)}t&&!a&&Jo(e,t),Vr(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Zo(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||hn(t,function(){return Xo(t,r,0,null,"paste")}),!0}function Jo(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l<o.electricChars.length;l++)if(t.indexOf(o.electricChars.charAt(l))>-1){a=$o(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(M(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=$o(e,i.head.line,"smart"));a&&wt(e,"electricInput",e,i.head.line)}}}function Qo(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:D(i,0),head:D(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function ea(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function ta(){var e=n("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=n("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return ba?e.style.width="1000px":e.setAttribute("wrap","off"),La&&(e.style.border="1px solid black"),ea(e),t}function ra(e,t,r,n,i){function o(){var n=t.line+r;return!(n<e.first||n>=e.first+e.size)&&(t=new D(n,t.ch,t.sticky),c=M(e,n))}function a(n){var a;if(null==(a=i?go(e.cm,c,t,r):po(c,t,r))){if(n||!o())return!1;t=mo(i,e.cm,c,t.line,r)}else t=a;return!0}var l=t,s=r,c=M(e,t.line);if("char"==n)a();else if("column"==n)a(!0);else if("word"==n||"group"==n)for(var u=null,d="group"==n,f=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;!(r<0)||a(!h);h=!1){var p=c.text.charAt(t.ch)||"\n",m=x(p,f)?"w":d&&"\n"==p?"n":!d||/\s/.test(p)?null:"p";if(!d||h||m||(m="s"),u&&u!=m){r<0&&(r=1,a(),t.sticky="after");break}if(m&&(u=m),r>0&&!a(!h))break}var g=Li(e,t,l,s,!0);return P(l,g)&&(g.hitSide=!0),g}function na(e,t,r,n){var i,o=e.doc,a=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),s=Math.max(l-.5*yr(e.display),3);i=(r>0?t.bottom:t.top)+r*s}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(var c;c=dr(e,a,i),c.outside;){if(r<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*r}return c}function ia(e,t){var r=Vt(e,t.line);if(!r||r.hidden)return null;var n=M(e.doc,t.line),i=qt(r,n,t.line),o=Ce(n,e.doc.direction),a="left";if(o){a=ke(o,t.ch)%2?"right":"left"}var l=Yt(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function oa(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function aa(e,t){return t&&(e.bad=!0),e}function la(e,t,r,n,i){function o(e){return function(t){return t.id==e}}function a(){u&&(c+=d,u=!1)}function l(e){e&&(a(),c+=e)}function s(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(null!=r)return void l(r||t.textContent.replace(/\u200b/g,""));var c,f=t.getAttribute("cm-marker");if(f){var h=e.findMarks(D(n,0),D(i+1,0),o(+f));return void(h.length&&(c=h[0].find(0))&&l(A(e.doc,c.from,c.to).join(d)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(t.nodeName);p&&a();for(var m=0;m<t.childNodes.length;m++)s(t.childNodes[m]);p&&(u=!0)}else 3==t.nodeType&&l(t.nodeValue)}for(var c="",u=!1,d=e.doc.lineSeparator();s(t),t!=r;)t=t.nextSibling;return c}function sa(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return aa(e.clipPos(D(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return ca(o,t,r)}}function ca(e,t,r){function n(t,r,n){for(var i=-1;i<(d?d.length:0);i++)for(var o=i<0?u.map:d[i],a=0;a<o.length;a+=3){var l=o[a+2];if(l==t||l==r){var s=_(i<0?e.line:e.rest[i]),c=o[a]+n;return(n<0||l!=t)&&(c=o[a+(n?1:0)]),D(s,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return aa(D(_(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[r],r=0,!t)){var l=e.rest?m(e.rest):e.line;return aa(D(_(l),l.text.length),a)}var s=3==t.nodeType?t:null,c=t;for(s||1!=t.childNodes.length||3!=t.firstChild.nodeType||(s=t.firstChild,r&&(r=s.nodeValue.length));c.parentNode!=i;)c=c.parentNode;var u=e.measure,d=u.maps,f=n(s,c,r);if(f)return aa(f,a);for(var h=c.nextSibling,p=s?s.nodeValue.length-r:0;h;h=h.nextSibling){if(f=n(h,h.firstChild,0))return aa(D(f.line,f.ch-p),a)
5
- ;p+=h.textContent.length}for(var g=c.previousSibling,v=r;g;g=g.previousSibling){if(f=n(g,g.firstChild,-1))return aa(D(f.line,f.ch+v),a);v+=g.textContent.length}}function ua(e,t){function r(){e.value=s.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=a();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}var i;if(e.form&&(el(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(t){t.save=r,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,r(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(Te(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var s=Vo(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s}var da=navigator.userAgent,fa=navigator.platform,ha=/gecko\/\d/i.test(da),pa=/MSIE \d/.test(da),ma=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(da),ga=/Edge\/(\d+)/.exec(da),va=pa||ma||ga,ya=va&&(pa?document.documentMode||6:+(ga||ma)[1]),ba=!ga&&/WebKit\//.test(da),wa=ba&&/Qt\/\d+\.\d+/.test(da),xa=!ga&&/Chrome\//.test(da),ka=/Opera\//.test(da),Ca=/Apple Computer/.test(navigator.vendor),Sa=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(da),Ta=/PhantomJS/.test(da),La=!ga&&/AppleWebKit/.test(da)&&/Mobile\/\w+/.test(da),Ma=/Android/.test(da),Aa=La||Ma||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(da),Oa=La||/Mac/.test(fa),Na=/\bCrOS\b/.test(da),_a=/win/i.test(fa),Ea=ka&&da.match(/Version\/(\d*\.\d*)/);Ea&&(Ea=Number(Ea[1])),Ea&&Ea>=15&&(ka=!1,ba=!0);var Wa,Fa=Oa&&(wa||ka&&(null==Ea||Ea<12.11)),Da=ha||va&&ya>=9,za=function(t,r){var n=t.className,i=e(r).exec(n);if(i){var o=n.slice(i.index+i[0].length);t.className=n.slice(0,i.index)+(o?i[1]+o:"")}};Wa=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd("character",r),n.moveStart("character",t),n};var Pa=function(e){e.select()};La?Pa=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:va&&(Pa=function(e){try{e.select()}catch(e){}});var Ha=function(){this.id=null};Ha.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Ia,Ra,ja=30,Ba={toString:function(){return"CodeMirror.Pass"}},qa={scroll:!1},Ua={origin:"*mouse"},Ka={origin:"+move"},Va=[""],Ga=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,$a=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Ya=!1,Xa=!1,Za=null,Ja=function(){function e(e){return e<=247?r.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?n.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,r){this.level=e,this.from=t,this.to=r}var r="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",n="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,s=/[1n]/;return function(r,n){var c="ltr"==n?"L":"R";if(0==r.length||"ltr"==n&&!i.test(r))return!1;for(var u=r.length,d=[],f=0;f<u;++f)d.push(e(r.charCodeAt(f)));for(var h=0,p=c;h<u;++h){var g=d[h];"m"==g?d[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=d[v];"1"==b&&"r"==y?d[v]="n":a.test(b)&&(y=b,"r"==b&&(d[v]="R"))}for(var w=1,x=d[0];w<u-1;++w){var k=d[w];"+"==k&&"1"==x&&"1"==d[w+1]?d[w]="1":","!=k||x!=d[w+1]||"1"!=x&&"n"!=x||(d[w]=x),x=k}for(var C=0;C<u;++C){var S=d[C];if(","==S)d[C]="N";else if("%"==S){var T=void 0;for(T=C+1;T<u&&"%"==d[T];++T);for(var L=C&&"!"==d[C-1]||T<u&&"1"==d[T]?"1":"N",M=C;M<T;++M)d[M]=L;C=T-1}}for(var A=0,O=c;A<u;++A){var N=d[A];"L"==O&&"1"==N?d[A]="L":a.test(N)&&(O=N)}for(var _=0;_<u;++_)if(o.test(d[_])){var E=void 0;for(E=_+1;E<u&&o.test(d[E]);++E);for(var W="L"==(_?d[_-1]:c),F="L"==(E<u?d[E]:c),D=W==F?W?"L":"R":c,z=_;z<E;++z)d[z]=D;_=E-1}for(var P,H=[],I=0;I<u;)if(l.test(d[I])){var R=I;for(++I;I<u&&l.test(d[I]);++I);H.push(new t(0,R,I))}else{var j=I,B=H.length;for(++I;I<u&&"L"!=d[I];++I);for(var q=j;q<I;)if(s.test(d[q])){j<q&&H.splice(B,0,new t(1,j,q));var U=q;for(++q;q<I&&s.test(d[q]);++q);H.splice(B,0,new t(2,U,q)),j=q}else++q;j<I&&H.splice(B,0,new t(1,j,I))}return"ltr"==n&&(1==H[0].level&&(P=r.match(/^\s+/))&&(H[0].from=P[0].length,H.unshift(new t(0,0,P[0].length))),1==m(H).level&&(P=r.match(/\s+$/))&&(m(H).to-=P[0].length,H.push(new t(0,u-P[0].length,u)))),"rtl"==n?H.reverse():H}}(),Qa=[],el=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent("on"+t,r);else{var n=e._handlers||(e._handlers={});n[t]=(n[t]||Qa).concat(r)}},tl=function(){if(va&&ya<9)return!1;var e=n("div");return"draggable"in e||"dragDrop"in e}(),rl=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(r.push(o.slice(0,a)),t+=a+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},nl=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},il=function(){var e=n("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),ol=null,al={},ll={},sl={},cl=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};cl.prototype.eol=function(){return this.pos>=this.string.length},cl.prototype.sol=function(){return this.pos==this.lineStart},cl.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},cl.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},cl.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},cl.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},cl.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},cl.prototype.skipToEnd=function(){this.pos=this.string.length},cl.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},cl.prototype.backUp=function(e){this.pos-=e},cl.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=d(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},cl.prototype.indentation=function(){return d(this.string,null,this.tabSize)-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},cl.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},cl.prototype.current=function(){return this.string.slice(this.start,this.pos)},cl.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},cl.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},cl.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ul=function(e,t){this.state=e,this.lookAhead=t},dl=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};dl.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},dl.prototype.baseToken=function(e){var t=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)t.baseTokenPos+=2;var r=this.baseTokens[this.baseTokenPos+1];return{type:r&&r.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},dl.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},dl.fromSaved=function(e,t,r){return t instanceof ul?new dl(e,Ke(e.mode,t.state),r,t.lookAhead):new dl(e,Ke(e.mode,t),r)},dl.prototype.save=function(e){var t=!1!==e?Ke(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ul(t,this.maxLookAhead):t};var fl=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r},hl=function(e,t,r){this.text=e,ne(this,t),this.height=r?r(this):1};hl.prototype.lineNo=function(){return _(this)},Ne(hl);var pl,ml={},gl={},vl=null,yl=null,bl={left:0,right:0,top:0,bottom:0},wl=function(e,t,r){this.cm=r;var i=this.vert=n("div",[n("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=n("div",[n("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),el(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),el(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,va&&ya<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};wl.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},wl.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},wl.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},wl.prototype.zeroWidthHack=function(){var e=Oa&&!Sa?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Ha,this.disableVert=new Ha},wl.prototype.enableZeroWidthBar=function(e,t,r){function n(){var i=e.getBoundingClientRect();("vert"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,n)}e.style.pointerEvents="auto",t.set(1e3,n)},wl.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var xl=function(){};xl.prototype.update=function(){return{bottom:0,right:0}},xl.prototype.setScrollLeft=function(){},xl.prototype.setScrollTop=function(){},xl.prototype.clear=function(){};var kl={native:wl,null:xl},Cl=0,Sl=function(e,t,r){var n=e.display;this.viewport=t,this.visible=Hr(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=Rt(e),this.force=r,this.dims=wr(e),this.events=[]};Sl.prototype.signal=function(e,t){Oe(e,t)&&this.events.push(arguments)},Sl.prototype.finish=function(){for(var e=this,t=0;t<this.events.length;t++)Le.apply(null,e.events[t])};var Tl=0,Ll=null;va?Ll=-.53:ha?Ll=15:xa?Ll=-.7:Ca&&(Ll=-1/3);var Ml=function(e,t){this.ranges=e,this.primIndex=t};Ml.prototype.primary=function(){return this.ranges[this.primIndex]},Ml.prototype.equals=function(e){var t=this;if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var r=0;r<this.ranges.length;r++){var n=t.ranges[r],i=e.ranges[r];if(!P(n.anchor,i.anchor)||!P(n.head,i.head))return!1}return!0},Ml.prototype.deepCopy=function(){for(var e=this,t=[],r=0;r<this.ranges.length;r++)t[r]=new Al(H(e.ranges[r].anchor),H(e.ranges[r].head));return new Ml(t,this.primIndex)},Ml.prototype.somethingSelected=function(){for(var e=this,t=0;t<this.ranges.length;t++)if(!e.ranges[t].empty())return!0;return!1},Ml.prototype.contains=function(e,t){var r=this;t||(t=e);for(var n=0;n<this.ranges.length;n++){var i=r.ranges[n];if(z(t,i.from())>=0&&z(e,i.to())<=0)return n}return-1};var Al=function(e,t){this.anchor=e,this.head=t};Al.prototype.from=function(){return R(this.anchor,this.head)},Al.prototype.to=function(){return I(this.anchor,this.head)},Al.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},ji.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r=this,n=e,i=e+t;n<i;++n){var o=r.lines[n];r.height-=o.height,at(o),wt(o,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,r){var n=this;this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var i=0;i<t.length;++i)t[i].parent=n},iterN:function(e,t,r){for(var n=this,i=e+t;e<i;++e)if(r(n.lines[e]))return!0}},Bi.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){var r=this;this.size-=t;for(var n=0;n<this.children.length;++n){var i=r.children[n],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e),l=i.height;if(i.removeInner(e,a),r.height-=l-i.height,o==a&&(r.children.splice(n--,1),i.parent=null),0==(t-=a))break;e=0}else e-=o}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof ji))){var s=[];this.collapse(s),this.children=[new ji(s)],this.children[0].parent=this}},collapse:function(e){for(var t=this,r=0;r<this.children.length;++r)t.children[r].collapse(e)},insertInner:function(e,t,r){var n=this;this.size+=t.length,this.height+=r;for(var i=0;i<this.children.length;++i){var o=n.children[i],a=o.chunkSize();if(e<=a){if(o.insertInner(e,t,r),o.lines&&o.lines.length>50){for(var l=o.lines.length%25+25,s=l;s<o.lines.length;){var c=new ji(o.lines.slice(s,s+=25));o.height-=c.height,n.children.splice(++i,0,c),c.parent=n}o.lines=o.lines.slice(0,l),n.maybeSpill()}break}e-=a}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),r=new Bi(t);if(e.parent){e.size-=r.size,e.height-=r.height;var n=f(e.parent.children,e);e.parent.children.splice(n+1,0,r)}else{var i=new Bi(e.children);i.parent=e,e.children=[i,r],e=i}r.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=this,i=0;i<this.children.length;++i){var o=n.children[i],a=o.chunkSize();if(e<a){var l=Math.min(t,a-e);if(o.iterN(e,l,r))return!0;if(0==(t-=l))break;e=0}else e-=a}}};var Ol=function(e,t,r){var n=this;if(r)for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i]);this.doc=e,this.node=t};Ol.prototype.clear=function(){var e=this,t=this.doc.cm,r=this.line.widgets,n=this.line,i=_(n);if(null!=i&&r){for(var o=0;o<r.length;++o)r[o]==e&&r.splice(o--,1);r.length||(n.widgets=null);var a=Ft(this);N(n,Math.max(0,n.height-a)),t&&(hn(t,function(){qi(t,n,-a),yn(t,i,"widget")}),wt(t,"lineWidgetCleared",t,this,i))}},Ol.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=Ft(this)-t;i&&(N(n,n.height+i),r&&hn(r,function(){r.curOp.forceUpdate=!0,qi(r,n,i),wt(r,"lineWidgetChanged",r,e,_(n))}))},Ne(Ol);var Nl=0,_l=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++Nl};_l.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&on(t),Oe(this,"clear")){var n=this.find();n&&wt(this,"clear",n.from,n.to)}for(var i=null,o=null,a=0;a<this.lines.length;++a){var l=e.lines[a],s=$(l.markedSpans,e);t&&!e.collapsed?yn(t,_(l),"text"):t&&(null!=s.to&&(o=_(l)),null!=s.from&&(i=_(l))),l.markedSpans=Y(l.markedSpans,s),null==s.from&&e.collapsed&&!ge(e.doc,l)&&t&&N(l,yr(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var c=0;c<this.lines.length;++c){var u=de(e.lines[c]),d=be(u);d>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=d,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&vn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Ci(t.doc)),t&&wt(t,"markerCleared",t,this,i,o),r&&an(t),this.parent&&this.parent.clear()}},_l.prototype.find=function(e,t){var r=this;null==e&&"bookmark"==this.type&&(e=1);for(var n,i,o=0;o<this.lines.length;++o){var a=r.lines[o],l=$(a.markedSpans,r);if(null!=l.from&&(n=D(t?a:_(a),l.from),-1==e))return n;if(null!=l.to&&(i=D(t?a:_(a),l.to),1==e))return i}return n&&{from:n,to:i}},_l.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&hn(n,function(){var i=t.line,o=_(t.line),a=Vt(n,o);if(a&&(Qt(a),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!ge(r.doc,i)&&null!=r.height){var l=r.height;r.height=null;var s=Ft(r)-l;s&&N(i,i.height+s)}wt(n,"markerChanged",n,e)})},_l.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=f(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},_l.prototype.detachLine=function(e){if(this.lines.splice(f(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},Ne(_l);var El=function(e,t){var r=this;this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=r};El.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var t=0;t<this.markers.length;++t)e.markers[t].clear();wt(this,"clear")}},El.prototype.find=function(e,t){return this.primary.find(e,t)},Ne(El);var Wl=0,Fl=function(e,t,r,n,i){if(!(this instanceof Fl))return new Fl(e,t,r,n,i);null==r&&(r=0),Bi.call(this,[new ji([new hl("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=D(r,0);this.sel=Rn(o),this.history=new ei(null),this.id=++Wl,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Yn(this,{from:o,to:o,text:e}),wi(this,Rn(o),qa)};Fl.prototype=b(Bi.prototype,{constructor:Fl,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=O(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:gn(function(e){var t=D(this.first,0),r=this.first+this.size-1;Ni(this,{from:t,to:D(r,M(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&Gr(this.cm,0,0),wi(this,Rn(t),qa)}),replaceRange:function(e,t,r,n){t=B(this,t),r=r?B(this,r):t,zi(this,e,t,r,n)},getRange:function(e,t,r){var n=A(this,B(this,e),B(this,t));return!1===r?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(W(this,e))return M(this,e)},getLineNumber:function(e){return _(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=M(this,e)),de(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return B(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:gn(function(e,t,r){vi(this,B(this,"number"==typeof e?D(e,t||0):e),null,r)}),setSelection:gn(function(e,t,r){vi(this,B(this,e),B(this,t||e),r)}),extendSelection:gn(function(e,t,r){pi(this,B(this,e),t&&B(this,t),r)}),extendSelections:gn(function(e,t){mi(this,U(this,e),t)}),extendSelectionsBy:gn(function(e,t){mi(this,U(this,g(this.sel.ranges,e)),t)}),setSelections:gn(function(e,t,r){var n=this;if(e.length){for(var i=[],o=0;o<e.length;o++)i[o]=new Al(B(n,e[o].anchor),B(n,e[o].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),wi(this,In(i,t),r)}}),addSelection:gn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new Al(B(this,e),B(this,t||e))),wi(this,In(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this,n=this.sel.ranges,i=0;i<n.length;i++){var o=A(r,n[i].from(),n[i].to());t=t?t.concat(o):o}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=this,r=[],n=this.sel.ranges,i=0;i<n.length;i++){var o=A(t,n[i].from(),n[i].to());!1!==e&&(o=o.join(e||t.lineSeparator())),r[i]=o}return r},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||"+input")},replaceSelections:gn(function(e,t,r){for(var n=this,i=[],o=this.sel,a=0;a<o.ranges.length;a++){var l=o.ranges[a];i[a]={from:l.from(),to:l.to(),text:n.splitLines(e[a]),origin:r}}for(var s=t&&"end"!=t&&Kn(this,i,t),c=i.length-1;c>=0;c--)Ni(n,i[c]);s?bi(this,s):this.cm&&Vr(this.cm)}),undo:gn(function(){Ei(this,"undo")}),redo:gn(function(){Ei(this,"redo")}),undoSelection:gn(function(){Ei(this,"undo",!0)}),redoSelection:gn(function(){Ei(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new ei(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:fi(this.history.done),undone:fi(this.history.undone)}},setHistory:function(e){var t=this.history=new ei(this.history.maxGeneration);t.done=fi(e.done.slice(0),null,!0),t.undone=fi(e.undone.slice(0),null,!0)},setGutterMarker:gn(function(e,t,r){return Ri(this,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&k(n)&&(e.gutterMarkers=null),!0})}),clearGutter:gn(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&Ri(t,r,"gutter",function(){return r.gutterMarkers[e]=null,k(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!W(this,e))return null;if(t=e,!(e=M(this,e)))return null}else if(null==(t=_(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:gn(function(t,r,n){return Ri(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(t[i]){if(e(n).test(t[i]))return!1;t[i]+=" "+n}else t[i]=n;return!0})}),removeLineClass:gn(function(t,r,n){return Ri(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==n)t[i]=null;else{var a=o.match(e(n));if(!a)return!1;var l=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&l!=o.length?" ":"")+o.slice(l)||null}return!0})}),addLineWidget:gn(function(e,t,r){return Ui(this,e,t,r)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return Ki(this,B(this,e),B(this,t),r,r&&r.type||"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=B(this,e),Ki(this,e,e,r,"bookmark")},findMarksAt:function(e){e=B(this,e);var t=[],r=M(this,e.line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=B(this,e),t=B(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var l=0;l<a.length;l++){var s=a[l];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||r&&!r(s.marker)||n.push(s.marker.parent||s.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),B(this,D(r,t))},indexFromPos:function(e){e=B(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var r=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+r}),t},copy:function(e){var t=new Fl(O(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new Fl(O(this,t,r),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],$i(n,Gi(this)),n},unlinkDoc:function(e){var t=this;if(e instanceof Vo&&(e=e.doc),this.linked)for(var r=0;r<this.linked.length;++r){var n=t.linked[r];if(n.doc==e){t.linked.splice(r,1),e.unlinkDoc(t),Yi(Gi(t));break}}if(e.history==this.history){var i=[e.id];Xn(e,function(e){return i.push(e.id)},!0),e.history=new ei(null),e.history.done=fi(this.history.done,i),e.history.undone=fi(this.history.undone,i)}},iterLinkedDocs:function(e){Xn(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):rl(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:gn(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Qn(this.cm))})}),Fl.prototype.eachLine=Fl.prototype.iter;for(var Dl=0,zl=!1,Pl={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},Hl=0;Hl<10;Hl++)Pl[Hl+48]=Pl[Hl+96]=String(Hl);for(var Il=65;Il<=90;Il++)Pl[Il]=String.fromCharCode(Il);for(var Rl=1;Rl<=12;Rl++)Pl[Rl+111]=Pl[Rl+63235]="F"+Rl;var jl={};jl.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},jl.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},jl.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},jl.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace",
6
- "Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},jl.default=Oa?jl.macDefault:jl.pcDefault;var Bl={selectAll:Ai,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),qa)},killLine:function(e){return fo(e,function(t){if(t.empty()){var r=M(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:D(t.head.line+1,0)}:{from:t.head,to:D(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return fo(e,function(t){return{from:D(t.from().line,0),to:B(e.doc,D(t.to().line+1,0))}})},delLineLeft:function(e){return fo(e,function(e){return{from:D(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return fo(e,function(t){var r=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:r},"div"),to:t.from()}})},delWrappedLineRight:function(e){return fo(e,function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(D(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(D(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return vo(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return bo(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return yo(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div")},Ka)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:r},"div")},Ka)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5,n=e.coordsChar({left:0,top:r},"div");return n.ch<e.getLine(n.line).search(/\S/)?bo(e,t.head):n},Ka)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),a=d(e.getLine(o.line),o.ch,n);t.push(p(n-a%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return hn(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=M(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new D(i.line,i.ch-1)),i.ch>0)i=new D(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),D(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=M(e.doc,i.line-1).text;a&&(i=new D(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),D(i.line-1,a.length-1),i,"+transpose"))}r.push(new Al(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return hn(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);Vr(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},ql=new Ha,Ul=null,Kl=function(e,t,r){this.time=e,this.pos=t,this.button=r};Kl.prototype.compare=function(e,t,r){return this.time+400>e&&0==z(t,this.pos)&&r==this.button};var Vl,Gl,$l={toString:function(){return"CodeMirror.Init"}},Yl={},Xl={};Vo.defaults=Yl,Vo.optionHandlers=Xl;var Zl=[];Vo.defineInitHook=function(e){return Zl.push(e)};var Jl=null,Ql=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ha,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Ql.prototype.init=function(e){function t(e){if(!Me(i,e)){if(i.somethingSelected())Yo({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=Qo(i);Yo({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,qa),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=Jl.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var a=ta(),l=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),l.value=Jl.text.join("\n");var s=document.activeElement;Pa(l),setTimeout(function(){i.display.lineSpace.removeChild(a),s.focus(),s==o&&n.showPrimarySelection()},50)}}var r=this,n=this,i=n.cm,o=n.div=e.lineDiv;ea(o,i.options.spellcheck),el(o,"paste",function(e){Me(i,e)||Zo(e,i)||ya<=11&&setTimeout(pn(i,function(){return r.updateFromDOM()}),20)}),el(o,"compositionstart",function(e){r.composing={data:e.data,done:!1}}),el(o,"compositionupdate",function(e){r.composing||(r.composing={data:e.data,done:!1})}),el(o,"compositionend",function(e){r.composing&&(e.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),el(o,"touchstart",function(){return n.forceCompositionEnd()}),el(o,"input",function(){r.composing||r.readFromDOMSoon()}),el(o,"copy",t),el(o,"cut",t)},Ql.prototype.prepareSelection=function(){var e=Mr(this.cm,!1);return e.focus=this.cm.state.focused,e},Ql.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Ql.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,r=t.doc.sel.primary(),n=r.from(),i=r.to();if(t.display.viewTo==t.display.viewFrom||n.line>=t.display.viewTo||i.line<t.display.viewFrom)return void e.removeAllRanges();var o=sa(t,e.anchorNode,e.anchorOffset),a=sa(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=z(R(o,a),n)||0!=z(I(o,a),i)){var l=t.display.view,s=n.line>=t.display.viewFrom&&ia(t,n)||{node:l[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&ia(t,i);if(!c){var u=l[l.length-1].measure,d=u.maps?u.maps[u.maps.length-1]:u.map;c={node:d[d.length-1],offset:d[d.length-2]-d[d.length-3]}}if(!s||!c)return void e.removeAllRanges();var f,h=e.rangeCount&&e.getRangeAt(0);try{f=Wa(s.node,s.offset,c.offset,c.node)}catch(e){}f&&(!ha&&t.state.focused?(e.collapse(s.node,s.offset),f.collapsed||(e.removeAllRanges(),e.addRange(f))):(e.removeAllRanges(),e.addRange(f)),h&&null==e.anchorNode?e.addRange(h):ha&&this.startGracePeriod()),this.rememberSelection()}},Ql.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},Ql.prototype.showMultipleSelections=function(e){r(this.cm.display.cursorDiv,e.cursors),r(this.cm.display.selectionDiv,e.selection)},Ql.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Ql.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},Ql.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Ql.prototype.blur=function(){this.div.blur()},Ql.prototype.getField=function(){return this.div},Ql.prototype.supportsTouch=function(){return!0},Ql.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():hn(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},Ql.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Ql.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(Ma&&xa&&this.cm.options.gutters.length&&oa(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var r=sa(t,e.anchorNode,e.anchorOffset),n=sa(t,e.focusNode,e.focusOffset);r&&n&&hn(t,function(){wi(t.doc,Rn(r,n),qa),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Ql.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,r=e.doc.sel.primary(),n=r.from(),i=r.to();if(0==n.ch&&n.line>e.firstLine()&&(n=D(n.line-1,M(e.doc,n.line-1).length)),i.ch==M(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=D(i.line+1,0)),n.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,l;n.line==t.viewFrom||0==(o=Tr(e,n.line))?(a=_(t.view[0].line),l=t.view[0].node):(a=_(t.view[o].line),l=t.view[o-1].node.nextSibling);var s,c,u=Tr(e,i.line);if(u==t.view.length-1?(s=t.viewTo-1,c=t.lineDiv.lastChild):(s=_(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!l)return!1;for(var d=e.doc.splitLines(la(e,l,c,a,s)),f=A(e.doc,D(a,0),D(s,M(e.doc,s).text.length));d.length>1&&f.length>1;)if(m(d)==m(f))d.pop(),f.pop(),s--;else{if(d[0]!=f[0])break;d.shift(),f.shift(),a++}for(var h=0,p=0,g=d[0],v=f[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(d),w=m(f),x=Math.min(b.length-(1==d.length?h:0),w.length-(1==f.length?h:0));p<x&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)++p;if(1==d.length&&1==f.length&&a==n.line)for(;h&&h>n.ch&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)h--,p++;d[d.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),d[0]=d[0].slice(h).replace(/\u200b+$/,"");var k=D(a,h),C=D(s,f.length?m(f).length-p:0);return d.length>1||d[0]||z(k,C)?(zi(e.doc,d,k,C,"+input"),!0):void 0},Ql.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ql.prototype.reset=function(){this.forceCompositionEnd()},Ql.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ql.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},Ql.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||hn(this.cm,function(){return vn(e.cm)})},Ql.prototype.setUneditable=function(e){e.contentEditable="false"},Ql.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||pn(this.cm,Xo)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ql.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ql.prototype.onContextMenu=function(){},Ql.prototype.resetPosition=function(){},Ql.prototype.needsContentAttribute=!0;var es=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Ha,this.hasSelection=!1,this.composing=null};es.prototype.init=function(e){function t(e){if(!Me(i,e)){if(i.somethingSelected())Yo({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=Qo(i);Yo({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,qa):(n.prevInput="",a.value=t.text.join("\n"),Pa(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var r=this,n=this,i=this.cm,o=this.wrapper=ta(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),La&&(a.style.width="0px"),el(a,"input",function(){va&&ya>=9&&r.hasSelection&&(r.hasSelection=null),n.poll()}),el(a,"paste",function(e){Me(i,e)||Zo(e,i)||(i.state.pasteIncoming=!0,n.fastPoll())}),el(a,"cut",t),el(a,"copy",t),el(e.scroller,"paste",function(t){Dt(e,t)||Me(i,t)||(i.state.pasteIncoming=!0,n.focus())}),el(e.lineSpace,"selectstart",function(t){Dt(e,t)||_e(t)}),el(a,"compositionstart",function(){var e=i.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),el(a,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},es.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Mr(e);if(e.options.moveInputWithCursor){var i=sr(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return n},es.prototype.showSelection=function(e){var t=this.cm,n=t.display;r(n.cursorDiv,e.cursors),r(n.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},es.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&Pa(this.textarea),va&&ya>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",va&&ya>=9&&(this.hasSelection=null))}},es.prototype.getField=function(){return this.textarea},es.prototype.supportsTouch=function(){return!1},es.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Aa||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},es.prototype.blur=function(){this.textarea.blur()},es.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},es.prototype.receivedFocus=function(){this.slowPoll()},es.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},es.prototype.fastPoll=function(){function e(){r.poll()||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))}var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,e)},es.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||nl(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(va&&ya>=9&&this.hasSelection===i||Oa&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,l=Math.min(n.length,i.length);a<l&&n.charCodeAt(a)==i.charCodeAt(a);)++a;return hn(t,function(){Xo(t,i.slice(a),n.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},es.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},es.prototype.onKeyPress=function(){va&&ya>=9&&(this.hasSelection=null),this.fastPoll()},es.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,n.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function r(){if(n.contextMenuPending=!1,n.wrapper.style.cssText=u,a.style.cssText=c,va&&ya<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!va||va&&ya<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==n.prevInput?pn(i,Ai)(i):e++<10?o.detectingSelectAll=setTimeout(r,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(r,200)}}var n=this,i=n.cm,o=i.display,a=n.textarea,l=Sr(i,e),s=o.scroller.scrollTop;if(l&&!ka){i.options.resetSelectionOnContextMenu&&-1==i.doc.sel.contains(l)&&pn(i,wi)(i.doc,Rn(l),qa);var c=a.style.cssText,u=n.wrapper.style.cssText;n.wrapper.style.cssText="position: absolute";var d=n.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-d.top-5)+"px; left: "+(e.clientX-d.left-5)+"px;\n z-index: 1000; background: "+(va?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var f;if(ba&&(f=window.scrollY),o.input.focus(),ba&&window.scrollTo(null,f),o.input.reset(),i.somethingSelected()||(a.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),va&&ya>=9&&t(),Da){Fe(e);var h=function(){Te(window,"mouseup",h),setTimeout(r,20)};el(window,"mouseup",h)}else setTimeout(r,50)}},es.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},es.prototype.setUneditable=function(){},es.prototype.needsContentAttribute=!1,function(e){function t(t,n,i,o){e.defaults[t]=n,i&&(r[t]=o?function(e,t,r){r!=$l&&i(e,t,r)}:i)}var r=e.optionHandlers;e.defineOption=t,e.Init=$l,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Vn(e)},!0),t("indentUnit",2,Vn,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Gn(e),tr(e),vn(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(D(n,o))}n++});for(var i=r.length-1;i>=0;i--)zi(e.doc,t,r[i],D(r[i].line,r[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=$l&&e.refresh()}),t("specialCharPlaceholder",ct,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",Aa?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!_a),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){Bo(e),qo(e)},!0),t("keyMap","default",function(e,t,r){var n=uo(t),i=r!=$l&&uo(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Ko,!0),t("gutters",[],function(e){Dn(e.options),qo(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?xr(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return tn(e)},!0),t("scrollbarStyle","native",function(e){nn(e),tn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Dn(e.options),qo(e)},!0),t("firstLineNumber",1,qo,!0),t("lineNumberFormatter",function(e){return e},qo,!0),t("showCursorWhenSelecting",!1,Lr,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Dr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,Uo),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Lr,!0),t("singleCursorHeightPerLine",!0,Lr,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Gn,!0),t("addModeClass",!1,Gn,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Gn,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Vo),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&pn(this,t[e])(this,r,i),Le(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](uo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:mn(function(t,r){var n=t.token?t:e.getMode(this.options,t);if(n.startState)throw new Error("Overlays may not be stateful.");v(this.state.overlays,{mode:n,modeSpec:t,opaque:r&&r.opaque,priority:r&&r.priority||0},function(e){return e.priority}),this.state.modeGen++,vn(this)}),removeOverlay:mn(function(e){for(var t=this,r=this.state.overlays,n=0;n<r.length;++n){var i=r[n].modeSpec;if(i==e||"string"==typeof e&&i.name==e)return r.splice(n,1),t.state.modeGen++,void vn(t)}}),indentLine:mn(function(e,t,r){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),W(this.doc,e)&&$o(this,e,t,r)}),indentSelection:mn(function(e){for(var t=this,r=this.doc.sel.ranges,n=-1,i=0;i<r.length;i++){var o=r[i];if(o.empty())o.head.line>n&&($o(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Vr(t));else{var a=o.from(),l=o.to(),s=Math.max(n,a.line);n=Math.min(t.lastLine(),l.line-(l.ch?0:1))+1;for(var c=s;c<n;++c)$o(t,c,e);var u=t.doc.sel.ranges;0==a.ch&&r.length==u.length&&u[i].from().ch>0&&gi(t.doc,i,new Al(a,u[i].to()),qa)}}}),getTokenAt:function(e,t){return et(this,e,t)},getLineTokens:function(e,t){return et(this,D(e),t,!0)},getTokenTypeAt:function(e){e=B(this.doc,e);var t,r=Ye(this,M(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var a=n+i>>1;if((a?r[2*a-1]:0)>=o)i=a;else{if(!(r[2*a+1]<o)){t=r[2*a+2];break}n=a+1}}var l=t?t.indexOf("overlay "):-1;return l<0?t:0==l?null:t.slice(0,l-1)},getModeAt:function(t){var r=this.doc.mode;return r.innerMode?e.innerMode(r,this.getTokenAt(t).state).mode:r},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=this,i=[];if(!r.hasOwnProperty(t))return i;var o=r[t],a=this.getModeAt(e);if("string"==typeof a[t])o[a[t]]&&i.push(o[a[t]]);else if(a[t])for(var l=0;l<a[t].length;l++){var s=o[a[t][l]];s&&i.push(s)}else a.helperType&&o[a.helperType]?i.push(o[a.helperType]):o[a.name]&&i.push(o[a.name]);for(var c=0;c<o._global.length;c++){var u=o._global[c];u.pred(a,n)&&-1==f(i,u.val)&&i.push(u.val)}return i},getStateAfter:function(e,t){var r=this.doc;return e=j(r,null==e?r.first+r.size-1:e),Xe(this,e+1,t).state},cursorCoords:function(e,t){var r,n=this.doc.sel.primary();return r=null==e?n.head:"object"==typeof e?B(this.doc,e):e?n.from():n.to(),sr(this,r,t||"page")},charCoords:function(e,t){return lr(this,B(this.doc,e),t||"page")},coordsChar:function(e,t){return e=ar(this,e,t||"page"),dr(this,e.left,e.top)},lineAtHeight:function(e,t){return e=ar(this,{top:e,left:0},t||"page").top,E(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=M(this.doc,e)}else n=e;return or(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-ye(n):0)},defaultTextHeight:function(){return yr(this.display)},defaultCharWidth:function(){return br(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display;e=sr(this,B(this.doc,e));var a=e.bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)a=e.top;else if("above"==n||"near"==n){var s=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(a=e.bottom),l+t.offsetWidth>c&&(l=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(l=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),r&&qr(this,{left:l,top:a,right:l+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:mn(To),triggerOnKeyPress:mn(Ao),triggerOnKeyUp:Mo,triggerOnMouseDown:mn(No),execCommand:function(e){if(Bl.hasOwnProperty(e))return Bl[e].call(null,this)},triggerElectric:mn(function(e){Jo(this,e)}),findPosH:function(e,t,r,n){var i=this,o=1;t<0&&(o=-1,t=-t);for(var a=B(this.doc,e),l=0;l<t&&(a=ra(i.doc,a,o,r,n),!a.hitSide);++l);return a},moveH:mn(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?ra(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},Ka)}),deleteH:mn(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection("",null,"+delete"):fo(this,function(r){var i=ra(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=this,o=1,a=n;t<0&&(o=-1,t=-t);for(var l=B(this.doc,e),s=0;s<t;++s){var c=sr(i,l,"div");if(null==a?a=c.left:c.left=a,l=na(i,c,o,r),l.hitSide)break}return l},moveV:mn(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var l=sr(r,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=na(r,l,e,t);return"page"==t&&a==n.sel.primary()&&Kr(r,lr(r,s,"div").top-l.top),s},Ka),i.length)for(var a=0;a<n.sel.ranges.length;a++)n.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=this.doc,r=M(t,e.line).text,n=e.ch,i=e.ch;if(r){var o=this.getHelper(e,"wordChars");"before"!=e.sticky&&i!=r.length||!n?++i:--n;for(var a=r.charAt(n),l=x(a,o)?function(e){return x(e,o)}:/\s/.test(a)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!x(e)};n>0&&l(r.charAt(n-1));)--n;for(;i<r.length&&l(r.charAt(i));)++i}return new Al(D(e.line,n),D(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?l(this.display.cursorDiv,"CodeMirror-overwrite"):za(this.display.cursorDiv,"CodeMirror-overwrite"),Le(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:mn(function(e,t){Gr(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-It(this)-this.display.barHeight,width:e.scrollWidth-It(this)-this.display.barWidth,clientHeight:jt(this),clientWidth:Rt(this)}},scrollIntoView:mn(function(e,t){null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:D(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?$r(this,e):Xr(this,e.from,e.to,e.margin)}),setSize:mn(function(e,t){var r=this,n=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&er(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){yn(r,i,"widget");break}++i}),this.curOp.forceUpdate=!0,Le(this,"refresh",this)}),operation:function(e){return hn(this,e)},startOperation:function(){return on(this)},endOperation:function(){return an(this)},refresh:mn(function(){var e=this.display.cachedTextHeight;vn(this),this.curOp.forceUpdate=!0,tr(this),Gr(this,this.doc.scrollLeft,this.doc.scrollTop),En(this),(null==e||Math.abs(e-yr(this.display))>.5)&&Cr(this),Le(this,"refresh",this)}),swapDoc:mn(function(e){var t=this.doc;return t.cm=null,Zn(this,e),tr(this),this.display.input.reset(),Gr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,wt(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Ne(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Vo);var ts="iter insert remove copy getEditor constructor".split(" ");for(var rs in Fl.prototype)Fl.prototype.hasOwnProperty(rs)&&f(ts,rs)<0&&(Vo.prototype[rs]=function(e){return function(){return e.apply(this.doc,arguments)}}(Fl.prototype[rs]));return Ne(Fl),Vo.inputStyles={textarea:es,contenteditable:Ql},Vo.defineMode=function(e){Vo.defaults.mode||"null"==e||(Vo.defaults.mode=e),Re.apply(this,arguments)},Vo.defineMIME=je,Vo.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Vo.defineMIME("text/plain","null"),Vo.defineExtension=function(e,t){Vo.prototype[e]=t},Vo.defineDocExtension=function(e,t){Fl.prototype[e]=t},Vo.fromTextArea=ua,function(e){e.off=Te,e.on=el,e.wheelEventPixels=Pn,e.Doc=Fl,e.splitLines=rl,e.countColumn=d,e.findColumn=h,e.isWordChar=w,e.Pass=Ba,e.signal=Le,e.Line=hl,e.changeEnd=jn,e.scrollbarModel=kl,e.Pos=D,e.cmpPos=z,e.modes=al,e.mimeModes=ll,e.resolveMode=Be,e.getMode=qe,e.modeExtensions=sl,e.extendMode=Ue,e.copyState=Ke,e.startState=Ge,e.innerMode=Ve,e.commands=Bl,e.keyMap=jl,e.keyName=co,e.isModifierKey=lo,e.lookupKey=ao,e.normalizeKeyMap=oo,e.StringStream=cl,e.SharedTextMarker=El,e.TextMarker=_l,e.LineWidget=Ol,e.e_preventDefault=_e,e.e_stopPropagation=Ee,e.e_stop=Fe,e.addClass=l,e.contains=o,e.rmClass=za,e.keyNames=Pl}(Vo),Vo.version="5.31.0",Vo})},{}],16:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}function r(e,t){for(var r,n=!1;null!=(r=e.next());){
7
- if(n&&"/"==r){t.tokenize=null;break}n="*"==r}return["comment","comment"]}e.defineMode("css",function(t,r){function n(e,t){return p=t,e}function i(e,t){var r=e.next();if(v[r]){var i=v[r](e,t);if(!1!==i)return i}return"@"==r?(e.eatWhile(/[\w\\\-]/),n("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?n(null,"compare"):'"'==r||"'"==r?(t.tokenize=o(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),n("atom","hash")):"!"==r?(e.match(/^\s*\w*/),n("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),n("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?n(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?n("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?n(null,r):"u"==r&&e.match(/rl(-prefix)?\(/)||"d"==r&&e.match("omain(")||"r"==r&&e.match("egexp(")?(e.backUp(1),t.tokenize=a,n("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),n("property","word")):n(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),n("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?n("variable-2","variable-definition"):n("variable-2","variable")):e.match(/^\w+-/)?n("meta","meta"):void 0}function o(e){return function(t,r){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(r.tokenize=null),n("string","string")}}function a(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=o(")"),n(null,"(")}function l(e,t,r){this.type=e,this.indent=t,this.prev=r}function s(e,t,r,n){return e.context=new l(r,t.indentation()+(!1===n?0:g),e.context),r}function c(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function u(e,t,r){return _[r.context.type](e,t,r)}function d(e,t,r,n){for(var i=n||1;i>0;i--)r.context=r.context.prev;return u(e,t,r)}function f(e){var t=e.current().toLowerCase();m=M.hasOwnProperty(t)?"atom":L.hasOwnProperty(t)?"keyword":"variable"}var h=r.inline;r.propertyKeywords||(r=e.resolveMode("text/css"));var p,m,g=t.indentUnit,v=r.tokenHooks,y=r.documentTypes||{},b=r.mediaTypes||{},w=r.mediaFeatures||{},x=r.mediaValueKeywords||{},k=r.propertyKeywords||{},C=r.nonStandardPropertyKeywords||{},S=r.fontProperties||{},T=r.counterDescriptors||{},L=r.colorKeywords||{},M=r.valueKeywords||{},A=r.allowNested,O=r.lineComment,N=!0===r.supportsAtComponent,_={};return _.top=function(e,t,r){if("{"==e)return s(r,t,"block");if("}"==e&&r.context.prev)return c(r);if(N&&/@component/.test(e))return s(r,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return s(r,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return s(r,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return s(r,t,"at");if("hash"==e)m="builtin";else if("word"==e)m="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return s(r,t,"interpolation");if(":"==e)return"pseudo";if(A&&"("==e)return s(r,t,"parens")}return r.context.type},_.block=function(e,t,r){if("word"==e){var n=t.current().toLowerCase();return k.hasOwnProperty(n)?(m="property","maybeprop"):C.hasOwnProperty(n)?(m="string-2","maybeprop"):A?(m=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(m+=" error","maybeprop")}return"meta"==e?"block":A||"hash"!=e&&"qualifier"!=e?_.top(e,t,r):(m="error","block")},_.maybeprop=function(e,t,r){return":"==e?s(r,t,"prop"):u(e,t,r)},_.prop=function(e,t,r){if(";"==e)return c(r);if("{"==e&&A)return s(r,t,"propBlock");if("}"==e||"{"==e)return d(e,t,r);if("("==e)return s(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)f(t);else if("interpolation"==e)return s(r,t,"interpolation")}else m+=" error";return"prop"},_.propBlock=function(e,t,r){return"}"==e?c(r):"word"==e?(m="property","maybeprop"):r.context.type},_.parens=function(e,t,r){return"{"==e||"}"==e?d(e,t,r):")"==e?c(r):"("==e?s(r,t,"parens"):"interpolation"==e?s(r,t,"interpolation"):("word"==e&&f(t),"parens")},_.pseudo=function(e,t,r){return"meta"==e?"pseudo":"word"==e?(m="variable-3",r.context.type):u(e,t,r)},_.documentTypes=function(e,t,r){return"word"==e&&y.hasOwnProperty(t.current())?(m="tag",r.context.type):_.atBlock(e,t,r)},_.atBlock=function(e,t,r){if("("==e)return s(r,t,"atBlock_parens");if("}"==e||";"==e)return d(e,t,r);if("{"==e)return c(r)&&s(r,t,A?"block":"top");if("interpolation"==e)return s(r,t,"interpolation");if("word"==e){var n=t.current().toLowerCase();m="only"==n||"not"==n||"and"==n||"or"==n?"keyword":b.hasOwnProperty(n)?"attribute":w.hasOwnProperty(n)?"property":x.hasOwnProperty(n)?"keyword":k.hasOwnProperty(n)?"property":C.hasOwnProperty(n)?"string-2":M.hasOwnProperty(n)?"atom":L.hasOwnProperty(n)?"keyword":"error"}return r.context.type},_.atComponentBlock=function(e,t,r){return"}"==e?d(e,t,r):"{"==e?c(r)&&s(r,t,A?"block":"top",!1):("word"==e&&(m="error"),r.context.type)},_.atBlock_parens=function(e,t,r){return")"==e?c(r):"{"==e||"}"==e?d(e,t,r,2):_.atBlock(e,t,r)},_.restricted_atBlock_before=function(e,t,r){return"{"==e?s(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(m="variable","restricted_atBlock_before"):u(e,t,r)},_.restricted_atBlock=function(e,t,r){return"}"==e?(r.stateArg=null,c(r)):"word"==e?(m="@font-face"==r.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!T.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},_.keyframes=function(e,t,r){return"word"==e?(m="variable","keyframes"):"{"==e?s(r,t,"top"):u(e,t,r)},_.at=function(e,t,r){return";"==e?c(r):"{"==e||"}"==e?d(e,t,r):("word"==e?m="tag":"hash"==e&&(m="builtin"),"at")},_.interpolation=function(e,t,r){return"}"==e?c(r):"{"==e||";"==e?d(e,t,r):("word"==e?m="variable":"variable"!=e&&"("!=e&&")"!=e&&(m="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:h?"block":"top",stateArg:null,context:new l(h?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||i)(e,t);return r&&"object"==typeof r&&(p=r[1],r=r[0]),m=r,"comment"!=p&&(t.state=_[t.state](p,e,t)),m},indent:function(e,t){var r=e.context,n=t&&t.charAt(0),i=r.indent;return"prop"!=r.type||"}"!=n&&")"!=n||(r=r.prev),r.prev&&("}"!=n||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type?(")"!=n||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=n||"at"!=r.type&&"atBlock"!=r.type)||(i=Math.max(0,r.indent-g)):(r=r.prev,i=r.indent)),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:O,fold:"brace"}});var n=["domain","regexp","url","url-prefix"],i=t(n),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),l=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],s=t(l),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=t(c),d=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","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-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","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","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],f=t(d),h=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=t(h),m=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],g=t(m),v=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],y=t(v),b=["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","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","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","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],w=t(b),x=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],k=t(x),C=n.concat(o).concat(l).concat(c).concat(d).concat(h).concat(b).concat(x);e.registerHelper("hintWords","css",C),e.defineMIME("text/css",{documentTypes:i,mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:w,valueKeywords:k,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:w,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:w,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:i,mediaTypes:a,mediaFeatures:s,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:w,valueKeywords:k,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css",helperType:"gss"})})},{"../../lib/codemirror":15}],17:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../xml/xml"),e("../javascript/javascript"),e("../css/css")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],i):i(CodeMirror)}(function(e){"use strict";function t(e,t,r){var n=e.current(),i=n.search(t);return i>-1?e.backUp(n.length-i):n.match(/<\/?$/)&&(e.backUp(n.length),e.match(t,!1)||e.match(n)),r}function r(e){var t=s[e];return t||(s[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function n(e,t){var n=e.match(r(t));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function i(e,t){return new RegExp((t?"^":"")+"</s*"+e+"s*>","i")}function o(e,t){for(var r in e)for(var n=t[r]||(t[r]=[]),i=e[r],o=i.length-1;o>=0;o--)n.unshift(i[o])}function a(e,t){for(var r=0;r<e.length;r++){var i=e[r];if(!i[0]||i[1].test(n(t,i[0])))return i[2]}}var l={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},s={};e.defineMode("htmlmixed",function(r,n){function s(n,o){var l,d=c.token(n,o.htmlState),f=/\btag\b/.test(d);if(f&&!/[<>\s\/]/.test(n.current())&&(l=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(l))o.inTag=l+" ";else if(o.inTag&&f&&/>$/.test(n.current())){var h=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==n.current()&&a(u[h[1]],h[2]),m=e.getMode(r,p),g=i(h[1],!0),v=i(h[1],!1);o.token=function(e,r){return e.match(g,!1)?(r.token=s,r.localState=r.localMode=null,null):t(e,v,r.localMode.token(e,r.localState))},o.localMode=m,o.localState=e.startState(m,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=n.current(),n.eol()&&(o.inTag+=" "));return d}var c=e.getMode(r,{name:"xml",htmlMode:!0,multilineTagIndentFactor:n.multilineTagIndentFactor,multilineTagIndentPastTag:n.multilineTagIndentPastTag}),u={},d=n&&n.tags,f=n&&n.scriptTypes;if(o(l,u),d&&o(d,u),f)for(var h=f.length-1;h>=0;h--)u.script.unshift(["type",f[h].matches,f[h].mode]);return{startState:function(){return{token:s,inTag:null,localMode:null,localState:null,htmlState:e.startState(c)}},copyState:function(t){var r;return t.localState&&(r=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:r,htmlState:e.copyState(c,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,r,n){return!t.localMode||/^\s*<\//.test(r)?c.indent(t.htmlState,r):t.localMode.indent?t.localMode.indent(t.localState,r,n):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||c}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")})},{"../../lib/codemirror":15,"../css/css":16,"../javascript/javascript":18,"../xml/xml":19}],18:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";e.defineMode("javascript",function(t,r){function n(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}function i(e,t,r){return Te=e,Le=r,t}function o(e,t){var r=e.next();if('"'==r||"'"==r)return t.tokenize=a(r),t.tokenize(e,t);if("."==r&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return i("number","number");if("."==r&&e.match(".."))return i("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return i(r);if("="==r&&e.eat(">"))return i("=>","operator");if("0"==r&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),i("number","number");if("0"==r&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),i("number","number");if("0"==r&&e.eat(/b/i))return e.eatWhile(/[01]/i),i("number","number");if(/\d/.test(r))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),i("number","number");if("/"==r)return e.eat("*")?(t.tokenize=l,l(e,t)):e.eat("/")?(e.skipToEnd(),i("comment","comment")):Se(e,t,1)?(n(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),i("regexp","string-2")):(e.eat("="),i("operator","operator",e.current()));if("`"==r)return t.tokenize=s,s(e,t);if("#"==r)return e.skipToEnd(),i("error","error");if(Fe.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),i("operator","operator",e.current());if(Ee.test(r)){e.eatWhile(Ee);var o=e.current();if("."!=t.lastType){if(We.propertyIsEnumerable(o)){var c=We[o];return i(c.type,c.style,o)}if("async"==o&&e.match(/^\s*[\(\w]/,!1))return i("async","keyword",o)}return i("variable","variable",o)}}function a(e){return function(t,r){var n,a=!1;if(Oe&&"@"==t.peek()&&t.match(De))return r.tokenize=o,i("jsonld-keyword","meta");for(;null!=(n=t.next())&&(n!=e||a);)a=!a&&"\\"==n;return a||(r.tokenize=o),i("string","string")}}function l(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=o;break}n="*"==r}return i("comment","comment")}function s(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=o;break}n=!n&&"\\"==r}return i("quasi","string-2",e.current())}function c(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(_e){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var i=0,o=!1,a=r-1;a>=0;--a){var l=e.string.charAt(a),s=ze.indexOf(l);if(s>=0&&s<3){if(!i){++a;break}if(0==--i){"("==l&&(o=!0);break}}else if(s>=3&&s<6)++i;else if(Ee.test(l))o=!0;else{if(/["'\/]/.test(l))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function u(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function d(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(var r=n.vars;r;r=r.next)if(r.name==t)return!0}function f(e,t,r,n,i){var o=e.cc;for(He.state=e,He.stream=i,He.marked=null,He.cc=o,He.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){if((o.length?o.pop():Ne?k:x)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return He.marked?He.marked:"variable"==r&&d(e,n)?"variable-2":t}}}function h(){for(var e=arguments.length-1;e>=0;e--)He.cc.push(arguments[e])}function p(){return h.apply(null,arguments),!0}function m(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}var n=He.state;if(He.marked="def",n.context){if(t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;r.globalVars&&(n.globalVars={name:e,next:n.globalVars})}}function g(){He.state.context={prev:He.state.context,vars:He.state.localVars},He.state.localVars=Ie}function v(){He.state.localVars=He.state.context.vars,He.state.context=He.state.context.prev}function y(e,t){var r=function(){var r=He.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented;r.lexical=new u(n,He.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function b(){var e=He.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function w(e){function t(r){return r==e?p():";"==e?h():p(t)}return t}function x(e,t){
8
- return"var"==e?p(y("vardef",t.length),Z,w(";"),b):"keyword a"==e?p(y("form"),S,x,b):"keyword b"==e?p(y("form"),x,b):"keyword d"==e?He.stream.match(/^\s*$/,!1)?p():p(y("stat"),L,w(";"),b):"debugger"==e?p(w(";")):"{"==e?p(y("}"),q,b):";"==e?p():"if"==e?("else"==He.state.lexical.info&&He.state.cc[He.state.cc.length-1]==b&&He.state.cc.pop()(),p(y("form"),S,x,b,re)):"function"==e?p(se):"for"==e?p(y("form"),ne,x,b):"variable"==e?_e&&"type"==t?(He.marked="keyword",p(K,w("operator"),K,w(";"))):_e&&"declare"==t?(He.marked="keyword",p(x)):p(y("stat"),z):"switch"==e?p(y("form"),S,w("{"),y("}","switch"),q,b,b):"case"==e?p(k,w(":")):"default"==e?p(w(":")):"catch"==e?p(y("form"),g,w("("),ce,w(")"),x,b,v):"class"==e?p(y("form"),de,b):"export"==e?p(y("stat"),me,b):"import"==e?p(y("stat"),ve,b):"module"==e?p(y("form"),J,w("{"),y("}"),q,b,b):"async"==e?p(x):"@"==t?p(k,x):h(y("stat"),k,w(";"),b)}function k(e){return T(e,!1)}function C(e){return T(e,!0)}function S(e){return"("!=e?h():p(y(")"),k,w(")"),b)}function T(e,t){if(He.state.fatArrowAt==He.stream.start){var r=t?E:_;if("("==e)return p(g,y(")"),j(ce,")"),b,w("=>"),r,v);if("variable"==e)return h(g,J,w("=>"),r,v)}var n=t?A:M;return Pe.hasOwnProperty(e)?p(n):"function"==e?p(se,n):"class"==e?p(y("form"),ue,b):"keyword c"==e||"async"==e?p(t?C:k):"("==e?p(y(")"),L,w(")"),b,n):"operator"==e||"spread"==e?p(t?C:k):"["==e?p(y("]"),ke,b,n):"{"==e?B(H,"}",null,n):"quasi"==e?h(O,n):"new"==e?p(W(t)):p()}function L(e){return e.match(/[;\}\)\],]/)?h():h(k)}function M(e,t){return","==e?p(k):A(e,t,!1)}function A(e,t,r){var n=0==r?M:A,i=0==r?k:C;return"=>"==e?p(g,r?E:_,v):"operator"==e?/\+\+|--/.test(t)||_e&&"!"==t?p(n):"?"==t?p(k,w(":"),i):p(i):"quasi"==e?h(O,n):";"!=e?"("==e?B(C,")","call",n):"."==e?p(P,n):"["==e?p(y("]"),L,w("]"),b,n):_e&&"as"==t?(He.marked="keyword",p(K,n)):"regexp"==e?(He.state.lastType=He.marked="operator",He.stream.backUp(He.stream.pos-He.stream.start-1),p(i)):void 0:void 0}function O(e,t){return"quasi"!=e?h():"${"!=t.slice(t.length-2)?p(O):p(k,N)}function N(e){if("}"==e)return He.marked="string-2",He.state.tokenize=s,p(O)}function _(e){return c(He.stream,He.state),h("{"==e?x:k)}function E(e){return c(He.stream,He.state),h("{"==e?x:C)}function W(e){return function(t){return"."==t?p(e?D:F):"variable"==t&&_e?p(X,e?A:M):h(e?C:k)}}function F(e,t){if("target"==t)return He.marked="keyword",p(M)}function D(e,t){if("target"==t)return He.marked="keyword",p(A)}function z(e){return":"==e?p(b,x):h(M,w(";"),b)}function P(e){if("variable"==e)return He.marked="property",p()}function H(e,t){if("async"==e)return He.marked="property",p(H);if("variable"==e||"keyword"==He.style){if(He.marked="property","get"==t||"set"==t)return p(I);var r;return _e&&He.state.fatArrowAt==He.stream.start&&(r=He.stream.match(/^\s*:\s*/,!1))&&(He.state.fatArrowAt=He.stream.pos+r[0].length),p(R)}return"number"==e||"string"==e?(He.marked=Oe?"property":He.style+" property",p(R)):"jsonld-keyword"==e?p(R):"modifier"==e?p(H):"["==e?p(k,w("]"),R):"spread"==e?p(C,R):"*"==t?(He.marked="keyword",p(H)):":"==e?h(R):void 0}function I(e){return"variable"!=e?h(R):(He.marked="property",p(se))}function R(e){return":"==e?p(C):"("==e?h(se):void 0}function j(e,t,r){function n(i,o){if(r?r.indexOf(i)>-1:","==i){var a=He.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),p(function(r,n){return r==t||n==t?h():h(e)},n)}return i==t||o==t?p():p(w(t))}return function(r,i){return r==t||i==t?p():h(e,n)}}function B(e,t,r){for(var n=3;n<arguments.length;n++)He.cc.push(arguments[n]);return p(y(t,r),j(e,t),b)}function q(e){return"}"==e?p():h(x,q)}function U(e,t){if(_e){if(":"==e)return p(K);if("?"==t)return p(U)}}function K(e,t){return"variable"==e||"void"==t?"keyof"==t?(He.marked="keyword",p(K)):(He.marked="type",p(Y)):"string"==e||"number"==e||"atom"==e?p(Y):"["==e?p(y("]"),j(K,"]",","),b,Y):"{"==e?p(y("}"),j(G,"}",",;"),b,Y):"("==e?p(j($,")"),V):void 0}function V(e){if("=>"==e)return p(K)}function G(e,t){return"variable"==e||"keyword"==He.style?(He.marked="property",p(G)):"?"==t?p(G):":"==e?p(K):"["==e?p(k,U,w("]"),G):void 0}function $(e){return"variable"==e?p($):":"==e?p(K):void 0}function Y(e,t){return"<"==t?p(y(">"),j(K,">"),b,Y):"|"==t||"."==e?p(K):"["==e?p(w("]"),Y):"extends"==t?p(K):void 0}function X(e,t){if("<"==t)return p(y(">"),j(K,">"),b,Y)}function Z(){return h(J,U,ee,te)}function J(e,t){return"modifier"==e?p(J):"variable"==e?(m(t),p()):"spread"==e?p(J):"["==e?B(J,"]"):"{"==e?B(Q,"}"):void 0}function Q(e,t){return"variable"!=e||He.stream.match(/^\s*:/,!1)?("variable"==e&&(He.marked="property"),"spread"==e?p(J):"}"==e?h():p(w(":"),J,ee)):(m(t),p(ee))}function ee(e,t){if("="==t)return p(C)}function te(e){if(","==e)return p(Z)}function re(e,t){if("keyword b"==e&&"else"==t)return p(y("form","else"),x,b)}function ne(e){if("("==e)return p(y(")"),ie,w(")"),b)}function ie(e){return"var"==e?p(Z,w(";"),ae):";"==e?p(ae):"variable"==e?p(oe):h(k,w(";"),ae)}function oe(e,t){return"in"==t||"of"==t?(He.marked="keyword",p(k)):p(M,ae)}function ae(e,t){return";"==e?p(le):"in"==t||"of"==t?(He.marked="keyword",p(k)):h(k,w(";"),le)}function le(e){")"!=e&&p(k)}function se(e,t){return"*"==t?(He.marked="keyword",p(se)):"variable"==e?(m(t),p(se)):"("==e?p(g,y(")"),j(ce,")"),b,U,x,v):_e&&"<"==t?p(y(">"),j(K,">"),b,se):void 0}function ce(e,t){return"@"==t&&p(k,ce),"spread"==e||"modifier"==e?p(ce):h(J,U,ee)}function ue(e,t){return"variable"==e?de(e,t):fe(e,t)}function de(e,t){if("variable"==e)return m(t),p(fe)}function fe(e,t){return"<"==t?p(y(">"),j(K,">"),b,fe):"extends"==t||"implements"==t||_e&&","==e?p(_e?K:k,fe):"{"==e?p(y("}"),he,b):void 0}function he(e,t){return"modifier"==e||"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t)&&He.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(He.marked="keyword",p(he)):"variable"==e||"keyword"==He.style?(He.marked="property",p(_e?pe:se,he)):"["==e?p(k,w("]"),_e?pe:se,he):"*"==t?(He.marked="keyword",p(he)):";"==e?p(he):"}"==e?p():"@"==t?p(k,he):void 0}function pe(e,t){return"?"==t?p(pe):":"==e?p(K,ee):"="==t?p(C):h(se)}function me(e,t){return"*"==t?(He.marked="keyword",p(xe,w(";"))):"default"==t?(He.marked="keyword",p(k,w(";"))):"{"==e?p(j(ge,"}"),xe,w(";")):h(x)}function ge(e,t){return"as"==t?(He.marked="keyword",p(w("variable"))):"variable"==e?h(C,ge):void 0}function ve(e){return"string"==e?p():h(ye,be,xe)}function ye(e,t){return"{"==e?B(ye,"}"):("variable"==e&&m(t),"*"==t&&(He.marked="keyword"),p(we))}function be(e){if(","==e)return p(ye,be)}function we(e,t){if("as"==t)return He.marked="keyword",p(ye)}function xe(e,t){if("from"==t)return He.marked="keyword",p(k)}function ke(e){return"]"==e?p():h(j(C,"]"))}function Ce(e,t){return"operator"==e.lastType||","==e.lastType||Fe.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function Se(e,t,r){return t.tokenize==o&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}var Te,Le,Me=t.indentUnit,Ae=r.statementIndent,Oe=r.jsonld,Ne=r.json||Oe,_e=r.typescript,Ee=r.wordCharacters||/[\w$\xa1-\uffff]/,We=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"},l={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:i,break:i,continue:i,new:e("new"),delete:n,void:n,throw:n,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n};if(_e){var s={type:"variable",style:"type"},c={interface:e("class"),implements:n,namespace:n,module:e("module"),enum:e("module"),public:e("modifier"),private:e("modifier"),protected:e("modifier"),abstract:e("modifier"),readonly:e("modifier"),string:s,number:s,boolean:s,any:s};for(var u in c)l[u]=c[u]}return l}(),Fe=/[+\-*&%=<>!?|~^@]/,De=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,ze="([{}])",Pe={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},He={state:null,column:null,marked:null,cc:null},Ie={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(e){var t={tokenize:o,lastType:"sof",cc:[],lexical:new u((e||0)-Me,0,"block",!1),localVars:r.localVars,context:r.localVars&&{vars:r.localVars},indented:e||0};return r.globalVars&&"object"==typeof r.globalVars&&(t.globalVars=r.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),c(e,t)),t.tokenize!=l&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==Te?r:(t.lastType="operator"!=Te||"++"!=Le&&"--"!=Le?Te:"incdec",f(t,r,Te,Le,e))},indent:function(t,n){if(t.tokenize==l)return e.Pass;if(t.tokenize!=o)return 0;var i,a=n&&n.charAt(0),s=t.lexical;if(!/^\s*else\b/.test(n))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==b)s=s.prev;else if(u!=re)break}for(;("stat"==s.type||"form"==s.type)&&("}"==a||(i=t.cc[t.cc.length-1])&&(i==M||i==A)&&!/^[,\.=+\-*:?[\(]/.test(n));)s=s.prev;Ae&&")"==s.type&&"stat"==s.prev.type&&(s=s.prev);var d=s.type,f=a==d;return"vardef"==d?s.indented+("operator"==t.lastType||","==t.lastType?s.info+1:0):"form"==d&&"{"==a?s.indented:"form"==d?s.indented+Me:"stat"==d?s.indented+(Ce(t,n)?Ae||Me:0):"switch"!=s.info||f||0==r.doubleIndentSwitch?s.align?s.column+(f?0:1):s.indented+(f?0:Me):s.indented+(/^(?:case|default)\b/.test(n)?Me:2*Me)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Ne?null:"/*",blockCommentEnd:Ne?null:"*/",blockCommentContinue:Ne?null:" * ",lineComment:Ne?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Ne?"json":"javascript",jsonldMode:Oe,jsonMode:Ne,expressionAllowed:Se,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=k&&t!=C||e.cc.pop()}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})},{"../../lib/codemirror":15}],19:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},r={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(n,i){function o(e,t){function r(r){return t.tokenize=r,r(e,t)}var n=e.next();if("<"==n)return e.eat("!")?e.eat("[")?e.match("CDATA[")?r(s("atom","]]>")):null:e.match("--")?r(s("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),r(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=s("meta","?>"),"meta"):(L=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==n){var i;return i=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),i?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var r=e.next();if(">"==r||"/"==r&&e.eat(">"))return t.tokenize=o,L=">"==r?"endTag":"selfcloseTag","tag bracket";if("="==r)return L="equals",null;if("<"==r){t.tokenize=o,t.state=h,t.tagName=t.tagStart=null;var n=t.tokenize(e,t);return n?n+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=l(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e){var t=function(t,r){for(;!t.eol();)if(t.next()==e){r.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}function s(e,t){return function(r,n){for(;!r.eol();){if(r.match(t)){n.tokenize=o;break}r.next()}return e}}function c(e){return function(t,r){for(var n;null!=(n=t.next());){if("<"==n)return r.tokenize=c(e+1),r.tokenize(t,r);if(">"==n){if(1==e){r.tokenize=o;break}return r.tokenize=c(e-1),r.tokenize(t,r)}}return"meta"}}function u(e,t,r){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r,(C.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function d(e){e.context&&(e.context=e.context.prev)}function f(e,t){for(var r;;){if(!e.context)return;if(r=e.context.tagName,!C.contextGrabbers.hasOwnProperty(r)||!C.contextGrabbers[r].hasOwnProperty(t))return;d(e)}}function h(e,t,r){return"openTag"==e?(r.tagStart=t.column(),p):"closeTag"==e?m:h}function p(e,t,r){return"word"==e?(r.tagName=t.current(),M="tag",y):(M="error",p)}function m(e,t,r){if("word"==e){var n=t.current();return r.context&&r.context.tagName!=n&&C.implicitlyClosed.hasOwnProperty(r.context.tagName)&&d(r),r.context&&r.context.tagName==n||!1===C.matchClosing?(M="tag",g):(M="tag error",v)}return M="error",v}function g(e,t,r){return"endTag"!=e?(M="error",g):(d(r),h)}function v(e,t,r){return M="error",g(e,t,r)}function y(e,t,r){if("word"==e)return M="attribute",b;if("endTag"==e||"selfcloseTag"==e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,"selfcloseTag"==e||C.autoSelfClosers.hasOwnProperty(n)?f(r,n):(f(r,n),r.context=new u(r,n,i==r.indented)),h}return M="error",y}function b(e,t,r){return"equals"==e?w:(C.allowMissing||(M="error"),y(e,t,r))}function w(e,t,r){return"string"==e?x:"word"==e&&C.allowUnquoted?(M="string",y):(M="error",y(e,t,r))}function x(e,t,r){return"string"==e?x:y(e,t,r)}var k=n.indentUnit,C={},S=i.htmlMode?t:r;for(var T in S)C[T]=S[T];for(var T in i)C[T]=i[T];var L,M;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:h,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;L=null;var r=t.tokenize(e,t);return(r||L)&&"comment"!=r&&(M=null,t.state=t.state(L||r,e,t),M&&(r="error"==M?r+" error":M)),r},indent:function(t,r,n){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+k;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return n?n.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==C.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+k*(C.multilineTagIndentFactor||1);if(C.alignCDATA&&/<!\[CDATA\[/.test(r))return 0;var l=r&&/^<(\/)?([\w_:\.-]*)/.exec(r);if(l&&l[1])for(;i;){if(i.tagName==l[2]){i=i.prev;break}if(!C.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(l)for(;i;){var s=C.contextGrabbers[i.tagName];if(!s||!s.hasOwnProperty(l[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+k:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:C.htmlMode?"html":"xml",helperType:C.htmlMode?"html":"xml",skipAttribute:function(e){e.state==w&&(e.state=y)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})},{"../../lib/codemirror":15}],20:[function(e,t,r){function n(e,t){function r(){return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.Utils={whitespace:"\n\r\t ".split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(e,t){for(var r=0;r<t.length;r++)if(e===t[r])return!0;return!1}},this.get_content=function(){for(var e="",t=[],r=!1;"<"!==this.input.charAt(this.pos);){if(this.pos>=this.input.length)return t.length?t.join(""):["","TK_EOF"];if(e=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(e,this.Utils.whitespace))t.length&&(r=!0),this.line_char_count--;else{if(r){if(this.line_char_count>=this.max_char){t.push("\n");for(var n=0;n<this.indent_level;n++)t.push(this.indent_string);this.line_char_count=0}else t.push(" "),this.line_char_count++;r=!1}t.push(e)}}return t.length?t.join(""):""},this.get_contents_to=function(e){if(this.pos==this.input.length)return["","TK_EOF"];var t="",r=new RegExp("</"+e+"\\s*>","igm");r.lastIndex=this.pos;var n=r.exec(this.input),i=n?n.index:this.input.length;return this.pos<i&&(t=this.input.substring(this.pos,i),this.pos=i),t},this.record_tag=function(e){this.tags[e+"count"]?(this.tags[e+"count"]++,this.tags[e+this.tags[e+"count"]]=this.indent_level):(this.tags[e+"count"]=1,this.tags[e+this.tags[e+"count"]]=this.indent_level),this.tags[e+this.tags[e+"count"]+"parent"]=this.tags.parent,this.tags.parent=e+this.tags[e+"count"]},this.retrieve_tag=function(e){if(this.tags[e+"count"]){for(var t=this.tags.parent;t&&e+this.tags[e+"count"]!==t;)t=this.tags[t+"parent"];t&&(this.indent_level=this.tags[e+this.tags[e+"count"]],this.tags.parent=this.tags[t+"parent"]),delete this.tags[e+this.tags[e+"count"]+"parent"],delete this.tags[e+this.tags[e+"count"]],1==this.tags[e+"count"]?delete this.tags[e+"count"]:this.tags[e+"count"]--}},this.get_tag=function(){var e,t,r="",n=[],i=!1;do{if(this.pos>=this.input.length)return n.length?n.join(""):["","TK_EOF"];r=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(r,this.Utils.whitespace)?(i=!0,this.line_char_count--):("'"!==r&&'"'!==r||n[1]&&"!"===n[1]||(r+=this.get_unformatted(r),i=!0),"="===r&&(i=!1),n.length&&"="!==n[n.length-1]&&">"!==r&&i&&(this.line_char_count>=this.max_char?(this.print_newline(!1,n),this.line_char_count=0):(n.push(" "),this.line_char_count++),i=!1),"<"===r&&(e=this.pos-1),n.push(r))}while(">"!==r);var o,a=n.join("");o=-1!=a.indexOf(" ")?a.indexOf(" "):a.indexOf(">");var l=a.substring(1,o).toLowerCase();if("/"===a.charAt(a.length-2)||this.Utils.in_array(l,this.Utils.single_token))this.tag_type="SINGLE";else if("script"===l)this.record_tag(l),this.tag_type="SCRIPT";else if("style"===l)this.record_tag(l),this.tag_type="STYLE";else if(this.Utils.in_array(l,s)){var c=this.get_unformatted("</"+l+">",a);n.push(c),e>0&&this.Utils.in_array(this.input.charAt(e-1),this.Utils.whitespace)&&n.splice(0,0,this.input.charAt(e-1)),t=this.pos-1,this.Utils.in_array(this.input.charAt(t+1),this.Utils.whitespace)&&n.push(this.input.charAt(t+1)),this.tag_type="SINGLE"}else if("!"===l.charAt(0))if(-1!=l.indexOf("[if")){if(-1!=a.indexOf("!IE")){var c=this.get_unformatted("--\x3e",a);n.push(c)}this.tag_type="START"}else if(-1!=l.indexOf("[endif"))this.tag_type="END",this.unindent();else if(-1!=l.indexOf("[cdata[")){var c=this.get_unformatted("]]>",a);n.push(c),this.tag_type="SINGLE"}else{var c=this.get_unformatted("--\x3e",a);n.push(c),this.tag_type="SINGLE"}else"/"===l.charAt(0)?(this.retrieve_tag(l.substring(1)),this.tag_type="END"):(this.record_tag(l),this.tag_type="START"),this.Utils.in_array(l,this.Utils.extra_liners)&&this.print_newline(!0,this.output);return n.join("")},this.get_unformatted=function(e,t){if(t&&-1!=t.toLowerCase().indexOf(e))return"";var r="",n="",i=!0;do{if(this.pos>=this.input.length)return n;if(r=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(r,this.Utils.whitespace)){if(!i){this.line_char_count--;continue}if("\n"===r||"\r"===r){n+="\n",this.line_char_count=0;continue}}n+=r,this.line_char_count++,i=!0}while(-1==n.toLowerCase().indexOf(e));return n},this.get_token=function(){var e;if("TK_TAG_SCRIPT"===this.last_token||"TK_TAG_STYLE"===this.last_token){var t=this.last_token.substr(7);return e=this.get_contents_to(t),"string"!=typeof e?e:[e,"TK_"+t]}if("CONTENT"===this.current_mode)return e=this.get_content(),"string"!=typeof e?e:[e,"TK_CONTENT"];if("TAG"===this.current_mode){if("string"!=typeof(e=this.get_tag()))return e;return[e,"TK_TAG_"+this.tag_type]}},this.get_full_indent=function(e){return e=this.indent_level+e||0,e<1?"":Array(e+1).join(this.indent_string)},this.printer=function(e,t,r,n,i){this.input=e||"",this.output=[],this.indent_character=t,this.indent_string="",this.indent_size=r,this.brace_style=i,this.indent_level=0,this.max_char=n,this.line_char_count=0;for(var o=0;o<this.indent_size;o++)this.indent_string+=this.indent_character;this.print_newline=function(e,t){if(this.line_char_count=0,t&&t.length){if(!e)for(;this.Utils.in_array(t[t.length-1],this.Utils.whitespace);)t.pop();t.push("\n");for(var r=0;r<this.indent_level;r++)t.push(this.indent_string)}},this.print_token=function(e){this.output.push(e)},this.indent=function(){this.indent_level++},this.unindent=function(){this.indent_level>0&&this.indent_level--}},this}var n,i,o,a,l,s;for(t=t||{},i=t.indent_size||4,o=t.indent_char||" ",l=t.brace_style||"collapse",a=0==t.max_char?1/0:t.max_char||70,s=t.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"],n=new r,n.printer(e,o,i,a,l);;){var c=n.get_token();if(n.token_text=c[0],n.token_type=c[1],"TK_EOF"===n.token_type)break;switch(n.token_type){case"TK_TAG_START":n.print_newline(!1,n.output),n.print_token(n.token_text),n.indent(),n.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":n.print_newline(!1,n.output),n.print_token(n.token_text),n.current_mode="CONTENT";break;case"TK_TAG_END":if("TK_CONTENT"===n.last_token&&""===n.last_text){var u=n.token_text.match(/\w+/)[0],d=n.output[n.output.length-1].match(/<\s*(\w+)/);null!==d&&d[1]===u||n.print_newline(!0,n.output)}n.print_token(n.token_text),n.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var f=n.token_text.match(/^\s*<([a-z]+)/i);f&&n.Utils.in_array(f[1],s)||n.print_newline(!1,n.output),n.print_token(n.token_text),n.current_mode="CONTENT";break;case"TK_CONTENT":""!==n.token_text&&n.print_token(n.token_text),n.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(""!==n.token_text){n.output.push("\n");var h=n.token_text;if("TK_SCRIPT"==n.token_type)var p="function"==typeof js_beautify&&js_beautify;else if("TK_STYLE"==n.token_type)var p="function"==typeof css_beautify&&css_beautify;if("keep"==t.indent_scripts)var m=0;else if("separate"==t.indent_scripts)var m=-n.indent_level;else var m=1;var g=n.get_full_indent(m);if(p)h=p(h.replace(/^\s*/,g),t);else{var v=h.match(/^\s*/)[0],y=v.match(/[^\n\r]*$/)[0].split(n.indent_string).length-1,b=n.get_full_indent(m-y);h=h.replace(/^\s*/,g).replace(/\r\n|\r|\n/g,"\n"+b).replace(/\s*$/,"")}h&&(n.print_token(h),n.print_newline(!0,n.output))}n.current_mode="TAG"}n.last_token=n.token_type,n.last_text=n.token_text}return n.output.join("")}t.exports={prettyPrint:n}},{}],21:[function(e,t,r){"use strict";t.exports=e("./stream/stream")},{"./stream/stream":22}],22:[function(e,t,r){!function(){"use strict";function e(){function e(){return arguments.length>0&&arguments[0]!==C&&n(e,arguments[0]),e._state.value}return r(e),arguments.length>0&&arguments[0]!==C&&n(e,arguments[0]),e}function r(t){t.constructor=e,t._state={id:k++,value:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],endStream:void 0,unregister:void 0},t.map=t["fantasy-land/map"]=d,t["fantasy-land/ap"]=f,t["fantasy-land/of"]=e,t.valueOf=h,t.toJSON=p,t.toString=h,Object.defineProperties(t,{end:{get:function(){if(!t._state.endStream){var r=e();r.map(function(e){return!0===e&&(u(t),r._state.unregister=function(){u(r)}),e}),t._state.endStream=r}return t._state.endStream}}})}function n(e,t){i(e,t);for(var r in e._state.deps)o(e._state.deps[r],!1);null!=e._state.unregister&&e._state.unregister(),a(e)}function i(e,t){e._state.value=t,e._state.changed=!0,2!==e._state.state&&(e._state.state=1)}function o(e,t){var r=e._state,n=r.parents;if(n.length>0&&n.every(g)&&(t||n.some(v))){var o=e._state.derive();if(o===C)return!1;i(e,o)}}function a(e){e._state.changed=!1;for(var t in e._state.deps)e._state.deps[t]._state.changed=!1}function l(t,r){if(!r.every(m))throw new Error("Ensure that each item passed to stream.combine/stream.merge is a stream");return s(e(),r,function(){return t.apply(this,r.concat([r.filter(v)]))})}function s(e,t,r){var n=e._state;return n.derive=r,n.parents=t.filter(y),c(e,n.parents),o(e,!0),e}function c(e,t){for(var r=0;r<t.length;r++)t[r]._state.deps[e._state.id]=e,c(e,t[r]._state.parents)}function u(e){for(var t=0;t<e._state.parents.length;t++){delete e._state.parents[t]._state.deps[e._state.id]}for(var r in e._state.deps){var n=e._state.deps[r],i=n._state.parents.indexOf(e);i>-1&&n._state.parents.splice(i,1)}e._state.state=2,e._state.deps={}}function d(e){return l(function(t){return e(t())},[this])}function f(e){return l(function(e,t){return e()(t())},[e,this])}function h(){return this._state.value}function p(){return null!=this._state.value&&"function"==typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function m(e){return e._state}function g(e){return 1===e._state.state}function v(e){return e._state.changed}function y(e){return 2!==e._state.state}function b(e){return l(function(){return e.map(function(e){return e()})},e)}function w(e,t,r){var n=l(function(r){return t=e(t,r._state.value)},[r]);return 0===n._state.state&&n(t),n}function x(e,t){var r=e.map(function(e){var t=e[0];return 0===t._state.state&&t(void 0),t});return l(function(){var n=arguments[arguments.length-1];return r.forEach(function(r,i){n.indexOf(r)>-1&&(t=e[i][1](t,r._state.value))}),t},r)}var k=0,C={};e["fantasy-land/of"]=e,e.merge=b,e.combine=l,e.scan=w,e.scanMerge=x,e.HALT=C,void 0!==t?t.exports=e:"function"!=typeof window.m||"stream"in window.m?window.m={stream:e}:window.m.stream=e}()},{}]},{},[11])}();
9
  //# sourceMappingURL=forms-admin.min.js.map
1
+ !function(){var e=void 0,t=void 0;!function t(r,n,i){function o(l,s){if(!n[l]){if(!r[l]){var c="function"==typeof e&&e;if(!s&&c)return c(l,!0);if(a)return a(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[l]={exports:{}};r[l][0].call(d.exports,function(e){var t=r[l][1][e];return o(t||e)},d,d.exports,t,r,n,i)}return n[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}({1:[function(e,t,r){"use strict";t.exports=function(e,t){var r={};return r.showType=function(r){var n=r.type();return n=n.charAt(0).toUpperCase()+n.slice(1),e("div",[e("label",t.fieldType),e("span",n)])},r.label=function(r){return e("div",[e("label",t.fieldLabel),e("input.widefat",{type:"text",value:r.label(),onchange:e.withAttr("value",r.label),placeholder:r.title()})])},r.value=function(r){var n="hidden"===r.type();return e("div",[e("label",[n?t.value:t.initialValue," ",n?"":e("small",{style:"float: right; font-weight: normal;"},t.optional)]),e("input.widefat",{type:"text",value:r.value(),onchange:e.withAttr("value",r.value)}),n?"":e("p.help",t.valueHelp)])},r.numberMinMax=function(r){return e("div",[e("div.row",[e("div.col.col-3",[e("label",t.min),e("input",{type:"number",onchange:e.withAttr("value",r.min)})]),e("div.col.col-3",[e("label",t.max),e("input",{type:"number",onchange:e.withAttr("value",r.max)})])])])},r.isRequired=function(r){var n={type:"checkbox",checked:r.required(),onchange:e.withAttr("checked",r.required)},i=void 0;return r.forceRequired()&&(n.required=!0,n.disabled=!0,i=e("p.help",t.forceRequired)),e("div",[e("label.cb-wrap",[e("input",n),t.isFieldRequired]),i])},r.placeholder=function(r){return e("div",[e("label",[t.placeholder," ",e("small",{style:"float: right; font-weight: normal;"},t.optional)]),e("input.widefat",{type:"text",value:r.placeholder(),onchange:e.withAttr("value",r.placeholder),placeholder:""}),e("p.help",t.placeholderHelp)])},r.useParagraphs=function(r){return e("div",[e("label.cb-wrap",[e("input",{type:"checkbox",checked:r.wrap(),onchange:e.withAttr("checked",r.wrap)}),t.wrapInParagraphTags])])},r.choiceType=function(r){var n=[e("option",{value:"select",selected:"select"===r.type()&&"selected"},t.dropdown),e("option",{value:"radio",selected:"radio"===r.type()&&"selected"},t.radioButtons)];return r.acceptsMultipleValues&&n.push(e("option",{value:"checkbox",selected:"checkbox"===r.type()&&"selected"},t.checkboxes)),e("div",[e("label",t.choiceType),e("select",{value:r.type(),onchange:e.withAttr("value",r.type)},n)])},r.choices=function(r){var n=[];return n.push(e("div",[e("label",t.choices),e("div.limit-height",[e("table",[r.choices().map(function(n,i){return e("tr",{"data-id":i},[e("td.cb",e("input",{name:"selected",type:"checkbox"===r.type()?"checkbox":"radio",onchange:e.withAttr("value",r.selectChoice.bind(r)),checked:n.selected(),value:n.value(),title:t.preselect})),e("td.stretch",e("input.widefat",{type:"text",value:n.label(),placeholder:n.title(),onchange:e.withAttr("value",n.label)})),e("td",e("span",{title:t.remove,class:"dashicons dashicons-no-alt hover-activated",onclick:function(e){this.choices().splice(e,1)}.bind(r,i)},""))])})])])])),n},r}},{}],2:[function(e,t,r){"use strict";t.exports=function(t,r){var n={},i=e("./field-forms-rows.js")(t,r);return n.render=function(e){var t=e.type();if("function"==typeof n[t])return n[t](e);switch(t){case"select":case"radio":case"checkbox":return n.choice(e)}return n.text(e)},n.text=function(e){return[i.label(e),i.placeholder(e),i.value(e),i.isRequired(e),i.useParagraphs(e)]},n.choice=function(e){var t=[i.label(e),i.choiceType(e),i.choices(e)];return"select"===e.type()&&t.push(i.placeholder(e)),t.push(i.useParagraphs(e)),"select"!==e.type()&&"radio"!==e.type()||t.push(i.isRequired(e)),t},n.hidden=function(e){return e.placeholder(""),e.label(""),e.wrap(!1),[i.showType(e),i.value(e)]},n.submit=function(e){return e.label(""),e.placeholder(""),[i.value(e),i.useParagraphs(e)]},n.number=function(e){return[n.text(e),i.numberMinMax(e)]},n}},{"./field-forms-rows.js":1}],3:[function(e,t,r){"use strict";var n=e("html"),i=function(e){e.dom.checked&&e.dom.setAttribute("checked","true"),e.dom.value&&e.dom.setAttribute("value",e.dom.value),e.dom.selected&&e.dom.setAttribute("selected","true")};t.exports=function(e){var t={};return t.select=function(t){var r={name:t.name(),required:t.required()},n=!1,o=t.choices().map(function(t){return t.selected()&&(n=!0),e("option",{value:t.value()!==t.label()?t.value():void 0,selected:t.selected(),oncreate:i},t.label())}),a=t.placeholder();return a.length>0&&o.unshift(e("option",{disabled:!0,value:"",selected:!n,oncreate:i},a)),e("select",r,o)},t.checkbox=function(t){return t.choices().map(function(r){var n=t.name()+("checkbox"===t.type()?"[]":""),o=t.required()&&"radio"===t.type();return e("label",[e("input",{name:n,type:t.type(),value:r.value(),checked:r.selected(),required:o,oncreate:i})," ",e("span",r.label())])})},t.radio=t.checkbox,t.default=function(t){var r={type:t.type()};return t.name()&&(r.name=t.name()),t.min()&&(r.min=t.min()),t.max()&&(r.max=t.max()),t.value().length>0&&(r.value=t.value()),t.placeholder().length>0&&(r.placeholder=t.placeholder()),r.required=t.required(),r.oncreate=i,e("input",r)},function(r){var i=void 0,o=void 0,a=void 0,l=document.createElement("div");return i=r.label().length>0?e("label",{},r.label()):"",o="function"==typeof t[r.type()]?t[r.type()](r):t.default(r),a=r.wrap()?e("p",[i,o]):[i,o],e.render(l,a),n.prettyPrint(l.innerHTML)+"\n"}}},{html:20}],4:[function(e,t,r){"use strict";t.exports=function(t,r,n,i,o,a){function l(e){(c=i.get(e))&&c.choices().length>0&&c.value(c.choices().map(function(e){return e.label()}).join("|")),t.redraw()}function s(){var e=u(c);n.insert(e),l(""),t.redraw()}var c,u=e("./field-generator.js")(t),d=e("./overlay.js")(t,a),f=e("./field-forms.js")(t,a);return n.on("blur",t.redraw),{view:function(){var e=i.getCategories(),r=i.getAll(),n=t("div.available-fields.small-margin",[t("h4",a.chooseField),e.map(function(e){var n=r.filter(function(t){return t.category===e});if(n.length)return t("div.tiny-margin",[t("strong",e),n.map(function(e){var r="button";e.forceRequired()&&(r+=" is-required");var n=e.inFormContent();return null!==n&&(r+=" "+(n?"in-form":"not-in-form")),t("button",{className:r,type:"button",onclick:t.withAttr("value",l),value:e.index},e.title())})])})]),o=null;return c&&(o=d(t("div.field-wizard",[t("h3",[c.title(),c.forceRequired()?t("span.red","*"):"",c.name().length?t("code",c.name()):""]),c.help().length?t("p",t.trust(c.help())):"",f.render(c),t("p",[t("button",{class:"button-primary",type:"button",onkeydown:function(e){13==(e=e||window.event).keyCode&&s()},onclick:s},a.addToForm)])]),l)),[n,o]},controller:function(){}}}},{"./field-forms.js":2,"./field-generator.js":3,"./overlay.js":10}],5:[function(e,t,r){"use strict";t.exports=function(e,t){function r(t,r,n){var i=e.register(t,r);n||l.push(i)}function n(e){var t={phone:"tel",dropdown:"select",checkboxes:"checkbox",birthday:"text"};return void 0!==t[e]?t[e]:e}function i(e){var i=t.listFields,o=n(e.field_type),a={name:e.tag,title:e.name,required:e.required,forceRequired:e.required,type:o,choices:e.choices,acceptsMultipleValues:!1};return"address"!==a.type?r(i,a,!1):(r(i,{name:a.name+"[addr1]",type:"text",mailchimpType:"address",title:t.streetAddress}),r(i,{name:a.name+"[city]",type:"text",mailchimpType:"address",title:t.city}),r(i,{name:a.name+"[state]",type:"text",mailchimpType:"address",title:t.state}),r(i,{name:a.name+"[zip]",type:"text",mailchimpType:"address",title:t.zip}),r(i,{name:a.name+"[country]",type:"select",mailchimpType:"address",title:t.country,choices:mc4wp_vars.countries})),!0}function o(e){var i=t.interestCategories,o=n(e.field_type);r(i,{title:e.name,name:"INTERESTS["+e.id+"]",type:o,choices:e.interests,acceptsMultipleValues:"checkbox"===o},!1)}function a(e){e.merge_fields=e.merge_fields.sort(function(e,t){return"EMAIL"===e.tag||e.public&&!t.public?-1:!e.public&&t.public?1:0}),e.merge_fields.forEach(i),e.interest_categories.forEach(o)}var l=[];return{registerCustomFields:function(e){var n,i=t.formFields;r(i,{name:"",value:t.subscribe,type:"submit",title:t.submitButton},!0),n={};for(var o in e)n[e[o].id]=e[o].name;r(i,{name:"_mc4wp_lists",type:"checkbox",title:t.listChoice,choices:n,help:t.listChoiceDescription,acceptsMultipleValues:!0},!0),n={subscribe:"Subscribe",unsubscribe:"Unsubscribe"},r(i,{name:"_mc4wp_action",type:"radio",title:t.formAction,choices:n,value:"subscribe",help:t.formActionDescription},!0)},registerListFields:a,registerListsFields:function(t){l.forEach(e.deregister),t.forEach(a)}}}},{}],6:[function(e,t,r){"use strict";var n=e("mithril/stream");t.exports=function(e,t){function r(e,t){return o.filter(function(r){return r[e]()===t})}var i,o=[],a=[],l=function(e){this.name=n(e.name),this.title=n(e.title||e.name),this.type=n(e.type),this.mailchimpType=n(e.mailchimpType||""),this.label=n(e.title||""),this.value=n(e.value||""),this.placeholder=n(e.placeholder||""),this.required=n(e.required||!1),this.forceRequired=n(e.forceRequired||!1),this.wrap=n(e.wrap||!0),this.min=n(e.min||null),this.max=n(e.max||null),this.help=n(e.help||""),this.choices=n(e.choices||[]),this.inFormContent=n(null),this.acceptsMultipleValues=e.acceptsMultipleValues,this.selectChoice=function(e){var t=this;this.choices(this.choices().map(function(r){return r.value()===e?r.selected(!0):"checkbox"!==t.type()&&r.selected(!1),r}))}},s=function(e){this.label=n(e.label),this.title=n(e.title||e.label),this.selected=n(e.selected||!1),this.value=n(e.value||e.label)};return{get:function(e){return o[e]},getAll:function(){return o=o.map(function(e,t){return e.index=t,e})},getCategories:function(){return a},deregister:function(t){var r=o.indexOf(t);r>-1&&(delete o[r],e.redraw())},register:function(n,c){var u,d=r("name",c.name).shift();if(!d)return c.choices&&(c.choices=function(e){return"function"==typeof e.map?e.map(function(e){return new s({label:e})}):Object.keys(e).map(function(t){var r=e[t];return new s({label:r,value:t})})}(c.choices),c.value&&(c.choices=c.choices.map(function(e){return e.value()===c.value&&e.selected(!0),e}))),a.indexOf(n)<0&&a.push(n),u=new l(c),u.category=n,o.push(u),i&&window.clearTimeout(i),i=window.setTimeout(e.redraw,200),t.trigger("fields.change"),u;!d.forceRequired()&&c.forceRequired&&d.forceRequired(!0)},getAllWhere:r}}},{"mithril/stream":21}],7:[function(e,t,r){"use strict";var n=e("codemirror");e("codemirror/mode/xml/xml"),e("codemirror/mode/javascript/javascript"),e("codemirror/mode/css/css"),e("codemirror/mode/htmlmixed/htmlmixed"),e("codemirror/addon/fold/xml-fold"),e("codemirror/addon/edit/matchtags"),e("codemirror/addon/edit/closetag.js");t.exports=function(e){function t(){return o&&(i.innerHTML=a.getValue().toLowerCase(),o=!1),i}var r,i=document.createElement("form"),o=!1,a={};return i.innerHTML=e.value.toLowerCase(),n&&(r=n.fromTextArea(e,{selectionPointer:!0,matchTags:{bothTags:!0},mode:"htmlmixed",htmlMode:!0,autoCloseTags:!0,autoRefresh:!0}),window.dispatchEvent&&r.on("change",function(){if("function"==typeof Event){var t=new Event("change",{bubbles:!0});e.dispatchEvent(t)}})),window.addEventListener("load",function(){n.signal(r,"change")}),e.addEventListener("change",function(){o=!0}),a.getValue=function(){return r?r.getValue():e.value},a.query=function(e){return t().querySelectorAll(e.toLowerCase())},a.containsField=function(e){return null!==t().elements.namedItem(e.toLowerCase())},a.insert=function(t){r?(r.replaceSelection(t),r.focus()):e.value+=t},a.on=function(t,n){return r?(t="input"===t?"changes":t,r.on(t,n)):e.addEventListener(t,n)},a.refresh=function(){r&&r.refresh()},a}},{codemirror:15,"codemirror/addon/edit/closetag.js":12,"codemirror/addon/edit/matchtags":13,"codemirror/addon/fold/xml-fold":14,"codemirror/mode/css/css":16,"codemirror/mode/htmlmixed/htmlmixed":17,"codemirror/mode/javascript/javascript":18,"codemirror/mode/xml/xml":19}],8:[function(e,t,r){"use strict";t.exports=function(e,t,r,n,i,o){function a(){n.getAll().forEach(function(e){if(!(e.name().length<=0)){var r=e.name();"checkbox"===e.type()&&(r+="[]");var n=t.containsField(r);if(e.inFormContent(n),"address"===e.mailchimpType()){e.originalRequiredValue=void 0===e.originalRequiredValue?e.forceRequired():e.originalRequiredValue;var i=e.name().replace(/\[(\w+)\]/g,"");t.query('[name^="'+i+'"]').length>0?(void 0===e.originalRequiredValue&&(e.originalRequiredValue=e.forceRequired()),e.forceRequired(!0)):e.forceRequired(e.originalRequiredValue)}}}),function(){var e=n.getAllWhere("forceRequired",!0).map(function(e){return e.name().toUpperCase().replace(/\[(\w+)\]/g,".$1")}),r=t.query("[required]");Array.prototype.forEach.call(r,function(t){var r=t.name.toUpperCase();"_"!==r[0]&&(r=r.replace(/\[(\w+)\]/g,".$1"),-1===e.indexOf(r)&&e.push(r))}),l.value=e.join(",")}(),e.redraw()}var l=document.getElementById("required-fields");t.on("change",o.debounce(a,500)),i.on("fields.change",o.debounce(a,500))}},{}],9:[function(e,t,r){"use strict";function n(e,t){a[e]=t,o()}function i(e){delete a[e],o()}function o(){var e="";for(var t in a)e+='<div class="notice notice-warning inline"><p>'+a[t]+"</p></div>";var r=document.querySelector(".mc4wp-notices");if(!r){(r=document.createElement("div")).className="mc4wp-notices";var n=document.querySelector("h1, h2");n.parentNode.insertBefore(r,n.nextSibling)}r.innerHTML=e}var a={};t.exports={init:function(e,t){var r=function(){e.getValue().toLowerCase().indexOf('name="groupings')>-1?n("deprecated_groupings","Your form contains old style <code>GROUPINGS</code> fields. <br /><br />Please remove these fields from your form and then re-add them through the available field buttons to make sure your data is getting through to MailChimp correctly."):i("deprecated_groupings")},o=function(){var r=t.getAllWhere("forceRequired",!0).filter(function(t){return!e.containsField(t.name().toUpperCase())}),o="<strong>Heads up!</strong> Your form is missing list fields that are required in MailChimp. Either add these fields to your form or mark them as optional in MailChimp.";o+='<br /><ul class="ul-square" style="margin-bottom: 0;"><li>'+r.map(function(e){return e.title()}).join("</li><li>")+"</li></ul>",r.length>0?n("required_fields_missing",o):i("required_fields_missing")};r(),e.on("focus",r),e.on("blur",r),o(),e.on("blur",o),e.on("focus",o)}}},{}],10:[function(e,t,r){"use strict";t.exports=function(e,t){function r(){document.removeEventListener("keydown",n),window.removeEventListener("resize",i),l()}function n(e){27==(e=e||window.event).keyCode&&r(),13==e.keyCode&&e.preventDefault()}function i(){if(a){var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,t=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,r=(e-a.clientWidth-40)/2,n=(t-a.clientHeight-40)/2;a.style.left=(r>0?r:0)+"px",a.style.top=(n>0?n:0)+"px"}}function o(e){a=e.dom,i()}var a=void 0,l=void 0;return function(a,s){return l=s,document.addEventListener("keydown",n),window.addEventListener("resize",i),[e("div.overlay-wrap",e("div.overlay",{oncreate:o},[e("span",{class:"close dashicons dashicons-no",title:t.close,onclick:r}),a])),e("div.overlay-background",{title:t.close,onclick:r})]}}},{}],11:[function(e,t,r){"use strict";var n=window.mc4wp_forms_i18n,i=window.mc4wp.deps.mithril,o=mc4wp.events,a=mc4wp.settings,l=mc4wp.helpers,s=mc4wp.tabs,c=e("./admin/form-watcher.js"),u=e("./admin/form-editor.js"),d=e("./admin/field-helper.js"),f=e("./admin/fields-factory.js"),h=e("./admin/fields.js")(i,o),p=document.getElementById("mc4wp-form-content"),m=window.formEditor=new u(p),g=(new c(i,formEditor,a,h,o,l),new d(i,s,formEditor,h,o,n)),v=e("./admin/notices");i.mount(document.getElementById("mc4wp-field-wizard"),g);var y=new f(h,n);o.on("selectedLists.change",y.registerListsFields),y.registerListsFields(a.getSelectedLists()),y.registerCustomFields(mc4wp_vars.mailchimp.lists),window.setTimeout(function(){i.redraw()},2e3),v.init(m,h),window.mc4wp=window.mc4wp||{},window.mc4wp.forms=window.mc4wp.forms||{},window.mc4wp.forms.editor=m,window.mc4wp.forms.fields=h},{"./admin/field-helper.js":4,"./admin/fields-factory.js":5,"./admin/fields.js":6,"./admin/form-editor.js":7,"./admin/form-watcher.js":8,"./admin/notices":9}],12:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../fold/xml-fold")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../fold/xml-fold"],i):i(CodeMirror)}(function(e){function t(t,r){for(var i=t.listSelections(),o=[],a=r?"/":"</",l=0;l<i.length;l++){if(!i[l].empty())return e.Pass;var s=i[l].head,c=t.getTokenAt(s),u=e.innerMode(t.getMode(),c.state),d=u.state;if(r&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=s.ch-1))return e.Pass;var f;if("xml"!=u.mode.name)if("htmlmixed"==t.getMode().name&&"javascript"==u.mode.name)f=a+"script";else{if("htmlmixed"!=t.getMode().name||"css"!=u.mode.name)return e.Pass;f=a+"style"}else{if(!d.context||!d.context.tagName||n(t,d.context.tagName,s,d))return e.Pass;f=a+d.context.tagName}">"!=t.getLine(s.line).charAt(c.end)&&(f+=">"),o[l]=f}t.replaceSelections(o),i=t.listSelections();for(l=0;l<i.length;l++)(l==i.length-1||i[l].head.line<i[l+1].head.line)&&t.indentLine(i[l].head.line)}function r(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;++r)if(e[r]==t)return r;return-1}function n(t,r,n,i,o){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,n.line+500),l=e.scanForClosingTag(t,n,null,a);if(!l||l.tag!=r)return!1;for(var s=i.context,c=o?1:0;s&&s.tagName==r;s=s.prev)++c;n=l.to;for(var u=1;u<c;u++){var d=e.scanForClosingTag(t,n,null,a);if(!d||d.tag!=r)return!1;n=d.to}return!0}e.defineOption("autoCloseTags",!1,function(a,l,s){if(s!=e.Init&&s&&a.removeKeyMap("autoCloseTags"),l){var c={name:"autoCloseTags"};("object"!=typeof l||l.whenClosing)&&(c["'/'"]=function(r){return function(r){return r.getOption("disableInput")?e.Pass:t(r,!0)}(r)}),("object"!=typeof l||l.whenOpening)&&(c["'>'"]=function(t){return function(t){if(t.getOption("disableInput"))return e.Pass;for(var a=t.listSelections(),l=[],s=0;s<a.length;s++){if(!a[s].empty())return e.Pass;var c=a[s].head,u=t.getTokenAt(c),d=e.innerMode(t.getMode(),u.state),f=d.state;if("xml"!=d.mode.name||!f.tagName)return e.Pass;var h=t.getOption("autoCloseTags"),p="html"==d.mode.configuration,m="object"==typeof h&&h.dontCloseTags||p&&i,g="object"==typeof h&&h.indentTags||p&&o,v=f.tagName;u.end>c.ch&&(v=v.slice(0,v.length-u.end+c.ch));var y=v.toLowerCase();if(!v||"string"==u.type&&(u.end!=c.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==f.type||u.string.indexOf("/")==u.string.length-1||m&&r(m,y)>-1||n(t,v,c,f,!0))return e.Pass;var b=g&&r(g,y)>-1;l[s]={indent:b,text:">"+(b?"\n\n":"")+"</"+v+">",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(s=a.length-1;s>=0;s--){var w=l[s];t.replaceRange(w.text,a[s].head,a[s].anchor,"+insert");var x=t.listSelections().slice(0);x[s]={head:w.newPos,anchor:w.newPos},t.setSelections(x),w.indent&&(t.indentLine(w.newPos.line,null,!0),t.indentLine(w.newPos.line+1,null,!0))}}(t)}),a.addKeyMap(c)}});var i=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],o=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return t(e)}})},{"../../lib/codemirror":15,"../fold/xml-fold":14}],13:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../fold/xml-fold")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../fold/xml-fold"],i):i(CodeMirror)}(function(e){"use strict";function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function r(r){r.state.failedTagMatch=!1,r.operation(function(){if(t(r),!r.somethingSelected()){var n=r.getCursor(),i=r.getViewport();i.from=Math.min(i.from,n.line),i.to=Math.max(n.line+1,i.to);var o=e.findMatchingTag(r,n,i);if(o){if(r.state.matchBothTags){var a="open"==o.at?o.open:o.close;a&&(r.state.tagHit=r.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var l="close"==o.at?o.open:o.close;l?r.state.tagOther=r.markText(l.from,l.to,{className:"CodeMirror-matchingtag"}):r.state.failedTagMatch=!0}}})}function n(e){e.state.failedTagMatch&&r(e)}e.defineOption("matchTags",!1,function(i,o,a){a&&a!=e.Init&&(i.off("cursorActivity",r),i.off("viewportChange",n),t(i)),o&&(i.state.matchBothTags="object"==typeof o&&o.bothTags,i.on("cursorActivity",r),i.on("viewportChange",n),r(i))}),e.commands.toMatchingTag=function(t){var r=e.findMatchingTag(t,t.getCursor());if(r){var n="close"==r.at?r.open:r.close;n&&t.extendSelection(n.to,n.from)}}})},{"../../lib/codemirror":15,"../fold/xml-fold":14}],14:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e,t,r,n){this.line=t,this.ch=r,this.cm=e,this.text=e.getLine(t),this.min=n?Math.max(n.from,e.firstLine()):e.firstLine(),this.max=n?Math.min(n.to-1,e.lastLine()):e.lastLine()}function r(e,t){var r=e.cm.getTokenTypeAt(d(e.line,t));return r&&/\btag\b/.test(r)}function n(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function i(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function o(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(n(e))continue;return}{if(r(e,t+1)){var i=e.text.lastIndexOf("/",t),o=i>-1&&!/\S/.test(e.text.slice(i+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t+1}}}function a(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(i(e))continue;return}if(r(e,t+1)){h.lastIndex=t,e.ch=t;var n=h.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function l(e){for(;;){h.lastIndex=e.ch;var t=h.exec(e.text);if(!t){if(n(e))continue;return}{if(r(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function s(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){if(i(e))continue;return}{if(r(e,t+1)){var n=e.text.lastIndexOf("/",t),o=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t}}}function c(e,t){for(var r=[];;){var n,i=l(e),a=e.line,s=e.ch-(i?i[0].length:0);if(!i||!(n=o(e)))return;if("selfClose"!=n)if(i[1]){for(var c=r.length-1;c>=0;--c)if(r[c]==i[2]){r.length=c;break}if(c<0&&(!t||t==i[2]))return{tag:i[2],from:d(a,s),to:d(e.line,e.ch)}}else r.push(i[2])}}function u(e,t){for(var r=[];;){var n=s(e);if(!n)return;if("selfClose"!=n){var i=e.line,o=e.ch,l=a(e);if(!l)return;if(l[1])r.push(l[2]);else{for(var c=r.length-1;c>=0;--c)if(r[c]==l[2]){r.length=c;break}if(c<0&&(!t||t==l[2]))return{tag:l[2],from:d(e.line,e.ch),to:d(i,o)}}}else a(e)}}var d=e.Pos,f="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",h=new RegExp("<(/?)(["+f+"][A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");e.registerHelper("fold","xml",function(e,r){for(var n=new t(e,r.line,0);;){var i,a=l(n);if(!a||n.line!=r.line||!(i=o(n)))return;if(!a[1]&&"selfClose"!=i){var s=d(n.line,n.ch),u=c(n,a[2]);return u&&{from:s,to:u.from}}}}),e.findMatchingTag=function(e,r,n){var i=new t(e,r.line,r.ch,n);if(-1!=i.text.indexOf(">")||-1!=i.text.indexOf("<")){var l=o(i),s=l&&d(i.line,i.ch),f=l&&a(i);if(l&&f&&!(function(e,t){return e.line-t.line||e.ch-t.ch}(i,r)>0)){var h={from:d(i.line,i.ch),to:s,tag:f[2]};return"selfClose"==l?{open:h,close:null,at:"open"}:f[1]?{open:u(i,f[2]),close:h,at:"close"}:(i=new t(e,s.line,s.ch,n),{open:h,close:c(i,f[2]),at:"open"})}}},e.findEnclosingTag=function(e,r,n,i){for(var o=new t(e,r.line,r.ch,n);;){var a=u(o,i);if(!a)break;var l=c(new t(e,r.line,r.ch,n),a.tag);if(l)return{open:a,close:l}}},e.scanForClosingTag=function(e,r,n,i){return c(new t(e,r.line,r.ch,i?{from:0,to:i}:null),n)}})},{"../../lib/codemirror":15}],15:[function(e,r,n){!function(e,i){"object"==typeof n&&void 0!==r?r.exports=i():"function"==typeof t&&t.amd?t(i):e.CodeMirror=i()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function r(e,r){return t(e).appendChild(r)}function n(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,r,i){var o=n(e,t,r,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function l(t,r){var n=t.className;e(r).test(n)||(t.className+=(n?" ":"")+r)}function s(t,r){for(var n=t.split(" "),i=0;i<n.length;i++)n[i]&&!e(n[i]).test(r)&&(r+=" "+n[i]);return r}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,r){t||(t={});for(var n in e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function d(e,t,r,n,i){null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);for(var o=n||0,a=i||0;;){var l=e.indexOf("\t",o);if(l<0||l>=t)return a+(t-o);a+=l-o,a+=r-a%r,o=l+1}}function f(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}function h(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);-1==o&&(o=e.length);var a=o-n;if(o==e.length||i+a>=t)return n+Math.min(a,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}function p(e){for(;wo.length<=e;)wo.push(m(wo)+" ");return wo[e]}function m(e){return e[e.length-1]}function g(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function v(){}function y(e,t){var r;return Object.create?r=Object.create(e):(v.prototype=e,r=new v),t&&u(t,r),r}function b(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||xo.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&b(e))||t.test(e):b(e)}function x(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function k(e){return e.charCodeAt(0)>=768&&ko.test(e)}function C(e,t,r){for(;(r<0?t>0:t<e.length)&&k(e.charAt(t));)t+=r;return t}function S(e,t,r){for(var n=t>r?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}function T(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function L(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function M(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function A(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function O(e){if(null==e.parent)return null;for(var t=e.parent,r=f(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function N(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var a=0;a<e.lines.length;++a){var l=e.lines[a].height;if(t<l)break;t-=l}return r+a}function _(e,t){return t>=e.first&&t<e.first+e.size}function E(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function W(e,t,r){if(void 0===r&&(r=null),!(this instanceof W))return new W(e,t,r);this.line=e,this.ch=t,this.sticky=r}function F(e,t){return e.line-t.line||e.ch-t.ch}function D(e,t){return e.sticky==t.sticky&&0==F(e,t)}function z(e){return W(e.line,e.ch)}function P(e,t){return F(e,t)<0?t:e}function H(e,t){return F(e,t)<0?e:t}function I(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function R(e,t){if(t.line<e.first)return W(e.first,0);var r=e.first+e.size-1;return t.line>r?W(r,T(e,r).text.length):function(e,t){var r=e.ch;return null==r||r>t?W(e.line,t):r<0?W(e.line,0):e}(t,T(e,t.line).text.length)}function j(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=R(e,t[n]);return r}function B(e,t,r){this.marker=e,this.from=t,this.to=r}function q(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function U(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function K(e,t){if(t.full)return null;var r=_(e,t.from.line)&&T(e,t.from.line).markedSpans,n=_(e,t.to.line)&&T(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,a=0==F(t.from,t.to),l=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker;if(null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t)||o.from==t&&"bookmark"==a.type&&(!r||!o.marker.insertLeft)){var l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new B(a,o.from,l?null:o.to))}}return n}(r,i,a),s=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker;if(null==o.to||(a.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new B(a,l?null:o.from-t,null==o.to?null:o.to-t))}}return n}(n,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(l)for(var d=0;d<l.length;++d){var f=l[d];if(null==f.to){var h=q(s,f.marker);h?c&&(f.to=null==h.to?null:h.to+u):f.to=i}}if(s)for(var p=0;p<s.length;++p){var g=s[p];if(null!=g.to&&(g.to+=u),null==g.from){q(l,g.marker)||(g.from=u,c&&(l||(l=[])).push(g))}else g.from+=u,c&&(l||(l=[])).push(g)}l&&(l=V(l)),s&&s!=l&&(s=V(s));var v=[l];if(!c){var y,b=t.text.length-2;if(b>0&&l)for(var w=0;w<l.length;++w)null==l[w].to&&(y||(y=[])).push(new B(l[w].marker,null,null));for(var x=0;x<b;++x)v.push(y);v.push(s)}return v}function V(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&!1!==r.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function G(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function $(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function Y(e){return e.inclusiveLeft?-1:0}function X(e){return e.inclusiveRight?1:0}function Z(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=F(n.from,i.from)||Y(e)-Y(t);if(o)return-o;var a=F(n.to,i.to)||X(e)-X(t);return a||t.id-e.id}function J(e,t){var r,n=So&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)(i=n[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!r||Z(r,i.marker)<0)&&(r=i.marker);return r}function Q(e){return J(e,!0)}function ee(e){return J(e,!1)}function te(e,t,r,n,i){var o=T(e,t),a=So&&o.markedSpans;if(a)for(var l=0;l<a.length;++l){var s=a[l];if(s.marker.collapsed){var c=s.marker.find(0),u=F(c.from,r)||Y(s.marker)-Y(i),d=F(c.to,n)||X(s.marker)-X(i);if(!(u>=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?F(c.to,r)>=0:F(c.to,r)>0)||u>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?F(c.from,n)<=0:F(c.from,n)<0)))return!0}}}function re(e){for(var t;t=Q(e);)e=t.find(-1,!0).line;return e}function ne(e,t){var r=T(e,t),n=re(r);return r==n?t:O(n)}function ie(e,t){if(t>e.lastLine())return t;var r,n=T(e,t);if(!oe(e,n))return t;for(;r=ee(n);)n=r.find(1,!0).line;return O(n)+1}function oe(e,t){var r=So&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if((n=r[i]).marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&ae(e,t,n))return!0}}function ae(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return ae(e,n.line,q(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if((i=t.markedSpans[o]).marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&ae(e,t,i))return!0}function le(e){for(var t=0,r=(e=re(e)).parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;r=o,o=r.parent)for(var a=0;a<o.children.length;++a){var l=o.children[a];if(l==r)break;t+=l.height}return t}function se(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=Q(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ee(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,r+=(n=o.to.line).text.length-o.to.ch}return r}function ce(e){var t=e.display,r=e.doc;t.maxLine=T(r,r.first),t.maxLineLength=se(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=se(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function ue(e,t,r){var n;To=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:To=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:To=i)}return null!=n?n:To}function de(e,t){var r=e.order;return null==r&&(r=e.order=Lo(e.text,t)),r}function fe(e,t){return e._handlers&&e._handlers[t]||Mo}function he(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent("on"+t,r);else{var n=e._handlers,i=n&&n[t];if(i){var o=f(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function pe(e,t){var r=fe(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)}function me(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),pe(e,r||t.type,e,t),xe(t)||t.codemirrorIgnore}function ge(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)-1==f(r,t[n])&&r.push(t[n])}function ve(e,t){return fe(e,t).length>0}function ye(e){e.prototype.on=function(e,t){Ao(this,e,t)},e.prototype.off=function(e,t){he(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function we(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function xe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function ke(e){be(e),we(e)}function Ce(e){return e.target||e.srcElement}function Se(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),ro&&e.ctrlKey&&1==t&&(t=3),t}function Te(e){if(null==ho){var t=n("span","​");r(e,n("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(ho=t.offsetWidth<=1&&t.offsetHeight>2&&!(Ui&&Ki<8))}var i=ho?n("span","​"):n("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function Le(e){if(null!=po)return po;var n=r(e,document.createTextNode("AخA")),i=ao(n,0,1).getBoundingClientRect(),o=ao(n,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(po=o.right-i.right<3)}function Me(e){if("string"==typeof e&&Do.hasOwnProperty(e))e=Do[e];else if(e&&"string"==typeof e.name&&Do.hasOwnProperty(e.name)){var t=Do[e.name];"string"==typeof t&&(t={name:t}),(e=y(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Me("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Me("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Ae(e,t){t=Me(t);var r=Fo[t.name];if(!r)return Ae(e,"text/plain");var n=r(e,t);if(zo.hasOwnProperty(t.name)){var i=zo[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)n[a]=t.modeProps[a];return n}function Oe(e,t){u(t,zo.hasOwnProperty(e)?zo[e]:zo[e]={})}function Ne(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function _e(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Ee(e,t,r){return!e.startState||e.startState(t,r)}function We(e,t,r,n){var i=[e.state.modeGen],o={};je(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var a=r.state,l=function(n){r.baseTokens=i;var l=e.state.overlays[n],s=1,c=0;r.state=!0,je(e,t.text,l.mode,r,function(e,t){for(var r=s;c<e;){var n=i[s];n>e&&i.splice(s,1,e,i[s+1],n),s+=2,c=Math.min(e,n)}if(t)if(l.opaque)i.splice(r,s-r,e,"overlay "+t),s=r+2;else for(;r<s;r+=2){var o=i[r+1];i[r+1]=(o?o+" ":"")+"overlay "+t}},o),r.state=a,r.baseTokens=null,r.baseTokenPos=1},s=0;s<e.state.overlays.length;++s)l(s);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Fe(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=De(e,O(t)),i=t.text.length>e.options.maxHighlightLength&&Ne(e.doc.mode,n.state),o=We(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function De(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new Io(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=T(o,l-1),c=s.stateAfter;if(c&&(!r||l+(c instanceof Ho?c.lookAhead:0)<=o.modeFrontier))return l;var u=d(s.text,null,e.options.tabSize);(null==i||n>u)&&(i=l-1,n=u)}return i}(e,t,r),a=o>n.first&&T(n,o-1).stateAfter,l=a?Io.fromSaved(n,a,o):new Io(n,Ee(n.mode),o);return n.iter(o,t,function(r){ze(e,r.text,l);var n=l.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&n<i.viewTo?l.save():null,l.nextLine()}),r&&(n.modeFrontier=l.line),l}function ze(e,t,r,n){var i=e.doc.mode,o=new Po(t,e.options.tabSize,r);for(o.start=o.pos=n||0,""==t&&Pe(i,r.state);!o.eol();)He(i,o,r.state),o.start=o.pos}function Pe(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=_e(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function He(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=_e(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function Ie(e,t,r,n){var i,o,a=e.doc,l=a.mode,s=T(a,(t=R(a,t)).line),c=De(e,t.line,r),u=new Po(s.text,e.options.tabSize,c);for(n&&(o=[]);(n||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=He(l,u,c.state),n&&o.push(new Ro(u,i,Ne(a.mode,c.state)));return n?o:new Ro(u,i,c.state)}function Re(e,t){if(e)for(;;){var r=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?"bgClass":"textClass";null==t[n]?t[n]=r[2]:new RegExp("(?:^|s)"+r[2]+"(?:$|s)").test(t[n])||(t[n]+=" "+r[2])}return e}function je(e,t,r,n,i,o,a){var l=r.flattenSpans;null==l&&(l=e.options.flattenSpans);var s,c=0,u=null,d=new Po(t,e.options.tabSize,n),f=e.options.addModeClass&&[null];for(""==t&&Re(Pe(r,n.state),o);!d.eol();){if(d.pos>e.options.maxHighlightLength?(l=!1,a&&ze(e,t,n,d.pos),d.pos=t.length,s=null):s=Re(He(r,d,n.state,f),o),f){var h=f[0].name;h&&(s="m-"+(s?h+" "+s:h))}if(!l||u!=s){for(;c<d.start;)i(c=Math.min(d.start,c+5e3),u);u=s}d.start=d.pos}for(;c<d.pos;){var p=Math.min(d.pos,c+5e3);i(p,u),c=p}}function Be(e){e.parent=null,G(e)}function qe(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?Uo:qo;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Ue(e,t){var r=i("span",null,null,Vi?"padding-right: .1px":null),n={pre:i("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(Ui||Vi)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,l=void 0;n.pos=0,n.addToken=Ve,Le(e.display.measure)&&(l=de(a,e.doc.direction))&&(n.addToken=function(e,t){return function(r,n,i,o,a,l,s){i=i?i+" cm-force-border":"cm-force-border";for(var c=r.pos,u=c+n.length;;){for(var d=void 0,f=0;f<t.length&&!((d=t[f]).to>c&&d.from<=c);f++);if(d.to>=u)return e(r,n,i,o,a,l,s);e(r,n.slice(0,d.to-c),i,o,null,l,s),o=null,n=n.slice(d.to-c),c=d.to}}}(n.addToken,l)),n.map=[];!function(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(!n){for(var a=1;a<r.length;a+=2)t.addToken(t,i.slice(o,o=r[a]),qe(r[a+1],t.cm.options));return}for(var l,s,c,u,d,f,h,p=i.length,m=0,g=1,v="",y=0;;){if(y==m){c=u=d=f=s="",h=null,y=1/0;for(var b=[],w=void 0,x=0;x<n.length;++x){var k=n[x],C=k.marker;"bookmark"==C.type&&k.from==m&&C.widgetNode?b.push(C):k.from<=m&&(null==k.to||k.to>m||C.collapsed&&k.to==m&&k.from==m)?(null!=k.to&&k.to!=m&&y>k.to&&(y=k.to,u=""),C.className&&(c+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&k.from==m&&(d+=" "+C.startStyle),C.endStyle&&k.to==y&&(w||(w=[])).push(C.endStyle,k.to),C.title&&!f&&(f=C.title),C.collapsed&&(!h||Z(h.marker,C)<0)&&(h=k)):k.from>m&&y>k.from&&(y=k.from)}if(w)for(var S=0;S<w.length;S+=2)w[S+1]==y&&(u+=" "+w[S]);if(!h||h.from==m)for(var T=0;T<b.length;++T)Ge(t,0,b[T]);if(h&&(h.from||0)==m){if(Ge(t,(null==h.to?p+1:h.to)-m,h.marker,null==h.from),null==h.to)return;h.to==m&&(h=!1)}}if(m>=p)break;for(var L=Math.min(p,y);;){if(v){var M=m+v.length;if(!h){var A=M>L?v.slice(0,L-m):v;t.addToken(t,A,l?l+c:c,d,m+A.length==y?u:"",f,s)}if(M>=L){v=v.slice(L-m),m=L;break}m=M,d=""}v=i.slice(o,o=r[g++]),l=qe(r[g++],t.cm.options)}}}(a,n,Fe(e,a,t!=e.display.externalMeasured&&O(a))),a.styleClasses&&(a.styleClasses.bgClass&&(n.bgClass=s(a.styleClasses.bgClass,n.bgClass||"")),a.styleClasses.textClass&&(n.textClass=s(a.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Te(e.display.measure))),0==o?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(Vi){var c=n.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return pe(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=s(n.pre.className,n.textClass||"")),n}function Ke(e){var t=n("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Ve(e,t,r,i,o,a,l){if(t){var s,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),n+=o,r=" "==o}return n}(t,e.trailingSpace):t,u=e.cm.state.specialChars,d=!1;if(u.test(t)){s=document.createDocumentFragment();for(var f=0;;){u.lastIndex=f;var h=u.exec(t),m=h?h.index-f:t.length-f;if(m){var g=document.createTextNode(c.slice(f,f+m));Ui&&Ki<9?s.appendChild(n("span",[g])):s.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;f+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;(v=s.appendChild(n("span",p(b),"cm-tab"))).setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?((v=s.appendChild(n("span","\r"==h[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",h[0]),e.col+=1):((v=e.cm.options.specialCharPlaceholder(h[0])).setAttribute("cm-text",h[0]),Ui&&Ki<9?s.appendChild(n("span",[v])):s.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,s=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,s),Ui&&Ki<9&&(d=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),r||i||o||d||l){var w=r||"";i&&(w+=i),o&&(w+=o);var x=n("span",[s],w,l);return a&&(x.title=a),e.content.appendChild(x)}e.content.appendChild(s)}}function Ge(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function $e(e,t,r){this.line=t,this.rest=function(e){for(var t,r;t=ee(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}(t),this.size=this.rest?O(m(this.rest))-r+1:1,this.node=this.text=null,this.hidden=oe(e,t)}function Ye(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new $e(e.doc,T(e.doc,o),o);n=o+a.size,i.push(a)}return i}function Xe(e,t){var r=fe(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);Ko?n=Ko.delayedCallbacks:Vo?n=Vo:(n=Vo=[],setTimeout(Ze,0));for(var o=function(e){n.push(function(){return r[e].apply(null,i)})},a=0;a<r.length;++a)o(a)}}function Ze(){var e=Vo;Vo=null;for(var t=0;t<e.length;++t)e[t]()}function Je(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?function(e,t){var r=t.text.className,n=et(e,t);t.text==t.node&&(t.node=n.pre);t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,tt(e,t)):r&&(t.text.className=r)}(e,t):"gutter"==o?rt(e,t,r,n):"class"==o?tt(e,t):"widget"==o&&function(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild,i=void 0;n;n=i)i=n.nextSibling,"CodeMirror-linewidget"==n.className&&t.node.removeChild(n);it(e,t,r)}(e,t,n)}t.changes=null}function Qe(e){return e.node==e.text&&(e.node=n("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),Ui&&Ki<8&&(e.node.style.zIndex=2)),e.node}function et(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):Ue(e,t)}function tt(e,t){!function(e,t){var r=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(r&&(r+=" CodeMirror-linebackground"),t.background)r?t.background.className=r:(t.background.parentNode.removeChild(t.background),t.background=null);else if(r){var i=Qe(t);t.background=i.insertBefore(n("div",null,r),i.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?Qe(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var r=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=r||""}function rt(e,t,r,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Qe(t);t.gutterBackground=n("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var l=Qe(t),s=t.gutter=n("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),l.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(n("div",E(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],d=a.hasOwnProperty(u)&&a[u];d&&s.appendChild(n("div",[d],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function nt(e,t,r,n){var i=et(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),tt(e,t),rt(e,t,r,n),it(e,t,n),t.node}function it(e,t,r){if(ot(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)ot(e,t.rest[n],t,r,!1)}function ot(e,t,r,i,o){if(t.widgets)for(var a=Qe(r),l=0,s=t.widgets;l<s.length;++l){var c=s[l],u=n("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),function(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+"px",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+"px"))}(c,u,r,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,r.gutter||r.text):a.appendChild(u),Xe(c,"redraw")}}function at(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),r(t.display.measure,n("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function lt(e,t){for(var r=Ce(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&"true"==r.getAttribute("cm-ignore-events")||r.parentNode==e.sizer&&r!=e.mover)return!0}function st(e){return e.lineSpace.offsetTop}function ct(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function ut(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=r(e.measure,n("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function dt(e){return mo-e.display.nativeBarWidth}function ft(e){return e.display.scroller.clientWidth-dt(e)-e.display.barWidth}function ht(e){return e.display.scroller.clientHeight-dt(e)-e.display.barHeight}function pt(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(var i=0;i<e.rest.length;i++)if(O(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function mt(e,t,r,n){return yt(e,vt(e,t),r,n)}function gt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Ut(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function vt(e,t){var n=O(t),i=gt(e,n);i&&!i.text?i=null:i&&i.changes&&(Je(e,i,n,It(e)),e.curOp.forceUpdate=!0),i||(i=function(e,t){var n=O(t=re(t)),i=e.display.externalMeasured=new $e(e.doc,t,n);i.lineN=n;var o=i.built=Ue(e,i);return i.text=o.pre,r(e.display.lineMeasure,o.pre),i}(e,t));var o=pt(i,t,n);return{line:t,view:i,rect:null,map:o.map,cache:o.cache,before:o.before,hasHeights:!1}}function yt(e,t,i,o,a){t.before&&(i=-1);var l,s=i+(o||"");return t.cache.hasOwnProperty(s)?l=t.cache[s]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&ft(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),l=0;l<a.length-1;l++){var s=a[l],c=a[l+1];Math.abs(s.bottom-c.bottom)>2&&o.push((s.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(l=function(e,t,i,o){var a,l=bt(t.map,i,o),s=l.node,c=l.start,u=l.end,d=l.collapse;if(3==s.nodeType){for(var f=0;f<4;f++){for(;c&&k(t.line.text.charAt(l.coverStart+c));)--c;for(;l.coverStart+u<l.coverEnd&&k(t.line.text.charAt(l.coverStart+u));)++u;if((a=Ui&&Ki<9&&0==c&&u==l.coverEnd-l.coverStart?s.parentNode.getBoundingClientRect():wt(ao(s,c,u).getClientRects(),o)).left||a.right||0==c)break;u=c,c-=1,d="right"}Ui&&Ki<11&&(a=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Wo)return Wo;var t=r(e,n("span","x")),i=t.getBoundingClientRect(),o=ao(t,0,1).getBoundingClientRect();return Wo=Math.abs(i.left-o.left)>1}(e))return t;var i=screen.logicalXDPI/screen.deviceXDPI,o=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*i,right:t.right*i,top:t.top*o,bottom:t.bottom*o}}(e.display.measure,a))}else{c>0&&(d=o="right");var h;a=e.options.lineWrapping&&(h=s.getClientRects()).length>1?h["right"==o?h.length-1:0]:s.getBoundingClientRect()}if(Ui&&Ki<9&&!c&&(!a||!a.left&&!a.right)){var p=s.parentNode.getClientRects()[0];a=p?{left:p.left,right:p.left+Ht(e.display),top:p.top,bottom:p.bottom}:Go}for(var m=a.top-t.rect.top,g=a.bottom-t.rect.top,v=(m+g)/2,y=t.view.measure.heights,b=0;b<y.length-1&&!(v<y[b]);b++);var w=b?y[b-1]:0,x=y[b],C={left:("right"==d?a.right:a.left)-t.rect.left,right:("left"==d?a.left:a.right)-t.rect.left,top:w,bottom:x};a.left||a.right||(C.bogus=!0);e.options.singleCursorHeightPerLine||(C.rtop=m,C.rbottom=g);return C}(e,t,i,o)).bogus||(t.cache[s]=l)),{left:l.left,right:l.right,top:a?l.rtop:l.top,bottom:a?l.rbottom:l.bottom}}function bt(e,t,r){for(var n,i,o,a,l,s,c=0;c<e.length;c+=3)if(l=e[c],s=e[c+1],t<l?(i=0,o=1,a="left"):t<s?o=(i=t-l)+1:(c==e.length-3||t==s&&e[c+3]>t)&&(i=(o=s-l)-1,t>=s&&(a="right")),null!=i){if(n=e[c+2],l==s&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)n=e[2+(c-=3)],a="left";if("right"==r&&i==s-l)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)n=e[(c+=3)+2],a="right";break}return{node:n,start:i,end:o,collapse:a,coverStart:l,coverEnd:s}}function wt(e,t){var r=Go;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function xt(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function kt(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var r=0;r<e.display.view.length;r++)xt(e.display.view[r])}function Ct(e){kt(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function St(){return $i&&eo?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Tt(){return $i&&eo?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function Lt(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=at(e.widgets[r]));return t}function Mt(e,t,r,n,i){if(!i){var o=Lt(t);r.top+=o,r.bottom+=o}if("line"==n)return r;n||(n="local");var a=le(t);if("local"==n?a+=st(e.display):a-=e.display.viewOffset,"page"==n||"window"==n){var l=e.display.lineSpace.getBoundingClientRect();a+=l.top+("window"==n?0:Tt());var s=l.left+("window"==n?0:St());r.left+=s,r.right+=s}return r.top+=a,r.bottom+=a,r}function At(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=St(),i-=Tt();else if("local"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:n-a.left,top:i-a.top}}function Ot(e,t,r,n,i){return n||(n=T(e.doc,t.line)),Mt(e,n,mt(e,n,t.ch,i),r)}function Nt(e,t,r,n,i,o){function a(t,a){var l=yt(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,Mt(e,n,l,r)}function l(e,t,r){var n=1==s[t].level;return a(r?e-1:e,n!=r)}n=n||T(e.doc,t.line),i||(i=vt(e,n));var s=de(n,e.doc.direction),c=t.ch,u=t.sticky;if(c>=n.text.length?(c=n.text.length,u="before"):c<=0&&(c=0,u="after"),!s)return a("before"==u?c-1:c,"before"==u);var d=ue(s,c,u),f=To,h=l(c,d,"before"==u);return null!=f&&(h.other=l(c,f,"before"!=u)),h}function _t(e,t){var r=0;t=R(e.doc,t),e.options.lineWrapping||(r=Ht(e.display)*t.ch);var n=T(e.doc,t.line),i=le(n)+st(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function Et(e,t,r,n,i){var o=W(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function Wt(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return Et(n.first,0,null,!0,-1);var i=N(n,r),o=n.first+n.size-1;if(i>o)return Et(n.first+n.size-1,T(n,o).text.length,null,!0,1);t<0&&(t=0);for(var a=T(n,i);;){var l=function(e,t,r,n,i){i-=le(t);var o=vt(e,t),a=Lt(t),l=0,s=t.text.length,c=!0,u=de(t,e.doc.direction);if(u){var d=(e.options.lineWrapping?function(e,t,r,n,i,o,a){var l=Ft(e,t,n,a),s=l.begin,c=l.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,d=null,f=0;f<i.length;f++){var h=i[f];if(!(h.from>=c||h.to<=s)){var p=1!=h.level,m=yt(e,n,p?Math.min(c,h.to)-1:Math.max(s,h.from)).right,g=m<o?o-m+1e9:m-o;(!u||d>g)&&(u=h,d=g)}}u||(u=i[i.length-1]);u.from<s&&(u={from:s,to:u.to,level:u.level});u.to>c&&(u={from:u.from,to:c,level:u.level});return u}:function(e,t,r,n,i,o,a){var l=S(function(l){var s=i[l],c=1!=s.level;return zt(Nt(e,W(r,c?s.to:s.from,c?"before":"after"),"line",t,n),o,a,!0)},0,i.length-1),s=i[l];if(l>0){var c=1!=s.level,u=Nt(e,W(r,c?s.from:s.to,c?"after":"before"),"line",t,n);zt(u,o,a,!0)&&u.top>a&&(s=i[l-1])}return s})(e,t,r,o,u,n,i);c=1!=d.level,l=c?d.from:d.to-1,s=c?d.to:d.from-1}var f,h,p=null,m=null,g=S(function(t){var r=yt(e,o,t);return r.top+=a,r.bottom+=a,!!zt(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,m=r),!0)},l,s),v=!1;if(m){var y=n-m.left<m.right-n,b=y==c;g=p+(b?0:1),h=b?"after":"before",f=y?m.left:m.right}else{c||g!=s&&g!=l||g++,h=0==g?"after":g==t.text.length?"before":yt(e,o,g-(c?1:0)).bottom+a<=i==c?"after":"before";var w=Nt(e,W(r,g,h),"line",t,o);f=w.left,v=i<w.top||i>=w.bottom}return g=C(t.text,g,1),Et(r,g,h,v,n-f)}(e,a,i,t,r),s=ee(a),c=s&&s.find(0,!0);if(!s||!(l.ch>c.from.ch||l.ch==c.from.ch&&l.xRel>0))return l;i=O(a=c.to.line)}}function Ft(e,t,r,n){n-=Lt(t);var i=t.text.length,o=S(function(t){return yt(e,r,t-1).bottom<=n},i,0);return i=S(function(t){return yt(e,r,t).top>n},o,i),{begin:o,end:i}}function Dt(e,t,r,n){r||(r=vt(e,t));return Ft(e,t,r,Mt(e,t,yt(e,r,n),"line").top)}function zt(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Pt(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Bo){Bo=n("pre");for(var i=0;i<49;++i)Bo.appendChild(document.createTextNode("x")),Bo.appendChild(n("br"));Bo.appendChild(document.createTextNode("x"))}r(e.measure,Bo);var o=Bo.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function Ht(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=n("span","xxxxxxxxxx"),i=n("pre",[t]);r(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function It(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)r[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[a]]=o.clientWidth;return{fixedPos:Rt(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function Rt(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function jt(e){var t=Pt(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/Ht(e.display)-3);return function(i){if(oe(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function Bt(e){var t=e.doc,r=jt(e);t.iter(function(e){var t=r(e);t!=e.height&&A(e,t)})}function qt(e,t,r,n){var i=e.display;if(!r&&"true"==Ce(t).getAttribute("cm-not-content"))return null;var o,a,l=i.lineSpace.getBoundingClientRect();try{o=t.clientX-l.left,a=t.clientY-l.top}catch(t){return null}var s,c=Wt(e,o,a);if(n&&1==c.xRel&&(s=T(e.doc,c.line).text).length==c.ch){var u=d(s,s.length,e.options.tabSize)-s.length;c=W(c.line,Math.max(0,Math.round((o-ut(e.display).left)/Ht(e.display))-u))}return c}function Ut(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function Kt(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Vt(e,t){void 0===t&&(t=!0);for(var r=e.doc,i={},o=i.cursors=document.createDocumentFragment(),a=i.selection=document.createDocumentFragment(),l=0;l<r.sel.ranges.length;l++)if(t||l!=r.sel.primIndex){var s=r.sel.ranges[l];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var c=s.empty();(c||e.options.showCursorWhenSelecting)&&Gt(e,s.head,o),c||function(e,t,r){function i(e,t,r,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),s.appendChild(n("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?d-e:r)+"px;\n height: "+(i-t)+"px"))}function o(t,r,n){function o(r,n){return Ot(e,W(t,r),"div",h,n)}function a(t,r,n){var i=Dt(e,h,null,t),a="ltr"==r==("after"==n)?"left":"right",l="after"==n?i.begin:i.end-(/\s/.test(h.text.charAt(i.end-1))?2:1);return o(l,a)[a]}var s,c,h=T(l,t),p=h.text.length,m=de(h,l.direction);return function(e,t,r,n){if(!e)return n(t,r,"ltr",0);for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<r&&a.to>t||t==r&&a.to==t)&&(n(Math.max(a.from,t),Math.min(a.to,r),1==a.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}(m,r||0,null==n?p:n,function(e,t,l,h){var g="ltr"==l,v=o(e,g?"left":"right"),y=o(t-1,g?"right":"left"),b=null==r&&0==e,w=null==n&&t==p,x=0==h,k=!m||h==m.length-1;if(y.top-v.top<=3){var C=(f?b:w)&&x,S=(f?w:b)&&k,T=C?u:(g?v:y).left,L=S?d:(g?y:v).right;i(T,v.top,L-T,v.bottom)}else{var M,A,O,N;g?(M=f&&b&&x?u:v.left,A=f?d:a(e,l,"before"),O=f?u:a(t,l,"after"),N=f&&w&&k?d:y.right):(M=f?a(e,l,"before"):u,A=!f&&b&&x?d:v.right,O=!f&&w&&k?u:y.left,N=f?a(t,l,"after"):d),i(M,v.top,A-M,v.bottom),v.bottom<y.top&&i(u,v.bottom,null,y.top),i(O,y.top,N-O,y.bottom)}(!s||$t(v,s)<0)&&(s=v),$t(y,s)<0&&(s=y),(!c||$t(v,c)<0)&&(c=v),$t(y,c)<0&&(c=y)}),{start:s,end:c}}var a=e.display,l=e.doc,s=document.createDocumentFragment(),c=ut(e.display),u=c.left,d=Math.max(a.sizerWidth,ft(e)-a.sizer.offsetLeft)-c.right,f="ltr"==l.direction;var h=t.from(),p=t.to();if(h.line==p.line)o(h.line,h.ch,p.ch);else{var m=T(l,h.line),g=T(l,p.line),v=re(m)==re(g),y=o(h.line,h.ch,v?m.text.length+1:null).end,b=o(p.line,v?0:null,p.ch).start;v&&(y.top<b.top-2?(i(y.right,y.top,null,y.bottom),i(u,b.top,b.left,b.bottom)):i(y.right,y.top,b.left-y.right,y.bottom)),y.bottom<b.top&&i(u,y.bottom,null,b.top)}r.appendChild(s)}(e,s,a)}}return i}function Gt(e,t,r){var i=Nt(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=r.appendChild(n("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=r.appendChild(n("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function $t(e,t){return e.top-t.top||e.left-t.left}function Yt(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Xt(e){e.state.focused||(e.display.input.focus(),Jt(e))}function Zt(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Qt(e))},100)}function Jt(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(pe(e,"focus",e,t),e.state.focused=!0,l(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),Vi&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Yt(e))}function Qt(e,t){e.state.delayingBlurEvent||(e.state.focused&&(pe(e,"blur",e,t),e.state.focused=!1,co(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function er(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i=t.view[n],o=void 0;if(!i.hidden){if(Ui&&Ki<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var l=i.node.getBoundingClientRect();o=l.bottom-l.top}var s=i.line.height-o;if(o<2&&(o=Pt(t)),(s>.005||s<-.005)&&(A(i.line,o),tr(i.line),i.rest))for(var c=0;c<i.rest.length;c++)tr(i.rest[c])}}}function tr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var r=e.widgets[t],n=r.node.parentNode;n&&(r.height=n.offsetHeight)}}function rr(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-st(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=N(t,n),a=N(t,i);if(r&&r.ensure){var l=r.ensure.from.line,s=r.ensure.to.line;l<o?(o=l,a=N(t,le(T(t,l))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=a&&(o=N(t,le(T(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function nr(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=Rt(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;a<r.length;a++)if(!r[a].hidden){e.options.fixedGutter&&(r[a].gutter&&(r[a].gutter.style.left=o),r[a].gutterBackground&&(r[a].gutterBackground.style.left=o));var l=r[a].alignable;if(l)for(var s=0;s<l.length;s++)l[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function ir(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=E(e.options,t.first+t.size-1),i=e.display;if(r.length!=i.lineNumChars){var o=i.measure.appendChild(n("div",[n("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,l=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-l)+1,i.lineNumWidth=i.lineNumInnerWidth+l,i.lineNumChars=i.lineNumInnerWidth?r.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Fr(e),!0}return!1}function or(e,t){var r=e.display,n=Pt(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=ht(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+ct(r),s=t.top<n,c=t.bottom>l-n;if(t.top<i)a.scrollTop=s?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?l:t.bottom)-o);u!=i&&(a.scrollTop=u)}var d=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,f=ft(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>f;return h&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.left<d?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>f+d-3&&(a.scrollLeft=t.right+(h?0:10)-f),a}function ar(e,t){null!=t&&(cr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function lr(e){cr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function sr(e,t,r){null==t&&null==r||cr(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function cr(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;ur(e,_t(e,t.from),_t(e,t.to),t.margin)}}function ur(e,t,r,n){var i=or(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});sr(e,i.scrollLeft,i.scrollTop)}function dr(e,t){Math.abs(e.doc.scrollTop-t)<2||(Ri||Wr(e,{top:t}),fr(e,t,!0),Ri&&Wr(e),Or(e,100))}function fr(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function hr(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,nr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function pr(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+ct(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+dt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function mr(e,t){t||(t=pr(e));var r=e.display.barWidth,n=e.display.barHeight;gr(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&er(e),gr(e,pr(e)),r=e.display.barWidth,n=e.display.barHeight}function gr(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function vr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&co(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Xo[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Ao(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,r){"horizontal"==r?hr(e,t):dr(e,t)},e),e.display.scrollbars.addClass&&l(e.display.wrapper,e.display.scrollbars.addClass)}function yr(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Zo},function(e){Ko?Ko.ops.push(e):e.ownsGroup=Ko={ops:[e],delayedCallbacks:[]}}(e.curOp)}function br(e){!function(e,t){var r=e.ownsGroup;if(r)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r].call(null);for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(r<t.length)}(r)}finally{Ko=null,t(r)}}(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;!function(e){for(var t=e.ops,r=0;r<t.length;r++)!function(e){var t=e.cm,r=t.display;(function(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=dt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=dt(e)+"px",t.scrollbarsClipped=!0)})(t),e.updateMaxLine&&ce(t);e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<r.viewFrom||e.scrollToPos.to.line>=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Jo(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}(t[r]);for(var i=0;i<t.length;i++)!function(e){e.updatedDisplay=e.mustUpdate&&_r(e.cm,e.update)}(t[i]);for(var o=0;o<t.length;o++)!function(e){var t=e.cm,r=t.display;e.updatedDisplay&&er(t);e.barMeasure=pr(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=mt(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+dt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-ft(t)));(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}(t[o]);for(var l=0;l<t.length;l++)!function(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&hr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==a();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r);(e.updatedDisplay||e.startHeight!=t.doc.height)&&mr(t,e.barMeasure);e.updatedDisplay&&Dr(t,e.barMeasure);e.selectionChanged&&Yt(t);t.state.focused&&e.updateInput&&t.display.input.reset(e.typing);r&&Xt(e.cm)}(t[l]);for(var s=0;s<t.length;s++)!function(e){var t=e.cm,r=t.display,i=t.doc;e.updatedDisplay&&Er(t,e.update);null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null);null!=e.scrollTop&&fr(t,e.scrollTop,e.forceScroll);null!=e.scrollLeft&&hr(t,e.scrollLeft,!0,!0);if(e.scrollToPos){var o=function(e,t,r,n){null==n&&(n=0);var i;e.options.lineWrapping||t!=r||(r="before"==(t=t.ch?W(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?W(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,l=Nt(e,t),s=r&&r!=t?Nt(e,r):l,c=or(e,i={left:Math.min(l.left,s.left),top:Math.min(l.top,s.top)-n,right:Math.max(l.left,s.left),bottom:Math.max(l.bottom,s.bottom)+n}),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=c.scrollTop&&(dr(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(hr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}(t,R(i,e.scrollToPos.from),R(i,e.scrollToPos.to),e.scrollToPos.margin);!function(e,t){if(!me(e,"scrollCursorIntoView")){var r=e.display,i=r.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Ji){var a=n("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-st(e.display))+"px;\n height: "+(t.bottom-t.top+dt(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}(t,o)}var a=e.maybeHiddenMarkers,l=e.maybeUnhiddenMarkers;if(a)for(var s=0;s<a.length;++s)a[s].lines.length||pe(a[s],"hide");if(l)for(var c=0;c<l.length;++c)l[c].lines.length&&pe(l[c],"unhide");r.wrapper.offsetHeight&&(i.scrollTop=t.display.scroller.scrollTop);e.changeObjs&&pe(t,"changes",t,e.changeObjs);e.update&&e.update.finish()}(t[s])}(e)})}function wr(e,t){if(e.curOp)return t();yr(e);try{return t()}finally{br(e)}}function xr(e,t){return function(){if(e.curOp)return t.apply(e,arguments);yr(e);try{return t.apply(e,arguments)}finally{br(e)}}}function kr(e){return function(){if(this.curOp)return e.apply(this,arguments);yr(this);try{return e.apply(this,arguments)}finally{br(this)}}}function Cr(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);yr(t);try{return e.apply(this,arguments)}finally{br(t)}}}function Sr(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)So&&ne(e.doc,t)<i.viewTo&&Lr(e);else if(r<=i.viewFrom)So&&ie(e.doc,r+n)>i.viewFrom?Lr(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)Lr(e);else if(t<=i.viewFrom){var o=Mr(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):Lr(e)}else if(r>=i.viewTo){var a=Mr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Lr(e)}else{var l=Mr(e,t,t,-1),s=Mr(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(Ye(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):Lr(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function Tr(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[Ut(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==f(a,r)&&a.push(r)}}}function Lr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Mr(e,t,r,n){var i,o=Ut(e,t),a=e.display.view;if(!So||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var l=e.display.viewFrom,s=0;s<o;s++)l+=a[s].size;if(l!=t){if(n>0){if(o==a.length-1)return null;i=l+a[o].size-t,o++}else i=l-t;t+=i,r+=i}for(;ne(e.doc,r)!=r;){if(o==(n<0?0:a.length-1))return null;r+=n*a[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function Ar(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function Or(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,c(Nr,e))}function Nr(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=De(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(n.line>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength?Ne(t.mode,n.state):null,s=We(e,o,n,!0);l&&(n.state=l),o.styles=s.styles;var c=o.styleClasses,u=s.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var d=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),f=0;!d&&f<a.length;++f)d=a[f]!=o.styles[f];d&&i.push(n.line),o.stateAfter=n.save(),n.nextLine()}else o.text.length<=e.options.maxHighlightLength&&ze(e,o.text,n),o.stateAfter=n.line%5==0?n.save():null,n.nextLine();if(+new Date>r)return Or(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&wr(e,function(){for(var t=0;t<i.length;t++)Tr(e,i[t],"text")})}}function _r(e,r){var n=e.display,i=e.doc;if(r.editorIsHidden)return Lr(e),!1;if(!r.force&&r.visible.from>=n.viewFrom&&r.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Ar(e))return!1;ir(e)&&(Lr(e),r.dims=It(e));var l=i.first+i.size,s=Math.max(r.visible.from-e.options.viewportMargin,i.first),c=Math.min(l,r.visible.to+e.options.viewportMargin);n.viewFrom<s&&s-n.viewFrom<20&&(s=Math.max(i.first,n.viewFrom)),n.viewTo>c&&n.viewTo-c<20&&(c=Math.min(l,n.viewTo)),So&&(s=ne(e.doc,s),c=ie(e.doc,c));var u=s!=n.viewFrom||c!=n.viewTo||n.lastWrapHeight!=r.wrapperHeight||n.lastWrapWidth!=r.wrapperWidth;!function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=Ye(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=Ye(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice(Ut(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(Ye(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,Ut(e,r)))),n.viewTo=r}(e,s,c),n.viewOffset=le(T(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var d=Ar(e);if(!u&&0==d&&!r.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var h=function(e){if(e.hasFocus())return null;var t=a();if(!t||!o(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&o(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return d>4&&(n.lineDiv.style.display="none"),function(e,r,n){function i(t){var r=t.nextSibling;return Vi&&ro&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}var o=e.display,a=e.options.lineNumbers,l=o.lineDiv,s=l.firstChild;for(var c=o.view,u=o.viewFrom,d=0;d<c.length;d++){var h=c[d];if(h.hidden);else if(h.node&&h.node.parentNode==l){for(;s!=h.node;)s=i(s);var p=a&&null!=r&&r<=u&&h.lineNumber;h.changes&&(f(h.changes,"gutter")>-1&&(p=!1),Je(e,h,u,n)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(E(e.options,u)))),s=h.node.nextSibling}else{var m=nt(e,h,u,n);l.insertBefore(m,s)}u+=h.size}for(;s;)s=i(s)}(e,n.updateLineNumbers,r.dims),d>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,function(e){if(e&&e.activeElt&&e.activeElt!=a()&&(e.activeElt.focus(),e.anchorNode&&o(document.body,e.anchorNode)&&o(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(h),t(n.cursorDiv),t(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,u&&(n.lastWrapHeight=r.wrapperHeight,n.lastWrapWidth=r.wrapperWidth,Or(e,400)),n.updateLineNumbers=null,!0}function Er(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=ft(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+ct(e.display)-ht(e),r.top)}),t.visible=rr(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&_r(e,t);n=!1){er(e);var i=pr(e);Kt(e),mr(e,i),Dr(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Wr(e,t){var r=new Jo(e,t);if(_r(e,r)){er(e),Er(e,r);var n=pr(e);Kt(e),mr(e,n),Dr(e,n),r.finish()}}function Fr(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Dr(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+dt(e)+"px"}function zr(e){var r=e.display.gutters,i=e.options.gutters;t(r);for(var o=0;o<i.length;++o){var a=i[o],l=r.appendChild(n("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=l,l.style.width=(e.display.lineNumWidth||1)+"px")}r.style.display=o?"":"none",Fr(e)}function Pr(e){var t=f(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function Hr(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}}function Ir(e){var t=Hr(e);return t.x*=ea,t.y*=ea,t}function Rr(e,t){var r=Hr(t),n=r.x,i=r.y,o=e.display,a=o.scroller,l=a.scrollWidth>a.clientWidth,s=a.scrollHeight>a.clientHeight;if(n&&l||i&&s){if(i&&ro&&Vi)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var d=0;d<u.length;d++)if(u[d].node==c){e.display.currentWheelTarget=c;break e}if(n&&!Ri&&!Yi&&null!=ea)return i&&s&&dr(e,Math.max(0,a.scrollTop+i*ea)),hr(e,Math.max(0,a.scrollLeft+n*ea)),(!i||i&&s)&&be(t),void(o.wheelStartX=null);if(i&&null!=ea){var f=i*ea,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;f<0?h=Math.max(0,h+f-50):p=Math.min(e.doc.height,p+f+50),Wr(e,{top:h,bottom:p})}Qo<20&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=n,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,r=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,r&&(ea=(ea*Qo+r)/(Qo+1),++Qo)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function jr(e,t){var r=e[t];e.sort(function(e,t){return F(e.from(),t.from())}),t=f(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(F(o.to(),i.from())>=0){var a=H(o.from(),i.from()),l=P(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new ra(s?l:a,s?a:l))}}return new ta(e,t)}function Br(e,t){return new ta([new ra(e,t||e)],0)}function qr(e){return e.text?W(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ur(e,t){if(F(e,t.from)<0)return e;if(F(e,t.to)<=0)return qr(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=qr(t).ch-t.to.ch),W(r,n)}function Kr(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new ra(Ur(i.anchor,t),Ur(i.head,t)))}return jr(r,e.sel.primIndex)}function Vr(e,t,r){return e.line==t.line?W(r.line,e.ch-t.ch+r.ch):W(r.line+(e.line-t.line),e.ch)}function Gr(e){e.doc.mode=Ae(e.options,e.doc.modeOption),$r(e)}function $r(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,Or(e,100),e.state.modeGen++,e.curOp&&Sr(e)}function Yr(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Xr(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){!function(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),G(e),$(e,r);var i=n?n(e):1;i!=e.height&&A(e,i)}(e,r,i,n),Xe(e,"change",e,t)}function a(e,t){for(var r=[],o=e;o<t;++o)r.push(new jo(c[o],i(o),n));return r}var l=t.from,s=t.to,c=t.text,u=T(e,l.line),d=T(e,s.line),f=m(c),h=i(c.length-1),p=s.line-l.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(Yr(e,t)){var g=a(0,c.length-1);o(d,d.text,h),p&&e.remove(l.line,p),g.length&&e.insert(l.line,g)}else if(u==d)if(1==c.length)o(u,u.text.slice(0,l.ch)+f+u.text.slice(s.ch),h);else{var v=a(1,c.length-1);v.push(new jo(f+u.text.slice(s.ch),h,n)),o(u,u.text.slice(0,l.ch)+c[0],i(0)),e.insert(l.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,l.ch)+c[0]+d.text.slice(s.ch),i(0)),e.remove(l.line+1,p);else{o(u,u.text.slice(0,l.ch)+c[0],i(0)),o(d,f+d.text.slice(s.ch),h);var y=a(1,c.length-1);p>1&&e.remove(l.line+1,p-1),e.insert(l.line+1,y)}Xe(e,"change",e,t)}function Zr(e,t,r){function n(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var l=e.linked[a];if(l.doc!=i){var s=o&&l.sharedHist;r&&!s||(t(l.doc,s),n(l.doc,e,s))}}}n(e,null,!0)}function Jr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Bt(e),Gr(e),Qr(e),e.options.lineWrapping||ce(e),e.options.mode=t.modeOption,Sr(e)}function Qr(e){("rtl"==e.doc.direction?l:co)(e.display.lineDiv,"CodeMirror-rtl")}function en(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function tn(e,t){var r={from:z(t.from),to:qr(t),text:L(e,t.from,t.to)};return ln(e,r,t.from.line,t.to.line+1),Zr(e,function(e){return ln(e,r,t.from.line,t.to.line+1)},!0),r}function rn(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function nn(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>l-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(rn(e.done),m(e.done)):e.done.length&&!m(e.done).ranges?m(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),m(e.done)):void 0}(i,i.lastOp==n)))a=m(o.changes),0==F(t.from,t.to)&&0==F(t.from,a.to)?a.to=qr(t):o.changes.push(tn(e,t));else{var s=m(i.done);for(s&&s.ranges||an(e.sel,i.done),o={changes:[tn(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=l,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,a||pe(e,"historyAdded")}function on(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,m(i.done),t))?i.done[i.done.length-1]=t:an(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&rn(i.undone)}function an(e,t){var r=m(t);r&&r.ranges&&r.equals(e)||t.push(e)}function ln(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function sn(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function cn(e,t){var r=function(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(sn(r[i]));return n}(e,t),n=K(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],a=n[i];if(o&&a)e:for(var l=0;l<a.length;++l){for(var s=a[l],c=0;c<o.length;++c)if(o[c].marker==s.marker)continue e;o.push(s)}else a&&(r[i]=a)}return r}function un(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?ta.prototype.deepCopy.call(o):o);else{var a=o.changes,l=[];n.push({changes:l});for(var s=0;s<a.length;++s){var c=a[s],u=void 0;if(l.push({from:c.from,to:c.to,text:c.text}),t)for(var d in c)(u=d.match(/^spans_(\d+)$/))&&f(t,Number(u[1]))>-1&&(m(l)[d]=c[d],delete c[d])}}}return n}function dn(e,t,r,n){if(n){var i=e.anchor;if(r){var o=F(t,i)<0;o!=F(r,i)<0?(i=t,t=r):o!=F(t,r)<0&&(t=r)}return new ra(i,t)}return new ra(r||t,t)}function fn(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),vn(e,new ta([dn(e.sel.primary(),t,r,i)],0),n)}function hn(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)n[o]=dn(e.sel.ranges[o],t[o],null,i);vn(e,jr(n,e.sel.primIndex),r)}function pn(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,vn(e,jr(i,e.sel.primIndex),n)}function mn(e,t,r,n){vn(e,Br(t,r),n)}function gn(e,t,r){var n=e.history.done,i=m(n);i&&i.ranges?(n[n.length-1]=t,yn(e,t,r)):vn(e,t,r)}function vn(e,t,r){yn(e,t,r),on(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function yn(e,t,r){(ve(e,"beforeSelectionChange")||e.cm&&ve(e.cm,"beforeSelectionChange"))&&(t=function(e,t,r){var n={ranges:t.ranges,update:function(t){this.ranges=[];for(var r=0;r<t.length;r++)this.ranges[r]=new ra(R(e,t[r].anchor),R(e,t[r].head))},origin:r&&r.origin};return pe(e,"beforeSelectionChange",e,n),e.cm&&pe(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?jr(n.ranges,n.ranges.length-1):t}(e,t,r));bn(e,xn(e,t,r&&r.bias||(F(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||lr(e.cm)}function bn(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,ge(e.cm)),Xe(e,"cursorActivity",e))}function wn(e){bn(e,xn(e,e.sel,null,!1))}function xn(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],l=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=Cn(e,a.anchor,l&&l.anchor,r,n),c=Cn(e,a.head,l&&l.head,r,n);(i||s!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new ra(s,c))}return i?jr(i,t.primIndex):t}function kn(e,t,r,n,i){var o=T(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var l=o.markedSpans[a],s=l.marker;if((null==l.from||(s.inclusiveLeft?l.from<=t.ch:l.from<t.ch))&&(null==l.to||(s.inclusiveRight?l.to>=t.ch:l.to>t.ch))){if(i&&(pe(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(r){var c=s.find(n<0?1:-1),u=void 0;if((n<0?s.inclusiveRight:s.inclusiveLeft)&&(c=Sn(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=F(c,r))&&(n<0?u<0:u>0))return kn(e,c,t,n,i)}var d=s.find(n<0?-1:1);return(n<0?s.inclusiveLeft:s.inclusiveRight)&&(d=Sn(e,d,n,d.line==t.line?o:null)),d?kn(e,d,t,n,i):null}}return t}function Cn(e,t,r,n,i){var o=n||1,a=kn(e,t,r,o,i)||!i&&kn(e,t,r,o,!0)||kn(e,t,r,-o,i)||!i&&kn(e,t,r,-o,!0);return a||(e.cantEdit=!0,W(e.first,0))}function Sn(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?R(e,W(t.line-1)):null:r>0&&t.ch==(n||T(e,t.line)).text.length?t.line<e.first+e.size-1?W(t.line+1,0):null:new W(t.line,t.ch+r)}function Tn(e){e.setSelection(W(e.firstLine(),0),W(e.lastLine()),vo)}function Ln(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=R(e,t)),r&&(n.to=R(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),pe(e,"beforeChange",e,n),e.cm&&pe(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function Mn(e,t,r){if(e.cm){if(!e.cm.curOp)return xr(e.cm,Mn)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(ve(e,"beforeChange")||e.cm&&ve(e.cm,"beforeChange"))||(t=Ln(e,t,!0))){var n=Co&&!r&&function(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&-1!=f(n,r)||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var a=n[o],l=a.find(0),s=0;s<i.length;++s){var c=i[s];if(!(F(c.to,l.from)<0||F(c.from,l.to)>0)){var u=[s,1],d=F(c.from,l.from),h=F(c.to,l.to);(d<0||!a.inclusiveLeft&&!d)&&u.push({from:c.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:l.to,to:c.to}),i.splice.apply(i,u),s+=u.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)An(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else An(e,t)}}function An(e,t){if(1!=t.text.length||""!=t.text[0]||0!=F(t.from,t.to)){var r=Kr(e,t);nn(e,t,r,e.cm?e.cm.curOp.id:NaN),_n(e,t,r,K(e,t));var n=[];Zr(e,function(e,r){r||-1!=f(n,e.history)||(Dn(e.history,t),n.push(e.history)),_n(e,t,null,K(e,t))})}}function On(e,t,r){if(!e.cm||!e.cm.state.suppressEdits||r){for(var n,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,l="undo"==t?i.undone:i.done,s=0;s<a.length&&(n=a[s],r?!n.ranges||n.equals(e.sel):n.ranges);s++);if(s!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;(n=a.pop()).ranges;){if(an(n,l),r&&!n.equals(e.sel))return void vn(e,n,{clearRedo:!1});o=n}var c=[];an(o,l),l.push({changes:c,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;for(var u=ve(e,"beforeChange")||e.cm&&ve(e.cm,"beforeChange"),d=function(r){var i=n.changes[r];if(i.origin=t,u&&!Ln(e,i,!1))return a.length=0,{};c.push(tn(e,i));var o=r?Kr(e,i):m(a);_n(e,i,o,cn(e,i)),!r&&e.cm&&e.cm.scrollIntoView({from:i.from,to:qr(i)});var l=[];Zr(e,function(e,t){t||-1!=f(l,e.history)||(Dn(e.history,i),l.push(e.history)),_n(e,i,null,cn(e,i))})},h=n.changes.length-1;h>=0;--h){var p=d(h);if(p)return p.v}}}}function Nn(e,t){if(0!=t&&(e.first+=t,e.sel=new ta(g(e.sel.ranges,function(e){return new ra(W(e.anchor.line+t,e.anchor.ch),W(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Sr(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)Tr(e.cm,n,"gutter")}}function _n(e,t,r,n){if(e.cm&&!e.cm.curOp)return xr(e.cm,_n)(e,t,r,n);if(t.to.line<e.first)Nn(e,t.text.length-1-(t.to.line-t.from.line));else if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Nn(e,i),t={from:W(e.first,0),to:W(t.to.line+i,t.to.ch),text:[m(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:W(o,T(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=L(e,t.from,t.to),r||(r=Kr(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=O(re(T(n,o.line))),n.iter(s,a.line+1,function(e){if(e==i.maxLine)return l=!0,!0}));n.sel.contains(t.from,t.to)>-1&&ge(e);Xr(n,t,r,jt(e)),e.options.lineWrapping||(n.iter(s,o.line+t.text.length,function(e){var t=se(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)}),l&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var r=e.first,n=t-1;n>r;n--){var i=T(e,n).stateAfter;if(i&&(!(i instanceof Ho)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}})(n,o.line),Or(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?Sr(e):o.line!=a.line||1!=t.text.length||Yr(e.doc,t)?Sr(e,o.line,a.line+1,c):Tr(e,o.line,"text");var u=ve(e,"changes"),d=ve(e,"change");if(d||u){var f={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};d&&Xe(e,"change",e,f),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}(e.cm,t,n):Xr(e,t,n),yn(e,r,vo)}}function En(e,t,r,n,i){if(n||(n=r),F(n,r)<0){var o;r=(o=[n,r])[0],n=o[1]}"string"==typeof t&&(t=e.splitLines(t)),Mn(e,{from:r,to:n,text:t,origin:i})}function Wn(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Fn(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var l=0;l<o.ranges.length;l++)Wn(o.ranges[l].anchor,t,r,n),Wn(o.ranges[l].head,t,r,n)}else{for(var s=0;s<o.changes.length;++s){var c=o.changes[s];if(r<c.from.line)c.from=W(c.from.line+n,c.from.ch),c.to=W(c.to.line+n,c.to.ch);else if(t<=c.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function Dn(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Fn(e.done,r,n,i),Fn(e.undone,r,n,i)}function zn(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=T(e,I(e,t)):i=O(t),null==i?null:(n(o,i)&&e.cm&&Tr(e.cm,i,r),o)}function Pn(e){this.lines=e,this.parent=null;for(var t=0,r=0;r<e.length;++r)e[r].parent=this,t+=e[r].height;this.height=t}function Hn(e){this.children=e;for(var t=0,r=0,n=0;n<e.length;++n){var i=e[n];t+=i.chunkSize(),r+=i.height,i.parent=this}this.size=t,this.height=r,this.parent=null}function In(e,t,r){le(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&ar(e,r)}function Rn(e,t,r,n,o){if(n&&n.shared)return function(e,t,r,n,i){(n=u(n)).shared=!1;var o=[Rn(e,t,r,n,i)],a=o[0],l=n.widgetNode;return Zr(e,function(e){l&&(n.widgetNode=l.cloneNode(!0)),o.push(Rn(e,R(e,t),R(e,r),n,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;a=m(o)}),new aa(o,a)}(e,t,r,n,o);if(e.cm&&!e.cm.curOp)return xr(e.cm,Rn)(e,t,r,n,o);var a=new oa(e,o),l=F(t,r);if(n&&u(n,a,!1),l>0||0==l&&!1!==a.clearWhenEmpty)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(te(e,t.line,t,r,a)||t.line!=r.line&&te(e,r.line,t,r,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");So=!0}a.addToHistory&&nn(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,c=t.line,d=e.cm;if(e.iter(c,r.line+1,function(e){d&&a.collapsed&&!d.options.lineWrapping&&re(e)==d.display.maxLine&&(s=!0),a.collapsed&&c!=t.line&&A(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new B(a,c==t.line?t.ch:null,c==r.line?r.ch:null)),++c}),a.collapsed&&e.iter(t.line,r.line+1,function(t){oe(e,t)&&A(t,0)}),a.clearOnEnter&&Ao(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(Co=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++ia,a.atomic=!0),d){if(s&&(d.curOp.updateMaxLine=!0),a.collapsed)Sr(d,t.line,r.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var f=t.line;f<=r.line;f++)Tr(d,f,"text");a.atomic&&wn(d.doc),Xe(d,"markerAdded",d,a)}return a}function jn(e){return e.findMarks(W(e.first,0),e.clipPos(W(e.lastLine())),function(e){return e.parent})}function Bn(e){for(var t=function(t){var r=e[t],n=[r.primary.doc];Zr(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];-1==f(n,o.doc)&&(o.parent=null,r.markers.splice(i--,1))}},r=0;r<e.length;r++)t(r)}function qn(e){var t=this;if(Un(t),!me(t,e)&&!lt(t.display,e)){be(e),Ui&&(ca=+new Date);var r=qt(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),a=0,l=function(e,n){if(!t.options.allowDropFileTypes||-1!=f(t.options.allowDropFileTypes,e.type)){var l=new FileReader;l.onload=xr(t,function(){var e=l.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[n]=e,++a==i){var s={from:r=R(t.doc,r),to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Mn(t.doc,s),gn(t.doc,Br(r,qr(s)))}}),l.readAsText(e)}},s=0;s<i;++s)l(n[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var u;if(t.state.draggingText&&!t.state.draggingText.copy&&(u=t.listSelections()),yn(t.doc,Br(r,r)),u)for(var d=0;d<u.length;++d)En(t.doc,"",u[d].anchor,u[d].head,"drag");t.replaceSelection(c,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Un(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Kn(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}function Vn(){ua||(!function(){var e;Ao(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Kn(Gn)},100))}),Ao(window,"blur",function(){return Kn(Qt)})}(),ua=!0)}function Gn(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function $n(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var r,n,i,o,a=0;a<t.length-1;a++){var l=t[a];if(/^(cmd|meta|m)$/i.test(l))o=!0;else if(/^a(lt)?$/i.test(l))r=!0;else if(/^(c|ctrl|control)$/i.test(l))n=!0;else{if(!/^s(hift)?$/i.test(l))throw new Error("Unrecognized modifier name: "+l);i=!0}}return r&&(e="Alt-"+e),n&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function Yn(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=g(r.split(" "),$n),o=0;o<i.length;o++){var a=void 0,l=void 0;o==i.length-1?(l=i.join(" "),a=n):(l=i.slice(0,o+1).join(" "),a="...");var s=t[l];if(s){if(s!=a)throw new Error("Inconsistent bindings for "+l)}else t[l]=a}delete e[r]}for(var c in t)e[c]=t[c];return e}function Xn(e,t,r,n){var i=(t=ei(t)).call?t.call(e,n):t[e];if(!1===i)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return Xn(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=Xn(e,t.fallthrough[o],r,n);if(a)return a}}}function Zn(e){var t="string"==typeof e?e:da[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function Jn(e,t,r){var n=e;return t.altKey&&"Alt"!=n&&(e="Alt-"+e),(lo?t.metaKey:t.ctrlKey)&&"Ctrl"!=n&&(e="Ctrl-"+e),(lo?t.ctrlKey:t.metaKey)&&"Cmd"!=n&&(e="Cmd-"+e),!r&&t.shiftKey&&"Shift"!=n&&(e="Shift-"+e),e}function Qn(e,t){if(Yi&&34==e.keyCode&&e.char)return!1;var r=da[e.keyCode];return null!=r&&!e.altGraphKey&&Jn(r,e,t)}function ei(e){return"string"==typeof e?ma[e]:e}function ti(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&F(o.from,m(n).to)<=0;){var a=n.pop();if(F(a.from,o.from)<0){o.from=a.from;break}}n.push(o)}wr(e,function(){for(var t=n.length-1;t>=0;t--)En(e.doc,"",n[t].from,n[t].to,"+delete");lr(e)})}function ri(e,t,r){var n=C(e.text,t+r,r);return n<0||n>e.text.length?null:n}function ni(e,t,r){var n=ri(e,t.ch,r);return null==n?null:new W(t.line,n,r<0?"after":"before")}function ii(e,t,r,n,i){if(e){var o=de(r,t.doc.direction);if(o){var a,l=i<0?m(o):o[0],s=i<0==(1==l.level)?"after":"before";if(l.level>0||"rtl"==t.doc.direction){var c=vt(t,r);a=i<0?r.text.length-1:0;var u=yt(t,c,a).top;a=S(function(e){return yt(t,c,e).top==u},i<0==(1==l.level)?l.from:l.to-1,a),"before"==s&&(a=ri(r,a,1))}else a=i<0?l.to:l.from;return new W(n,a,s)}}return new W(n,i<0?r.text.length:0,i<0?"before":"after")}function oi(e,t){var r=T(e.doc,t),n=re(r);return n!=r&&(t=O(n)),ii(!0,e,n,t,1)}function ai(e,t){var r=T(e.doc,t),n=function(e){for(var t;t=ee(e);)e=t.find(1,!0).line;return e}(r);return n!=r&&(t=O(n)),ii(!0,e,r,t,-1)}function li(e,t){var r=oi(e,t.line),n=T(e.doc,r.line),i=de(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\S/)),a=t.line==r.line&&t.ch<=o&&t.ch;return W(r.line,a?0:o,r.sticky)}return r}function si(e,t,r){if("string"==typeof t&&!(t=ga[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=go}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}function ci(e,t,r,n){var i=e.state.keySeq;if(i){if(Zn(t))return"handled";if(/\'$/.test(t)?e.state.keySeq=null:va.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),ui(e,i+" "+t,r,n))return!0}return ui(e,t,r,n)}function ui(e,t,r,n){var i=function(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Xn(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Xn(t,e.options.extraKeys,r,e)||Xn(t,e.options.keyMap,r,e)}(e,t,n);return"multi"==i&&(e.state.keySeq=t),"handled"==i&&Xe(e,"keyHandled",e,t,r),"handled"!=i&&"multi"!=i||(be(r),Yt(e)),!!i}function di(e,t){var r=Qn(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?ci(e,"Shift-"+r,t,function(t){return si(e,t,!0)})||ci(e,r,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return si(e,t)}):ci(e,r,t,function(t){return si(e,t)}))}function fi(e){if(this.curOp.focus=a(),!me(this,e)){Ui&&Ki<11&&27==e.keyCode&&(e.returnValue=!1);var t=e.keyCode;this.display.shift=16==t||e.shiftKey;var r=di(this,e);Yi&&(ya=r?t:null,!r&&88==t&&!Eo&&(ro?e.metaKey:e.ctrlKey)&&this.replaceSelection("",null,"cut")),18!=t||/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)||function(e){function t(e){18!=e.keyCode&&e.altKey||(co(r,"CodeMirror-crosshair"),he(document,"keyup",t),he(document,"mouseover",t))}var r=e.display.lineDiv;l(r,"CodeMirror-crosshair");Ao(document,"keyup",t),Ao(document,"mouseover",t)}(this)}}function hi(e){16==e.keyCode&&(this.doc.sel.shift=!1),me(this,e)}function pi(e){if(!(lt(this.display,e)||me(this,e)||e.ctrlKey&&!e.altKey||ro&&e.metaKey)){var t=e.keyCode,r=e.charCode;if(Yi&&t==ya)return ya=null,void be(e);if(!Yi||e.which&&!(e.which<10)||!di(this,e)){var n=String.fromCharCode(null==r?t:r);"\b"!=n&&(function(e,t,r){return ci(e,"'"+r+"'",t,function(t){return si(e,t,!0)})}(this,e,n)||this.display.input.onKeyPress(e))}}}function mi(e){var t=this.display;if(!(me(this,e)||t.activeTouch&&t.input.supportsTouch()))if(t.input.ensurePolled(),t.shift=e.shiftKey,lt(t,e))Vi||(t.scroller.draggable=!1,setTimeout(function(){return t.scroller.draggable=!0},100));else if(!yi(this,e)){var r=qt(this,e),n=Se(e),i=r?function(e,t){var r=+new Date;return xa&&xa.compare(r,e,t)?(wa=xa=null,"triple"):wa&&wa.compare(r,e,t)?(xa=new ba(r,e,t),wa=null,"double"):(wa=new ba(r,e,t),xa=null,"single")}(r,n):"single";window.focus(),1==n&&this.state.selectingText&&this.state.selectingText(e),r&&function(e,t,r,n,i){var o="Click";"double"==n?o="Double"+o:"triple"==n&&(o="Triple"+o);return o=(1==t?"Left":2==t?"Middle":"Right")+o,ci(e,Jn(o,i),i,function(t){if("string"==typeof t&&(t=ga[t]),!t)return!1;var n=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n=t(e,r)!=go}finally{e.state.suppressEdits=!1}return n})}(this,n,r,i,e)||(1==n?r?function(e,t,r,n){Ui?setTimeout(c(Xt,e),0):e.curOp.focus=a();var i,o=function(e,t,r){var n=e.getOption("configureMouse"),i=n?n(e,t,r):{};if(null==i.unit){var o=no?r.shiftKey&&r.metaKey:r.altKey;i.unit=o?"rectangle":"single"==t?"char":"double"==t?"word":"line"}(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||r.shiftKey);null==i.addNew&&(i.addNew=ro?r.metaKey:r.ctrlKey);null==i.moveOnDrag&&(i.moveOnDrag=!(ro?r.altKey:r.ctrlKey));return i}(e,r,n),l=e.doc.sel;e.options.dragDrop&&Oo&&!e.isReadOnly()&&"single"==r&&(i=l.contains(t))>-1&&(F((i=l.ranges[i]).from(),t)<0||t.xRel>0)&&(F(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,a=xr(e,function(t){Vi&&(i.scroller.draggable=!1),e.state.draggingText=!1,he(document,"mouseup",a),he(document,"mousemove",l),he(i.scroller,"dragstart",s),he(i.scroller,"drop",a),o||(be(t),n.addNew||fn(e.doc,r,null,null,n.extend),Vi||Ui&&9==Ki?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),l=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},s=function(){return o=!0};Vi&&(i.scroller.draggable=!0);e.state.draggingText=a,a.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop();Ao(document,"mouseup",a),Ao(document,"mousemove",l),Ao(i.scroller,"dragstart",s),Ao(i.scroller,"drop",a),Zt(e),setTimeout(function(){return i.input.focus()},20)}(e,n,t,o):function(e,t,r,n){function i(t){if(0!=F(v,t))if(v=t,"rectangle"==n.unit){for(var i=[],o=e.options.tabSize,a=d(T(c,r.line).text,r.ch,o),l=d(T(c,t.line).text,t.ch,o),s=Math.min(a,l),m=Math.max(a,l),g=Math.min(r.line,t.line),y=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=y;g++){var b=T(c,g).text,w=h(b,s,o);s==m?i.push(new ra(W(g,w),W(g,w))):b.length>w&&i.push(new ra(W(g,w),W(g,h(b,m,o))))}i.length||i.push(new ra(r,r)),vn(c,jr(p.ranges.slice(0,f).concat(i),f),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var x,k=u,C=gi(e,t,n.unit),S=k.anchor;F(C.anchor,S)>0?(x=C.head,S=H(k.from(),C.anchor)):(x=C.anchor,S=P(k.to(),C.head));var L=p.ranges.slice(0);L[f]=function(e,t){var r=t.anchor,n=t.head,i=T(e.doc,r.line);if(0==F(r,n)&&r.sticky==n.sticky)return t;var o=de(i);if(!o)return t;var a=ue(o,r.ch,r.sticky),l=o[a];if(l.from!=r.ch&&l.to!=r.ch)return t;var s=a+(l.from==r.ch==(1!=l.level)?0:1);if(0==s||s==o.length)return t;var c;if(n.line!=r.line)c=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var u=ue(o,n.ch,n.sticky),d=u-a||(n.ch-r.ch)*(1==l.level?-1:1);c=u==s-1||u==s?d<0:d>0}var f=o[s+(c?-1:0)],h=c==(1==f.level),p=h?f.from:f.to,m=h?"after":"before";return r.ch==p&&r.sticky==m?t:new ra(new W(r.line,p,m),n)}(e,new ra(R(c,S),x)),vn(c,jr(L,f),yo)}}function o(t){var r=++b,l=qt(e,t,!0,"rectangle"==n.unit);if(l)if(0!=F(l,v)){e.curOp.focus=a(),i(l);var u=rr(s,c);(l.line>=u.to||l.line<u.from)&&setTimeout(xr(e,function(){b==r&&o(t)}),150)}else{var d=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;d&&setTimeout(xr(e,function(){b==r&&(s.scroller.scrollTop+=d,o(t))}),50)}}function l(t){e.state.selectingText=!1,b=1/0,be(t),s.input.focus(),he(document,"mousemove",w),he(document,"mouseup",x),c.history.lastSelOrigin=null}var s=e.display,c=e.doc;be(t);var u,f,p=c.sel,m=p.ranges;n.addNew&&!n.extend?(f=c.sel.contains(r),u=f>-1?m[f]:new ra(r,r)):(u=c.sel.primary(),f=c.sel.primIndex);if("rectangle"==n.unit)n.addNew||(u=new ra(r,r)),r=qt(e,t,!0,!0),f=-1;else{var g=gi(e,r,n.unit);u=n.extend?dn(u,g.anchor,g.head,n.extend):g}n.addNew?-1==f?(f=m.length,vn(c,jr(m.concat([u]),f),{scroll:!1,origin:"*mouse"})):m.length>1&&m[f].empty()&&"char"==n.unit&&!n.extend?(vn(c,jr(m.slice(0,f).concat(m.slice(f+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):pn(c,f,u,yo):(f=0,vn(c,new ta([u],0),yo),p=c.sel);var v=r;var y=s.wrapper.getBoundingClientRect(),b=0;var w=xr(e,function(e){Se(e)?o(e):l(e)}),x=xr(e,l);e.state.selectingText=x,Ao(document,"mousemove",w),Ao(document,"mouseup",x)}(e,n,t,o)}(this,r,i,e):Ce(e)==t.scroller&&be(e):2==n?(r&&fn(this.doc,r),setTimeout(function(){return t.input.focus()},20)):3==n&&(so?bi(this,e):Zt(this)))}}function gi(e,t,r){if("char"==r)return new ra(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new ra(W(t.line,0),R(e.doc,W(t.line+1,0)));var n=r(e,t);return new ra(n.from,n.to)}function vi(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&be(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!ve(e,r))return xe(t);o-=l.top-a.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var c=a.gutters.childNodes[s];if(c&&c.getBoundingClientRect().right>=i){return pe(e,r,e,N(e.doc,o),e.options.gutters[s],t),xe(t)}}}function yi(e,t){return vi(e,t,"gutterClick",!0)}function bi(e,t){lt(e.display,t)||function(e,t){if(!ve(e,"gutterContextMenu"))return!1;return vi(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function wi(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Ct(e)}function xi(e){zr(e),Sr(e),nr(e)}function ki(e,t,r){if(!t!=!(r&&r!=ka)){var n=e.display.dragFunctions,i=t?Ao:he;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function Ci(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(co(e.display.wrapper,"CodeMirror-wrap"),ce(e)),Bt(e),Sr(e),Ct(e),setTimeout(function(){return mr(e)},100)}function Si(e,t){var o=this;if(!(this instanceof Si))return new Si(e,t);this.options=t=t?u(t):{},u(Ca,t,!1),Pr(t);var a=t.value;"string"==typeof a&&(a=new sa(a,t.mode,null,t.lineSeparator,t.direction)),this.doc=a;var l=new Si.inputStyles[t.inputStyle](this),s=this.display=new function(e,t,r){this.input=r,this.scrollbarFiller=n("div",null,"CodeMirror-scrollbar-filler"),this.scrollbarFiller.setAttribute("cm-not-content","true"),this.gutterFiller=n("div",null,"CodeMirror-gutter-filler"),this.gutterFiller.setAttribute("cm-not-content","true"),this.lineDiv=i("div",null,"CodeMirror-code"),this.selectionDiv=n("div",null,null,"position: relative; z-index: 1"),this.cursorDiv=n("div",null,"CodeMirror-cursors"),this.measure=n("div",null,"CodeMirror-measure"),this.lineMeasure=n("div",null,"CodeMirror-measure"),this.lineSpace=i("div",[this.measure,this.lineMeasure,this.selectionDiv,this.cursorDiv,this.lineDiv],null,"position: relative; outline: none");var o=i("div",[this.lineSpace],"CodeMirror-lines");this.mover=n("div",[o],null,"position: relative"),this.sizer=n("div",[this.mover],"CodeMirror-sizer"),this.sizerWidth=null,this.heightForcer=n("div",null,null,"position: absolute; height: "+mo+"px; width: 1px;"),this.gutters=n("div",null,"CodeMirror-gutters"),this.lineGutter=null,this.scroller=n("div",[this.sizer,this.heightForcer,this.gutters],"CodeMirror-scroll"),this.scroller.setAttribute("tabIndex","-1"),this.wrapper=n("div",[this.scrollbarFiller,this.gutterFiller,this.scroller],"CodeMirror"),Ui&&Ki<8&&(this.gutters.style.zIndex=-1,this.scroller.style.paddingRight=0),Vi||Ri&&to||(this.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(this.wrapper):e(this.wrapper)),this.viewFrom=this.viewTo=t.first,this.reportedViewFrom=this.reportedViewTo=t.first,this.view=[],this.renderedView=null,this.externalMeasured=null,this.viewOffset=0,this.lastWrapHeight=this.lastWrapWidth=0,this.updateLineNumbers=null,this.nativeBarWidth=this.barHeight=this.barWidth=0,this.scrollbarsClipped=!1,this.lineNumWidth=this.lineNumInnerWidth=this.lineNumChars=null,this.alignWidgets=!1,this.cachedCharWidth=this.cachedTextHeight=this.cachedPaddingH=null,this.maxLine=null,this.maxLineLength=0,this.maxLineChanged=!1,this.wheelDX=this.wheelDY=this.wheelStartX=this.wheelStartY=null,this.shift=!1,this.selForContextMenu=null,this.activeTouch=null,r.init(this)}(e,a,l);s.wrapper.CodeMirror=this,zr(this),wi(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),vr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new fo,keySeq:null,specialChars:null},t.autofocus&&!to&&s.input.focus(),Ui&&Ki<11&&setTimeout(function(){return o.display.input.reset(!0)},20),function(e){function t(){o.activeTouch&&(a=setTimeout(function(){return o.activeTouch=null},1e3),(l=o.activeTouch).end=+new Date)}function i(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}var o=e.display;Ao(o.scroller,"mousedown",xr(e,mi)),Ui&&Ki<11?Ao(o.scroller,"dblclick",xr(e,function(t){if(!me(e,t)){var r=qt(e,t);if(r&&!yi(e,t)&&!lt(e.display,t)){be(t);var n=e.findWordAt(r);fn(e.doc,n.anchor,n.head)}}})):Ao(o.scroller,"dblclick",function(t){return me(e,t)||be(t)});so||Ao(o.scroller,"contextmenu",function(t){return bi(e,t)});var a,l={end:0};Ao(o.scroller,"touchstart",function(t){if(!me(e,t)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(t)&&!yi(e,t)){o.input.ensurePolled(),clearTimeout(a);var r=+new Date;o.activeTouch={start:r,moved:!1,prev:r-l.end<=300?l:null},1==t.touches.length&&(o.activeTouch.left=t.touches[0].pageX,o.activeTouch.top=t.touches[0].pageY)}}),Ao(o.scroller,"touchmove",function(){o.activeTouch&&(o.activeTouch.moved=!0)}),Ao(o.scroller,"touchend",function(r){var n=o.activeTouch;if(n&&!lt(o,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var a,l=e.coordsChar(o.activeTouch,"page");a=!n.prev||i(n,n.prev)?new ra(l,l):!n.prev.prev||i(n,n.prev.prev)?e.findWordAt(l):new ra(W(l.line,0),R(e.doc,W(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),be(r)}t()}),Ao(o.scroller,"touchcancel",t),Ao(o.scroller,"scroll",function(){o.scroller.clientHeight&&(dr(e,o.scroller.scrollTop),hr(e,o.scroller.scrollLeft,!0),pe(e,"scroll",e))}),Ao(o.scroller,"mousewheel",function(t){return Rr(e,t)}),Ao(o.scroller,"DOMMouseScroll",function(t){return Rr(e,t)}),Ao(o.wrapper,"scroll",function(){return o.wrapper.scrollTop=o.wrapper.scrollLeft=0}),o.dragFunctions={enter:function(t){me(e,t)||ke(t)},over:function(t){me(e,t)||(!function(e,t){var i=qt(e,t);if(i){var o=document.createDocumentFragment();Gt(e,i,o),e.display.dragCursor||(e.display.dragCursor=n("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),r(e.display.dragCursor,o)}}(e,t),ke(t))},start:function(t){return function(e,t){if(Ui&&(!e.state.draggingText||+new Date-ca<100))ke(t);else if(!me(e,t)&&!lt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!Xi)){var r=n("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",Yi&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),Yi&&r.parentNode.removeChild(r)}}(e,t)},drop:xr(e,qn),leave:function(t){me(e,t)||Un(e)}};var s=o.input.getField();Ao(s,"keyup",function(t){return hi.call(e,t)}),Ao(s,"keydown",xr(e,fi)),Ao(s,"keypress",xr(e,pi)),Ao(s,"focus",function(t){return Jt(e,t)}),Ao(s,"blur",function(t){return Qt(e,t)})}(this),Vn(),yr(this),this.curOp.forceUpdate=!0,Jr(this,a),t.autofocus&&!to||this.hasFocus()?setTimeout(c(Jt,this),20):Qt(this);for(var d in Sa)Sa.hasOwnProperty(d)&&Sa[d](o,t[d],ka);ir(this),t.finishInit&&t.finishInit(this);for(var f=0;f<Ta.length;++f)Ta[f](o);br(this),Vi&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(s.lineDiv).textRendering&&(s.lineDiv.style.textRendering="auto")}function Ti(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=De(e,t).state:r="prev");var a=e.options.tabSize,l=T(o,t),s=d(l.text,null,a);l.stateAfter&&(l.stateAfter=null);var c,u=l.text.match(/^\s*/)[0];if(n||/\S/.test(l.text)){if("smart"==r&&((c=o.mode.indent(i,l.text.slice(u.length),l.text))==go||c>150)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?d(T(o,t-1).text,null,a):0:"add"==r?c=s+e.options.indentUnit:"subtract"==r?c=s-e.options.indentUnit:"number"==typeof r&&(c=s+r),c=Math.max(0,c);var f="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,f+="\t";if(h<c&&(f+=p(c-h)),f!=u)return En(o,f,W(t,0),W(t,u.length),"+input"),l.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=W(t,u.length);pn(o,g,new ra(y,y));break}}}function Li(e){La=e}function Mi(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var a=e.state.pasteIncoming||"paste"==i,l=No(t),s=null;if(a&&n.ranges.length>1)if(La&&La.text.join("\n")==t){if(n.ranges.length%La.text.length==0){s=[];for(var c=0;c<La.text.length;c++)s.push(o.splitLines(La.text[c]))}}else l.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(s=g(l,function(e){return[e]}));for(var u,d=n.ranges.length-1;d>=0;d--){var f=n.ranges[d],h=f.from(),p=f.to();f.empty()&&(r&&r>0?h=W(h.line,h.ch-r):e.state.overwrite&&!a?p=W(p.line,Math.min(T(o,p.line).text.length,p.ch+m(l).length)):La&&La.lineWise&&La.text.join("\n")==t&&(h=p=W(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:s?s[d%s.length]:l,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Mn(e.doc,v),Xe(e,"inputRead",e,v)}t&&!a&&Oi(e,t),lr(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Ai(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||wr(t,function(){return Mi(t,r,0,null,"paste")}),!0}function Oi(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l<o.electricChars.length;l++)if(t.indexOf(o.electricChars.charAt(l))>-1){a=Ti(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(T(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ti(e,i.head.line,"smart"));a&&Xe(e,"electricInput",e,i.head.line)}}}function Ni(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:W(i,0),head:W(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function _i(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Ei(){var e=n("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=n("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return Vi?e.style.width="1000px":e.setAttribute("wrap","off"),Qi&&(e.style.border="1px solid black"),_i(e),t}function Wi(e,t,r,n,i){function o(n){var o;if(null==(o=i?function(e,t,r,n){var i=de(t,e.doc.direction);if(!i)return ni(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ue(i,r.ch,r.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(n>0?a.to>r.ch:a.from<r.ch))return ni(t,r,n);var l,s=function(e,r){return ri(t,e instanceof W?e.ch:e,r)},c=function(r){return e.options.lineWrapping?(l=l||vt(e,t),Dt(e,t,l,r)):{begin:0,end:t.text.length}},u=c("before"==r.sticky?s(r,-1):r.ch);if("rtl"==e.doc.direction||1==a.level){var d=1==a.level==n<0,f=s(r,d?1:-1);if(null!=f&&(d?f<=a.to&&f<=u.end:f>=a.from&&f>=u.begin)){var h=d?"before":"after";return new W(r.line,f,h)}}var p=function(e,t,n){for(var o=function(e,t){return t?new W(r.line,s(e,1),"before"):new W(r.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],l=t>0==(1!=a.level),c=l?n.begin:s(n.end,-1);if(a.from<=c&&c<a.to)return o(c,l);if(c=l?a.from:s(a.to,-1),n.begin<=c&&c<n.end)return o(c,l)}},m=p(o+n,n,u);if(m)return m;var g=n>0?u.end:s(u.begin,-1);return null==g||n>0&&g==t.text.length||!(m=p(n>0?0:i.length-1,n,c(g)))?null:m}(e.cm,s,t,r):ni(s,t,r))){if(n||!function(){var n=t.line+r;return!(n<e.first||n>=e.first+e.size)&&(t=new W(n,t.ch,t.sticky),s=T(e,n))}())return!1;t=ii(i,e.cm,s,t.line,r)}else t=o;return!0}var a=t,l=r,s=T(e,t.line);if("char"==n)o();else if("column"==n)o(!0);else if("word"==n||"group"==n)for(var c=null,u="group"==n,d=e.cm&&e.cm.getHelper(t,"wordChars"),f=!0;!(r<0)||o(!f);f=!1){var h=s.text.charAt(t.ch)||"\n",p=w(h,d)?"w":u&&"\n"==h?"n":!u||/\s/.test(h)?null:"p";if(!u||f||p||(p="s"),c&&c!=p){r<0&&(r=1,o(),t.sticky="after");break}if(p&&(c=p),r>0&&!o(!f))break}var m=Cn(e,t,a,l,!0);return D(a,m)&&(m.hitSide=!0),m}function Fi(e,t,r,n){var i,o=e.doc,a=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),s=Math.max(l-.5*Pt(e.display),3);i=(r>0?t.bottom:t.top)+r*s}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(var c;(c=Wt(e,a,i)).outside;){if(r<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*r}return c}function Di(e,t){var r=gt(e,t.line);if(!r||r.hidden)return null;var n=T(e.doc,t.line),i=pt(r,n,t.line),o=de(n,e.doc.direction),a="left";if(o){a=ue(o,t.ch)%2?"right":"left"}var l=bt(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function zi(e,t){return t&&(e.bad=!0),e}function Pi(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return zi(e.clipPos(W(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var a=e.display.view[i];if(a.node==n)return function(e,t,r){function n(t,r,n){for(var i=-1;i<(d?d.length:0);i++)for(var o=i<0?u.map:d[i],a=0;a<o.length;a+=3){var l=o[a+2];if(l==t||l==r){var s=O(i<0?e.line:e.rest[i]),c=o[a]+n;return(n<0||l!=t)&&(c=o[a+(n?1:0)]),W(s,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return zi(W(O(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[r],r=0,!t)){var l=e.rest?m(e.rest):e.line;return zi(W(O(l),l.text.length),a)}var s=3==t.nodeType?t:null,c=t;s||1!=t.childNodes.length||3!=t.firstChild.nodeType||(s=t.firstChild,r&&(r=s.nodeValue.length));for(;c.parentNode!=i;)c=c.parentNode;var u=e.measure,d=u.maps;var f=n(s,c,r);if(f)return zi(f,a);for(var h=c.nextSibling,p=s?s.nodeValue.length-r:0;h;h=h.nextSibling){if(f=n(h,h.firstChild,0))return zi(W(f.line,f.ch-p),a);p+=h.textContent.length}for(var g=c.previousSibling,v=r;g;g=g.previousSibling){if(f=n(g,g.firstChild,-1))return zi(W(f.line,f.ch+v),a);v+=g.textContent.length}}(a,t,r)}}var Hi=navigator.userAgent,Ii=navigator.platform,Ri=/gecko\/\d/i.test(Hi),ji=/MSIE \d/.test(Hi),Bi=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Hi),qi=/Edge\/(\d+)/.exec(Hi),Ui=ji||Bi||qi,Ki=Ui&&(ji?document.documentMode||6:+(qi||Bi)[1]),Vi=!qi&&/WebKit\//.test(Hi),Gi=Vi&&/Qt\/\d+\.\d+/.test(Hi),$i=!qi&&/Chrome\//.test(Hi),Yi=/Opera\//.test(Hi),Xi=/Apple Computer/.test(navigator.vendor),Zi=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Hi),Ji=/PhantomJS/.test(Hi),Qi=!qi&&/AppleWebKit/.test(Hi)&&/Mobile\/\w+/.test(Hi),eo=/Android/.test(Hi),to=Qi||eo||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Hi),ro=Qi||/Mac/.test(Ii),no=/\bCrOS\b/.test(Hi),io=/win/i.test(Ii),oo=Yi&&Hi.match(/Version\/(\d*\.\d*)/);oo&&(oo=Number(oo[1])),oo&&oo>=15&&(Yi=!1,Vi=!0);var ao,lo=ro&&(Gi||Yi&&(null==oo||oo<12.11)),so=Ri||Ui&&Ki>=9,co=function(t,r){var n=t.className,i=e(r).exec(n);if(i){var o=n.slice(i.index+i[0].length);t.className=n.slice(0,i.index)+(o?i[1]+o:"")}};ao=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd("character",r),n.moveStart("character",t),n};var uo=function(e){e.select()};Qi?uo=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:Ui&&(uo=function(e){try{e.select()}catch(e){}});var fo=function(){this.id=null};fo.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var ho,po,mo=30,go={toString:function(){return"CodeMirror.Pass"}},vo={scroll:!1},yo={origin:"*mouse"},bo={origin:"+move"},wo=[""],xo=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ko=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Co=!1,So=!1,To=null,Lo=function(){function e(e){return e<=247?r.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?n.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,r){this.level=e,this.from=t,this.to=r}var r="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",n="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,s=/[1n]/;return function(r,n){var c="ltr"==n?"L":"R";if(0==r.length||"ltr"==n&&!i.test(r))return!1;for(var u=r.length,d=[],f=0;f<u;++f)d.push(e(r.charCodeAt(f)));for(var h=0,p=c;h<u;++h){var g=d[h];"m"==g?d[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=d[v];"1"==b&&"r"==y?d[v]="n":a.test(b)&&(y=b,"r"==b&&(d[v]="R"))}for(var w=1,x=d[0];w<u-1;++w){var k=d[w];"+"==k&&"1"==x&&"1"==d[w+1]?d[w]="1":","!=k||x!=d[w+1]||"1"!=x&&"n"!=x||(d[w]=x),x=k}for(var C=0;C<u;++C){var S=d[C];if(","==S)d[C]="N";else if("%"==S){var T=void 0;for(T=C+1;T<u&&"%"==d[T];++T);for(var L=C&&"!"==d[C-1]||T<u&&"1"==d[T]?"1":"N",M=C;M<T;++M)d[M]=L;C=T-1}}for(var A=0,O=c;A<u;++A){var N=d[A];"L"==O&&"1"==N?d[A]="L":a.test(N)&&(O=N)}for(var _=0;_<u;++_)if(o.test(d[_])){var E=void 0;for(E=_+1;E<u&&o.test(d[E]);++E);for(var W="L"==(_?d[_-1]:c),F=W==("L"==(E<u?d[E]:c))?W?"L":"R":c,D=_;D<E;++D)d[D]=F;_=E-1}for(var z,P=[],H=0;H<u;)if(l.test(d[H])){var I=H;for(++H;H<u&&l.test(d[H]);++H);P.push(new t(0,I,H))}else{var R=H,j=P.length;for(++H;H<u&&"L"!=d[H];++H);for(var B=R;B<H;)if(s.test(d[B])){R<B&&P.splice(j,0,new t(1,R,B));var q=B;for(++B;B<H&&s.test(d[B]);++B);P.splice(j,0,new t(2,q,B)),R=B}else++B;R<H&&P.splice(j,0,new t(1,R,H))}return"ltr"==n&&(1==P[0].level&&(z=r.match(/^\s+/))&&(P[0].from=z[0].length,P.unshift(new t(0,0,z[0].length))),1==m(P).level&&(z=r.match(/\s+$/))&&(m(P).to-=z[0].length,P.push(new t(0,u-z[0].length,u)))),"rtl"==n?P.reverse():P}}(),Mo=[],Ao=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent("on"+t,r);else{var n=e._handlers||(e._handlers={});n[t]=(n[t]||Mo).concat(r)}},Oo=function(){if(Ui&&Ki<9)return!1;var e=n("div");return"draggable"in e||"dragDrop"in e}(),No=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(r.push(o.slice(0,a)),t+=a+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},_o=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Eo=function(){var e=n("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Wo=null,Fo={},Do={},zo={},Po=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};Po.prototype.eol=function(){return this.pos>=this.string.length},Po.prototype.sol=function(){return this.pos==this.lineStart},Po.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Po.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Po.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},Po.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Po.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Po.prototype.skipToEnd=function(){this.pos=this.string.length},Po.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Po.prototype.backUp=function(e){this.pos-=e},Po.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=d(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},Po.prototype.indentation=function(){return d(this.string,null,this.tabSize)-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},Po.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},Po.prototype.current=function(){return this.string.slice(this.start,this.pos)},Po.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Po.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Po.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var Ho=function(e,t){this.state=e,this.lookAhead=t},Io=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};Io.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Io.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},Io.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Io.fromSaved=function(e,t,r){return t instanceof Ho?new Io(e,Ne(e.mode,t.state),r,t.lookAhead):new Io(e,Ne(e.mode,t),r)},Io.prototype.save=function(e){var t=!1!==e?Ne(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Ho(t,this.maxLookAhead):t};var Ro=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r},jo=function(e,t,r){this.text=e,$(this,t),this.height=r?r(this):1};jo.prototype.lineNo=function(){return O(this)},ye(jo);var Bo,qo={},Uo={},Ko=null,Vo=null,Go={left:0,right:0,top:0,bottom:0},$o=function(e,t,r){this.cm=r;var i=this.vert=n("div",[n("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=n("div",[n("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Ao(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Ao(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,Ui&&Ki<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};$o.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},$o.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},$o.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},$o.prototype.zeroWidthHack=function(){var e=ro&&!Zi?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new fo,this.disableVert=new fo},$o.prototype.enableZeroWidthBar=function(e,t,r){function n(){var i=e.getBoundingClientRect();("vert"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,n)}e.style.pointerEvents="auto",t.set(1e3,n)},$o.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Yo=function(){};Yo.prototype.update=function(){return{bottom:0,right:0}},Yo.prototype.setScrollLeft=function(){},Yo.prototype.setScrollTop=function(){},Yo.prototype.clear=function(){};var Xo={native:$o,null:Yo},Zo=0,Jo=function(e,t,r){var n=e.display;this.viewport=t,this.visible=rr(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=ft(e),this.force=r,this.dims=It(e),this.events=[]};Jo.prototype.signal=function(e,t){ve(e,t)&&this.events.push(arguments)},Jo.prototype.finish=function(){for(var e=0;e<this.events.length;e++)pe.apply(null,this.events[e])};var Qo=0,ea=null;Ui?ea=-.53:Ri?ea=15:$i?ea=-.7:Xi&&(ea=-1/3);var ta=function(e,t){this.ranges=e,this.primIndex=t};ta.prototype.primary=function(){return this.ranges[this.primIndex]},ta.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var r=this.ranges[t],n=e.ranges[t];if(!D(r.anchor,n.anchor)||!D(r.head,n.head))return!1}return!0},ta.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new ra(z(this.ranges[t].anchor),z(this.ranges[t].head));return new ta(e,this.primIndex)},ta.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},ta.prototype.contains=function(e,t){t||(t=e);for(var r=0;r<this.ranges.length;r++){var n=this.ranges[r];if(F(t,n.from())>=0&&F(e,n.to())<=0)return r}return-1};var ra=function(e,t){this.anchor=e,this.head=t};ra.prototype.from=function(){return H(this.anchor,this.head)},ra.prototype.to=function(){return P(this.anchor,this.head)},ra.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Pn.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r=e,n=e+t;r<n;++r){var i=this.lines[r];this.height-=i.height,Be(i),Xe(i,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,r){this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var n=0;n<t.length;++n)t[n].parent=this},iterN:function(e,t,r){for(var n=e+t;e<n;++e)if(r(this.lines[e]))return!0}},Hn.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var r=0;r<this.children.length;++r){var n=this.children[r],i=n.chunkSize();if(e<i){var o=Math.min(t,i-e),a=n.height;if(n.removeInner(e,o),this.height-=a-n.height,i==o&&(this.children.splice(r--,1),n.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof Pn))){var l=[];this.collapse(l),this.children=[new Pn(l)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,r){this.size+=t.length,this.height+=r;for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,r),i.lines&&i.lines.length>50){for(var a=i.lines.length%25+25,l=a;l<i.lines.length;){var s=new Pn(i.lines.slice(l,l+=25));i.height-=s.height,this.children.splice(++n,0,s),s.parent=this}i.lines=i.lines.slice(0,a),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=new Hn(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var r=f(e.parent.children,e);e.parent.children.splice(r+1,0,t)}else{var n=new Hn(e.children);n.parent=e,e.children=[n,t],e=n}t.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e);if(i.iterN(e,a,r))return!0;if(0==(t-=a))break;e=0}else e-=o}}};var na=function(e,t,r){if(r)for(var n in r)r.hasOwnProperty(n)&&(this[n]=r[n]);this.doc=e,this.node=t};na.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,r=this.line,n=O(r);if(null!=n&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(r.widgets=null);var o=at(this);A(r,Math.max(0,r.height-o)),e&&(wr(e,function(){In(e,r,-o),Tr(e,n,"widget")}),Xe(e,"lineWidgetCleared",e,this,n))}},na.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=at(this)-t;i&&(A(n,n.height+i),r&&wr(r,function(){r.curOp.forceUpdate=!0,In(r,n,i),Xe(r,"lineWidgetChanged",r,e,O(n))}))},ye(na);var ia=0,oa=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++ia};oa.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&yr(e),ve(this,"clear")){var r=this.find();r&&Xe(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;o<this.lines.length;++o){var a=this.lines[o],l=q(a.markedSpans,this);e&&!this.collapsed?Tr(e,O(a),"text"):e&&(null!=l.to&&(i=O(a)),null!=l.from&&(n=O(a))),a.markedSpans=U(a.markedSpans,l),null==l.from&&this.collapsed&&!oe(this.doc,a)&&e&&A(a,Pt(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var s=0;s<this.lines.length;++s){var c=re(this.lines[s]),u=se(c);u>e.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&Sr(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&wn(e.doc)),e&&Xe(e,"markerCleared",e,this,n,i),t&&br(e),this.parent&&this.parent.clear()}},oa.prototype.find=function(e,t){null==e&&"bookmark"==this.type&&(e=1);for(var r,n,i=0;i<this.lines.length;++i){var o=this.lines[i],a=q(o.markedSpans,this);if(null!=a.from&&(r=W(t?o:O(o),a.from),-1==e))return r;if(null!=a.to&&(n=W(t?o:O(o),a.to),1==e))return n}return r&&{from:r,to:n}},oa.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&wr(n,function(){var i=t.line,o=O(t.line),a=gt(n,o);if(a&&(xt(a),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!oe(r.doc,i)&&null!=r.height){var l=r.height;r.height=null;var s=at(r)-l;s&&A(i,i.height+s)}Xe(n,"markerChanged",n,e)})},oa.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=f(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},oa.prototype.detachLine=function(e){if(this.lines.splice(f(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},ye(oa);var aa=function(e,t){this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=this};aa.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Xe(this,"clear")}},aa.prototype.find=function(e,t){return this.primary.find(e,t)},ye(aa);var la=0,sa=function(e,t,r,n,i){if(!(this instanceof sa))return new sa(e,t,r,n,i);null==r&&(r=0),Hn.call(this,[new Pn([new jo("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=W(r,0);this.sel=Br(o),this.history=new en(null),this.id=++la,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Xr(this,{from:o,to:o,text:e}),vn(this,Br(o),vo)};sa.prototype=y(Hn.prototype,{constructor:sa,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=M(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Cr(function(e){var t=W(this.first,0),r=this.first+this.size-1;Mn(this,{from:t,to:W(r,T(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&sr(this.cm,0,0),vn(this,Br(t),vo)}),replaceRange:function(e,t,r,n){En(this,e,t=R(this,t),r=r?R(this,r):t,n)},getRange:function(e,t,r){var n=L(this,R(this,e),R(this,t));return!1===r?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(_(this,e))return T(this,e)},getLineNumber:function(e){return O(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=T(this,e)),re(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return R(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Cr(function(e,t,r){mn(this,R(this,"number"==typeof e?W(e,t||0):e),null,r)}),setSelection:Cr(function(e,t,r){mn(this,R(this,e),R(this,t||e),r)}),extendSelection:Cr(function(e,t,r){fn(this,R(this,e),t&&R(this,t),r)}),extendSelections:Cr(function(e,t){hn(this,j(this,e),t)}),extendSelectionsBy:Cr(function(e,t){hn(this,j(this,g(this.sel.ranges,e)),t)}),setSelections:Cr(function(e,t,r){if(e.length){for(var n=[],i=0;i<e.length;i++)n[i]=new ra(R(this,e[i].anchor),R(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),vn(this,jr(n,t),r)}}),addSelection:Cr(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new ra(R(this,e),R(this,t||e))),vn(this,jr(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this.sel.ranges,n=0;n<r.length;n++){var i=L(this,r[n].from(),r[n].to());t=t?t.concat(i):i}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],r=this.sel.ranges,n=0;n<r.length;n++){var i=L(this,r[n].from(),r[n].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[n]=i}return t},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||"+input")},replaceSelections:Cr(function(e,t,r){for(var n=[],i=this.sel,o=0;o<i.ranges.length;o++){var a=i.ranges[o];n[o]={from:a.from(),to:a.to(),text:this.splitLines(e[o]),origin:r}}for(var l=t&&"end"!=t&&function(e,t,r){for(var n=[],i=W(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=Vr(l.from,i,o),c=Vr(qr(l),i,o);if(i=l.to,o=c,"around"==r){var u=e.sel.ranges[a],d=F(u.head,u.anchor)<0;n[a]=new ra(d?c:s,d?s:c)}else n[a]=new ra(s,s)}return new ta(n,e.sel.primIndex)}(this,n,t),s=n.length-1;s>=0;s--)Mn(this,n[s]);l?gn(this,l):this.cm&&lr(this.cm)}),undo:Cr(function(){On(this,"undo")}),redo:Cr(function(){On(this,"redo")}),undoSelection:Cr(function(){On(this,"undo",!0)}),redoSelection:Cr(function(){On(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new en(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:un(this.history.done),undone:un(this.history.undone)}},setHistory:function(e){var t=this.history=new en(this.history.maxGeneration);t.done=un(e.done.slice(0),null,!0),t.undone=un(e.undone.slice(0),null,!0)},setGutterMarker:Cr(function(e,t,r){return zn(this,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&x(n)&&(e.gutterMarkers=null),!0})}),clearGutter:Cr(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&zn(t,r,"gutter",function(){return r.gutterMarkers[e]=null,x(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!_(this,e))return null;if(t=e,!(e=T(this,e)))return null}else if(null==(t=O(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:Cr(function(t,r,n){return zn(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(t[i]){if(e(n).test(t[i]))return!1;t[i]+=" "+n}else t[i]=n;return!0})}),removeLineClass:Cr(function(t,r,n){return zn(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==n)t[i]=null;else{var a=o.match(e(n));if(!a)return!1;var l=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&l!=o.length?" ":"")+o.slice(l)||null}return!0})}),addLineWidget:Cr(function(e,t,r){return function(e,t,r,n){var i=new na(e,r,n),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),zn(e,t,"widget",function(t){var r=t.widgets||(t.widgets=[]);if(null==i.insertAt?r.push(i):r.splice(Math.min(r.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!oe(e,t)){var n=le(t)<e.scrollTop;A(t,t.height+at(i)),n&&ar(o,i.height),o.curOp.forceUpdate=!0}return!0}),Xe(o,"lineWidgetAdded",o,i,"number"==typeof t?t:O(t)),i}(this,e,t,r)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return Rn(this,R(this,e),R(this,t),r,r&&r.type||"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=R(this,e),Rn(this,e,e,r,"bookmark")},findMarksAt:function(e){var t=[],r=T(this,(e=R(this,e)).line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=R(this,e),t=R(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var l=0;l<a.length;l++){var s=a[l];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||r&&!r(s.marker)||n.push(s.marker.parent||s.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),R(this,W(r,t))},indexFromPos:function(e){var t=(e=R(this,e)).ch;if(e.line<this.first||e.ch<0)return 0;var r=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+r}),t},copy:function(e){var t=new sa(M(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new sa(M(this,t,r),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(F(o,a)){var l=Rn(e,o,a,n.primary,n.primary.type);n.markers.push(l),l.parent=n}}}(n,jn(this)),n},unlinkDoc:function(e){if(e instanceof Si&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t){if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),Bn(jn(this));break}}if(e.history==this.history){var r=[e.id];Zr(e,function(e){return r.push(e.id)},!0),e.history=new en(null),e.history.done=un(this.history.done,r),e.history.undone=un(this.history.undone,r)}},iterLinkedDocs:function(e){Zr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):No(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:Cr(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&function(e){wr(e,function(){Qr(e),Sr(e)})}(this.cm))})}),sa.prototype.eachLine=sa.prototype.iter;for(var ca=0,ua=!1,da={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},fa=0;fa<10;fa++)da[fa+48]=da[fa+96]=String(fa);for(var ha=65;ha<=90;ha++)da[ha]=String.fromCharCode(ha);for(var pa=1;pa<=12;pa++)da[pa+111]=da[pa+63235]="F"+pa;var ma={};ma.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},ma.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},ma.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},ma.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},ma.default=ro?ma.macDefault:ma.pcDefault;var ga={selectAll:Tn,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),vo)},killLine:function(e){return ti(e,function(t){if(t.empty()){var r=T(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:W(t.head.line+1,0)}:{from:t.head,to:W(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return ti(e,function(t){return{from:W(t.from().line,0),to:R(e.doc,W(t.to().line+1,0))}})},delLineLeft:function(e){return ti(e,function(e){return{from:W(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return ti(e,function(t){var r=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:r},"div"),to:t.from()}})},delWrappedLineRight:function(e){return ti(e,function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(W(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(W(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return oi(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return li(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ai(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div")},bo)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:r},"div")},bo)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5,n=e.coordsChar({left:0,top:r},"div");return n.ch<e.getLine(n.line).search(/\S/)?li(e,t.head):n},bo)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),a=d(e.getLine(o.line),o.ch,n);t.push(p(n-a%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return wr(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=T(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new W(i.line,i.ch-1)),i.ch>0)i=new W(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),W(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=T(e.doc,i.line-1).text;a&&(i=new W(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),W(i.line-1,a.length-1),i,"+transpose"))}r.push(new ra(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return wr(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);lr(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},va=new fo,ya=null,ba=function(e,t,r){this.time=e,this.pos=t,this.button=r};ba.prototype.compare=function(e,t,r){return this.time+400>e&&0==F(t,this.pos)&&r==this.button};var wa,xa,ka={toString:function(){return"CodeMirror.Init"}},Ca={},Sa={};Si.defaults=Ca,Si.optionHandlers=Sa;var Ta=[];Si.defineInitHook=function(e){return Ta.push(e)};var La=null,Ma=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new fo,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Ma.prototype.init=function(e){function t(e){if(!me(i,e)){if(i.somethingSelected())Li({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=Ni(i);Li({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,vo),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=La.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var a=Ei(),l=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),l.value=La.text.join("\n");var s=document.activeElement;uo(l),setTimeout(function(){i.display.lineSpace.removeChild(a),s.focus(),s==o&&n.showPrimarySelection()},50)}}var r=this,n=this,i=n.cm,o=n.div=e.lineDiv;_i(o,i.options.spellcheck),Ao(o,"paste",function(e){me(i,e)||Ai(e,i)||Ki<=11&&setTimeout(xr(i,function(){return r.updateFromDOM()}),20)}),Ao(o,"compositionstart",function(e){r.composing={data:e.data,done:!1}}),Ao(o,"compositionupdate",function(e){r.composing||(r.composing={data:e.data,done:!1})}),Ao(o,"compositionend",function(e){r.composing&&(e.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),Ao(o,"touchstart",function(){return n.forceCompositionEnd()}),Ao(o,"input",function(){r.composing||r.readFromDOMSoon()}),Ao(o,"copy",t),Ao(o,"cut",t)},Ma.prototype.prepareSelection=function(){var e=Vt(this.cm,!1);return e.focus=this.cm.state.focused,e},Ma.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Ma.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,r=t.doc.sel.primary(),n=r.from(),i=r.to();if(t.display.viewTo==t.display.viewFrom||n.line>=t.display.viewTo||i.line<t.display.viewFrom)e.removeAllRanges();else{var o=Pi(t,e.anchorNode,e.anchorOffset),a=Pi(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=F(H(o,a),n)||0!=F(P(o,a),i)){var l=t.display.view,s=n.line>=t.display.viewFrom&&Di(t,n)||{node:l[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Di(t,i);if(!c){var u=l[l.length-1].measure,d=u.maps?u.maps[u.maps.length-1]:u.map;c={node:d[d.length-1],offset:d[d.length-2]-d[d.length-3]}}if(s&&c){var f,h=e.rangeCount&&e.getRangeAt(0);try{f=ao(s.node,s.offset,c.offset,c.node)}catch(e){}f&&(!Ri&&t.state.focused?(e.collapse(s.node,s.offset),f.collapsed||(e.removeAllRanges(),e.addRange(f))):(e.removeAllRanges(),e.addRange(f)),h&&null==e.anchorNode?e.addRange(h):Ri&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Ma.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},Ma.prototype.showMultipleSelections=function(e){r(this.cm.display.cursorDiv,e.cursors),r(this.cm.display.selectionDiv,e.selection)},Ma.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Ma.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},Ma.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Ma.prototype.blur=function(){this.div.blur()},Ma.prototype.getField=function(){return this.div},Ma.prototype.supportsTouch=function(){return!0},Ma.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():wr(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},Ma.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Ma.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(eo&&$i&&this.cm.options.gutters.length&&function(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var r=Pi(t,e.anchorNode,e.anchorOffset),n=Pi(t,e.focusNode,e.focusOffset);r&&n&&wr(t,function(){vn(t.doc,Br(r,n),vo),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Ma.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,r=e.doc.sel.primary(),n=r.from(),i=r.to();if(0==n.ch&&n.line>e.firstLine()&&(n=W(n.line-1,T(e.doc,n.line-1).length)),i.ch==T(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=W(i.line+1,0)),n.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,l;n.line==t.viewFrom||0==(o=Ut(e,n.line))?(a=O(t.view[0].line),l=t.view[0].node):(a=O(t.view[o].line),l=t.view[o-1].node.nextSibling);var s,c,u=Ut(e,i.line);if(u==t.view.length-1?(s=t.viewTo-1,c=t.lineDiv.lastChild):(s=O(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!l)return!1;for(var d=e.doc.splitLines(function(e,t,r,n,i){function o(){c&&(s+=u,c=!1)}function a(e){e&&(o(),s+=e)}function l(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(null!=r)return void a(r||t.textContent.replace(/\u200b/g,""));var s,d=t.getAttribute("cm-marker");if(d){var f=e.findMarks(W(n,0),W(i+1,0),function(e){return function(t){return t.id==e}}(+d));return void(f.length&&(s=f[0].find(0))&&a(L(e.doc,s.from,s.to).join(u)))}if("false"==t.getAttribute("contenteditable"))return;var h=/^(pre|div|p)$/i.test(t.nodeName);h&&o();for(var p=0;p<t.childNodes.length;p++)l(t.childNodes[p]);h&&(c=!0)}else 3==t.nodeType&&a(t.nodeValue)}for(var s="",c=!1,u=e.doc.lineSeparator();l(t),t!=r;)t=t.nextSibling;return s}(e,l,c,a,s)),f=L(e.doc,W(a,0),W(s,T(e.doc,s).text.length));d.length>1&&f.length>1;)if(m(d)==m(f))d.pop(),f.pop(),s--;else{if(d[0]!=f[0])break;d.shift(),f.shift(),a++}for(var h=0,p=0,g=d[0],v=f[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(d),w=m(f),x=Math.min(b.length-(1==d.length?h:0),w.length-(1==f.length?h:0));p<x&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)++p;if(1==d.length&&1==f.length&&a==n.line)for(;h&&h>n.ch&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)h--,p++;d[d.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),d[0]=d[0].slice(h).replace(/\u200b+$/,"");var k=W(a,h),C=W(s,f.length?m(f).length-p:0);return d.length>1||d[0]||F(k,C)?(En(e.doc,d,k,C,"+input"),!0):void 0},Ma.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ma.prototype.reset=function(){this.forceCompositionEnd()},Ma.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ma.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},Ma.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||wr(this.cm,function(){return Sr(e.cm)})},Ma.prototype.setUneditable=function(e){e.contentEditable="false"},Ma.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||xr(this.cm,Mi)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ma.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ma.prototype.onContextMenu=function(){},Ma.prototype.resetPosition=function(){},Ma.prototype.needsContentAttribute=!0;var Aa=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new fo,this.hasSelection=!1,this.composing=null};Aa.prototype.init=function(e){function t(e){if(!me(i,e)){if(i.somethingSelected())Li({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=Ni(i);Li({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,vo):(n.prevInput="",a.value=t.text.join("\n"),uo(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var r=this,n=this,i=this.cm,o=this.wrapper=Ei(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),Qi&&(a.style.width="0px"),Ao(a,"input",function(){Ui&&Ki>=9&&r.hasSelection&&(r.hasSelection=null),n.poll()}),Ao(a,"paste",function(e){me(i,e)||Ai(e,i)||(i.state.pasteIncoming=!0,n.fastPoll())}),Ao(a,"cut",t),Ao(a,"copy",t),Ao(e.scroller,"paste",function(t){lt(e,t)||me(i,t)||(i.state.pasteIncoming=!0,n.focus())}),Ao(e.lineSpace,"selectstart",function(t){lt(e,t)||be(t)}),Ao(a,"compositionstart",function(){var e=i.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Ao(a,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},Aa.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Vt(e);if(e.options.moveInputWithCursor){var i=Nt(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return n},Aa.prototype.showSelection=function(e){var t=this.cm.display;r(t.cursorDiv,e.cursors),r(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Aa.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&uo(this.textarea),Ui&&Ki>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",Ui&&Ki>=9&&(this.hasSelection=null))}},Aa.prototype.getField=function(){return this.textarea},Aa.prototype.supportsTouch=function(){return!1},Aa.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!to||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},Aa.prototype.blur=function(){this.textarea.blur()},Aa.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Aa.prototype.receivedFocus=function(){this.slowPoll()},Aa.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Aa.prototype.fastPoll=function(){function e(){r.poll()||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))}var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,e)},Aa.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||_o(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(Ui&&Ki>=9&&this.hasSelection===i||ro&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,l=Math.min(n.length,i.length);a<l&&n.charCodeAt(a)==i.charCodeAt(a);)++a;return wr(t,function(){Mi(t,i.slice(a),n.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Aa.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Aa.prototype.onKeyPress=function(){Ui&&Ki>=9&&(this.hasSelection=null),this.fastPoll()},Aa.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,n.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function r(){if(n.contextMenuPending=!1,n.wrapper.style.cssText=u,a.style.cssText=c,Ui&&Ki<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!Ui||Ui&&Ki<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==n.prevInput?xr(i,Tn)(i):e++<10?o.detectingSelectAll=setTimeout(r,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(r,200)}}var n=this,i=n.cm,o=i.display,a=n.textarea,l=qt(i,e),s=o.scroller.scrollTop;if(l&&!Yi){i.options.resetSelectionOnContextMenu&&-1==i.doc.sel.contains(l)&&xr(i,vn)(i.doc,Br(l),vo);var c=a.style.cssText,u=n.wrapper.style.cssText;n.wrapper.style.cssText="position: absolute";var d=n.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-d.top-5)+"px; left: "+(e.clientX-d.left-5)+"px;\n z-index: 1000; background: "+(Ui?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var f;if(Vi&&(f=window.scrollY),o.input.focus(),Vi&&window.scrollTo(null,f),o.input.reset(),i.somethingSelected()||(a.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),Ui&&Ki>=9&&t(),so){ke(e);var h=function(){he(window,"mouseup",h),setTimeout(r,20)};Ao(window,"mouseup",h)}else setTimeout(r,50)}},Aa.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Aa.prototype.setUneditable=function(){},Aa.prototype.needsContentAttribute=!1,function(e){function t(t,n,i,o){e.defaults[t]=n,i&&(r[t]=o?function(e,t,r){r!=ka&&i(e,t,r)}:i)}var r=e.optionHandlers;e.defineOption=t,e.Init=ka,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Gr(e)},!0),t("indentUnit",2,Gr,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){$r(e),Ct(e),Sr(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(W(n,o))}n++});for(var i=r.length-1;i>=0;i--)En(e.doc,t,r[i],W(r[i].line,r[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=ka&&e.refresh()}),t("specialCharPlaceholder",Ke,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",to?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!io),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){wi(e),xi(e)},!0),t("keyMap","default",function(e,t,r){var n=ei(t),i=r!=ka&&ei(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Ci,!0),t("gutters",[],function(e){Pr(e.options),xi(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?Rt(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return mr(e)},!0),t("scrollbarStyle","native",function(e){vr(e),mr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Pr(e.options),xi(e)},!0),t("firstLineNumber",1,xi,!0),t("lineNumberFormatter",function(e){return e},xi,!0),t("showCursorWhenSelecting",!1,Kt,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Qt(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,ki),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Kt,!0),t("singleCursorHeightPerLine",!0,Kt,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,$r,!0),t("addModeClass",!1,$r,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,$r,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Si),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&xr(this,t[e])(this,r,i),pe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](ei(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:kr(function(t,r){var n=t.token?t:e.getMode(this.options,t);if(n.startState)throw new Error("Overlays may not be stateful.");!function(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}(this.state.overlays,{mode:n,modeSpec:t,opaque:r&&r.opaque,priority:r&&r.priority||0},function(e){return e.priority}),this.state.modeGen++,Sr(this)}),removeOverlay:kr(function(e){for(var t=this.state.overlays,r=0;r<t.length;++r){var n=t[r].modeSpec;if(n==e||"string"==typeof e&&n.name==e)return t.splice(r,1),this.state.modeGen++,void Sr(this)}}),indentLine:kr(function(e,t,r){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),_(this.doc,e)&&Ti(this,e,t,r)}),indentSelection:kr(function(e){for(var t=this.doc.sel.ranges,r=-1,n=0;n<t.length;n++){var i=t[n];if(i.empty())i.head.line>r&&(Ti(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&lr(this));else{var o=i.from(),a=i.to(),l=Math.max(r,o.line);r=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var s=l;s<r;++s)Ti(this,s,e);var c=this.doc.sel.ranges;0==o.ch&&t.length==c.length&&c[n].from().ch>0&&pn(this.doc,n,new ra(o,c[n].to()),vo)}}}),getTokenAt:function(e,t){return Ie(this,e,t)},getLineTokens:function(e,t){return Ie(this,W(e),t,!0)},getTokenTypeAt:function(e){e=R(this.doc,e);var t,r=Fe(this,T(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var a=n+i>>1;if((a?r[2*a-1]:0)>=o)i=a;else{if(!(r[2*a+1]<o)){t=r[2*a+2];break}n=a+1}}var l=t?t.indexOf("overlay "):-1;return l<0?t:0==l?null:t.slice(0,l-1)},getModeAt:function(t){var r=this.doc.mode;return r.innerMode?e.innerMode(r,this.getTokenAt(t).state).mode:r},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=[];if(!r.hasOwnProperty(t))return n;var i=r[t],o=this.getModeAt(e);if("string"==typeof o[t])i[o[t]]&&n.push(i[o[t]]);else if(o[t])for(var a=0;a<o[t].length;a++){var l=i[o[t][a]];l&&n.push(l)}else o.helperType&&i[o.helperType]?n.push(i[o.helperType]):i[o.name]&&n.push(i[o.name]);for(var s=0;s<i._global.length;s++){var c=i._global[s];c.pred(o,this)&&-1==f(n,c.val)&&n.push(c.val)}return n},getStateAfter:function(e,t){var r=this.doc;return e=I(r,null==e?r.first+r.size-1:e),De(this,e+1,t).state},cursorCoords:function(e,t){var r,n=this.doc.sel.primary();return r=null==e?n.head:"object"==typeof e?R(this.doc,e):e?n.from():n.to(),Nt(this,r,t||"page")},charCoords:function(e,t){return Ot(this,R(this.doc,e),t||"page")},coordsChar:function(e,t){return e=At(this,e,t||"page"),Wt(this,e.left,e.top)},lineAtHeight:function(e,t){return e=At(this,{top:e,left:0},t||"page").top,N(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=T(this.doc,e)}else n=e;return Mt(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-le(n):0)},defaultTextHeight:function(){return Pt(this.display)},defaultCharWidth:function(){return Ht(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display,a=(e=Nt(this,R(this.doc,e))).bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)a=e.top;else if("above"==n||"near"==n){var s=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(a=e.bottom),l+t.offsetWidth>c&&(l=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(l=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),r&&function(e,t){var r=or(e,t);null!=r.scrollTop&&dr(e,r.scrollTop),null!=r.scrollLeft&&hr(e,r.scrollLeft)}(this,{left:l,top:a,right:l+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:kr(fi),triggerOnKeyPress:kr(pi),triggerOnKeyUp:hi,triggerOnMouseDown:kr(mi),execCommand:function(e){if(ga.hasOwnProperty(e))return ga[e].call(null,this)},triggerElectric:kr(function(e){Oi(this,e)}),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=R(this.doc,e),a=0;a<t&&!(o=Wi(this.doc,o,i,r,n)).hitSide;++a);return o},moveH:kr(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?Wi(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},bo)}),deleteH:kr(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection("",null,"+delete"):ti(this,function(r){var i=Wi(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=1,o=n;t<0&&(i=-1,t=-t);for(var a=R(this.doc,e),l=0;l<t;++l){var s=Nt(this,a,"div");if(null==o?o=s.left:s.left=o,(a=Fi(this,s,i,r)).hitSide)break}return a},moveV:kr(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var l=Nt(r,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=Fi(r,l,e,t);return"page"==t&&a==n.sel.primary()&&ar(r,Ot(r,s,"div").top-l.top),s},bo),i.length)for(var a=0;a<n.sel.ranges.length;a++)n.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=T(this.doc,e.line).text,r=e.ch,n=e.ch;if(t){var i=this.getHelper(e,"wordChars");"before"!=e.sticky&&n!=t.length||!r?++n:--r;for(var o=t.charAt(r),a=w(o,i)?function(e){return w(e,i)}:/\s/.test(o)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!w(e)};r>0&&a(t.charAt(r-1));)--r;for(;n<t.length&&a(t.charAt(n));)++n}return new ra(W(e.line,r),W(e.line,n))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?l(this.display.cursorDiv,"CodeMirror-overwrite"):co(this.display.cursorDiv,"CodeMirror-overwrite"),pe(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:kr(function(e,t){sr(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-dt(this)-this.display.barHeight,width:e.scrollWidth-dt(this)-this.display.barWidth,clientHeight:ht(this),clientWidth:ft(this)}},scrollIntoView:kr(function(e,t){null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:W(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?function(e,t){cr(e),e.curOp.scrollToPos=t}(this,e):ur(this,e.from,e.to,e.margin)}),setSize:kr(function(e,t){var r=this,n=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&kt(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){Tr(r,i,"widget");break}++i}),this.curOp.forceUpdate=!0,pe(this,"refresh",this)}),operation:function(e){return wr(this,e)},startOperation:function(){return yr(this)},endOperation:function(){return br(this)},refresh:kr(function(){var e=this.display.cachedTextHeight;Sr(this),this.curOp.forceUpdate=!0,Ct(this),sr(this,this.doc.scrollLeft,this.doc.scrollTop),Fr(this),(null==e||Math.abs(e-Pt(this.display))>.5)&&Bt(this),pe(this,"refresh",this)}),swapDoc:kr(function(e){var t=this.doc;return t.cm=null,Jr(this,e),Ct(this),this.display.input.reset(),sr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Xe(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ye(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Si);var Oa="iter insert remove copy getEditor constructor".split(" ");for(var Na in sa.prototype)sa.prototype.hasOwnProperty(Na)&&f(Oa,Na)<0&&(Si.prototype[Na]=function(e){return function(){return e.apply(this.doc,arguments)}}(sa.prototype[Na]));return ye(sa),Si.inputStyles={textarea:Aa,contenteditable:Ma},Si.defineMode=function(e){Si.defaults.mode||"null"==e||(Si.defaults.mode=e),function(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Fo[e]=t}.apply(this,arguments)},Si.defineMIME=function(e,t){Do[e]=t},Si.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Si.defineMIME("text/plain","null"),Si.defineExtension=function(e,t){Si.prototype[e]=t},Si.defineDocExtension=function(e,t){sa.prototype[e]=t},Si.fromTextArea=function(e,t){function r(){e.value=s.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=a();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}var i;if(e.form&&(Ao(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(t){t.save=r,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,r(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(he(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var s=Si(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s},function(e){e.off=he,e.on=Ao,e.wheelEventPixels=Ir,e.Doc=sa,e.splitLines=No,e.countColumn=d,e.findColumn=h,e.isWordChar=b,e.Pass=go,e.signal=pe,e.Line=jo,e.changeEnd=qr,e.scrollbarModel=Xo,e.Pos=W,e.cmpPos=F,e.modes=Fo,e.mimeModes=Do,e.resolveMode=Me,e.getMode=Ae,e.modeExtensions=zo,e.extendMode=Oe,e.copyState=Ne,e.startState=Ee,e.innerMode=_e,e.commands=ga,e.keyMap=ma,e.keyName=Qn,e.isModifierKey=Zn,e.lookupKey=Xn,e.normalizeKeyMap=Yn,e.StringStream=Po,e.SharedTextMarker=aa,e.TextMarker=oa,e.LineWidget=na,e.e_preventDefault=be,e.e_stopPropagation=we,e.e_stop=ke,e.addClass=l,e.contains=o,e.rmClass=co,e.keyNames=da}(Si),Si.version="5.32.0",Si})},{}],16:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}function r(e,t){for(var r,n=!1;null!=(r=e.next());){if(n&&"/"==r){t.tokenize=null;break}n="*"==r}return["comment","comment"]}e.defineMode("css",function(t,r){function n(e,t){return h=t,e}function i(e){return function(t,r){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(r.tokenize=null),n("string","string")}}function o(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=i(")"),n(null,"(")}function a(e,t,r){this.type=e,this.indent=t,this.prev=r}function l(e,t,r,n){return e.context=new a(r,t.indentation()+(!1===n?0:m),e.context),r}function s(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function c(e,t,r){return N[r.context.type](e,t,r)}function u(e,t,r,n){for(var i=n||1;i>0;i--)r.context=r.context.prev;return c(e,t,r)}function d(e){var t=e.current().toLowerCase();p=L.hasOwnProperty(t)?"atom":T.hasOwnProperty(t)?"keyword":"variable"}var f=r.inline;r.propertyKeywords||(r=e.resolveMode("text/css"));var h,p,m=t.indentUnit,g=r.tokenHooks,v=r.documentTypes||{},y=r.mediaTypes||{},b=r.mediaFeatures||{},w=r.mediaValueKeywords||{},x=r.propertyKeywords||{},k=r.nonStandardPropertyKeywords||{},C=r.fontProperties||{},S=r.counterDescriptors||{},T=r.colorKeywords||{},L=r.valueKeywords||{},M=r.allowNested,A=r.lineComment,O=!0===r.supportsAtComponent,N={};return N.top=function(e,t,r){if("{"==e)return l(r,t,"block");if("}"==e&&r.context.prev)return s(r);if(O&&/@component/.test(e))return l(r,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return l(r,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return l(r,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return l(r,t,"at");if("hash"==e)p="builtin";else if("word"==e)p="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return l(r,t,"interpolation");if(":"==e)return"pseudo";if(M&&"("==e)return l(r,t,"parens")}return r.context.type},N.block=function(e,t,r){if("word"==e){var n=t.current().toLowerCase();return x.hasOwnProperty(n)?(p="property","maybeprop"):k.hasOwnProperty(n)?(p="string-2","maybeprop"):M?(p=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(p+=" error","maybeprop")}return"meta"==e?"block":M||"hash"!=e&&"qualifier"!=e?N.top(e,t,r):(p="error","block")},N.maybeprop=function(e,t,r){return":"==e?l(r,t,"prop"):c(e,t,r)},N.prop=function(e,t,r){if(";"==e)return s(r);if("{"==e&&M)return l(r,t,"propBlock");if("}"==e||"{"==e)return u(e,t,r);if("("==e)return l(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)d(t);else if("interpolation"==e)return l(r,t,"interpolation")}else p+=" error";return"prop"},N.propBlock=function(e,t,r){return"}"==e?s(r):"word"==e?(p="property","maybeprop"):r.context.type},N.parens=function(e,t,r){return"{"==e||"}"==e?u(e,t,r):")"==e?s(r):"("==e?l(r,t,"parens"):"interpolation"==e?l(r,t,"interpolation"):("word"==e&&d(t),"parens")},N.pseudo=function(e,t,r){return"meta"==e?"pseudo":"word"==e?(p="variable-3",r.context.type):c(e,t,r)},N.documentTypes=function(e,t,r){return"word"==e&&v.hasOwnProperty(t.current())?(p="tag",r.context.type):N.atBlock(e,t,r)},N.atBlock=function(e,t,r){if("("==e)return l(r,t,"atBlock_parens");if("}"==e||";"==e)return u(e,t,r);if("{"==e)return s(r)&&l(r,t,M?"block":"top");if("interpolation"==e)return l(r,t,"interpolation");if("word"==e){var n=t.current().toLowerCase();p="only"==n||"not"==n||"and"==n||"or"==n?"keyword":y.hasOwnProperty(n)?"attribute":b.hasOwnProperty(n)?"property":w.hasOwnProperty(n)?"keyword":x.hasOwnProperty(n)?"property":k.hasOwnProperty(n)?"string-2":L.hasOwnProperty(n)?"atom":T.hasOwnProperty(n)?"keyword":"error"}return r.context.type},N.atComponentBlock=function(e,t,r){return"}"==e?u(e,t,r):"{"==e?s(r)&&l(r,t,M?"block":"top",!1):("word"==e&&(p="error"),r.context.type)},N.atBlock_parens=function(e,t,r){return")"==e?s(r):"{"==e||"}"==e?u(e,t,r,2):N.atBlock(e,t,r)},N.restricted_atBlock_before=function(e,t,r){return"{"==e?l(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(p="variable","restricted_atBlock_before"):c(e,t,r)},N.restricted_atBlock=function(e,t,r){return"}"==e?(r.stateArg=null,s(r)):"word"==e?(p="@font-face"==r.stateArg&&!C.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},N.keyframes=function(e,t,r){return"word"==e?(p="variable","keyframes"):"{"==e?l(r,t,"top"):c(e,t,r)},N.at=function(e,t,r){return";"==e?s(r):"{"==e||"}"==e?u(e,t,r):("word"==e?p="tag":"hash"==e&&(p="builtin"),"at")},N.interpolation=function(e,t,r){return"}"==e?s(r):"{"==e||";"==e?u(e,t,r):("word"==e?p="variable":"variable"!=e&&"("!=e&&")"!=e&&(p="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:f?"block":"top",stateArg:null,context:new a(f?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||function(e,t){var r=e.next();if(g[r]){var a=g[r](e,t);if(!1!==a)return a}return"@"==r?(e.eatWhile(/[\w\\\-]/),n("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?n(null,"compare"):'"'==r||"'"==r?(t.tokenize=i(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),n("atom","hash")):"!"==r?(e.match(/^\s*\w*/),n("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),n("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?n(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?n("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?n(null,r):"u"==r&&e.match(/rl(-prefix)?\(/)||"d"==r&&e.match("omain(")||"r"==r&&e.match("egexp(")?(e.backUp(1),t.tokenize=o,n("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),n("property","word")):n(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),n("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?n("variable-2","variable-definition"):n("variable-2","variable")):e.match(/^\w+-/)?n("meta","meta"):void 0})(e,t);return r&&"object"==typeof r&&(h=r[1],r=r[0]),p=r,"comment"!=h&&(t.state=N[t.state](h,e,t)),p},indent:function(e,t){var r=e.context,n=t&&t.charAt(0),i=r.indent;return"prop"!=r.type||"}"!=n&&")"!=n||(r=r.prev),r.prev&&("}"!=n||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type?(")"!=n||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=n||"at"!=r.type&&"atBlock"!=r.type)||(i=Math.max(0,r.indent-m)):i=(r=r.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:A,fold:"brace"}});var n=["domain","regexp","url","url-prefix"],i=t(n),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),l=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],s=t(l),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=t(c),d=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","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-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","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","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],f=t(d),h=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=t(h),m=t(["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),g=t(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["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","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","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","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],y=t(v),b=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],w=t(b),x=n.concat(o).concat(l).concat(c).concat(d).concat(h).concat(v).concat(b);e.registerHelper("hintWords","css",x),e.defineMIME("text/css",{documentTypes:i,mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:g,colorKeywords:y,valueKeywords:w,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:y,valueKeywords:w,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:y,valueKeywords:w,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:i,mediaTypes:a,mediaFeatures:s,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:g,colorKeywords:y,valueKeywords:w,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css",helperType:"gss"})})},{"../../lib/codemirror":15}],17:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror"),e("../xml/xml"),e("../javascript/javascript"),e("../css/css")):"function"==typeof t&&t.amd?t(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],i):i(CodeMirror)}(function(e){"use strict";function t(e,t){var r=e.match(function(e){var t=o[e];return t||(o[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}(t));return r?/^\s*(.*?)\s*$/.exec(r[2])[1]:""}function r(e,t){return new RegExp((t?"^":"")+"</s*"+e+"s*>","i")}function n(e,t){for(var r in e)for(var n=t[r]||(t[r]=[]),i=e[r],o=i.length-1;o>=0;o--)n.unshift(i[o])}var i={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},o={};e.defineMode("htmlmixed",function(o,a){function l(n,i){var a,u=s.token(n,i.htmlState),d=/\btag\b/.test(u);if(d&&!/[<>\s\/]/.test(n.current())&&(a=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(a))i.inTag=a+" ";else if(i.inTag&&d&&/>$/.test(n.current())){var f=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var h=">"==n.current()&&function(e,r){for(var n=0;n<e.length;n++){var i=e[n];if(!i[0]||i[1].test(t(r,i[0])))return i[2]}}(c[f[1]],f[2]),p=e.getMode(o,h),m=r(f[1],!0),g=r(f[1],!1);i.token=function(e,t){return e.match(m,!1)?(t.token=l,t.localState=t.localMode=null,null):function(e,t,r){var n=e.current(),i=n.search(t);return i>-1?e.backUp(n.length-i):n.match(/<\/?$/)&&(e.backUp(n.length),e.match(t,!1)||e.match(n)),r}(e,g,t.localMode.token(e,t.localState))},i.localMode=p,i.localState=e.startState(p,s.indent(i.htmlState,""))}else i.inTag&&(i.inTag+=n.current(),n.eol()&&(i.inTag+=" "));return u}var s=e.getMode(o,{name:"xml",htmlMode:!0,multilineTagIndentFactor:a.multilineTagIndentFactor,multilineTagIndentPastTag:a.multilineTagIndentPastTag}),c={},u=a&&a.tags,d=a&&a.scriptTypes;if(n(i,c),u&&n(u,c),d)for(var f=d.length-1;f>=0;f--)c.script.unshift(["type",d[f].matches,d[f].mode]);return{startState:function(){return{token:l,inTag:null,localMode:null,localState:null,htmlState:e.startState(s)}},copyState:function(t){var r;return t.localState&&(r=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:r,htmlState:e.copyState(s,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,r,n){return!t.localMode||/^\s*<\//.test(r)?s.indent(t.htmlState,r):t.localMode.indent?t.localMode.indent(t.localState,r,n):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||s}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")})},{"../../lib/codemirror":15,"../css/css":16,"../javascript/javascript":18,"../xml/xml":19}],18:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";e.defineMode("javascript",function(t,r){function n(e,t,r){return ke=e,Ce=r,t}function i(e,t){var r=e.next();if('"'==r||"'"==r)return t.tokenize=function(e){return function(t,r){var o,a=!1;if(Le&&"@"==t.peek()&&t.match(Ee))return r.tokenize=i,n("jsonld-keyword","meta");for(;null!=(o=t.next())&&(o!=e||a);)a=!a&&"\\"==o;return a||(r.tokenize=i),n("string","string")}}(r),t.tokenize(e,t);if("."==r&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return n("number","number");if("."==r&&e.match(".."))return n("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return n(r);if("="==r&&e.eat(">"))return n("=>","operator");if("0"==r&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),n("number","number");if("0"==r&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),n("number","number");if("0"==r&&e.eat(/b/i))return e.eatWhile(/[01]/i),n("number","number");if(/\d/.test(r))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),n("number","number");if("/"==r)return e.eat("*")?(t.tokenize=o,o(e,t)):e.eat("/")?(e.skipToEnd(),n("comment","comment")):xe(e,t,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),n("regexp","string-2")):(e.eat("="),n("operator","operator",e.current()));if("`"==r)return t.tokenize=a,a(e,t);if("#"==r)return e.skipToEnd(),n("error","error");if(_e.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),n("operator","operator",e.current());if(Oe.test(r)){e.eatWhile(Oe);var l=e.current();if("."!=t.lastType){if(Ne.propertyIsEnumerable(l)){var s=Ne[l];return n(s.type,s.style,l)}if("async"==l&&e.match(/^(\s|\/\*.*?\*\/)*[\(\w]/,!1))return n("async","keyword",l)}return n("variable","variable",l)}}function o(e,t){for(var r,o=!1;r=e.next();){if("/"==r&&o){t.tokenize=i;break}o="*"==r}return n("comment","comment")}function a(e,t){for(var r,o=!1;null!=(r=e.next());){if(!o&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=i;break}o=!o&&"\\"==r}return n("quasi","string-2",e.current())}function l(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(Ae){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var i=0,o=!1,a=r-1;a>=0;--a){var l=e.string.charAt(a),s=We.indexOf(l);if(s>=0&&s<3){if(!i){++a;break}if(0==--i){"("==l&&(o=!0);break}}else if(s>=3&&s<6)++i;else if(Oe.test(l))o=!0;else{if(/["'\/]/.test(l))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function s(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function c(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}function u(){for(var e=arguments.length-1;e>=0;e--)De.cc.push(arguments[e])}function d(){return u.apply(null,arguments),!0}function f(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}var n=De.state;if(De.marked="def",n.context){if(t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;r.globalVars&&(n.globalVars={name:e,next:n.globalVars})}}function h(){De.state.context={prev:De.state.context,vars:De.state.localVars},De.state.localVars=ze}function p(){De.state.localVars=De.state.context.vars,De.state.context=De.state.context.prev}function m(e,t){var r=function(){var r=De.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented;r.lexical=new s(n,De.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function g(){var e=De.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function v(e){function t(r){return r==e?d():";"==e?u():d(t)}return t}function y(e,t){return"var"==e?d(m("vardef",t.length),Y,v(";"),g):"keyword a"==e?d(m("form"),x,y,g):"keyword b"==e?d(m("form"),y,g):"keyword d"==e?De.stream.match(/^\s*$/,!1)?d():d(m("stat"),C,v(";"),g):"debugger"==e?d(v(";")):"{"==e?d(m("}"),P,g):";"==e?d():"if"==e?("else"==De.state.lexical.info&&De.state.cc[De.state.cc.length-1]==g&&De.state.cc.pop()(),d(m("form"),x,y,g,ee)):"function"==e?d(ae):"for"==e?d(m("form"),te,y,g):"variable"==e?Ae&&"type"==t?(De.marked="keyword",d(j,v("operator"),j,v(";"))):Ae&&"declare"==t?(De.marked="keyword",d(y)):Ae&&("module"==t||"enum"==t)&&De.stream.match(/^\s*\w/,!1)?(De.marked="keyword",d(m("form"),X,v("{"),m("}"),P,g,g)):d(m("stat"),N):"switch"==e?d(m("form"),x,v("{"),m("}","switch"),P,g,g):"case"==e?d(b,v(":")):"default"==e?d(v(":")):"catch"==e?d(m("form"),h,v("("),le,v(")"),y,g,p):"class"==e?d(m("form"),ce,g):"export"==e?d(m("stat"),he,g):"import"==e?d(m("stat"),me,g):"async"==e?d(y):"@"==t?d(b,y):u(m("stat"),b,v(";"),g)}function b(e){return k(e,!1)}function w(e){return k(e,!0)}function x(e){return"("!=e?u():d(m(")"),b,v(")"),g)}function k(e,t){if(De.state.fatArrowAt==De.stream.start){var r=t?O:A;if("("==e)return d(h,m(")"),D(le,")"),g,v("=>"),r,p);if("variable"==e)return u(h,X,v("=>"),r,p)}var n=t?T:S;return Fe.hasOwnProperty(e)?d(n):"function"==e?d(ae,n):"class"==e?d(m("form"),se,g):"keyword c"==e||"async"==e?d(t?w:b):"("==e?d(m(")"),C,v(")"),g,n):"operator"==e||"spread"==e?d(t?w:b):"["==e?d(m("]"),we,g,n):"{"==e?z(E,"}",null,n):"quasi"==e?u(L,n):"new"==e?d(function(e){return function(t){return"."==t?d(e?function(e,t){if("target"==t)return De.marked="keyword",d(T)}:function(e,t){if("target"==t)return De.marked="keyword",d(S)}):"variable"==t&&Ae?d(V,e?T:S):u(e?w:b)}}(t)):d()}function C(e){return e.match(/[;\}\)\],]/)?u():u(b)}function S(e,t){return","==e?d(b):T(e,t,!1)}function T(e,t,r){var n=0==r?S:T,i=0==r?b:w;return"=>"==e?d(h,r?O:A,p):"operator"==e?/\+\+|--/.test(t)||Ae&&"!"==t?d(n):Ae&&"<"==t&&De.stream.match(/^([^>]|<.*?>)*>\s*\(/,!1)?d(m(">"),D(j,">"),g,n):"?"==t?d(b,v(":"),i):d(i):"quasi"==e?u(L,n):";"!=e?"("==e?z(w,")","call",n):"."==e?d(_,n):"["==e?d(m("]"),C,v("]"),g,n):Ae&&"as"==t?(De.marked="keyword",d(j,n)):"regexp"==e?(De.state.lastType=De.marked="operator",De.stream.backUp(De.stream.pos-De.stream.start-1),d(i)):void 0:void 0}function L(e,t){return"quasi"!=e?u():"${"!=t.slice(t.length-2)?d(L):d(b,M)}function M(e){if("}"==e)return De.marked="string-2",De.state.tokenize=a,d(L)}function A(e){return l(De.stream,De.state),u("{"==e?y:b)}function O(e){return l(De.stream,De.state),u("{"==e?y:w)}function N(e){return":"==e?d(g,y):u(S,v(";"),g)}function _(e){if("variable"==e)return De.marked="property",d()}function E(e,t){if("async"==e)return De.marked="property",d(E);if("variable"==e||"keyword"==De.style){if(De.marked="property","get"==t||"set"==t)return d(W);var r;return Ae&&De.state.fatArrowAt==De.stream.start&&(r=De.stream.match(/^\s*:\s*/,!1))&&(De.state.fatArrowAt=De.stream.pos+r[0].length),d(F)}return"number"==e||"string"==e?(De.marked=Le?"property":De.style+" property",d(F)):"jsonld-keyword"==e?d(F):"modifier"==e?d(E):"["==e?d(b,v("]"),F):"spread"==e?d(w,F):"*"==t?(De.marked="keyword",d(E)):":"==e?u(F):void 0}function W(e){return"variable"!=e?u(F):(De.marked="property",d(ae))}function F(e){return":"==e?d(w):"("==e?u(ae):void 0}function D(e,t,r){function n(i,o){if(r?r.indexOf(i)>-1:","==i){var a=De.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),d(function(r,n){return r==t||n==t?u():u(e)},n)}return i==t||o==t?d():d(v(t))}return function(r,i){return r==t||i==t?d():u(e,n)}}function z(e,t,r){for(var n=3;n<arguments.length;n++)De.cc.push(arguments[n]);return d(m(t,r),D(e,t),g)}function P(e){return"}"==e?d():u(y,P)}function H(e,t){if(Ae){if(":"==e)return d(j);if("?"==t)return d(H)}}function I(e){if(Ae&&":"==e)return De.stream.match(/^\s*\w+\s+is\b/,!1)?d(b,R,j):d(j)}function R(e,t){if("is"==t)return De.marked="keyword",d()}function j(e,t){return"variable"==e||"void"==t?"keyof"==t?(De.marked="keyword",d(j)):(De.marked="type",d(K)):"string"==e||"number"==e||"atom"==e?d(K):"["==e?d(m("]"),D(j,"]",","),g,K):"{"==e?d(m("}"),D(q,"}",",;"),g,K):"("==e?d(D(U,")"),B):void 0}function B(e){if("=>"==e)return d(j)}function q(e,t){return"variable"==e||"keyword"==De.style?(De.marked="property",d(q)):"?"==t?d(q):":"==e?d(j):"["==e?d(b,H,v("]"),q):void 0}function U(e){return"variable"==e?d(U):":"==e?d(j):void 0}function K(e,t){return"<"==t?d(m(">"),D(j,">"),g,K):"|"==t||"."==e?d(j):"["==e?d(v("]"),K):"extends"==t?d(j):void 0}function V(e,t){if("<"==t)return d(m(">"),D(j,">"),g,K)}function G(){return u(j,$)}function $(e,t){if("="==t)return d(j)}function Y(){return u(X,H,J,Q)}function X(e,t){return"modifier"==e?d(X):"variable"==e?(f(t),d()):"spread"==e?d(X):"["==e?z(X,"]"):"{"==e?z(Z,"}"):void 0}function Z(e,t){return"variable"!=e||De.stream.match(/^\s*:/,!1)?("variable"==e&&(De.marked="property"),"spread"==e?d(X):"}"==e?u():d(v(":"),X,J)):(f(t),d(J))}function J(e,t){if("="==t)return d(w)}function Q(e){if(","==e)return d(Y)}function ee(e,t){if("keyword b"==e&&"else"==t)return d(m("form","else"),y,g)}function te(e){if("("==e)return d(m(")"),re,v(")"),g)}function re(e){return"var"==e?d(Y,v(";"),ie):";"==e?d(ie):"variable"==e?d(ne):u(b,v(";"),ie)}function ne(e,t){return"in"==t||"of"==t?(De.marked="keyword",d(b)):d(S,ie)}function ie(e,t){return";"==e?d(oe):"in"==t||"of"==t?(De.marked="keyword",d(b)):u(b,v(";"),oe)}function oe(e){")"!=e&&d(b)}function ae(e,t){return"*"==t?(De.marked="keyword",d(ae)):"variable"==e?(f(t),d(ae)):"("==e?d(h,m(")"),D(le,")"),g,I,y,p):Ae&&"<"==t?d(m(">"),D(G,">"),g,ae):void 0}function le(e,t){return"@"==t&&d(b,le),"spread"==e||"modifier"==e?d(le):u(X,H,J)}function se(e,t){return"variable"==e?ce(e,t):ue(e,t)}function ce(e,t){if("variable"==e)return f(t),d(ue)}function ue(e,t){return"<"==t?d(m(">"),D(G,">"),g,ue):"extends"==t||"implements"==t||Ae&&","==e?d(Ae?j:b,ue):"{"==e?d(m("}"),de,g):void 0}function de(e,t){return"modifier"==e||"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t)&&De.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(De.marked="keyword",d(de)):"variable"==e||"keyword"==De.style?(De.marked="property",d(Ae?fe:ae,de)):"["==e?d(b,v("]"),Ae?fe:ae,de):"*"==t?(De.marked="keyword",d(de)):";"==e?d(de):"}"==e?d():"@"==t?d(b,de):void 0}function fe(e,t){return"?"==t?d(fe):":"==e?d(j,J):"="==t?d(w):u(ae)}function he(e,t){return"*"==t?(De.marked="keyword",d(be,v(";"))):"default"==t?(De.marked="keyword",d(b,v(";"))):"{"==e?d(D(pe,"}"),be,v(";")):u(y)}function pe(e,t){return"as"==t?(De.marked="keyword",d(v("variable"))):"variable"==e?u(w,pe):void 0}function me(e){return"string"==e?d():u(ge,ve,be)}function ge(e,t){return"{"==e?z(ge,"}"):("variable"==e&&f(t),"*"==t&&(De.marked="keyword"),d(ye))}function ve(e){if(","==e)return d(ge,ve)}function ye(e,t){if("as"==t)return De.marked="keyword",d(ge)}function be(e,t){if("from"==t)return De.marked="keyword",d(b)}function we(e){return"]"==e?d():u(D(w,"]"))}function xe(e,t,r){return t.tokenize==i&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}var ke,Ce,Se=t.indentUnit,Te=r.statementIndent,Le=r.jsonld,Me=r.json||Le,Ae=r.typescript,Oe=r.wordCharacters||/[\w$\xa1-\uffff]/,Ne=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"},l={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:i,break:i,continue:i,new:e("new"),delete:n,void:n,throw:n,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n};if(Ae){var s={type:"variable",style:"type"},c={interface:e("class"),implements:n,namespace:n,public:e("modifier"),private:e("modifier"),protected:e("modifier"),abstract:e("modifier"),readonly:e("modifier"),string:s,number:s,boolean:s,any:s};for(var u in c)l[u]=c[u]}return l}(),_e=/[+\-*&%=<>!?|~^@]/,Ee=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,We="([{}])",Fe={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},De={state:null,column:null,marked:null,cc:null},ze={name:"this",next:{name:"arguments"}};return g.lex=!0,{startState:function(e){var t={tokenize:i,lastType:"sof",cc:[],lexical:new s((e||0)-Se,0,"block",!1),localVars:r.localVars,context:r.localVars&&{vars:r.localVars},indented:e||0};return r.globalVars&&"object"==typeof r.globalVars&&(t.globalVars=r.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),l(e,t)),t.tokenize!=o&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==ke?r:(t.lastType="operator"!=ke||"++"!=Ce&&"--"!=Ce?ke:"incdec",function(e,t,r,n,i){var o=e.cc;for(De.state=e,De.stream=i,De.marked=null,De.cc=o,De.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():Me?b:y)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return De.marked?De.marked:"variable"==r&&c(e,n)?"variable-2":t}}(t,r,ke,Ce,e))},indent:function(t,n){if(t.tokenize==o)return e.Pass;if(t.tokenize!=i)return 0;var a,l=n&&n.charAt(0),s=t.lexical;if(!/^\s*else\b/.test(n))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==g)s=s.prev;else if(u!=ee)break}for(;("stat"==s.type||"form"==s.type)&&("}"==l||(a=t.cc[t.cc.length-1])&&(a==S||a==T)&&!/^[,\.=+\-*:?[\(]/.test(n));)s=s.prev;Te&&")"==s.type&&"stat"==s.prev.type&&(s=s.prev);var d=s.type,f=l==d;return"vardef"==d?s.indented+("operator"==t.lastType||","==t.lastType?s.info+1:0):"form"==d&&"{"==l?s.indented:"form"==d?s.indented+Se:"stat"==d?s.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||_e.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,n)?Te||Se:0):"switch"!=s.info||f||0==r.doubleIndentSwitch?s.align?s.column+(f?0:1):s.indented+(f?0:Se):s.indented+(/^(?:case|default)\b/.test(n)?Se:2*Se)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Me?null:"/*",blockCommentEnd:Me?null:"*/",blockCommentContinue:Me?null:" * ",lineComment:Me?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Me?"json":"javascript",jsonldMode:Le,jsonMode:Me,expressionAllowed:xe,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=b&&t!=w||e.cc.pop()}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})},{"../../lib/codemirror":15}],19:[function(e,r,n){!function(i){"object"==typeof n&&"object"==typeof r?i(e("../../lib/codemirror")):"function"==typeof t&&t.amd?t(["../../lib/codemirror"],i):i(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},r={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(n,i){function o(e,t){function r(r){return t.tokenize=r,r(e,t)}var n=e.next();if("<"==n)return e.eat("!")?e.eat("[")?e.match("CDATA[")?r(l("atom","]]>")):null:e.match("--")?r(l("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),r(s(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=l("meta","?>"),"meta"):(S=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==n){return(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var r=e.next();if(">"==r||"/"==r&&e.eat(">"))return t.tokenize=o,S=">"==r?"endTag":"selfcloseTag","tag bracket";if("="==r)return S="equals",null;if("<"==r){t.tokenize=o,t.state=d,t.tagName=t.tagStart=null;var n=t.tokenize(e,t);return n?n+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=function(e){var t=function(t,r){for(;!t.eol();)if(t.next()==e){r.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e,t){return function(r,n){for(;!r.eol();){if(r.match(t)){n.tokenize=o;break}r.next()}return e}}function s(e){return function(t,r){for(var n;null!=(n=t.next());){if("<"==n)return r.tokenize=s(e+1),r.tokenize(t,r);if(">"==n){if(1==e){r.tokenize=o;break}return r.tokenize=s(e-1),r.tokenize(t,r)}}return"meta"}}function c(e){e.context&&(e.context=e.context.prev)}function u(e,t){for(var r;;){if(!e.context)return;if(r=e.context.tagName,!x.contextGrabbers.hasOwnProperty(r)||!x.contextGrabbers[r].hasOwnProperty(t))return;c(e)}}function d(e,t,r){return"openTag"==e?(r.tagStart=t.column(),f):"closeTag"==e?h:d}function f(e,t,r){return"word"==e?(r.tagName=t.current(),T="tag",g):(T="error",f)}function h(e,t,r){if("word"==e){var n=t.current();return r.context&&r.context.tagName!=n&&x.implicitlyClosed.hasOwnProperty(r.context.tagName)&&c(r),r.context&&r.context.tagName==n||!1===x.matchClosing?(T="tag",p):(T="tag error",m)}return T="error",m}function p(e,t,r){return"endTag"!=e?(T="error",p):(c(r),d)}function m(e,t,r){return T="error",p(e,0,r)}function g(e,t,r){if("word"==e)return T="attribute",v;if("endTag"==e||"selfcloseTag"==e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,"selfcloseTag"==e||x.autoSelfClosers.hasOwnProperty(n)?u(r,n):(u(r,n),r.context=new function(e,t,r){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r,(x.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}(r,n,i==r.indented)),d}return T="error",g}function v(e,t,r){return"equals"==e?y:(x.allowMissing||(T="error"),g(e,0,r))}function y(e,t,r){return"string"==e?b:"word"==e&&x.allowUnquoted?(T="string",g):(T="error",g(e,0,r))}function b(e,t,r){return"string"==e?b:g(e,0,r)}var w=n.indentUnit,x={},k=i.htmlMode?t:r;for(var C in k)x[C]=k[C];for(var C in i)x[C]=i[C];var S,T;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:d,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;S=null;var r=t.tokenize(e,t);return(r||S)&&"comment"!=r&&(T=null,t.state=t.state(S||r,e,t),T&&(r="error"==T?r+" error":T)),r},indent:function(t,r,n){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+w;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return n?n.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==x.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+w*(x.multilineTagIndentFactor||1);if(x.alignCDATA&&/<!\[CDATA\[/.test(r))return 0;var l=r&&/^<(\/)?([\w_:\.-]*)/.exec(r);if(l&&l[1])for(;i;){if(i.tagName==l[2]){i=i.prev;break}if(!x.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(l)for(;i;){var s=x.contextGrabbers[i.tagName];if(!s||!s.hasOwnProperty(l[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+w:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:x.htmlMode?"html":"xml",helperType:x.htmlMode?"html":"xml",skipAttribute:function(e){e.state==y&&(e.state=g)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})},{"../../lib/codemirror":15}],20:[function(e,t,r){t.exports={prettyPrint:function(e,t){var r,n,i,o,a,l;for(n=(t=t||{}).indent_size||4,i=t.indent_char||" ",a=t.brace_style||"collapse",o=0==t.max_char?1/0:t.max_char||70,l=t.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"],(r=new function(){return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.Utils={whitespace:"\n\r\t ".split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(e,t){for(var r=0;r<t.length;r++)if(e===t[r])return!0;return!1}},this.get_content=function(){for(var e="",t=[],r=!1;"<"!==this.input.charAt(this.pos);){if(this.pos>=this.input.length)return t.length?t.join(""):["","TK_EOF"];if(e=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(e,this.Utils.whitespace))t.length&&(r=!0),this.line_char_count--;else{if(r){if(this.line_char_count>=this.max_char){t.push("\n");for(var n=0;n<this.indent_level;n++)t.push(this.indent_string);this.line_char_count=0}else t.push(" "),this.line_char_count++;r=!1}t.push(e)}}return t.length?t.join(""):""},this.get_contents_to=function(e){if(this.pos==this.input.length)return["","TK_EOF"];var t="",r=new RegExp("</"+e+"\\s*>","igm");r.lastIndex=this.pos;var n=r.exec(this.input),i=n?n.index:this.input.length;return this.pos<i&&(t=this.input.substring(this.pos,i),this.pos=i),t},this.record_tag=function(e){this.tags[e+"count"]?(this.tags[e+"count"]++,this.tags[e+this.tags[e+"count"]]=this.indent_level):(this.tags[e+"count"]=1,this.tags[e+this.tags[e+"count"]]=this.indent_level),this.tags[e+this.tags[e+"count"]+"parent"]=this.tags.parent,this.tags.parent=e+this.tags[e+"count"]},this.retrieve_tag=function(e){if(this.tags[e+"count"]){for(var t=this.tags.parent;t&&e+this.tags[e+"count"]!==t;)t=this.tags[t+"parent"];t&&(this.indent_level=this.tags[e+this.tags[e+"count"]],this.tags.parent=this.tags[t+"parent"]),delete this.tags[e+this.tags[e+"count"]+"parent"],delete this.tags[e+this.tags[e+"count"]],1==this.tags[e+"count"]?delete this.tags[e+"count"]:this.tags[e+"count"]--}},this.get_tag=function(){var e,t,r="",n=[],i=!1;do{if(this.pos>=this.input.length)return n.length?n.join(""):["","TK_EOF"];r=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(r,this.Utils.whitespace)?(i=!0,this.line_char_count--):("'"!==r&&'"'!==r||n[1]&&"!"===n[1]||(r+=this.get_unformatted(r),i=!0),"="===r&&(i=!1),n.length&&"="!==n[n.length-1]&&">"!==r&&i&&(this.line_char_count>=this.max_char?(this.print_newline(!1,n),this.line_char_count=0):(n.push(" "),this.line_char_count++),i=!1),"<"===r&&(e=this.pos-1),n.push(r))}while(">"!==r);var o,a=n.join("");o=-1!=a.indexOf(" ")?a.indexOf(" "):a.indexOf(">");var s=a.substring(1,o).toLowerCase();if("/"===a.charAt(a.length-2)||this.Utils.in_array(s,this.Utils.single_token))this.tag_type="SINGLE";else if("script"===s)this.record_tag(s),this.tag_type="SCRIPT";else if("style"===s)this.record_tag(s),this.tag_type="STYLE";else if(this.Utils.in_array(s,l)){var c=this.get_unformatted("</"+s+">",a);n.push(c),e>0&&this.Utils.in_array(this.input.charAt(e-1),this.Utils.whitespace)&&n.splice(0,0,this.input.charAt(e-1)),t=this.pos-1,this.Utils.in_array(this.input.charAt(t+1),this.Utils.whitespace)&&n.push(this.input.charAt(t+1)),this.tag_type="SINGLE"}else"!"===s.charAt(0)?-1!=s.indexOf("[if")?(-1!=a.indexOf("!IE")&&(c=this.get_unformatted("--\x3e",a),n.push(c)),this.tag_type="START"):-1!=s.indexOf("[endif")?(this.tag_type="END",this.unindent()):-1!=s.indexOf("[cdata[")?(c=this.get_unformatted("]]>",a),n.push(c),this.tag_type="SINGLE"):(c=this.get_unformatted("--\x3e",a),n.push(c),this.tag_type="SINGLE"):("/"===s.charAt(0)?(this.retrieve_tag(s.substring(1)),this.tag_type="END"):(this.record_tag(s),this.tag_type="START"),this.Utils.in_array(s,this.Utils.extra_liners)&&this.print_newline(!0,this.output));return n.join("")},this.get_unformatted=function(e,t){if(t&&-1!=t.toLowerCase().indexOf(e))return"";var r="",n="",i=!0;do{if(this.pos>=this.input.length)return n;if(r=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(r,this.Utils.whitespace)){if(!i){this.line_char_count--;continue}if("\n"===r||"\r"===r){n+="\n",this.line_char_count=0;continue}}n+=r,this.line_char_count++,i=!0}while(-1==n.toLowerCase().indexOf(e));return n},this.get_token=function(){var e;if("TK_TAG_SCRIPT"===this.last_token||"TK_TAG_STYLE"===this.last_token){var t=this.last_token.substr(7);return"string"!=typeof(e=this.get_contents_to(t))?e:[e,"TK_"+t]}return"CONTENT"===this.current_mode?"string"!=typeof(e=this.get_content())?e:[e,"TK_CONTENT"]:"TAG"===this.current_mode?"string"!=typeof(e=this.get_tag())?e:[e,"TK_TAG_"+this.tag_type]:void 0},this.get_full_indent=function(e){return(e=this.indent_level+e||0)<1?"":Array(e+1).join(this.indent_string)},this.printer=function(e,t,r,n,i){this.input=e||"",this.output=[],this.indent_character=t,this.indent_string="",this.indent_size=r,this.brace_style=i,this.indent_level=0,this.max_char=n,this.line_char_count=0;for(var o=0;o<this.indent_size;o++)this.indent_string+=this.indent_character;this.print_newline=function(e,t){if(this.line_char_count=0,t&&t.length){if(!e)for(;this.Utils.in_array(t[t.length-1],this.Utils.whitespace);)t.pop();t.push("\n");for(var r=0;r<this.indent_level;r++)t.push(this.indent_string)}},this.print_token=function(e){this.output.push(e)},this.indent=function(){this.indent_level++},this.unindent=function(){this.indent_level>0&&this.indent_level--}},this}).printer(e,i,n,o,a);;){var s=r.get_token();if(r.token_text=s[0],r.token_type=s[1],"TK_EOF"===r.token_type)break;switch(r.token_type){case"TK_TAG_START":r.print_newline(!1,r.output),r.print_token(r.token_text),r.indent(),r.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":r.print_newline(!1,r.output),r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_TAG_END":if("TK_CONTENT"===r.last_token&&""===r.last_text){var c=r.token_text.match(/\w+/)[0],u=r.output[r.output.length-1].match(/<\s*(\w+)/);null!==u&&u[1]===c||r.print_newline(!0,r.output)}r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var d=r.token_text.match(/^\s*<([a-z]+)/i);d&&r.Utils.in_array(d[1],l)||r.print_newline(!1,r.output),r.print_token(r.token_text),r.current_mode="CONTENT";break;case"TK_CONTENT":""!==r.token_text&&r.print_token(r.token_text),r.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(""!==r.token_text){r.output.push("\n");var f=r.token_text;if("TK_SCRIPT"==r.token_type)var h="function"==typeof js_beautify&&js_beautify;else"TK_STYLE"==r.token_type&&(h="function"==typeof css_beautify&&css_beautify);if("keep"==t.indent_scripts)var p=0;else p="separate"==t.indent_scripts?-r.indent_level:1;var m=r.get_full_indent(p);if(h)f=h(f.replace(/^\s*/,m),t);else{var g=f.match(/^\s*/)[0].match(/[^\n\r]*$/)[0].split(r.indent_string).length-1,v=r.get_full_indent(p-g);f=f.replace(/^\s*/,m).replace(/\r\n|\r|\n/g,"\n"+v).replace(/\s*$/,"")}f&&(r.print_token(f),r.print_newline(!0,r.output))}r.current_mode="TAG"}r.last_token=r.token_type,r.last_text=r.token_text}return r.output.join("")}}},{}],21:[function(e,t,r){"use strict";t.exports=e("./stream/stream")},{"./stream/stream":22}],22:[function(e,t,r){!function(){"use strict";function e(){function t(){return arguments.length>0&&arguments[0]!==v&&r(t,arguments[0]),t._state.value}return function(t){t.constructor=e,t._state={id:g++,value:void 0,state:0,derive:void 0,recover:void 0,deps:{},parents:[],endStream:void 0,unregister:void 0},t.map=t["fantasy-land/map"]=s,t["fantasy-land/ap"]=c,t["fantasy-land/of"]=e,t.valueOf=u,t.toJSON=d,t.toString=u,Object.defineProperties(t,{end:{get:function(){if(!t._state.endStream){var r=e();r.map(function(e){return!0===e&&(l(t),r._state.unregister=function(){l(r)}),e}),t._state.endStream=r}return t._state.endStream}}})}(t),arguments.length>0&&arguments[0]!==v&&r(t,arguments[0]),t}function r(e,t){n(e,t);for(var r in e._state.deps)i(e._state.deps[r],!1);null!=e._state.unregister&&e._state.unregister(),function(e){e._state.changed=!1;for(var t in e._state.deps)e._state.deps[t]._state.changed=!1}(e)}function n(e,t){e._state.value=t,e._state.changed=!0,2!==e._state.state&&(e._state.state=1)}function i(e,t){var r=e._state.parents;if(r.length>0&&r.every(h)&&(t||r.some(p))){var i=e._state.derive();if(i===v)return!1;n(e,i)}}function o(t,r){if(!r.every(f))throw new Error("Ensure that each item passed to stream.combine/stream.merge is a stream");return function(e,t,r){var n=e._state;return n.derive=r,n.parents=t.filter(m),a(e,n.parents),i(e,!0),e}(e(),r,function(){return t.apply(this,r.concat([r.filter(p)]))})}function a(e,t){for(var r=0;r<t.length;r++)t[r]._state.deps[e._state.id]=e,a(e,t[r]._state.parents)}function l(e){for(var t=0;t<e._state.parents.length;t++){delete e._state.parents[t]._state.deps[e._state.id]}for(var r in e._state.deps){var n=e._state.deps[r],i=n._state.parents.indexOf(e);i>-1&&n._state.parents.splice(i,1)}e._state.state=2,e._state.deps={}}function s(e){return o(function(t){return e(t())},[this])}function c(e){return o(function(e,t){return e()(t())},[e,this])}function u(){return this._state.value}function d(){return null!=this._state.value&&"function"==typeof this._state.value.toJSON?this._state.value.toJSON():this._state.value}function f(e){return e._state}function h(e){return 1===e._state.state}function p(e){return e._state.changed}function m(e){return 2!==e._state.state}var g=0,v={};e["fantasy-land/of"]=e,e.merge=function(e){return o(function(){return e.map(function(e){return e()})},e)},e.combine=o,e.scan=function(e,t,r){var n=o(function(r){return t=e(t,r._state.value)},[r]);return 0===n._state.state&&n(t),n},e.scanMerge=function(e,t){var r=e.map(function(e){var t=e[0];return 0===t._state.state&&t(void 0),t});return o(function(){var n=arguments[arguments.length-1];return r.forEach(function(r,i){n.indexOf(r)>-1&&(t=e[i][1](t,r._state.value))}),t},r)},e.HALT=v,void 0!==t?t.exports=e:"function"!=typeof window.m||"stream"in window.m?window.m={stream:e}:window.m.stream=e}()},{}]},{},[11])}();
 
 
 
 
 
 
 
2
  //# sourceMappingURL=forms-admin.min.js.map
assets/js/forms-admin.min.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["forms-admin.js"],"names":["require","undefined","define","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","rows","m","i18n","showType","config","fieldType","type","charAt","toUpperCase","slice","label","fieldLabel","value","onchange","withAttr","placeholder","title","isHidden","initialValue","style","optional","valueHelp","numberMinMax","min","max","isRequired","inputAtts","checked","required","desc","forceRequired","disabled","isFieldRequired","placeholderHelp","useParagraphs","wrap","wrapInParagraphTags","choiceType","options","selected","dropdown","radioButtons","acceptsMultipleValues","push","checkboxes","choices","html","map","choice","index","data-id","name","selectChoice","bind","preselect","remove","class","onclick","key","this","splice","2","forms","render","text","visibleRows","hidden","submit","number","./field-forms-rows.js","3","htmlutil","setAttributes","vnode","dom","setAttribute","g","generate","field","htmlTemplate","vdom","document","createElement","generators","prettyPrint","innerHTML","select","attributes","hasSelection","oncreate","unshift","checkbox","radio","4","FieldHelper","tabs","editor","fields","events","setActiveField","fieldConfig","get","c","join","redraw","controller","createFieldHTMLAndAddToForm","insert","view","fieldCategories","getCategories","availableFields","getAll","fieldsChoice","chooseField","category","categoryFields","filter","className","inForm","inFormContent","form","overlay","help","trust","onkeydown","window","event","keyCode","addToForm","on","./field-forms.js","./field-generator.js","./overlay.js","5","FieldFactory","reset","registeredFields","forEach","deregister","register","data","sticky","getFieldType","phone","birthday","registerMergeField","mergeField","listFields","field_type","tag","mailchimpType","streetAddress","city","state","zip","country","mc4wp_vars","countries","registerInterestCategory","interestCategory","interestCategories","id","interests","registerListFields","list","merge_fields","sort","b","public","interest_categories","registerListsFields","lists","registerCustomFields","formFields","subscribe","submitButton","listChoice","listChoiceDescription","unsubscribe","formAction","formActionDescription","6","prop","createChoices","choiceLabel","FieldChoice","Object","keys","existingField","getAllWhere","shift","categories","indexOf","Field","timeout","clearTimeout","setTimeout","trigger","searchKey","searchValue","mithril/stream","7","CodeMirror","FormEditor","element","domDirty","_dom","getValue","toLowerCase","fromTextArea","selectionPointer","matchTags","bothTags","mode","htmlMode","autoCloseTags","autoRefresh","dispatchEvent","Event","bubbles","addEventListener","signal","query","querySelectorAll","containsField","fieldName","elements","namedItem","replaceSelection","focus","callback","refresh","codemirror","codemirror/addon/edit/closetag.js","codemirror/addon/edit/matchtags","codemirror/addon/fold/xml-fold","codemirror/mode/css/css","codemirror/mode/htmlmixed/htmlmixed","codemirror/mode/javascript/javascript","codemirror/mode/xml/xml","8","FormWatcher","settings","helpers","updateFields","originalRequiredValue","nameGroup","replace","findRequiredFields","requiredFields","requiredFieldElements","Array","prototype","el","requiredFieldsInput","getElementById","debounce","9","show","notices","hide","container","querySelector","heading","parentNode","insertBefore","nextSibling","init","groupingsNotice","requiredFieldsNotice","missingFields","10","close","removeEventListener","onKeyDown","position","_onCloseCallback","preventDefault","_element","windowWidth","innerWidth","documentElement","clientWidth","body","windowHeight","innerHeight","clientHeight","marginLeft","marginTop","left","top","storeElementReference","content","onCloseCallback","11","mc4wp_forms_i18n","mc4wp","deps","mithril","FieldsFactory","textareaElement","formEditor","fieldHelper","mount","fieldsFactory","getSelectedLists","mailchimp","./admin/field-helper.js","./admin/fields-factory.js","./admin/fields.js","./admin/form-editor.js","./admin/form-watcher.js","./admin/notices","12","mod","amd","autoCloseGT","cm","getOption","Pass","ranges","listSelections","replacements","empty","pos","head","tok","getTokenAt","inner","innerMode","getMode","tagName","opt","configuration","dontCloseTags","htmlDontClose","indentTags","htmlIndent","end","ch","lowerTagName","test","string","closingTagExists","indent","newPos","Pos","line","info","replaceRange","anchor","sel","setSelections","indentLine","autoCloseCurrent","typingSlash","start","replacement","context","getLine","replaceSelections","autoCloseSlash","collection","elt","newTag","scanForClosingTag","Math","lastLine","nextClose","cx","onCx","prev","to","next","defineOption","val","old","Init","removeKeyMap","whenClosing","whenOpening","addKeyMap","commands","closeTag","../../lib/codemirror","../fold/xml-fold","13","clear","tagHit","tagOther","doMatchTags","failedTagMatch","operation","somethingSelected","cur","getCursor","range","getViewport","from","match","findMatchingTag","matchBothTags","hit","at","open","markText","other","maybeUpdateMatch","off","toMatchingTag","found","extendSelection","14","cmp","Iter","firstLine","tagAt","iter","getTokenTypeAt","nextLine","prevLine","toTagEnd","gt","lastSlash","lastIndexOf","selfClose","toTagStart","lt","xmlTagStart","lastIndex","exec","toNextTag","toPrevTag","findMatchingClose","stack","startLine","startCh","findMatchingOpen","endLine","endCh","nameStartChar","RegExp","registerHelper","openTag","startPos","endPos","here","findEnclosingTag","forward","15","global","factory","classTest","cls","removeChildren","count","childNodes","removeChild","firstChild","removeChildrenAndAdd","parent","appendChild","cssText","createTextNode","eltP","contains","child","nodeType","host","activeElt","activeElement","shadowRoot","addClass","node","current","joinClasses","as","split","args","arguments","apply","copyObj","obj","target","overwrite","hasOwnProperty","countColumn","tabSize","startIndex","startValue","search","nextTab","array","findColumn","goal","col","skipped","spaceStr","spaceStrs","lst","arr","out","insertSorted","score","priority","nothing","createObj","base","props","inst","create","isWordCharBasic","nonASCIISingleCaseWordChar","isWordChar","helper","source","isEmpty","isExtendingChar","charCodeAt","extendingChars","skipExtendingChars","str","dir","findFirst","pred","midF","mid","ceil","floor","Display","place","doc","input","d","scrollbarFiller","gutterFiller","lineDiv","selectionDiv","cursorDiv","measure","lineMeasure","lineSpace","lines","mover","sizer","sizerWidth","heightForcer","scrollerGap","gutters","lineGutter","scroller","wrapper","ie","ie_version","zIndex","paddingRight","webkit","gecko","mobile","draggable","viewFrom","viewTo","first","reportedViewFrom","reportedViewTo","renderedView","externalMeasured","viewOffset","lastWrapHeight","lastWrapWidth","updateLineNumbers","nativeBarWidth","barHeight","barWidth","scrollbarsClipped","lineNumWidth","lineNumInnerWidth","lineNumChars","alignWidgets","cachedCharWidth","cachedTextHeight","cachedPaddingH","maxLine","maxLineLength","maxLineChanged","wheelDX","wheelDY","wheelStartX","wheelStartY","selForContextMenu","activeTouch","size","chunk","children","sz","chunkSize","getBetween","getLines","updateLineHeight","height","diff","lineNo","no","lineAtHeight","h","outer","i$1","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","clipPos","last","clipToLen","linelen","clipPosArray","seeReadOnlySpans","sawReadOnlySpans","seeCollapsedSpans","sawCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","markedSpans","concat","attachLine","markedSpansBefore","isInsert","nw","startsBefore","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","stretchSpansOverChange","change","full","oldFirst","oldLast","sameLine","offset","span$1","found$1","clearEmptySpans","newMarkers","gapMarkers","gap","i$2","i$3","clearWhenEmpty","removeReadOnlyRanges","markers","mark","readOnly","parts","mk","find","j","p","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","conflictingCollapsedRange","lineNo$$1","visualLine","merged","visualLineEnd","visualLineContinued","visualLineNo","lineN","vis","visualLineEndNo","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","len","findMaxLine","display","iterateBidiSections","order","part","level","getBidiPartAt","bidiOther","getOrder","direction","bidiOrdering","getHandlers","emitter","_handlers","noHandlers","detachEvent","map$$1","handlers","signalDOMEvent","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","set","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","which","button","mac","ctrlKey","zeroWidthElement","zwspSupported","offsetHeight","offsetWidth","hasBadBidiRects","badBidiRects","txt","r0","getBoundingClientRect","r1","right","hasBadZoomedRects","badZoomedRects","normal","fromRange","abs","defineMode","dependencies","modes","defineMIME","mime","spec","mimeModes","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","extendMode","properties","copyState","nstate","startState","a1","a2","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","overlays","baseTokens","i_end","opaque","baseTokenPos","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","result","stateAfter","save","styleClasses","highlightFrontier","modeFrontier","precise","Context","findStartLine","saved","fromSaved","processLine","startAt","stream","StringStream","callBlankLine","eol","readToken","blankLine","token","takeToken","asArray","tokens","Token","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","after","SavedContext","lookAhead","indented","retreatFrontier","updateLine","estimateHeight","estHeight","cleanUpLine","interpretTokenStyle","cache","styleToClassCacheWithMode","styleToClassCache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","rest","addToken","buildToken","buildTokenBadBidi","insertLineContent","maps","caches","lastChild","defaultSpecialCharPlaceholder","toString","startStyle","endStyle","css","displayText","special","specialChars","mustWrap","createDocumentFragment","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","Infinity","foundBookmarks","endStyles","j$1","j$2","upto","tokenText","LineView","buildViewArray","nextPos","pushOperation","op","operationGroup","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","group","callbacks","cursorActivityCalled","finishOperation","endCb","signalLater","orphanDelayedCallbacks","fireOrphanDelayed","delayed","updateLineForChanges","dims","changes","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","updateLineBackground","background","getLineContent","ext","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterWidth","alignable","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","widgetHeight","parentStyle","eventInWidget","getAttribute","paddingTop","offsetTop","paddingVert","paddingH","getComputedStyle","currentStyle","parseInt","isNaN","scrollGap","displayWidth","displayHeight","ensureLineHeights","rect","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","bottom","mapFromLineView","before","updateExternalMeasurement","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","nodeAndOffsetInLineMap","collapse","mStart","mEnd","coverStart","coverEnd","getUsefulRect","nullRect","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","pageScrollX","chrome","android","pageXOffset","scrollLeft","pageScrollY","pageYOffset","scrollTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","invert","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","mergedPos","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","box","widgetHeight$$1","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","ref","closestDist","endX","dist","textHeight","measureText","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","space","clientX","clientY","colDiff","round","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","selection","primIndex","range$$1","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","otherCursor","cmpCoords","add","fragment","rightSide","drawForLine","fromArg","toArg","wrapX","side","extent","lineLen","fromPos","toPos","openStart","openEnd","openLeft","docLTR","openRight","leftSide","topLeft","topRight","botLeft","botRight","padding","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","clearInterval","blinker","visibility","cursorBlinkRate","setInterval","ensureFocus","onFocus","delayBlurEvent","delayingBlurEvent","onBlur","receivedFocus","rmClass","updateHeightsInViewport","prevBottom","updateWidgetHeight","visibleLines","viewport","ensure","ensureFrom","ensureTo","alignHorizontally","comp","gutterW","align","maybeUpdateLineNumberWidth","innerW","updateGutterSpace","maybeScrollWindow","doScroll","phantom","scrollNode","scrollIntoView","scrollPosIntoView","margin","limit","changed","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","measureForScrollbars","docH","viewHeight","viewWidth","barLeft","docHeight","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","update","paddingBottom","borderBottom","coverGutterNextToScrollbar","initScrollbars","scrollbarModel","scrollbarStyle","axis","startOperation","viewChanged","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","nextOpId","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","i$4","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","minWidth","takeFocus","setDocumentHeight","postUpdateDisplay","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","regChange","lendiff","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","time","highlight","highlightWorker","Date","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","marginBottom","borderRightWidth","selectionSnapshot","hasFocus","active","getSelection","anchorNode","extend","anchorOffset","focusNode","focusOffset","restoreSelection","snapshot","createRange","setEnd","removeAllRanges","addRange","editorIsHidden","force","visible","viewportMargin","different","wrapperHeight","toUpdate","selSnapshot","patchDisplay","minHeight","oldDisplayWidth","updateNumbersFrom","rm","currentWheelTarget","updateNumber","updateGutters","specs","gElt","setGuttersForLineNumbers","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","wheelPixelsPerUnit","onScrollWheel","scroll","canScrollX","canScrollY","presto","pixels","wheelSamples","movedX","movedY","sample","normalizeSelection","prim","inv","Range","Selection","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","estimateHeight$$1","spansFor","linesFor","Line","lastText","lastSpans","nlines","added","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","directionChanged","History","startGen","done","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","pop","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","history","origin","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","equals","existing","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","copy","deepCopy","newChanges","Number","extendRange","posBefore","setSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","this$1","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","atomic","near","movePos","far","cantEdit","selectAll","sel_dontScroll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","antiChanges","returned","v","shiftDoc","distance","removed","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","assign","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","adjustScrollWhenAboveVisible","addLineWidget","LineWidget","insertAt","aboveVisible","markTextShared","TextMarker","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","nextMarkerId","cloneNode","isParent","SharedTextMarker","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","onDrop","clearDragCursor","lastDrop","files","dataTransfer","isReadOnly","FileReader","File","read","file","allowDropFileTypes","reader","onload","lineSeparator","readAsText","draggingText","text$1","getData","onDragStart","setData","effectAllowed","setDragImage","safari","img","src","_top","onDragOver","frag","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","ensureGlobalHandlers","globalsRegistered","registerGlobalHandlers","resizeTimer","onResize","setSize","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyNames","addModifierNames","noShift","altKey","flipCtrlCmd","metaKey","shiftKey","keyName","altGraphKey","keyMap","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","moveInStorageOrder","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","searchInVisualLine","getRes","res","nextCh","lineStart","visual","lineEnd","lineStartSmart","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","dispatchKey","seq","keySeq","stopSeq","handleKeyBinding","motion","handleCharBinding","handled","lastStoppedKey","hasCopyEvent","showCrossHair","up","onKeyUp","onKeyPress","charCode","fromCharCode","clickRepeat","now","lastDoubleClick","compare","lastClick","PastClick","onMouseDown","supportsTouch","clickInGutter","repeat","selectingText","handleMappedButton","leftButtonDown","captureRightClick","onContextMenu","configureMouse","option","unit","chromeOS","addNew","moveOnDrag","contained","behavior","dragDrop","dragAndDrop","leftButtonStartDrag","leftButtonSelect","moved","dragEnd","mouseMove","dragStart","e2","rangeForUnit","findWordAt","extendTo","lastPos","startCol","posCol","leftPos","startSel","ourIndex","oldRange","ourRange","ranges$1","bidiSimplify","sel_mouse","curCount","counter","editorSize","move","anchorLine","boundary","headIndex","usePart","gutterEvent","prevent","mX","mY","touches","lineBox","contextMenuInGutter","themeChanged","theme","guttersChanged","dragDropChanged","funcs","dragFunctions","toggle","enter","over","leave","drop","wrappingChanged","CodeMirror$1","defaults","Doc","inputStyles","inputStyle","pasteIncoming","cutIncoming","Delayed","autofocus","registerEventHandlers","optionHandlers","finishInit","initHooks","textRendering","finishTouch","touchFinished","prevTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","word","pageX","pageY","inp","getField","how","aggressive","curSpace","indentation","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","setLastCopied","newLastCopied","lastCopied","applyTextInput","inserted","deleted","paste","textLines","splitLinesAuto","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","getRange","disableBrowserMagic","spellcheck","hiddenTextarea","te","div","ios","border","findPosH","findNextLine","moveOnce","boundToLine","origDir","sawType","getHelper","hitSide","findPosV","pageSize","moveAmount","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","recognizeMarker","closing","lineSep","addText","walk","cmText","textContent","markerID","isBlock","nodeName","nodeValue","domToPos","lineNode","locateNodeInLineView","textNode","topNode","curNode","previousSibling","dist$1","textarea","tabindex","tabIndex","realSubmit","leaveSubmitMethodAlone","wrappedSubmit","getTextArea","toTextArea","getWrapperElement","userAgent","navigator","platform","ie_upto10","ie_11up","edge","documentMode","qtwebkit","vendor","mac_geMountainLion","windows","presto_version","endNode","setStart","createTextRange","moveToElementText","moveEnd","moveStart","selectInput","selectionStart","selectionEnd","_e","ms","sel_move","charType","lowTypes","arabicTypes","BidiSpan","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","outerType","types","type$1","prev$1","type$2","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","i$7","nstart","reverse","attachEvent","nl","rt","ownerDocument","parentElement","compareEndPoints","oncopy","lineOracle","lastColumnPos","lastColumnValue","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","pattern","consume","caseInsensitive","cased","substr","hideFirstChars","oracle","baseToken","maxLookAhead","NativeScrollbars","vert","horiz","checkedZeroWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","w","pointerEvents","bar","delay","maybeDisable","elementFromPoint","NullScrollbars","native","null","there","removeInner","insertInner","iterN","oldHeight","remaining","leaf","maybeSpill","me","spilled","sibling","myIndex","used","oldH","withOp","dHeight","nextDocId","cleanGeneration","constructor","setValue","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","setCursor","extendSelectionsBy","addSelection","getSelections","dup","newSel","undo","redo","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","where","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","link","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","44","45","46","59","61","91","92","93","106","107","109","110","111","127","173","186","187","188","189","190","191","192","219","220","221","222","63232","63233","63234","63235","63272","63273","63275","63276","63277","63302","basic","Left","Right","Up","Down","End","Home","PageUp","PageDown","Delete","Backspace","Shift-Backspace","Tab","Shift-Tab","Enter","Insert","Esc","pcDefault","Ctrl-A","Ctrl-D","Ctrl-Z","Shift-Ctrl-Z","Ctrl-Y","Ctrl-Home","Ctrl-End","Ctrl-Up","Ctrl-Down","Ctrl-Left","Ctrl-Right","Alt-Left","Alt-Right","Ctrl-Backspace","Ctrl-Delete","Ctrl-S","Ctrl-F","Ctrl-G","Shift-Ctrl-G","Shift-Ctrl-F","Shift-Ctrl-R","Ctrl-[","Ctrl-]","Ctrl-U","Shift-Ctrl-U","Alt-U","emacsy","Ctrl-B","Ctrl-P","Ctrl-N","Alt-F","Alt-B","Ctrl-E","Ctrl-V","Shift-Ctrl-V","Ctrl-H","Alt-D","Alt-Backspace","Ctrl-K","Ctrl-T","Ctrl-O","macDefault","Cmd-A","Cmd-D","Cmd-Z","Shift-Cmd-Z","Cmd-Y","Cmd-Home","Cmd-Up","Cmd-End","Cmd-Down","Cmd-Left","Cmd-Right","Ctrl-Alt-Backspace","Alt-Delete","Cmd-S","Cmd-F","Cmd-G","Shift-Cmd-G","Cmd-Alt-F","Shift-Cmd-Alt-F","Cmd-[","Cmd-]","Cmd-Backspace","Cmd-Delete","Cmd-U","Shift-Cmd-U","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","goLineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","openLine","toggleOverwrite","defineInitHook","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","blur","poll","pollSelection","pollInterval","triggerOnKeyDown","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","contentEditable","readOnlyChanged","resetPosition","TextareaInput","prevInput","pollingFast","prepareCopyCut","fastPoll","moveInputWithCursor","headPos","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","prepareSelectAllHack","extval","rehide","oldWrapperCSS","oldCSS","detectingSelectAll","resetSelectionOnContextMenu","wrapperBox","oldScrollY","scrollY","scrollTo","mouseup","deflt","notOnInit","newBreaks","getInputField","detach","attach","integer","setOption","getDoc","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getHelpers","_global","getStateAfter","defaultTextHeight","defaultCharWidth","addWidget","vspace","hspace","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","amount","rtlMoveVisually","goalColumn","goals","startChar","check","getScrollInfo","interpret","swapDoc","getScrollerElement","getGutterElement","registerGlobalHelper","predicate","dontDelegate","method","contenteditable","defineExtension","func","defineDocExtension","cmpPos","version","keySet","tokenCComment","maybeEnd","tokenize","parserConfig","ret","tp","tokenBase","tokenHooks","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","states","popAndPass","wordAsValue","valueKeywords","colorKeywords","inline","propertyKeywords","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","allowNested","lineComment","supportsAtComponent","stateArg","block","maybeprop","propBlock","_stream","parens","pseudo","atBlock","atComponentBlock","atBlock_parens","restricted_atBlock_before","restricted_atBlock","keyframes","interpolation","textAfter","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","fontProperties_","counterDescriptors_","colorKeywords_","valueKeywords_","allWords","/",":","$","#","@","&","maybeBackup","pat","getAttrRegexp","attr","regexp","attrRegexpCache","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","defaultTags","script","htmlState","tags","inTag","endTagA","endTag","localState","localMode","multilineTagIndentFactor","multilineTagIndentPastTag","configTags","configScript","scriptTypes","matches","local","../css/css","../javascript/javascript","../xml/xml","readRegexp","inSet","cont","tokenComment","expressionAllowed","tokenQuasi","isOperatorChar","lexical","wordRE","lastType","keywords","propertyIsEnumerable","kw","jsonldMode","isJsonldKeyword","findFatArrow","fatArrowAt","arrow","isTS","depth","sawSomething","bracket","brackets","JSLexical","inScope","varname","localVars","vars","parseJS","cc","marked","jsonMode","expression","statement","lex","inList","globalVars","pushcontext","defaultVars","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","typeexpr","maybelabel","funarg","afterExport","afterImport","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","atomicTypes","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","property","continueQuasi","targetNoComma","maybeTypeArgs","_","getterSetter","afterprop","what","sep","proceed","maybetype","afterType","typeprop","typearg","maybeReturnType","maybeAssign","vardefCont","proppattern","_type","forspec1","forspec2","formaybeinof","forspec3","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","isContinuedStatement","statementIndent","jsonld","json","typescript","wordCharacters","A","B","C","D","operator","atom","jsKeywords","if","while","with","else","do","try","finally","return","break","continue","new","delete","void","throw","debugger","var","const","let","function","catch","for","switch","case","default","in","typeof","instanceof","true","false","super","yield","export","import","extends","await","tsKeywords","interface","implements","namespace","enum","private","protected","abstract","readonly","boolean","any","variable","jsonld-keyword","basecolumn","firstChar","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","area","br","command","embed","frame","hr","keygen","meta","param","track","wbr","menuitem","implicitlyClosed","dd","li","optgroup","rp","tbody","td","tfoot","tr","contextGrabbers","dt","address","article","aside","blockquote","dl","fieldset","footer","h1","h2","h3","h4","h5","h6","header","hgroup","menu","nav","ol","section","table","ul","thead","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","chain","parser","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","setStyle","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","style_html","html_source","Parser","current_mode","parentcount","parent1","tag_type","token_text","last_token","last_text","token_type","Utils","whitespace","single_token","extra_liners","in_array","get_content","input_char","line_char_count","max_char","indent_level","indent_string","get_contents_to","reg_match","reg_array","end_script","substring","record_tag","retrieve_tag","temp_parent","get_tag","tag_start","tag_end","get_unformatted","print_newline","tag_index","tag_complete","tag_check","unformatted","comment","unindent","delimiter","orig_tag","get_token","get_full_indent","printer","js_source","indent_character","indent_size","brace_style","ignore","print_token","multi_parser","indent_char","tag_name","tag_extracted_from_last_output","_beautifier","js_beautify","css_beautify","indent_scripts","script_indent_level","white","_level","reindent","21","./stream/stream","22","createStream","HALT","updateStream","_state","initStream","guid","derive","recover","parents","endStream","unregister","ap","valueOf","toJSON","defineProperties","unregisterStream","updateState","updateDependency","finalize","mustSync","every","some","combine","fn","streams","valid","initDependency","dep","notEnded","registerDependency","dependent","s1","s2","merge","reducer","seed","newStream","scanMerge","tuples","tuple","idx"],"mappings":"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