MailChimp for WordPress - Version 4.1.11

Version Description

Download this release

Release Info

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

Code changes from version 4.1.10 to 4.1.11

CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
  Changelog
2
  =========
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  #### 4.1.10 - October 19, 2017
5
 
6
  **Improvements**
@@ -1060,4 +1075,4 @@ Minor improvements and additions for compatibility with the [MailChimp Sync plug
1060
 
1061
  - Added sign-up checkbox integration for [WooCommerce](https://wordpress.org/plugins/woocommerce/) checkout.
1062
  - Added sign-up checkbox integration for [Easy Digital Downloads](https://wordpress.org/plugins/easy-digital-downloads/) checkout.
1063
- - The entered email will now be appended to the URL when redirecting to another page
1
  Changelog
2
  =========
3
 
4
+ #### 4.1.11 - November 2, 2017
5
+
6
+ **Fixes**
7
+
8
+ - Filter out empty array values when overriding selected MailChimp lists via `_mc4wp_lists`.
9
+
10
+ **Improvements**
11
+
12
+ - Updated JavaScript dependencies.
13
+
14
+ **Additions**
15
+
16
+ - Link to the [HTML Forms](https://www.htmlforms.io/) from the plugin settings pages.
17
+
18
+
19
  #### 4.1.10 - October 19, 2017
20
 
21
  **Improvements**
1075
 
1076
  - Added sign-up checkbox integration for [WooCommerce](https://wordpress.org/plugins/woocommerce/) checkout.
1077
  - Added sign-up checkbox integration for [Easy Digital Downloads](https://wordpress.org/plugins/easy-digital-downloads/) checkout.
1078
+ - The entered email will now be appended to the URL when redirecting to another page
assets/js/admin.js CHANGED
@@ -743,10 +743,10 @@ var _8 = function($window, Promise) {
743
  _abort.call(xhr)
744
  }
745
  xhr.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)
746
- if (args.serialize === JSON.stringify && useBody) {
747
  xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8")
748
  }
749
- if (args.deserialize === deserialize) {
750
  xhr.setRequestHeader("Accept", "application/json, text/*")
751
  }
752
  if (args.withCredentials) xhr.withCredentials = args.withCredentials
@@ -1438,7 +1438,8 @@ var coreRenderer = function($window) {
1438
  updateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), false, hooks, null, namespace === "http://www.w3.org/1999/xhtml" ? undefined : namespace)
1439
  dom.vnodes = vnodes
1440
  for (var i = 0; i < hooks.length; i++) hooks[i]()
1441
- if ($doc.activeElement !== active) active.focus()
 
1442
  }
1443
  return {render: render, setEventCallback: setEventCallback}
1444
  }
@@ -1704,7 +1705,7 @@ m.request = requestService.request
1704
  m.jsonp = requestService.jsonp
1705
  m.parseQueryString = parseQueryString
1706
  m.buildQueryString = buildQueryString
1707
- m.version = "1.1.3"
1708
  m.vnode = Vnode
1709
  if (typeof module !== "undefined") module["exports"] = m
1710
  else window.m = m
@@ -1712,7 +1713,7 @@ else window.m = m
1712
  }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
1713
  },{}],8:[function(require,module,exports){
1714
  /*!
1715
- * EventEmitter v5.2.2 - git.io/ee
1716
  * Unlicense - http://unlicense.org/
1717
  * Oliver Caldwell - http://oli.me.uk/
1718
  * @preserve
743
  _abort.call(xhr)
744
  }
745
  xhr.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)
746
+ if (args.serialize === JSON.stringify && useBody && !(args.headers && args.headers.hasOwnProperty("Content-Type"))) {
747
  xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8")
748
  }
749
+ if (args.deserialize === deserialize && !(args.headers && args.headers.hasOwnProperty("Accept"))) {
750
  xhr.setRequestHeader("Accept", "application/json, text/*")
751
  }
752
  if (args.withCredentials) xhr.withCredentials = args.withCredentials
1438
  updateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), false, hooks, null, namespace === "http://www.w3.org/1999/xhtml" ? undefined : namespace)
1439
  dom.vnodes = vnodes
1440
  for (var i = 0; i < hooks.length; i++) hooks[i]()
1441
+ // document.activeElement can return null in IE https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement
1442
+ if (active != null && $doc.activeElement !== active) active.focus()
1443
  }
1444
  return {render: render, setEventCallback: setEventCallback}
1445
  }
1705
  m.jsonp = requestService.jsonp
1706
  m.parseQueryString = parseQueryString
1707
  m.buildQueryString = buildQueryString
1708
+ m.version = "1.1.5"
1709
  m.vnode = Vnode
1710
  if (typeof module !== "undefined") module["exports"] = m
1711
  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
assets/js/admin.min.js CHANGED
@@ -1,3 +1,3 @@
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&&o.setRequestHeader("Content-Type","application/json; charset=utf-8"),n.deserialize===u&&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&&C(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 L=d[k.key];if(null!=L){var j=t[L],_=null!=f&&L>=t.length-f.length||null==f&&r;h(e,j,k,a,E(t,m+1,l),r,s),A(e,x(j),l),t[L].skip=!0,null!=j.dom&&(l=j.dom)}else{var C=o(e,k,a,s,l);l=C}}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&&(j(e),e.dom)){var n=e.domSize||1;if(n>1)for(var o=e.dom;--n;)L(o.nextSibling);L(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 L(e){var t=e.parentNode;null!=t&&t.removeChild(e)}function j(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)j(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&&j(r)}}}function C(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&&!R(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&&!P(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]||R(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 R(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function P(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]();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.3",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();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},
2
- 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=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
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","setRequestHeader","withCredentials","headers","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) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (args.deserialize === deserialize) {\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\tif ($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.3\"\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.2 - 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","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 })();"]}
assets/js/forms-admin.js CHANGED
@@ -1989,13 +1989,18 @@ function skipExtendingChars(str, pos, dir) {
1989
  }
1990
 
1991
  // Returns the value from the range [`from`; `to`] that satisfies
1992
- // `pred` and is closest to `from`. Assumes that at least `to` satisfies `pred`.
 
1993
  function findFirst(pred, from, to) {
 
 
 
1994
  for (;;) {
1995
- if (Math.abs(from - to) <= 1) { return pred(from) ? from : to }
1996
- var mid = Math.floor((from + to) / 2);
 
1997
  if (pred(mid)) { to = mid; }
1998
- else { from = mid; }
1999
  }
2000
  }
2001
 
@@ -2607,12 +2612,12 @@ function findMaxLine(cm) {
2607
  // BIDI HELPERS
2608
 
2609
  function iterateBidiSections(order, from, to, f) {
2610
- if (!order) { return f(from, to, "ltr") }
2611
  var found = false;
2612
  for (var i = 0; i < order.length; ++i) {
2613
  var part = order[i];
2614
  if (part.from < to && part.to > from || from == to && part.to == from) {
2615
- f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr");
2616
  found = true;
2617
  }
2618
  }
@@ -2793,13 +2798,15 @@ var bidiOrdering = (function() {
2793
  if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }
2794
  }
2795
  }
2796
- if (order[0].level == 1 && (m = str.match(/^\s+/))) {
2797
- order[0].from = m[0].length;
2798
- order.unshift(new BidiSpan(0, 0, m[0].length));
2799
- }
2800
- if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
2801
- lst(order).to -= m[0].length;
2802
- order.push(new BidiSpan(0, len - m[0].length, len));
 
 
2803
  }
2804
 
2805
  return direction == "rtl" ? order.reverse() : order
@@ -2815,112 +2822,6 @@ function getOrder(line, direction) {
2815
  return order
2816
  }
2817
 
2818
- function moveCharLogically(line, ch, dir) {
2819
- var target = skipExtendingChars(line.text, ch + dir, dir);
2820
- return target < 0 || target > line.text.length ? null : target
2821
- }
2822
-
2823
- function moveLogically(line, start, dir) {
2824
- var ch = moveCharLogically(line, start.ch, dir);
2825
- return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before")
2826
- }
2827
-
2828
- function endOfLine(visually, cm, lineObj, lineNo, dir) {
2829
- if (visually) {
2830
- var order = getOrder(lineObj, cm.doc.direction);
2831
- if (order) {
2832
- var part = dir < 0 ? lst(order) : order[0];
2833
- var moveInStorageOrder = (dir < 0) == (part.level == 1);
2834
- var sticky = moveInStorageOrder ? "after" : "before";
2835
- var ch;
2836
- // With a wrapped rtl chunk (possibly spanning multiple bidi parts),
2837
- // it could be that the last bidi part is not on the last visual line,
2838
- // since visual lines contain content order-consecutive chunks.
2839
- // Thus, in rtl, we are looking for the first (content-order) character
2840
- // in the rtl chunk that is on the last line (that is, the same line
2841
- // as the last (content-order) character).
2842
- if (part.level > 0) {
2843
- var prep = prepareMeasureForLine(cm, lineObj);
2844
- ch = dir < 0 ? lineObj.text.length - 1 : 0;
2845
- var targetTop = measureCharPrepared(cm, prep, ch).top;
2846
- ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
2847
- if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
2848
- } else { ch = dir < 0 ? part.to : part.from; }
2849
- return new Pos(lineNo, ch, sticky)
2850
- }
2851
- }
2852
- return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after")
2853
- }
2854
-
2855
- function moveVisually(cm, line, start, dir) {
2856
- var bidi = getOrder(line, cm.doc.direction);
2857
- if (!bidi) { return moveLogically(line, start, dir) }
2858
- if (start.ch >= line.text.length) {
2859
- start.ch = line.text.length;
2860
- start.sticky = "before";
2861
- } else if (start.ch <= 0) {
2862
- start.ch = 0;
2863
- start.sticky = "after";
2864
- }
2865
- var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];
2866
- if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {
2867
- // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,
2868
- // nothing interesting happens.
2869
- return moveLogically(line, start, dir)
2870
- }
2871
-
2872
- var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };
2873
- var prep;
2874
- var getWrappedLineExtent = function (ch) {
2875
- if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }
2876
- prep = prep || prepareMeasureForLine(cm, line);
2877
- return wrappedLineExtentChar(cm, line, prep, ch)
2878
- };
2879
- var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch);
2880
-
2881
- if (cm.doc.direction == "rtl" || part.level == 1) {
2882
- var moveInStorageOrder = (part.level == 1) == (dir < 0);
2883
- var ch = mv(start, moveInStorageOrder ? 1 : -1);
2884
- if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {
2885
- // Case 2: We move within an rtl part or in an rtl editor on the same visual line
2886
- var sticky = moveInStorageOrder ? "before" : "after";
2887
- return new Pos(start.line, ch, sticky)
2888
- }
2889
- }
2890
-
2891
- // Case 3: Could not move within this bidi part in this visual line, so leave
2892
- // the current bidi part
2893
-
2894
- var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {
2895
- var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder
2896
- ? new Pos(start.line, mv(ch, 1), "before")
2897
- : new Pos(start.line, ch, "after"); };
2898
-
2899
- for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {
2900
- var part = bidi[partPos];
2901
- var moveInStorageOrder = (dir > 0) == (part.level != 1);
2902
- var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);
2903
- if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }
2904
- ch = moveInStorageOrder ? part.from : mv(part.to, -1);
2905
- if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }
2906
- }
2907
- };
2908
-
2909
- // Case 3a: Look for other bidi parts on the same visual line
2910
- var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);
2911
- if (res) { return res }
2912
-
2913
- // Case 3b: Look for other bidi parts on the next visual line
2914
- var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);
2915
- if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {
2916
- res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));
2917
- if (res) { return res }
2918
- }
2919
-
2920
- // Case 4: Nowhere to move
2921
- return null
2922
- }
2923
-
2924
  // EVENT HANDLING
2925
 
2926
  // Lightweight event framework. on/off also work on DOM nodes,
@@ -3282,6 +3183,10 @@ StringStream.prototype.lookAhead = function (n) {
3282
  var oracle = this.lineOracle;
3283
  return oracle && oracle.lookAhead(n)
3284
  };
 
 
 
 
3285
 
3286
  var SavedContext = function(state, lookAhead) {
3287
  this.state = state;
@@ -3293,6 +3198,8 @@ var Context = function(doc, state, line, lookAhead) {
3293
  this.doc = doc;
3294
  this.line = line;
3295
  this.maxLookAhead = lookAhead || 0;
 
 
3296
  };
3297
 
3298
  Context.prototype.lookAhead = function (n) {
@@ -3301,6 +3208,17 @@ Context.prototype.lookAhead = function (n) {
3301
  return line
3302
  };
3303
 
 
 
 
 
 
 
 
 
 
 
 
3304
  Context.prototype.nextLine = function () {
3305
  this.line++;
3306
  if (this.maxLookAhead > 0) { this.maxLookAhead--; }
@@ -3334,6 +3252,7 @@ function highlightLine(cm, line, context, forceToEnd) {
3334
 
3335
  // Run overlays, adjust style array.
3336
  var loop = function ( o ) {
 
3337
  var overlay = cm.state.overlays[o], i = 1, at = 0;
3338
  context.state = true;
3339
  runMode(cm, line.text, overlay.mode, context, function (end, style) {
@@ -3357,10 +3276,12 @@ function highlightLine(cm, line, context, forceToEnd) {
3357
  }
3358
  }
3359
  }, lineClasses);
 
 
 
3360
  };
3361
 
3362
  for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
3363
- context.state = state;
3364
 
3365
  return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
3366
  }
@@ -4431,15 +4352,22 @@ function pageScrollY() {
4431
  return window.pageYOffset || (document.documentElement || document.body).scrollTop
4432
  }
4433
 
 
 
 
 
 
 
 
4434
  // Converts a {top, bottom, left, right} box from line-local
4435
  // coordinates into another coordinate system. Context may be one of
4436
  // "line", "div" (display.lineDiv), "local"./null (editor), "window",
4437
  // or "page".
4438
  function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
4439
- if (!includeWidgets && lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) {
4440
- var size = widgetHeight(lineObj.widgets[i]);
4441
- rect.top += size; rect.bottom += size;
4442
- } } }
4443
  if (context == "line") { return rect }
4444
  if (!context) { context = "local"; }
4445
  var yOff = heightAtLine(lineObj);
@@ -4514,7 +4442,7 @@ function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
4514
  if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") }
4515
 
4516
  function getBidi(ch, partPos, invert) {
4517
- var part = order[partPos], right = (part.level % 2) != 0;
4518
  return get(invert ? ch - 1 : ch, right != invert)
4519
  }
4520
  var partPos = getBidiPartAt(order, ch, sticky);
@@ -4572,77 +4500,147 @@ function coordsChar(cm, x, y) {
4572
  }
4573
 
4574
  function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
4575
- var measure = function (ch) { return intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, ch), "line"); };
4576
  var end = lineObj.text.length;
4577
- var begin = findFirst(function (ch) { return measure(ch - 1).bottom <= y; }, end, 0);
4578
- end = findFirst(function (ch) { return measure(ch).top > y; }, begin, end);
4579
  return {begin: begin, end: end}
4580
  }
4581
 
4582
  function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
 
4583
  var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top;
4584
  return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)
4585
  }
4586
 
 
 
 
 
 
 
4587
  function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
 
4588
  y -= heightAtLine(lineObj);
4589
- var begin = 0, end = lineObj.text.length;
4590
  var preparedMeasure = prepareMeasureForLine(cm, lineObj);
4591
- var pos;
 
 
 
 
4592
  var order = getOrder(lineObj, cm.doc.direction);
 
 
4593
  if (order) {
4594
- if (cm.options.lineWrapping) {
4595
- var assign;
4596
- ((assign = wrappedLineExtent(cm, lineObj, preparedMeasure, y), begin = assign.begin, end = assign.end, assign));
4597
- }
4598
- pos = new Pos(lineNo$$1, Math.floor(begin + (end - begin) / 2));
4599
- var beginLeft = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left;
4600
- var dir = beginLeft < x ? 1 : -1;
4601
- var prevDiff, diff = beginLeft - x, prevPos;
4602
- var steps = Math.ceil((end - begin) / 4);
4603
- outer: do {
4604
- prevDiff = diff;
4605
- prevPos = pos;
4606
- var i = 0;
4607
- for (; i < steps; ++i) {
4608
- var prevPos$1 = pos;
4609
- pos = moveVisually(cm, lineObj, pos, dir);
4610
- if (pos == null || pos.ch < begin || end <= (pos.sticky == "before" ? pos.ch - 1 : pos.ch)) {
4611
- pos = prevPos$1;
4612
- break outer
4613
- }
4614
- }
4615
- diff = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left - x;
4616
- if (steps > 1) {
4617
- var diff_change_per_step = Math.abs(diff - prevDiff) / steps;
4618
- steps = Math.min(steps, Math.ceil(Math.abs(diff) / diff_change_per_step));
4619
- dir = diff < 0 ? 1 : -1;
4620
- }
4621
- } while (diff != 0 && (steps > 1 || ((dir < 0) != (diff < 0) && (Math.abs(diff) <= Math.abs(prevDiff)))))
4622
- if (Math.abs(diff) > Math.abs(prevDiff)) {
4623
- if ((diff < 0) == (prevDiff < 0)) { throw new Error("Broke out of infinite loop in coordsCharInner") }
4624
- pos = prevPos;
4625
  }
 
 
 
 
 
 
 
 
 
 
 
4626
  } else {
4627
- var ch = findFirst(function (ch) {
4628
- var box = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, ch), "line");
4629
- if (box.top > y) {
4630
- // For the cursor stickiness
4631
- end = Math.min(ch, end);
4632
- return true
4633
- }
4634
- else if (box.bottom <= y) { return false }
4635
- else if (box.left > x) { return true }
4636
- else if (box.right < x) { return false }
4637
- else { return (x - box.left < box.right - x) }
4638
- }, begin, end);
4639
- ch = skipExtendingChars(lineObj.text, ch, 1);
4640
- pos = new Pos(lineNo$$1, ch, ch == end ? "before" : "after");
4641
- }
4642
- var coords = cursorCoords(cm, pos, "line", lineObj, preparedMeasure);
4643
- if (y < coords.top || coords.bottom < y) { pos.outside = true; }
4644
- pos.xRel = x < coords.left ? -1 : (x > coords.right ? 1 : 0);
4645
- return pos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4646
  }
4647
 
4648
  var measureText;
@@ -4768,12 +4766,14 @@ function updateSelection(cm) {
4768
  }
4769
 
4770
  function prepareSelection(cm, primary) {
 
 
4771
  var doc = cm.doc, result = {};
4772
  var curFragment = result.cursors = document.createDocumentFragment();
4773
  var selFragment = result.selection = document.createDocumentFragment();
4774
 
4775
  for (var i = 0; i < doc.sel.ranges.length; i++) {
4776
- if (primary === false && i == doc.sel.primIndex) { continue }
4777
  var range$$1 = doc.sel.ranges[i];
4778
  if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }
4779
  var collapsed = range$$1.empty();
@@ -4804,12 +4804,15 @@ function drawSelectionCursor(cm, head, output) {
4804
  }
4805
  }
4806
 
 
 
4807
  // Draws the given range as a highlighted selection
4808
  function drawSelectionRange(cm, range$$1, output) {
4809
  var display = cm.display, doc = cm.doc;
4810
  var fragment = document.createDocumentFragment();
4811
  var padding = paddingH(cm.display), leftSide = padding.left;
4812
  var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
 
4813
 
4814
  function add(left, top, width, bottom) {
4815
  if (top < 0) { top = 0; }
@@ -4826,30 +4829,49 @@ function drawSelectionRange(cm, range$$1, output) {
4826
  return charCoords(cm, Pos(line, ch), "div", lineObj, bias)
4827
  }
4828
 
4829
- iterateBidiSections(getOrder(lineObj, doc.direction), fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir) {
4830
- var leftPos = coords(from, "left"), rightPos, left, right;
4831
- if (from == to) {
4832
- rightPos = leftPos;
4833
- left = right = leftPos.left;
4834
- } else {
4835
- rightPos = coords(to - 1, "right");
4836
- if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }
4837
- left = leftPos.left;
4838
- right = rightPos.right;
4839
- }
4840
- if (fromArg == null && from == 0) { left = leftSide; }
4841
- if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part
4842
- add(left, leftPos.top, null, leftPos.bottom);
4843
- left = leftSide;
4844
- if (leftPos.bottom < rightPos.top) { add(left, leftPos.bottom, null, rightPos.top); }
4845
- }
4846
- if (toArg == null && to == lineLen) { right = rightSide; }
4847
- if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)
4848
- { start = leftPos; }
4849
- if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)
4850
- { end = rightPos; }
4851
- if (left < leftSide + 1) { left = leftSide; }
4852
- add(left, rightPos.top, right - left, rightPos.bottom);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4853
  });
4854
  return {start: start, end: end}
4855
  }
@@ -5479,7 +5501,7 @@ function endOperation_R2(op) {
5479
  }
5480
 
5481
  if (op.updatedDisplay || op.selectionChanged)
5482
- { op.preparedSelection = display.input.prepareSelection(op.focus); }
5483
  }
5484
 
5485
  function endOperation_W2(op) {
@@ -5492,7 +5514,7 @@ function endOperation_W2(op) {
5492
  cm.display.maxLineChanged = false;
5493
  }
5494
 
5495
- var takeFocus = op.focus && op.focus == activeElt() && (!document.hasFocus || document.hasFocus());
5496
  if (op.preparedSelection)
5497
  { cm.display.input.showSelection(op.preparedSelection, takeFocus); }
5498
  if (op.updatedDisplay || op.startHeight != cm.doc.height)
@@ -7092,7 +7114,8 @@ function makeChangeSingleDocInEditor(cm, change, spans) {
7092
 
7093
  function replaceRange(doc, code, from, to, origin) {
7094
  if (!to) { to = from; }
7095
- if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; }
 
7096
  if (typeof code == "string") { code = doc.splitLines(code); }
7097
  makeChange(doc, {from: from, to: to, text: code, origin: origin});
7098
  }
@@ -8453,6 +8476,112 @@ function deleteNearSelection(cm, compute) {
8453
  });
8454
  }
8455
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8456
  // Commands are parameter-less actions that can be performed on an
8457
  // editor, mostly used for keybindings.
8458
  var commands = {
@@ -9014,7 +9143,7 @@ function leftButtonSelect(cm, event, start, behavior) {
9014
  anchor = maxPos(oldRange.to(), range$$1.head);
9015
  }
9016
  var ranges$1 = startSel.ranges.slice(0);
9017
- ranges$1[ourIndex] = new Range(clipPos(doc, anchor), head);
9018
  setSelection(doc, normalizeSelection(ranges$1, ourIndex), sel_mouse);
9019
  }
9020
  }
@@ -9066,13 +9195,52 @@ function leftButtonSelect(cm, event, start, behavior) {
9066
  on(document, "mouseup", up);
9067
  }
9068
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9069
 
9070
  // Determines whether an event happened in the gutter, and fires the
9071
  // handlers for the corresponding event.
9072
  function gutterEvent(cm, e, type, prevent) {
9073
  var mX, mY;
9074
- try { mX = e.clientX; mY = e.clientY; }
9075
- catch(e) { return false }
 
 
 
 
 
9076
  if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }
9077
  if (prevent) { e_preventDefault(e); }
9078
 
@@ -9410,7 +9578,7 @@ function registerEventHandlers(cm) {
9410
  return dx * dx + dy * dy > 20 * 20
9411
  }
9412
  on(d.scroller, "touchstart", function (e) {
9413
- if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e)) {
9414
  d.input.ensurePolled();
9415
  clearTimeout(touchFinished);
9416
  var now = +new Date;
@@ -11194,7 +11362,7 @@ CodeMirror$1.fromTextArea = fromTextArea;
11194
 
11195
  addLegacyProps(CodeMirror$1);
11196
 
11197
- CodeMirror$1.version = "5.29.0";
11198
 
11199
  return CodeMirror$1;
11200
 
@@ -11613,6 +11781,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11613
  electricChars: "}",
11614
  blockCommentStart: "/*",
11615
  blockCommentEnd: "*/",
 
11616
  lineComment: lineComment,
11617
  fold: "brace"
11618
  };
@@ -12213,13 +12382,13 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12213
 
12214
  var keywords = function(){
12215
  function kw(type) {return {type: type, style: "keyword"};}
12216
- var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
12217
  var operator = kw("operator"), atom = {type: "atom", style: "atom"};
12218
 
12219
  var jsKeywords = {
12220
  "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
12221
- "return": C, "break": C, "continue": C, "new": kw("new"), "delete": C, "throw": C, "debugger": C,
12222
- "var": kw("var"), "const": kw("var"), "let": kw("var"),
12223
  "function": kw("function"), "catch": kw("catch"),
12224
  "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
12225
  "in": operator, "typeof": operator, "instanceof": operator,
@@ -12318,7 +12487,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12318
  stream.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/);
12319
  return ret("regexp", "string-2");
12320
  } else {
12321
- stream.eatWhile(isOperatorChar);
12322
  return ret("operator", "operator", stream.current());
12323
  }
12324
  } else if (ch == "`") {
@@ -12328,8 +12497,14 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12328
  stream.skipToEnd();
12329
  return ret("error", "error");
12330
  } else if (isOperatorChar.test(ch)) {
12331
- if (ch != ">" || !state.lexical || state.lexical.type != ">")
12332
- stream.eatWhile(isOperatorChar);
 
 
 
 
 
 
12333
  return ret("operator", "operator", stream.current());
12334
  } else if (wordRE.test(ch)) {
12335
  stream.eatWhile(wordRE);
@@ -12541,6 +12716,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12541
  if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex);
12542
  if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
12543
  if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
 
 
12544
  if (type == "{") return cont(pushlex("}"), block, poplex);
12545
  if (type == ";") return cont();
12546
  if (type == "if") {
@@ -12588,7 +12765,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12588
  function expressionInner(type, noComma) {
12589
  if (cx.state.fatArrowAt == cx.stream.start) {
12590
  var body = noComma ? arrowBodyNoComma : arrowBody;
12591
- if (type == "(") return cont(pushcontext, pushlex(")"), commasep(pattern, ")"), poplex, expect("=>"), body, popcontext);
12592
  else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
12593
  }
12594
 
@@ -12596,7 +12773,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12596
  if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
12597
  if (type == "function") return cont(functiondef, maybeop);
12598
  if (type == "class") return cont(pushlex("form"), classExpression, poplex);
12599
- if (type == "keyword c" || type == "async") return cont(noComma ? maybeexpressionNoComma : maybeexpression);
12600
  if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
12601
  if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
12602
  if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
@@ -12609,10 +12786,6 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12609
  if (type.match(/[;\}\)\],]/)) return pass();
12610
  return pass(expression);
12611
  }
12612
- function maybeexpressionNoComma(type) {
12613
- if (type.match(/[;\}\)\],]/)) return pass();
12614
- return pass(expressionNoComma);
12615
- }
12616
 
12617
  function maybeoperatorComma(type, value) {
12618
  if (type == ",") return cont(expression);
@@ -12633,6 +12806,11 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12633
  if (type == ".") return cont(property, me);
12634
  if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
12635
  if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
 
 
 
 
 
12636
  }
12637
  function quasi(type, value) {
12638
  if (type != "quasi") return pass();
@@ -12681,6 +12859,9 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12681
  } else if (type == "variable" || cx.style == "keyword") {
12682
  cx.marked = "property";
12683
  if (value == "get" || value == "set") return cont(getterSetter);
 
 
 
12684
  return cont(afterprop);
12685
  } else if (type == "number" || type == "string") {
12686
  cx.marked = jsonldMode ? "property" : (cx.style + " property");
@@ -12692,7 +12873,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12692
  } else if (type == "[") {
12693
  return cont(expression, expect("]"), afterprop);
12694
  } else if (type == "spread") {
12695
- return cont(expression, afterprop);
 
 
 
12696
  } else if (type == ":") {
12697
  return pass(afterprop)
12698
  }
@@ -12740,7 +12924,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12740
  }
12741
  }
12742
  function typeexpr(type, value) {
12743
- if (type == "variable") {
12744
  if (value == "keyof") {
12745
  cx.marked = "keyword"
12746
  return cont(typeexpr)
@@ -12838,7 +13022,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12838
  if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, maybetype, statement, popcontext);
12839
  if (isTS && value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, functiondef)
12840
  }
12841
- function funarg(type) {
 
12842
  if (type == "spread" || type == "modifier") return cont(funarg);
12843
  return pass(pattern, maybetype, maybeAssign);
12844
  }
@@ -12864,7 +13049,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12864
  cx.marked = "keyword";
12865
  return cont(classBody);
12866
  }
12867
- if (type == "variable") {
12868
  cx.marked = "property";
12869
  return cont(isTS ? classfield : functiondef, classBody);
12870
  }
@@ -12926,7 +13111,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12926
 
12927
  function expressionAllowed(stream, state, backUp) {
12928
  return state.tokenize == tokenBase &&
12929
- /^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
12930
  (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
12931
  }
12932
 
@@ -12995,6 +13180,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
12995
  electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
12996
  blockCommentStart: jsonMode ? null : "/*",
12997
  blockCommentEnd: jsonMode ? null : "*/",
 
12998
  lineComment: jsonMode ? null : "//",
12999
  fold: "brace",
13000
  closeBrackets: "()[]{}''\"\"``",
1989
  }
1990
 
1991
  // Returns the value from the range [`from`; `to`] that satisfies
1992
+ // `pred` and is closest to `from`. Assumes that at least `to`
1993
+ // satisfies `pred`. Supports `from` being greater than `to`.
1994
  function findFirst(pred, from, to) {
1995
+ // At any point we are certain `to` satisfies `pred`, don't know
1996
+ // whether `from` does.
1997
+ var dir = from > to ? -1 : 1;
1998
  for (;;) {
1999
+ if (from == to) { return from }
2000
+ var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);
2001
+ if (mid == from) { return pred(mid) ? from : to }
2002
  if (pred(mid)) { to = mid; }
2003
+ else { from = mid + dir; }
2004
  }
2005
  }
2006
 
2612
  // BIDI HELPERS
2613
 
2614
  function iterateBidiSections(order, from, to, f) {
2615
+ if (!order) { return f(from, to, "ltr", 0) }
2616
  var found = false;
2617
  for (var i = 0; i < order.length; ++i) {
2618
  var part = order[i];
2619
  if (part.from < to && part.to > from || from == to && part.to == from) {
2620
+ f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i);
2621
  found = true;
2622
  }
2623
  }
2798
  if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }
2799
  }
2800
  }
2801
+ if (direction == "ltr") {
2802
+ if (order[0].level == 1 && (m = str.match(/^\s+/))) {
2803
+ order[0].from = m[0].length;
2804
+ order.unshift(new BidiSpan(0, 0, m[0].length));
2805
+ }
2806
+ if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
2807
+ lst(order).to -= m[0].length;
2808
+ order.push(new BidiSpan(0, len - m[0].length, len));
2809
+ }
2810
  }
2811
 
2812
  return direction == "rtl" ? order.reverse() : order
2822
  return order
2823
  }
2824
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2825
  // EVENT HANDLING
2826
 
2827
  // Lightweight event framework. on/off also work on DOM nodes,
3183
  var oracle = this.lineOracle;
3184
  return oracle && oracle.lookAhead(n)
3185
  };
3186
+ StringStream.prototype.baseToken = function () {
3187
+ var oracle = this.lineOracle;
3188
+ return oracle && oracle.baseToken(this.pos)
3189
+ };
3190
 
3191
  var SavedContext = function(state, lookAhead) {
3192
  this.state = state;
3198
  this.doc = doc;
3199
  this.line = line;
3200
  this.maxLookAhead = lookAhead || 0;
3201
+ this.baseTokens = null;
3202
+ this.baseTokenPos = 1;
3203
  };
3204
 
3205
  Context.prototype.lookAhead = function (n) {
3208
  return line
3209
  };
3210
 
3211
+ Context.prototype.baseToken = function (n) {
3212
+ var this$1 = this;
3213
+
3214
+ if (!this.baseTokens) { return null }
3215
+ while (this.baseTokens[this.baseTokenPos] <= n)
3216
+ { this$1.baseTokenPos += 2; }
3217
+ var type = this.baseTokens[this.baseTokenPos + 1];
3218
+ return {type: type && type.replace(/( |^)overlay .*/, ""),
3219
+ size: this.baseTokens[this.baseTokenPos] - n}
3220
+ };
3221
+
3222
  Context.prototype.nextLine = function () {
3223
  this.line++;
3224
  if (this.maxLookAhead > 0) { this.maxLookAhead--; }
3252
 
3253
  // Run overlays, adjust style array.
3254
  var loop = function ( o ) {
3255
+ context.baseTokens = st;
3256
  var overlay = cm.state.overlays[o], i = 1, at = 0;
3257
  context.state = true;
3258
  runMode(cm, line.text, overlay.mode, context, function (end, style) {
3276
  }
3277
  }
3278
  }, lineClasses);
3279
+ context.state = state;
3280
+ context.baseTokens = null;
3281
+ context.baseTokenPos = 1;
3282
  };
3283
 
3284
  for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
 
3285
 
3286
  return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
3287
  }
4352
  return window.pageYOffset || (document.documentElement || document.body).scrollTop
4353
  }
4354
 
4355
+ function widgetTopHeight(lineObj) {
4356
+ var height = 0;
4357
+ if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)
4358
+ { height += widgetHeight(lineObj.widgets[i]); } } }
4359
+ return height
4360
+ }
4361
+
4362
  // Converts a {top, bottom, left, right} box from line-local
4363
  // coordinates into another coordinate system. Context may be one of
4364
  // "line", "div" (display.lineDiv), "local"./null (editor), "window",
4365
  // or "page".
4366
  function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
4367
+ if (!includeWidgets) {
4368
+ var height = widgetTopHeight(lineObj);
4369
+ rect.top += height; rect.bottom += height;
4370
+ }
4371
  if (context == "line") { return rect }
4372
  if (!context) { context = "local"; }
4373
  var yOff = heightAtLine(lineObj);
4442
  if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") }
4443
 
4444
  function getBidi(ch, partPos, invert) {
4445
+ var part = order[partPos], right = part.level == 1;
4446
  return get(invert ? ch - 1 : ch, right != invert)
4447
  }
4448
  var partPos = getBidiPartAt(order, ch, sticky);
4500
  }
4501
 
4502
  function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
4503
+ y -= widgetTopHeight(lineObj);
4504
  var end = lineObj.text.length;
4505
+ var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);
4506
+ end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);
4507
  return {begin: begin, end: end}
4508
  }
4509
 
4510
  function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
4511
+ if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }
4512
  var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top;
4513
  return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)
4514
  }
4515
 
4516
+ // Returns true if the given side of a box is after the given
4517
+ // coordinates, in top-to-bottom, left-to-right order.
4518
+ function boxIsAfter(box, x, y, left) {
4519
+ return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x
4520
+ }
4521
+
4522
  function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
4523
+ // Move y into line-local coordinate space
4524
  y -= heightAtLine(lineObj);
 
4525
  var preparedMeasure = prepareMeasureForLine(cm, lineObj);
4526
+ // When directly calling `measureCharPrepared`, we have to adjust
4527
+ // for the widgets at this line.
4528
+ var widgetHeight$$1 = widgetTopHeight(lineObj);
4529
+ var begin = 0, end = lineObj.text.length, ltr = true;
4530
+
4531
  var order = getOrder(lineObj, cm.doc.direction);
4532
+ // If the line isn't plain left-to-right text, first figure out
4533
+ // which bidi section the coordinates fall into.
4534
  if (order) {
4535
+ var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)
4536
+ (cm, lineObj, lineNo$$1, preparedMeasure, order, x, y);
4537
+ ltr = part.level != 1;
4538
+ // The awkward -1 offsets are needed because findFirst (called
4539
+ // on these below) will treat its first bound as inclusive,
4540
+ // second as exclusive, but we want to actually address the
4541
+ // characters in the part's range
4542
+ begin = ltr ? part.from : part.to - 1;
4543
+ end = ltr ? part.to : part.from - 1;
4544
+ }
4545
+
4546
+ // A binary search to find the first character whose bounding box
4547
+ // starts after the coordinates. If we run across any whose box wrap
4548
+ // the coordinates, store that.
4549
+ var chAround = null, boxAround = null;
4550
+ var ch = findFirst(function (ch) {
4551
+ var box = measureCharPrepared(cm, preparedMeasure, ch);
4552
+ box.top += widgetHeight$$1; box.bottom += widgetHeight$$1;
4553
+ if (!boxIsAfter(box, x, y, false)) { return false }
4554
+ if (box.top <= y && box.left <= x) {
4555
+ chAround = ch;
4556
+ boxAround = box;
 
 
 
 
 
 
 
 
 
4557
  }
4558
+ return true
4559
+ }, begin, end);
4560
+
4561
+ var baseX, sticky, outside = false;
4562
+ // If a box around the coordinates was found, use that
4563
+ if (boxAround) {
4564
+ // Distinguish coordinates nearer to the left or right side of the box
4565
+ var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;
4566
+ ch = chAround + (atStart ? 0 : 1);
4567
+ sticky = atStart ? "after" : "before";
4568
+ baseX = atLeft ? boxAround.left : boxAround.right;
4569
  } else {
4570
+ // (Adjust for extended bound, if necessary.)
4571
+ if (!ltr && (ch == end || ch == begin)) { ch++; }
4572
+ // To determine which side to associate with, get the box to the
4573
+ // left of the character and compare it's vertical position to the
4574
+ // coordinates
4575
+ sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" :
4576
+ (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ?
4577
+ "after" : "before";
4578
+ // Now get accurate coordinates for this place, in order to get a
4579
+ // base X position
4580
+ var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure);
4581
+ baseX = coords.left;
4582
+ outside = y < coords.top || y >= coords.bottom;
4583
+ }
4584
+
4585
+ ch = skipExtendingChars(lineObj.text, ch, 1);
4586
+ return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX)
4587
+ }
4588
+
4589
+ function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) {
4590
+ // Bidi parts are sorted left-to-right, and in a non-line-wrapping
4591
+ // situation, we can take this ordering to correspond to the visual
4592
+ // ordering. This finds the first part whose end is after the given
4593
+ // coordinates.
4594
+ var index = findFirst(function (i) {
4595
+ var part = order[i], ltr = part.level != 1;
4596
+ return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? "before" : "after"),
4597
+ "line", lineObj, preparedMeasure), x, y, true)
4598
+ }, 0, order.length - 1);
4599
+ var part = order[index];
4600
+ // If this isn't the first part, the part's start is also after
4601
+ // the coordinates, and the coordinates aren't on the same line as
4602
+ // that start, move one part back.
4603
+ if (index > 0) {
4604
+ var ltr = part.level != 1;
4605
+ var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? "after" : "before"),
4606
+ "line", lineObj, preparedMeasure);
4607
+ if (boxIsAfter(start, x, y, true) && start.top > y)
4608
+ { part = order[index - 1]; }
4609
+ }
4610
+ return part
4611
+ }
4612
+
4613
+ function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {
4614
+ // In a wrapped line, rtl text on wrapping boundaries can do things
4615
+ // that don't correspond to the ordering in our `order` array at
4616
+ // all, so a binary search doesn't work, and we want to return a
4617
+ // part that only spans one line so that the binary search in
4618
+ // coordsCharInner is safe. As such, we first find the extent of the
4619
+ // wrapped line, and then do a flat search in which we discard any
4620
+ // spans that aren't on the line.
4621
+ var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);
4622
+ var begin = ref.begin;
4623
+ var end = ref.end;
4624
+ if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; }
4625
+ var part = null, closestDist = null;
4626
+ for (var i = 0; i < order.length; i++) {
4627
+ var p = order[i];
4628
+ if (p.from >= end || p.to <= begin) { continue }
4629
+ var ltr = p.level != 1;
4630
+ var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;
4631
+ // Weigh against spans ending before this, so that they are only
4632
+ // picked if nothing ends after
4633
+ var dist = endX < x ? x - endX + 1e9 : endX - x;
4634
+ if (!part || closestDist > dist) {
4635
+ part = p;
4636
+ closestDist = dist;
4637
+ }
4638
+ }
4639
+ if (!part) { part = order[order.length - 1]; }
4640
+ // Clip the part to the wrapped line.
4641
+ if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }
4642
+ if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }
4643
+ return part
4644
  }
4645
 
4646
  var measureText;
4766
  }
4767
 
4768
  function prepareSelection(cm, primary) {
4769
+ if ( primary === void 0 ) primary = true;
4770
+
4771
  var doc = cm.doc, result = {};
4772
  var curFragment = result.cursors = document.createDocumentFragment();
4773
  var selFragment = result.selection = document.createDocumentFragment();
4774
 
4775
  for (var i = 0; i < doc.sel.ranges.length; i++) {
4776
+ if (!primary && i == doc.sel.primIndex) { continue }
4777
  var range$$1 = doc.sel.ranges[i];
4778
  if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }
4779
  var collapsed = range$$1.empty();
4804
  }
4805
  }
4806
 
4807
+ function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }
4808
+
4809
  // Draws the given range as a highlighted selection
4810
  function drawSelectionRange(cm, range$$1, output) {
4811
  var display = cm.display, doc = cm.doc;
4812
  var fragment = document.createDocumentFragment();
4813
  var padding = paddingH(cm.display), leftSide = padding.left;
4814
  var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
4815
+ var docLTR = doc.direction == "ltr";
4816
 
4817
  function add(left, top, width, bottom) {
4818
  if (top < 0) { top = 0; }
4829
  return charCoords(cm, Pos(line, ch), "div", lineObj, bias)
4830
  }
4831
 
4832
+ function wrapX(pos, dir, side) {
4833
+ var extent = wrappedLineExtentChar(cm, lineObj, null, pos);
4834
+ var prop = (dir == "ltr") == (side == "after") ? "left" : "right";
4835
+ var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);
4836
+ return coords(ch, prop)[prop]
4837
+ }
4838
+
4839
+ var order = getOrder(lineObj, doc.direction);
4840
+ iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {
4841
+ var ltr = dir == "ltr";
4842
+ var fromPos = coords(from, ltr ? "left" : "right");
4843
+ var toPos = coords(to - 1, ltr ? "right" : "left");
4844
+
4845
+ var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;
4846
+ var first = i == 0, last = !order || i == order.length - 1;
4847
+ if (toPos.top - fromPos.top <= 3) { // Single line
4848
+ var openLeft = (docLTR ? openStart : openEnd) && first;
4849
+ var openRight = (docLTR ? openEnd : openStart) && last;
4850
+ var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;
4851
+ var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;
4852
+ add(left, fromPos.top, right - left, fromPos.bottom);
4853
+ } else { // Multiple lines
4854
+ var topLeft, topRight, botLeft, botRight;
4855
+ if (ltr) {
4856
+ topLeft = docLTR && openStart && first ? leftSide : fromPos.left;
4857
+ topRight = docLTR ? rightSide : wrapX(from, dir, "before");
4858
+ botLeft = docLTR ? leftSide : wrapX(to, dir, "after");
4859
+ botRight = docLTR && openEnd && last ? rightSide : toPos.right;
4860
+ } else {
4861
+ topLeft = !docLTR ? leftSide : wrapX(from, dir, "before");
4862
+ topRight = !docLTR && openStart && first ? rightSide : fromPos.right;
4863
+ botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;
4864
+ botRight = !docLTR ? rightSide : wrapX(to, dir, "after");
4865
+ }
4866
+ add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);
4867
+ if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }
4868
+ add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);
4869
+ }
4870
+
4871
+ if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }
4872
+ if (cmpCoords(toPos, start) < 0) { start = toPos; }
4873
+ if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }
4874
+ if (cmpCoords(toPos, end) < 0) { end = toPos; }
4875
  });
4876
  return {start: start, end: end}
4877
  }
5501
  }
5502
 
5503
  if (op.updatedDisplay || op.selectionChanged)
5504
+ { op.preparedSelection = display.input.prepareSelection(); }
5505
  }
5506
 
5507
  function endOperation_W2(op) {
5514
  cm.display.maxLineChanged = false;
5515
  }
5516
 
5517
+ var takeFocus = op.focus && op.focus == activeElt();
5518
  if (op.preparedSelection)
5519
  { cm.display.input.showSelection(op.preparedSelection, takeFocus); }
5520
  if (op.updatedDisplay || op.startHeight != cm.doc.height)
7114
 
7115
  function replaceRange(doc, code, from, to, origin) {
7116
  if (!to) { to = from; }
7117
+ if (cmp(to, from) < 0) { var assign;
7118
+ (assign = [to, from], from = assign[0], to = assign[1], assign); }
7119
  if (typeof code == "string") { code = doc.splitLines(code); }
7120
  makeChange(doc, {from: from, to: to, text: code, origin: origin});
7121
  }
8476
  });
8477
  }
8478
 
8479
+ function moveCharLogically(line, ch, dir) {
8480
+ var target = skipExtendingChars(line.text, ch + dir, dir);
8481
+ return target < 0 || target > line.text.length ? null : target
8482
+ }
8483
+
8484
+ function moveLogically(line, start, dir) {
8485
+ var ch = moveCharLogically(line, start.ch, dir);
8486
+ return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before")
8487
+ }
8488
+
8489
+ function endOfLine(visually, cm, lineObj, lineNo, dir) {
8490
+ if (visually) {
8491
+ var order = getOrder(lineObj, cm.doc.direction);
8492
+ if (order) {
8493
+ var part = dir < 0 ? lst(order) : order[0];
8494
+ var moveInStorageOrder = (dir < 0) == (part.level == 1);
8495
+ var sticky = moveInStorageOrder ? "after" : "before";
8496
+ var ch;
8497
+ // With a wrapped rtl chunk (possibly spanning multiple bidi parts),
8498
+ // it could be that the last bidi part is not on the last visual line,
8499
+ // since visual lines contain content order-consecutive chunks.
8500
+ // Thus, in rtl, we are looking for the first (content-order) character
8501
+ // in the rtl chunk that is on the last line (that is, the same line
8502
+ // as the last (content-order) character).
8503
+ if (part.level > 0 || cm.doc.direction == "rtl") {
8504
+ var prep = prepareMeasureForLine(cm, lineObj);
8505
+ ch = dir < 0 ? lineObj.text.length - 1 : 0;
8506
+ var targetTop = measureCharPrepared(cm, prep, ch).top;
8507
+ ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
8508
+ if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
8509
+ } else { ch = dir < 0 ? part.to : part.from; }
8510
+ return new Pos(lineNo, ch, sticky)
8511
+ }
8512
+ }
8513
+ return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after")
8514
+ }
8515
+
8516
+ function moveVisually(cm, line, start, dir) {
8517
+ var bidi = getOrder(line, cm.doc.direction);
8518
+ if (!bidi) { return moveLogically(line, start, dir) }
8519
+ if (start.ch >= line.text.length) {
8520
+ start.ch = line.text.length;
8521
+ start.sticky = "before";
8522
+ } else if (start.ch <= 0) {
8523
+ start.ch = 0;
8524
+ start.sticky = "after";
8525
+ }
8526
+ var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];
8527
+ if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {
8528
+ // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,
8529
+ // nothing interesting happens.
8530
+ return moveLogically(line, start, dir)
8531
+ }
8532
+
8533
+ var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };
8534
+ var prep;
8535
+ var getWrappedLineExtent = function (ch) {
8536
+ if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }
8537
+ prep = prep || prepareMeasureForLine(cm, line);
8538
+ return wrappedLineExtentChar(cm, line, prep, ch)
8539
+ };
8540
+ var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch);
8541
+
8542
+ if (cm.doc.direction == "rtl" || part.level == 1) {
8543
+ var moveInStorageOrder = (part.level == 1) == (dir < 0);
8544
+ var ch = mv(start, moveInStorageOrder ? 1 : -1);
8545
+ if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {
8546
+ // Case 2: We move within an rtl part or in an rtl editor on the same visual line
8547
+ var sticky = moveInStorageOrder ? "before" : "after";
8548
+ return new Pos(start.line, ch, sticky)
8549
+ }
8550
+ }
8551
+
8552
+ // Case 3: Could not move within this bidi part in this visual line, so leave
8553
+ // the current bidi part
8554
+
8555
+ var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {
8556
+ var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder
8557
+ ? new Pos(start.line, mv(ch, 1), "before")
8558
+ : new Pos(start.line, ch, "after"); };
8559
+
8560
+ for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {
8561
+ var part = bidi[partPos];
8562
+ var moveInStorageOrder = (dir > 0) == (part.level != 1);
8563
+ var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);
8564
+ if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }
8565
+ ch = moveInStorageOrder ? part.from : mv(part.to, -1);
8566
+ if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }
8567
+ }
8568
+ };
8569
+
8570
+ // Case 3a: Look for other bidi parts on the same visual line
8571
+ var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);
8572
+ if (res) { return res }
8573
+
8574
+ // Case 3b: Look for other bidi parts on the next visual line
8575
+ var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);
8576
+ if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {
8577
+ res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));
8578
+ if (res) { return res }
8579
+ }
8580
+
8581
+ // Case 4: Nowhere to move
8582
+ return null
8583
+ }
8584
+
8585
  // Commands are parameter-less actions that can be performed on an
8586
  // editor, mostly used for keybindings.
8587
  var commands = {
9143
  anchor = maxPos(oldRange.to(), range$$1.head);
9144
  }
9145
  var ranges$1 = startSel.ranges.slice(0);
9146
+ ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));
9147
  setSelection(doc, normalizeSelection(ranges$1, ourIndex), sel_mouse);
9148
  }
9149
  }
9195
  on(document, "mouseup", up);
9196
  }
9197
 
9198
+ // Used when mouse-selecting to adjust the anchor to the proper side
9199
+ // of a bidi jump depending on the visual position of the head.
9200
+ function bidiSimplify(cm, range$$1) {
9201
+ var anchor = range$$1.anchor;
9202
+ var head = range$$1.head;
9203
+ var anchorLine = getLine(cm.doc, anchor.line);
9204
+ if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 }
9205
+ var order = getOrder(anchorLine);
9206
+ if (!order) { return range$$1 }
9207
+ var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];
9208
+ if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 }
9209
+ var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);
9210
+ if (boundary == 0 || boundary == order.length) { return range$$1 }
9211
+
9212
+ // Compute the relative visual position of the head compared to the
9213
+ // anchor (<0 is to the left, >0 to the right)
9214
+ var leftSide;
9215
+ if (head.line != anchor.line) {
9216
+ leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0;
9217
+ } else {
9218
+ var headIndex = getBidiPartAt(order, head.ch, head.sticky);
9219
+ var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);
9220
+ if (headIndex == boundary - 1 || headIndex == boundary)
9221
+ { leftSide = dir < 0; }
9222
+ else
9223
+ { leftSide = dir > 0; }
9224
+ }
9225
+
9226
+ var usePart = order[boundary + (leftSide ? -1 : 0)];
9227
+ var from = leftSide == (usePart.level == 1);
9228
+ var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before";
9229
+ return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head)
9230
+ }
9231
+
9232
 
9233
  // Determines whether an event happened in the gutter, and fires the
9234
  // handlers for the corresponding event.
9235
  function gutterEvent(cm, e, type, prevent) {
9236
  var mX, mY;
9237
+ if (e.touches) {
9238
+ mX = e.touches[0].clientX;
9239
+ mY = e.touches[0].clientY;
9240
+ } else {
9241
+ try { mX = e.clientX; mY = e.clientY; }
9242
+ catch(e) { return false }
9243
+ }
9244
  if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }
9245
  if (prevent) { e_preventDefault(e); }
9246
 
9578
  return dx * dx + dy * dy > 20 * 20
9579
  }
9580
  on(d.scroller, "touchstart", function (e) {
9581
+ if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {
9582
  d.input.ensurePolled();
9583
  clearTimeout(touchFinished);
9584
  var now = +new Date;
11362
 
11363
  addLegacyProps(CodeMirror$1);
11364
 
11365
+ CodeMirror$1.version = "5.31.0";
11366
 
11367
  return CodeMirror$1;
11368
 
11781
  electricChars: "}",
11782
  blockCommentStart: "/*",
11783
  blockCommentEnd: "*/",
11784
+ blockCommentContinue: " * ",
11785
  lineComment: lineComment,
11786
  fold: "brace"
11787
  };
12382
 
12383
  var keywords = function(){
12384
  function kw(type) {return {type: type, style: "keyword"};}
12385
+ var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"), D = kw("keyword d");
12386
  var operator = kw("operator"), atom = {type: "atom", style: "atom"};
12387
 
12388
  var jsKeywords = {
12389
  "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
12390
+ "return": D, "break": D, "continue": D, "new": kw("new"), "delete": C, "void": C, "throw": C,
12391
+ "debugger": kw("debugger"), "var": kw("var"), "const": kw("var"), "let": kw("var"),
12392
  "function": kw("function"), "catch": kw("catch"),
12393
  "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
12394
  "in": operator, "typeof": operator, "instanceof": operator,
12487
  stream.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/);
12488
  return ret("regexp", "string-2");
12489
  } else {
12490
+ stream.eat("=");
12491
  return ret("operator", "operator", stream.current());
12492
  }
12493
  } else if (ch == "`") {
12497
  stream.skipToEnd();
12498
  return ret("error", "error");
12499
  } else if (isOperatorChar.test(ch)) {
12500
+ if (ch != ">" || !state.lexical || state.lexical.type != ">") {
12501
+ if (stream.eat("=")) {
12502
+ if (ch == "!" || ch == "=") stream.eat("=")
12503
+ } else if (/[<>*+\-]/.test(ch)) {
12504
+ stream.eat(ch)
12505
+ if (ch == ">") stream.eat(ch)
12506
+ }
12507
+ }
12508
  return ret("operator", "operator", stream.current());
12509
  } else if (wordRE.test(ch)) {
12510
  stream.eatWhile(wordRE);
12716
  if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex);
12717
  if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
12718
  if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
12719
+ if (type == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex);
12720
+ if (type == "debugger") return cont(expect(";"));
12721
  if (type == "{") return cont(pushlex("}"), block, poplex);
12722
  if (type == ";") return cont();
12723
  if (type == "if") {
12765
  function expressionInner(type, noComma) {
12766
  if (cx.state.fatArrowAt == cx.stream.start) {
12767
  var body = noComma ? arrowBodyNoComma : arrowBody;
12768
+ if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext);
12769
  else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
12770
  }
12771
 
12773
  if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
12774
  if (type == "function") return cont(functiondef, maybeop);
12775
  if (type == "class") return cont(pushlex("form"), classExpression, poplex);
12776
+ if (type == "keyword c" || type == "async") return cont(noComma ? expressionNoComma : expression);
12777
  if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
12778
  if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
12779
  if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
12786
  if (type.match(/[;\}\)\],]/)) return pass();
12787
  return pass(expression);
12788
  }
 
 
 
 
12789
 
12790
  function maybeoperatorComma(type, value) {
12791
  if (type == ",") return cont(expression);
12806
  if (type == ".") return cont(property, me);
12807
  if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
12808
  if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
12809
+ if (type == "regexp") {
12810
+ cx.state.lastType = cx.marked = "operator"
12811
+ cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)
12812
+ return cont(expr)
12813
+ }
12814
  }
12815
  function quasi(type, value) {
12816
  if (type != "quasi") return pass();
12859
  } else if (type == "variable" || cx.style == "keyword") {
12860
  cx.marked = "property";
12861
  if (value == "get" || value == "set") return cont(getterSetter);
12862
+ var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params
12863
+ if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false)))
12864
+ cx.state.fatArrowAt = cx.stream.pos + m[0].length
12865
  return cont(afterprop);
12866
  } else if (type == "number" || type == "string") {
12867
  cx.marked = jsonldMode ? "property" : (cx.style + " property");
12873
  } else if (type == "[") {
12874
  return cont(expression, expect("]"), afterprop);
12875
  } else if (type == "spread") {
12876
+ return cont(expressionNoComma, afterprop);
12877
+ } else if (value == "*") {
12878
+ cx.marked = "keyword";
12879
+ return cont(objprop);
12880
  } else if (type == ":") {
12881
  return pass(afterprop)
12882
  }
12924
  }
12925
  }
12926
  function typeexpr(type, value) {
12927
+ if (type == "variable" || value == "void") {
12928
  if (value == "keyof") {
12929
  cx.marked = "keyword"
12930
  return cont(typeexpr)
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)
13027
  if (type == "spread" || type == "modifier") return cont(funarg);
13028
  return pass(pattern, maybetype, maybeAssign);
13029
  }
13049
  cx.marked = "keyword";
13050
  return cont(classBody);
13051
  }
13052
+ if (type == "variable" || cx.style == "keyword") {
13053
  cx.marked = "property";
13054
  return cont(isTS ? classfield : functiondef, classBody);
13055
  }
13111
 
13112
  function expressionAllowed(stream, state, backUp) {
13113
  return state.tokenize == tokenBase &&
13114
+ /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
13115
  (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
13116
  }
13117
 
13180
  electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
13181
  blockCommentStart: jsonMode ? null : "/*",
13182
  blockCommentEnd: jsonMode ? null : "*/",
13183
+ blockCommentContinue: jsonMode ? null : " * ",
13184
  lineComment: jsonMode ? null : "//",
13185
  fold: "brace",
13186
  closeBrackets: "()[]{}''\"\"``",
assets/js/forms-admin.min.js CHANGED
@@ -1,9 +1,9 @@
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(;Ra.length<=e;)Ra.push(m(Ra)+" ");return Ra[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()||ja.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&&Ba.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(;;){if(Math.abs(t-r)<=1)return e(t)?t:r;var n=Math.floor((t+r)/2);e(n)?r=n:t=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: "+Da+"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"),da&&fa<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),ha||la&&ka||(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(){qa=!0}function V(){Ua=!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=Ua&&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=Ua&&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=Ua&&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");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"),i=!0)}i||n(t,r,"ltr")}function ke(e,t,r){var n;Ka=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:Ka=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:Ka=i)}return null!=n?n:Ka}function Ce(e,t){var r=e.order;return null==r&&(r=e.order=Va(e.text,t)),r}function Se(e,t,r){var n=S(e.text,t+r,r);return n<0||n>e.text.length?null:n}function Te(e,t,r){var n=Se(e,t.ch,r);return null==n?null:new D(t.line,n,r<0?"after":"before")}function Le(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){var u=Zt(t,r);a=i<0?r.text.length-1:0;var d=Jt(t,u,a).top;a=T(function(e){return Jt(t,u,e).top==d},i<0==(1==l.level)?l.from:l.to-1,a),"before"==c&&(a=Se(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 Me(e,t,r,n){var i=Ce(t,e.doc.direction);if(!i)return Te(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 Te(t,r,n);var l,s=function(e,r){return Se(t,e instanceof D?e.ch:e,r)},c=function(r){return e.options.lineWrapping?(l=l||Zt(e,t),gr(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 Ae(e,t){return e._handlers&&e._handlers[t]||Ga}function Oe(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 Ne(e,t){var r=Ae(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 _e(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Ne(e,r||t.type,e,t),Pe(t)||t.codemirrorIgnore}function Ee(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 We(e,t){return Ae(e,t).length>0}function Fe(e){e.prototype.on=function(e,t){$a(this,e,t)},e.prototype.off=function(e,t){Oe(this,e,t)}}function De(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function ze(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Pe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function He(e){De(e),ze(e)}function Ie(e){return e.target||e.srcElement}function Re(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Ca&&e.ctrlKey&&1==t&&(t=3),t}function je(e){if(null==Wa){var t=n("span","​");r(e,n("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Wa=t.offsetWidth<=1&&t.offsetHeight>2&&!(da&&fa<8))}var i=Wa?n("span","​"):n("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function Be(e){if(null!=Fa)return Fa;var n=r(e,document.createTextNode("AخA")),i=Ma(n,0,1).getBoundingClientRect(),o=Ma(n,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(Fa=o.right-i.right<3)}function qe(e){if(null!=Qa)return Qa;var t=r(e,n("span","x")),i=t.getBoundingClientRect(),o=Ma(t,0,1).getBoundingClientRect();return Qa=Math.abs(i.left-o.left)>1}function Ue(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),el[e]=t}function Ke(e,t){tl[e]=t}function Ve(e){if("string"==typeof e&&tl.hasOwnProperty(e))e=tl[e];else if(e&&"string"==typeof e.name&&tl.hasOwnProperty(e.name)){var t=tl[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 Ve("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ve("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Ge(e,t){t=Ve(t);var r=el[t.name];if(!r)return Ge(e,"text/plain");var n=r(e,t);if(rl.hasOwnProperty(t.name)){var i=rl[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 $e(e,t){u(t,rl.hasOwnProperty(e)?rl[e]:rl[e]={})}function Ye(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 Xe(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 Ze(e,t,r){return!e.startState||e.startState(t,r)}function Je(e,t,r,n){var i=[e.state.modeGen],o={};at(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){var a=e.state.overlays[n],l=1,s=0;r.state=!0,at(e,t.text,a.mode,r,function(e,t){for(var r=l;s<e;){var n=i[l];n>e&&i.splice(l,1,e,i[l+1],n),l+=2,s=Math.min(e,n)}if(t)if(a.opaque)i.splice(r,l-r,e,"overlay "+t),l=r+2;else for(;r<l;r+=2){var o=i[r+1];i[r+1]=(o?o+" ":"")+"overlay "+t}},o)}(l);return r.state=a,{styles:i,classes:o.bgClass||o.textClass?o:null}}function Qe(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=et(e,_(t)),i=t.text.length>e.options.maxHighlightLength&&Ye(e.doc.mode,n.state),o=Je(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 et(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new ol(n,!0,t);var o=lt(e,t,r),a=o>n.first&&M(n,o-1).stateAfter,l=a?ol.fromSaved(n,a,o):new ol(n,Ze(n.mode),o);return n.iter(o,t,function(r){tt(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 tt(e,t,r,n){var i=e.doc.mode,o=new nl(t,e.options.tabSize,r);for(o.start=o.pos=n||0,""==t&&rt(i,r.state);!o.eol();)nt(i,o,r.state),o.start=o.pos}function rt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=Xe(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function nt(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=Xe(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 it(e,t,r,n){var i,o=e.doc,a=o.mode;t=B(o,t);var l,s=M(o,t.line),c=et(e,t.line,r),u=new nl(s.text,e.options.tabSize,c);for(n&&(l=[]);(n||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=nt(a,u,c.state),n&&l.push(new al(u,i,Ye(o.mode,c.state)));return n?l:new al(u,i,c.state)}function ot(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 at(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 nl(t,e.options.tabSize,n),f=e.options.addModeClass&&[null];for(""==t&&ot(rt(r,n.state),o);!d.eol();){if(d.pos>e.options.maxHighlightLength?(l=!1,a&&tt(e,t,n,d.pos),d.pos=t.length,s=null):s=ot(nt(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 lt(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 il?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 st(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 il)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}}function ct(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 ut(e){e.parent=null,re(e)}function dt(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?ul:cl;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function ft(e,t){var r=i("span",null,null,ha?"padding-right: .1px":null),n={pre:i("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(da||ha)&&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=pt,Be(e.display.measure)&&(l=Ce(a,e.doc.direction))&&(n.addToken=gt(n.addToken,l)),n.map=[];yt(a,n,Qe(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(je(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(ha){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 Ne(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=s(n.pre.className,n.textClass||"")),n}function ht(e){var t=n("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function pt(e,t,r,i,o,a,l){if(t){var s,c=e.splitSpaces?mt(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));da&&fa<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]),da&&fa<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),da&&fa<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 mt(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 gt(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 vt(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 yt(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)vt(t,0,y[S]);if(f&&(f.from||0)==p){if(vt(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=dt(r[m++],t.cm.options)}}else for(var A=1;A<r.length;A+=2)t.addToken(t,i.slice(o,o=r[A]),dt(r[A+1],t.cm.options))}function bt(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 wt(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new bt(e.doc,M(e.doc,o),o);n=o+a.size,i.push(a)}return i}function xt(e){dl?dl.ops.push(e):e.ownsGroup=dl={ops:[e],delayedCallbacks:[]}}function kt(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 Ct(e,t){var r=e.ownsGroup;if(r)try{kt(r)}finally{dl=null,t(r)}}function St(e,t){var r=Ae(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);dl?n=dl.delayedCallbacks:fl?n=fl:(n=fl=[],setTimeout(Tt,0));for(var o=0;o<r.length;++o)!function(e){n.push(function(){return r[e].apply(null,i)})}(o)}}function Tt(){var e=fl;fl=null;for(var t=0;t<e.length;++t)e[t]()}function Lt(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?Nt(e,t):"gutter"==o?Et(e,t,r,n):"class"==o?_t(e,t):"widget"==o&&Wt(e,t,n)}t.changes=null}function Mt(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),da&&fa<8&&(e.node.style.zIndex=2)),e.node}function At(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=Mt(t);t.background=i.insertBefore(n("div",null,r),i.firstChild),e.display.input.setUneditable(t.background)}}function Ot(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):ft(e,t)}function Nt(e,t){var r=t.text.className,n=Ot(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,_t(e,t)):r&&(t.text.className=r)}function _t(e,t){At(e,t),t.line.wrapClass?Mt(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 Et(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=Mt(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=Mt(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 Wt(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);Dt(e,t,r)}function Ft(e,t,r,n){var i=Ot(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),_t(e,t),Et(e,t,r,n),Dt(e,t,n),t.node}function Dt(e,t,r){if(zt(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)zt(e,t.rest[n],t,r,!1)}function zt(e,t,r,i,o){if(t.widgets)for(var a=Mt(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"),Pt(c,u,r,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,r.gutter||r.text):a.appendChild(u),St(c,"redraw")}}function Pt(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 Ht(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 It(e,t){for(var r=Ie(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 Rt(e){return e.lineSpace.offsetTop}function jt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Bt(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 qt(e){return Da-e.display.nativeBarWidth}function Ut(e){return e.display.scroller.clientWidth-qt(e)-e.display.barWidth}function Kt(e){return e.display.scroller.clientHeight-qt(e)-e.display.barHeight}function Vt(e,t,r){var n=e.options.lineWrapping,i=n&&Ut(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 Gt(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 $t(e,t){t=de(t);var n=_(t),i=e.display.externalMeasured=new bt(e.doc,t,n);i.lineN=n;var o=i.built=ft(e,i);return i.text=o.pre,r(e.display.lineMeasure,o.pre),i}function Yt(e,t,r,n){return Jt(e,Zt(e,t),r,n)}function Xt(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 Zt(e,t){var r=_(t),n=Xt(e,r);n&&!n.text?n=null:n&&n.changes&&(Lt(e,n,r,wr(e)),e.curOp.forceUpdate=!0),n||(n=$t(e,t));var i=Gt(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Jt(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||(Vt(e,t.view,t.rect),t.hasHeights=!0),o=tr(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 Qt(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 er(e,t){var r=hl;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 tr(e,t,r,n){var i,o=Qt(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=da&&fa<9&&0==l&&s==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():er(Ma(a,l,s).getClientRects(),n),i.left||i.right||0==l)break;s=l,l-=1,c="right"}da&&fa<11&&(i=rr(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(da&&fa<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}:hl}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 rr(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!qe(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 nr(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 ir(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var r=0;r<e.display.view.length;r++)nr(e.display.view[r])}function or(e){ir(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function ar(){return ma&&xa?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function lr(){return ma&&xa?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function sr(e,t,r,n,i){if(!i&&t.widgets)for(var o=0;o<t.widgets.length;++o)if(t.widgets[o].above){var a=Ht(t.widgets[o]);r.top+=a,r.bottom+=a}if("line"==n)return r;n||(n="local");var l=ye(t);if("local"==n?l+=Rt(e.display):l-=e.display.viewOffset,"page"==n||"window"==n){var s=e.display.lineSpace.getBoundingClientRect();l+=s.top+("window"==n?0:lr());var c=s.left+("window"==n?0:ar());r.left+=c,r.right+=c}return r.top+=l,r.bottom+=l,r}function cr(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=ar(),i-=lr();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 ur(e,t,r,n,i){return n||(n=M(e.doc,t.line)),sr(e,n,Yt(e,n,t.ch,i),r)}function dr(e,t,r,n,i,o){function a(t,a){var l=Jt(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,sr(e,n,l,r)}function l(e,t,r){var n=s[t],i=n.level%2!=0;return a(r?e-1:e,i!=r)}n=n||M(e.doc,t.line),i||(i=Zt(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=Ka,h=l(c,d,"before"==u);return null!=f&&(h.other=l(c,f,"before"!=u)),h}function fr(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)+Rt(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function hr(e,t,r,n,i){var o=D(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function pr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return hr(n.first,0,null,!0,-1);var i=E(n,r),o=n.first+n.size-1;if(i>o)return hr(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=vr(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 mr(e,t,r,n){var i=function(n){return sr(e,t,Jt(e,r,n),"line")},o=t.text.length,a=T(function(e){return i(e-1).bottom<=n},o,0);return o=T(function(e){return i(e).top>n},a,o),{begin:a,end:o}}function gr(e,t,r,n){return mr(e,t,r,sr(e,t,Jt(e,r,n),"line").top)}function vr(e,t,r,n,i){i-=ye(t);var o,a=0,l=t.text.length,s=Zt(e,t);if(Ce(t,e.doc.direction)){if(e.options.lineWrapping){var c;c=mr(e,t,s,i),a=c.begin,l=c.end}o=new D(r,Math.floor(a+(l-a)/2));var u,d,f=dr(e,o,"line",t,s).left,h=f<n?1:-1,p=f-n,m=Math.ceil((l-a)/4);e:do{u=p,d=o;for(var g=0;g<m;++g){var v=o;if(null==(o=Me(e,t,o,h))||o.ch<a||l<=("before"==o.sticky?o.ch-1:o.ch)){o=v;break e}}if(p=dr(e,o,"line",t,s).left-n,m>1){var y=Math.abs(p-u)/m;m=Math.min(m,Math.ceil(Math.abs(p)/y)),h=p<0?1:-1}}while(0!=p&&(m>1||h<0!=p<0&&Math.abs(p)<=Math.abs(u)));if(Math.abs(p)>Math.abs(u)){if(p<0==u<0)throw new Error("Broke out of infinite loop in coordsCharInner");o=d}}else{var b=T(function(r){var o=sr(e,t,Jt(e,s,r),"line");return o.top>i?(l=Math.min(r,l),!0):!(o.bottom<=i)&&(o.left>n||!(o.right<n)&&n-o.left<o.right-n)},a,l);b=S(t.text,b,1),o=new D(r,b,b==l?"before":"after")}var w=dr(e,o,"line",t,s);return(i<w.top||w.bottom<i)&&(o.outside=!0),o.xRel=n<w.left?-1:n>w.right?1:0,o}function yr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==sl){sl=n("pre");for(var i=0;i<49;++i)sl.appendChild(document.createTextNode("x")),sl.appendChild(n("br"));sl.appendChild(document.createTextNode("x"))}r(e.measure,sl);var o=sl.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){
3
- 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"==Ie(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=pr(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;c=D(c.line,Math.max(0,Math.round((o-Bt(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){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(!1!==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||Or(e,l,o)}}return n}function Ar(e,t,r){var i=dr(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,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 ur(e,D(t,r),"div",c,n)}var a,s,c=M(l,t),f=c.text.length;return xe(Ce(c,l.direction),r||0,null==n?f:n,function(e,t,l){var c,h,p,m=o(e,"left");if(e==t)c=m,h=p=m.left;else{if(c=o(t-1,"right"),"rtl"==l){var g=m;m=c,c=g}h=m.left,p=c.right}null==r&&0==e&&(h=u),c.top-m.top>3&&(i(h,m.top,null,m.bottom),h=u,m.bottom<c.top&&i(h,m.bottom,null,c.top)),null==n&&t==f&&(p=d),(!a||m.top<a.top||m.top==a.top&&m.left<a.left)&&(a=m),(!s||c.bottom>s.bottom||c.bottom==s.bottom&&c.right>s.right)&&(s=c),h<u+1&&(h=u),i(h,c.top,p-h,c.bottom)}),{start:a,end:s}}var a=e.display,l=e.doc,s=document.createDocumentFragment(),c=Bt(e.display),u=c.left,d=Math.max(a.sizerWidth,Ut(e)-a.sizer.offsetLeft)-c.right,f=t.from(),h=t.to();if(f.line==h.line)o(f.line,f.ch,h.ch);else{var p=M(l,f.line),m=M(l,h.line),g=de(p)==de(m),v=o(f.line,f.ch,g?p.text.length+1:null).end,y=o(h.line,g?0:null,h.ch).start;g&&(v.top<y.top-2?(i(v.right,v.top,null,v.bottom),i(u,y.top,y.left,y.bottom)):i(v.right,v.top,y.left-v.right,v.bottom)),v.bottom<y.top&&i(u,v.bottom,null,y.top)}r.appendChild(s)}function Nr(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 _r(e){e.state.focused||(e.display.input.focus(),Wr(e))}function Er(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Fr(e))},100)}function Wr(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Ne(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(),ha&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Nr(e))}function Fr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Ne(e,"blur",e,t),e.state.focused=!1,Na(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Dr(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(da&&fa<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),zr(i.line),i.rest))for(var c=0;c<i.rest.length;c++)zr(i.rest[c])}}}function zr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function Pr(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-Rt(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 Hr(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 Ir(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",_n(e),!0}return!1}function Rr(e,t){if(!_e(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&&!ba){var a=n("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Rt(e.display))+"px;\n height: "+(t.bottom-t.top+qt(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 jr(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=dr(e,t),s=r&&r!=t?dr(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=qr(e,i),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=c.scrollTop&&(Xr(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(Jr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}function Br(e,t){var r=qr(e,t);null!=r.scrollTop&&Xr(e,r.scrollTop),null!=r.scrollLeft&&Jr(e,r.scrollLeft)}function qr(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=Kt(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+jt(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=Ut(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 Ur(e,t){null!=t&&($r(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Kr(e){$r(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Vr(e,t,r){null==t&&null==r||$r(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function Gr(e,t){$r(e),e.curOp.scrollToPos=t}function $r(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;Yr(e,fr(e,t.from),fr(e,t.to),t.margin)}}function Yr(e,t,r,n){var i=qr(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});Vr(e,i.scrollLeft,i.scrollTop)}function Xr(e,t){Math.abs(e.doc.scrollTop-t)<2||(la||On(e,{top:t}),Zr(e,t,!0),la&&On(e),kn(e,100))}function Zr(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 Jr(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,Hr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Qr(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+jt(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+qt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function en(e,t){t||(t=Qr(e));var r=e.display.barWidth,n=e.display.barHeight;tn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Dr(e),tn(e,Qr(e)),r=e.display.barWidth,n=e.display.barHeight}function tn(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 rn(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&Na(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new gl[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),$a(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?Jr(e,t):Xr(e,t)},e),e.display.scrollbars.addClass&&l(e.display.wrapper,e.display.scrollbars.addClass)}function nn(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:++vl},xt(e.curOp)}function on(e){Ct(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;an(e)})}function an(e){for(var t=e.ops,r=0;r<t.length;r++)ln(t[r]);for(var n=0;n<t.length;n++)sn(t[n]);for(var i=0;i<t.length;i++)cn(t[i]);for(var o=0;o<t.length;o++)un(t[o]);for(var a=0;a<t.length;a++)dn(t[a])}function ln(e){var t=e.cm,r=t.display;Sn(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 yl(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function sn(e){e.updatedDisplay=e.mustUpdate&&Mn(e.cm,e.update)}function cn(e){var t=e.cm,r=t.display;e.updatedDisplay&&Dr(t),e.barMeasure=Qr(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Yt(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+qt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Ut(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection(e.focus))}function un(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&Jr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==a()&&(!document.hasFocus||document.hasFocus());e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&en(t,e.barMeasure),e.updatedDisplay&&En(t,e.barMeasure),e.selectionChanged&&Nr(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&_r(e.cm)}function dn(e){var t=e.cm,r=t.display,n=t.doc;if(e.updatedDisplay&&An(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null!=e.scrollTop&&Zr(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&Jr(t,e.scrollLeft,!0,!0),e.scrollToPos){Rr(t,jr(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||Ne(i[a],"hide");if(o)for(var l=0;l<o.length;++l)o[l].lines.length&&Ne(o[l],"unhide");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Ne(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function fn(e,t){if(e.curOp)return t();nn(e);try{return t()}finally{on(e)}}function hn(e,t){return function(){if(e.curOp)return t.apply(e,arguments);nn(e);try{return t.apply(e,arguments)}finally{on(e)}}}function pn(e){return function(){if(this.curOp)return e.apply(this,arguments);nn(this);try{return e.apply(this,arguments)}finally{on(this)}}}function mn(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);nn(t);try{return e.apply(this,arguments)}finally{on(t)}}}function gn(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)Ua&&pe(e.doc,t)<i.viewTo&&yn(e);else if(r<=i.viewFrom)Ua&&me(e.doc,r+n)>i.viewFrom?yn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)yn(e);else if(t<=i.viewFrom){var o=bn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):yn(e)}else if(r>=i.viewTo){var a=bn(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):yn(e)}else{var l=bn(e,t,t,-1),s=bn(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(wt(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):yn(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function vn(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 yn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function bn(e,t,r,n){var i,o=Tr(e,t),a=e.display.view;if(!Ua||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 wn(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=wt(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=wt(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(wt(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,Tr(e,r)))),n.viewTo=r}function xn(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 kn(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,c(Cn,e))}function Cn(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=et(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?Ye(t.mode,n.state):null,s=Je(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&&tt(e,o.text,n),o.stateAfter=n.line%5==0?n.save():null,n.nextLine();if(+new Date>r)return kn(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&fn(e,function(){for(var t=0;t<i.length;t++)vn(e,i[t],"text")})}}function Sn(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=qt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=qt(e)+"px",t.scrollbarsClipped=!0)}function Tn(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 Ln(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 Mn(e,r){var n=e.display,i=e.doc;if(r.editorIsHidden)return yn(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==xn(e))return!1;Ir(e)&&(yn(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)),Ua&&(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;wn(e,a,l),n.viewOffset=ye(M(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var c=xn(e);if(!s&&0==c&&!r.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var u=Tn(e);return c>4&&(n.lineDiv.style.display="none"),Nn(e,n.updateLineNumbers,r.dims),c>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Ln(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,kn(e,400)),n.updateLineNumbers=null,!0}function An(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Ut(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+jt(e.display)-Kt(e),r.top)}),t.visible=Pr(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Mn(e,t);n=!1){Dr(e);var i=Qr(e);Lr(e),en(e,i),En(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 On(e,t){var r=new yl(e,t);if(Mn(e,r)){Dr(e),An(e,r);var n=Qr(e);Lr(e),en(e,n),En(e,n),r.finish()}}function Nn(e,r,n){function i(t){var r=t.nextSibling;return ha&&Ca&&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),Lt(e,h,u,n)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(F(e.options,u)))),s=h.node.nextSibling}else{var m=Ft(e,h,u,n);l.insertBefore(m,s)}u+=h.size}for(;s;)s=i(s)}function _n(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function En(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+qt(e)+"px"}function Wn(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",_n(e)}function Fn(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 Dn(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 zn(e){var t=Dn(e);return t.x*=wl,t.y*=wl,t}function Pn(e,t){var r=Dn(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&&Ca&&ha)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&&!la&&!ga&&null!=wl)return i&&s&&Xr(e,Math.max(0,a.scrollTop+i*wl)),Jr(e,Math.max(0,a.scrollLeft+n*wl)),(!i||i&&s)&&De(t),void(o.wheelStartX=null);if(i&&null!=wl){var f=i*wl,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),On(e,{top:h,bottom:p})}bl<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&&(wl=(wl*bl+r)/(bl+1),++bl)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function Hn(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 kl(s?l:a,s?a:l))}}return new xl(e,t)}function In(e,t){return new xl([new kl(e,t||e)],0)}function Rn(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 jn(e,t){if(z(e,t.from)<0)return e;if(z(e,t.to)<=0)return Rn(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+=Rn(t).ch-t.to.ch),D(r,n)}function Bn(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new kl(jn(i.anchor,t),jn(i.head,t)))}return Hn(r,e.sel.primIndex)}function qn(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 Un(e,t,r){for(var n=[],i=D(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=qn(l.from,i,o),c=qn(Rn(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 kl(d?c:s,d?s:c)}else n[a]=new kl(s,s)}return new xl(n,e.sel.primIndex)}function Kn(e){e.doc.mode=Ge(e.options,e.doc.modeOption),Vn(e)}function Vn(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,kn(e,100),e.state.modeGen++,e.curOp&&gn(e)}function Gn(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function $n(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){ct(e,r,i,n),St(e,"change",e,t)}function a(e,t){for(var r=[],o=e;o<t;++o)r.push(new ll(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(Gn(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 ll(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)}St(e,"change",e,t)}function Yn(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 Xn(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Cr(e),Kn(e),Zn(e),e.options.lineWrapping||we(e),e.options.mode=t.modeOption,gn(e)}function Zn(e){("rtl"==e.doc.direction?l:Na)(e.display.lineDiv,"CodeMirror-rtl")}function Jn(e){fn(e,function(){Zn(e),gn(e)})}function Qn(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 ei(e,t){var r={from:H(t.from),to:Rn(t),text:A(e,t.from,t.to)};return li(e,r,t.from.line,t.to.line+1),Yn(e,function(e){return li(e,r,t.from.line,t.to.line+1)},!0),r}function ti(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function ri(e,t){return t?(ti(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 ni(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=ri(i,i.lastOp==n)))a=m(o.changes),0==z(t.from,t.to)&&0==z(t.from,a.to)?a.to=Rn(t):o.changes.push(ei(e,t));else{var s=m(i.done);for(s&&s.ranges||ai(e.sel,i.done),o={changes:[ei(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||Ne(e,"historyAdded")}function ii(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 oi(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||ii(e,o,m(i.done),t))?i.done[i.done.length-1]=t:ai(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&ti(i.undone)}function ai(e,t){var r=m(t);r&&r.ranges&&r.equals(e)||t.push(e)}function li(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 si(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 ci(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(si(r[i]));return n}function ui(e,t){var r=ci(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 di(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?xl.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 fi(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 kl(i,t)}return new kl(r||t,t)}function hi(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),bi(e,new xl([fi(e.sel.primary(),t,r,i)],0),n)}function pi(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]=fi(e.sel.ranges[o],t[o],null,i);bi(e,Hn(n,e.sel.primIndex),r)}function mi(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,bi(e,Hn(i,e.sel.primIndex),n)}function gi(e,t,r,n){bi(e,In(t,r),n)}function vi(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 kl(B(e,t[n].anchor),B(e,t[n].head))},origin:r&&r.origin};return Ne(e,"beforeSelectionChange",e,n),e.cm&&Ne(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?Hn(n.ranges,n.ranges.length-1):t}function yi(e,t,r){var n=e.history.done,i=m(n);i&&i.ranges?(n[n.length-1]=t,wi(e,t,r)):bi(e,t,r)}function bi(e,t,r){wi(e,t,r),oi(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function wi(e,t,r){(We(e,"beforeSelectionChange")||e.cm&&We(e.cm,"beforeSelectionChange"))&&(t=vi(e,t,r)),xi(e,Ci(e,t,r&&r.bias||(z(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||Kr(e.cm)}function xi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ee(e.cm)),St(e,"cursorActivity",e))}function ki(e){xi(e,Ci(e,e.sel,null,!1))}function Ci(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=Ti(e,a.anchor,l&&l.anchor,r,n),c=Ti(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 kl(s,c))}return i?Hn(i,t.primIndex):t}function Si(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&&(Ne(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
4
- ;if((n<0?s.inclusiveRight:s.inclusiveLeft)&&(c=Li(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 Si(e,c,t,n,i)}var d=s.find(n<0?-1:1);return(n<0?s.inclusiveLeft:s.inclusiveRight)&&(d=Li(e,d,n,d.line==t.line?o:null)),d?Si(e,d,t,n,i):null}}return t}function Ti(e,t,r,n,i){var o=n||1,a=Si(e,t,r,o,i)||!i&&Si(e,t,r,o,!0)||Si(e,t,r,-o,i)||!i&&Si(e,t,r,-o,!0);return a||(e.cantEdit=!0,D(e.first,0))}function Li(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 Mi(e){e.setSelection(D(e.firstLine(),0),D(e.lastLine()),Pa)}function Ai(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=B(e,t)),r&&(n.to=B(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),Ne(e,"beforeChange",e,n),e.cm&&Ne(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function Oi(e,t,r){if(e.cm){if(!e.cm.curOp)return hn(e.cm,Oi)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(We(e,"beforeChange")||e.cm&&We(e.cm,"beforeChange"))||(t=Ai(e,t,!0))){var n=qa&&!r&&te(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)Ni(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else Ni(e,t)}}function Ni(e,t){if(1!=t.text.length||""!=t.text[0]||0!=z(t.from,t.to)){var r=Bn(e,t);ni(e,t,r,e.cm?e.cm.curOp.id:NaN),Wi(e,t,r,Q(e,t));var n=[];Yn(e,function(e,r){r||-1!=f(n,e.history)||(Hi(e.history,t),n.push(e.history)),Wi(e,t,null,Q(e,t))})}}function _i(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(ai(n,l),r&&!n.equals(e.sel))return void bi(e,n,{clearRedo:!1});o=n}var c=[];ai(o,l),l.push({changes:c,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;for(var u=We(e,"beforeChange")||e.cm&&We(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&&!Ai(e,i,!1))return a.length=0,{};c.push(ei(e,i));var o=r?Bn(e,i):m(a);Wi(e,i,o,ui(e,i)),!r&&e.cm&&e.cm.scrollIntoView({from:i.from,to:Rn(i)});var l=[];Yn(e,function(e,t){t||-1!=f(l,e.history)||(Hi(e.history,i),l.push(e.history)),Wi(e,i,null,ui(e,i))})}(d);if(h)return h.v}}}}function Ei(e,t){if(0!=t&&(e.first+=t,e.sel=new xl(g(e.sel.ranges,function(e){return new kl(D(e.anchor.line+t,e.anchor.ch),D(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){gn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)vn(e.cm,n,"gutter")}}function Wi(e,t,r,n){if(e.cm&&!e.cm.curOp)return hn(e.cm,Wi)(e,t,r,n);if(t.to.line<e.first)return void Ei(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);Ei(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=Bn(e,t)),e.cm?Fi(e.cm,t,n):$n(e,t,n),wi(e,r,Pa)}}function Fi(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&&Ee(e),$n(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)),st(n,o.line),kn(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?gn(e):o.line!=a.line||1!=t.text.length||Gn(e.doc,t)?gn(e,o.line,a.line+1,c):vn(e,o.line,"text");var u=We(e,"changes"),d=We(e,"change");if(d||u){var f={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};d&&St(e,"change",e,f),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}function Di(e,t,r,n,i){if(n||(n=r),z(n,r)<0){var o=n;n=r,r=o}"string"==typeof t&&(t=e.splitLines(t)),Oi(e,{from:r,to:n,text:t,origin:i})}function zi(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Pi(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++)zi(o.ranges[l].anchor,t,r,n),zi(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 Hi(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Pi(e.done,r,n,i),Pi(e.undone,r,n,i)}function Ii(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&&vn(e.cm,i,r),o)}function Ri(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 ji(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 Bi(e,t,r){ye(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Ur(e,r)}function qi(e,t,r,n){var i=new Cl(e,r,n),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),Ii(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+Ht(i)),n&&Ur(o,i.height),o.curOp.forceUpdate=!0}return!0}),St(o,"lineWidgetAdded",o,i,"number"==typeof t?t:_(t)),i}function Ui(e,t,r,n,o){if(n&&n.shared)return Ki(e,t,r,n,o);if(e.cm&&!e.cm.curOp)return hn(e.cm,Ui)(e,t,r,n,o);var a=new Tl(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&&ni(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&&$a(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(K(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++Sl,a.atomic=!0),d){if(s&&(d.curOp.updateMaxLine=!0),a.collapsed)gn(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++)vn(d,f,"text");a.atomic&&ki(d.doc),St(d,"markerAdded",d,a)}return a}function Ki(e,t,r,n,i){n=u(n),n.shared=!1;var o=[Ui(e,t,r,n,i)],a=o[0],l=n.widgetNode;return Yn(e,function(e){l&&(n.widgetNode=l.cloneNode(!0)),o.push(Ui(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 Ll(o,a)}function Vi(e){return e.findMarks(D(e.first,0),e.clipPos(D(e.lastLine())),function(e){return e.parent})}function Gi(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=Ui(e,o,a,n.primary,n.primary.type);n.markers.push(l),l.parent=n}}}function $i(e){for(var t=0;t<e.length;t++)!function(t){var r=e[t],n=[r.primary.doc];Yn(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 Yi(e){var t=this;if(Ji(t),!_e(t,e)&&!It(t.display,e)){De(e),da&&(Ol=+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=hn(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"};Oi(t.doc,s),yi(t.doc,In(r,Rn(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()),wi(t.doc,In(r,r)),c)for(var u=0;u<c.length;++u)Di(t.doc,"",c[u].anchor,c[u].head,"drag");t.replaceSelection(s,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Xi(e,t){if(da&&(!e.state.draggingText||+new Date-Ol<100))return void He(t);if(!_e(e,t)&&!It(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!va)){var r=n("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",ga&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),ga&&r.parentNode.removeChild(r)}}function Zi(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 Ji(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Qi(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 eo(){Nl||(to(),Nl=!0)}function to(){var e;$a(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Qi(ro)},100))}),$a(window,"blur",function(){return Qi(Fr)})}function ro(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 no(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 io(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(" "),no),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 oo(e,t,r,n){t=co(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 oo(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=oo(e,t.fallthrough[o],r,n);if(a)return a}}}function ao(e){var t="string"==typeof e?e:_l[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function lo(e,t,r){var n=e;return t.altKey&&"Alt"!=n&&(e="Alt-"+e),(Aa?t.metaKey:t.ctrlKey)&&"Ctrl"!=n&&(e="Ctrl-"+e),(Aa?t.ctrlKey:t.metaKey)&&"Cmd"!=n&&(e="Cmd-"+e),!r&&t.shiftKey&&"Shift"!=n&&(e="Shift-"+e),e}function so(e,t){if(ga&&34==e.keyCode&&e.char)return!1;var r=_l[e.keyCode];return null!=r&&!e.altGraphKey&&lo(r,e,t)}function co(e){return"string"==typeof e?Dl[e]:e}function uo(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)}fn(e,function(){for(var t=n.length-1;t>=0;t--)Di(e.doc,"",n[t].from,n[t].to,"+delete");Kr(e)})}function fo(e,t){var r=M(e.doc,t),n=de(r);return n!=r&&(t=_(n)),Le(!0,e,n,t,1)}function ho(e,t){var r=M(e.doc,t),n=fe(r);return n!=r&&(t=_(n)),Le(!0,e,r,t,-1)}function po(e,t){var r=fo(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 mo(e,t,r){if("string"==typeof t&&!(t=zl[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)!=za}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}function go(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=oo(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&oo(t,e.options.extraKeys,r,e)||oo(t,e.options.keyMap,r,e)}function vo(e,t,r,n){var i=e.state.keySeq;if(i){if(ao(t))return"handled";Pl.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=go(e,t,n);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&St(e,"keyHandled",e,t,r),"handled"!=o&&"multi"!=o||(De(r),Nr(e)),i&&!o&&/\'$/.test(t)?(De(r),!0):!!o}function yo(e,t){var r=so(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?vo(e,"Shift-"+r,t,function(t){return mo(e,t,!0)})||vo(e,r,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return mo(e,t)}):vo(e,r,t,function(t){return mo(e,t)}))}function bo(e,t,r){return vo(e,"'"+r+"'",t,function(t){return mo(e,t,!0)})}function wo(e){var t=this;if(t.curOp.focus=a(),!_e(t,e)){da&&fa<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=yo(t,e);ga&&(Hl=n?r:null,!n&&88==r&&!Ja&&(Ca?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=r||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||xo(t)}}function xo(e){function t(e){18!=e.keyCode&&e.altKey||(Na(r,"CodeMirror-crosshair"),Oe(document,"keyup",t),Oe(document,"mouseover",t))}var r=e.display.lineDiv;l(r,"CodeMirror-crosshair"),$a(document,"keyup",t),$a(document,"mouseover",t)}function ko(e){16==e.keyCode&&(this.doc.sel.shift=!1),_e(this,e)}function Co(e){var t=this;if(!(It(t.display,e)||_e(t,e)||e.ctrlKey&&!e.altKey||Ca&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(ga&&r==Hl)return Hl=null,void De(e);if(!ga||e.which&&!(e.which<10)||!yo(t,e)){var i=String.fromCharCode(null==n?r:n);"\b"!=i&&(bo(t,e,i)||t.display.input.onKeyPress(e))}}}function So(e,t){var r=+new Date;return jl&&jl.compare(r,e,t)?(Rl=jl=null,"triple"):Rl&&Rl.compare(r,e,t)?(jl=new Il(r,e,t),Rl=null,"double"):(Rl=new Il(r,e,t),jl=null,"single")}function To(e){var t=this,r=t.display;if(!(_e(t,e)||r.activeTouch&&r.input.supportsTouch())){if(r.input.ensurePolled(),r.shift=e.shiftKey,It(r,e))return void(ha||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100)));if(!Wo(t,e)){var n=Sr(t,e),i=Re(e),o=n?So(n,i):"single";window.focus(),1==i&&t.state.selectingText&&t.state.selectingText(e),n&&Lo(t,i,n,o,e)||(1==i?n?Ao(t,n,o,e):Ie(e)==r.scroller&&De(e):2==i?(n&&hi(t.doc,n),setTimeout(function(){return r.input.focus()},20)):3==i&&(Oa?Fo(t,e):Er(t)))}}}function Lo(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,vo(e,lo(o,i),i,function(t){if("string"==typeof t&&(t=zl[t]),!t)return!1;var n=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n=t(e,r)!=za}finally{e.state.suppressEdits=!1}return n})}function Mo(e,t,r){var n=e.getOption("configureMouse"),i=n?n(e,t,r):{};if(null==i.unit){var o=Sa?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=Ca?r.metaKey:r.ctrlKey),null==i.moveOnDrag&&(i.moveOnDrag=!(Ca?r.altKey:r.ctrlKey)),i}function Ao(e,t,r,n){da?setTimeout(c(_r,e),0):e.curOp.focus=a();var i,o=Mo(e,r,n),l=e.doc.sel;e.options.dragDrop&&Ya&&!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)?Oo(e,n,t,o):_o(e,n,t,o)}function Oo(e,t,r,n){var i=e.display,o=!1,a=hn(e,function(t){ha&&(i.scroller.draggable=!1),e.state.draggingText=!1,Oe(document,"mouseup",a),Oe(document,"mousemove",l),Oe(i.scroller,"dragstart",s),Oe(i.scroller,"drop",a),o||(De(t),n.addNew||hi(e.doc,r,null,null,n.extend),ha||da&&9==fa?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};ha&&(i.scroller.draggable=!0),e.state.draggingText=a,a.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),$a(document,"mouseup",a),$a(document,"mousemove",l),$a(i.scroller,"dragstart",s),$a(i.scroller,"drop",a),Er(e),setTimeout(function(){return i.input.focus()},20)}function No(e,t,r){if("char"==r)return new kl(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new kl(D(t.line,0),B(e.doc,D(t.line+1,0)));var n=r(e,t);return new kl(n.from,n.to)}function _o(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 kl(D(g,w),D(g,w))):b.length>w&&i.push(new kl(D(g,w),D(g,h(b,m,o))))}i.length||i.push(new kl(r,r)),bi(c,Hn(p.ranges.slice(0,f).concat(i),f),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var x,k=u,C=No(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]=new kl(B(c,S),x),bi(c,Hn(T,f),Ha)}}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=Pr(s,c);(l.line>=u.to||l.line<u.from)&&setTimeout(hn(e,function(){b==r&&o(t)}),150)}else{var d=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;d&&setTimeout(hn(e,function(){b==r&&(s.scroller.scrollTop+=d,o(t))}),50)}}function l(t){e.state.selectingText=!1,b=1/0,De(t),s.input.focus(),Oe(document,"mousemove",w),Oe(document,"mouseup",x),c.history.lastSelOrigin=null}var s=e.display,c=e.doc;De(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 kl(r,r)):(u=c.sel.primary(),f=c.sel.primIndex),"rectangle"==n.unit)n.addNew||(u=new kl(r,r)),r=Sr(e,t,!0,!0),f=-1;else{var g=No(e,r,n.unit);u=n.extend?fi(u,g.anchor,g.head,n.extend):g}n.addNew?-1==f?(f=m.length,bi(c,Hn(m.concat([u]),f),{scroll:!1,origin:"*mouse"})):m.length>1&&m[f].empty()&&"char"==n.unit&&!n.extend?(bi(c,Hn(m.slice(0,f).concat(m.slice(f+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):mi(c,f,u,Ha):(f=0,bi(c,new xl([u],0),Ha),p=c.sel);var v=r,y=s.wrapper.getBoundingClientRect(),b=0,w=hn(e,function(e){Re(e)?o(e):l(e)}),x=hn(e,l);e.state.selectingText=x,$a(document,"mousemove",w),$a(document,"mouseup",x)}function Eo(e,t,r,n){var i,o;try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&De(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!We(e,r))return Pe(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 Ne(e,r,e,E(e.doc,o),e.options.gutters[s],t),Pe(t)}}}function Wo(e,t){return Eo(e,t,"gutterClick",!0)}function Fo(e,t){It(e.display,t)||Do(e,t)||_e(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function Do(e,t){return!!We(e,"gutterContextMenu")&&Eo(e,t,"gutterContextMenu",!1)}function zo(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),or(e)}function Po(e){Wn(e),gn(e),Hr(e)}function Ho(e,t,r){if(!t!=!(r&&r!=Bl)){var n=e.display.dragFunctions,i=t?$a:Oe;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 Io(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Na(e.display.wrapper,"CodeMirror-wrap"),we(e)),Cr(e),gn(e),or(e),setTimeout(function(){return en(e)},100)}function Ro(e,t){var r=this;if(!(this instanceof Ro))return new Ro(e,t);this.options=t=t?u(t):{},u(ql,t,!1),Fn(t);var n=t.value;"string"==typeof n&&(n=new Al(n,t.mode,null,t.lineSeparator,t.direction)),this.doc=n;var i=new Ro.inputStyles[t.inputStyle](this),o=this.display=new L(e,n,i);o.wrapper.CodeMirror=this,Wn(this),zo(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),rn(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 Ea,keySeq:null,specialChars:null},t.autofocus&&!ka&&o.input.focus(),da&&fa<11&&setTimeout(function(){return r.display.input.reset(!0)},20),jo(this),eo(),nn(this),this.curOp.forceUpdate=!0,Xn(this,n),t.autofocus&&!ka||this.hasFocus()?setTimeout(c(Wr,this),20):Fr(this);for(var a in Ul)Ul.hasOwnProperty(a)&&Ul[a](r,t[a],Bl);Ir(this),t.finishInit&&t.finishInit(this);for(var l=0;l<Kl.length;++l)Kl[l](r);on(this),ha&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}function jo(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;$a(i.scroller,"mousedown",hn(e,To)),da&&fa<11?$a(i.scroller,"dblclick",hn(e,function(t){if(!_e(e,t)){var r=Sr(e,t);if(r&&!Wo(e,t)&&!It(e.display,t)){De(t);var n=e.findWordAt(r);hi(e.doc,n.anchor,n.head)}}})):$a(i.scroller,"dblclick",function(t){return _e(e,t)||De(t)}),Oa||$a(i.scroller,"contextmenu",function(t){return Fo(e,t)});var o,a={end:0};$a(i.scroller,"touchstart",function(t){if(!_e(e,t)&&!r(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)}}),$a(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),$a(i.scroller,"touchend",function(r){var o=i.activeTouch;if(o&&!It(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 kl(l,l):!o.prev.prev||n(o,o.prev.prev)?e.findWordAt(l):new kl(D(l.line,0),B(e.doc,D(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),De(r)}t()}),$a(i.scroller,"touchcancel",t),$a(i.scroller,"scroll",function(){i.scroller.clientHeight&&(Xr(e,i.scroller.scrollTop),Jr(e,i.scroller.scrollLeft,!0),Ne(e,"scroll",e))}),$a(i.scroller,"mousewheel",function(t){return Pn(e,t)}),$a(i.scroller,"DOMMouseScroll",function(t){return Pn(e,t)}),$a(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){_e(e,t)||He(t)},over:function(t){_e(e,t)||(Zi(e,t),He(t))},start:function(t){return Xi(e,t)},drop:hn(e,Yi),leave:function(t){_e(e,t)||Ji(e)}};var l=i.input.getField();$a(l,"keyup",function(t){return ko.call(e,t)}),$a(l,"keydown",hn(e,wo)),$a(l,"keypress",hn(e,Co)),$a(l,"focus",function(t){return Wr(e,t)}),$a(l,"blur",function(t){return Fr(e,t)})}function Bo(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=et(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))==za||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 Di(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);mi(o,g,new kl(y,y));break}}}function qo(e){Vl=e}function Uo(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=Xa(t),s=null;if(a&&n.ranges.length>1)if(Vl&&Vl.text.join("\n")==t){if(n.ranges.length%Vl.text.length==0){s=[];for(var c=0;c<Vl.text.length;c++)s.push(o.splitLines(Vl.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)):Vl&&Vl.lineWise&&Vl.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")};Oi(e.doc,v),St(e,"inputRead",e,v)}t&&!a&&Vo(e,t),Kr(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Ko(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||fn(t,function(){return Uo(t,r,0,null,"paste")}),!0}function Vo(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=Bo(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=Bo(e,i.head.line,"smart"));a&&St(e,"electricInput",e,i.head.line)}}}function Go(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 $o(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Yo(){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 ha?e.style.width="1000px":e.setAttribute("wrap","off"),wa&&(e.style.border="1px solid black"),$o(e),t}function Xo(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?Me(e.cm,c,t,r):Te(c,t,r))){if(n||!o())return!1;t=Le(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=Ti(e,t,l,s,!0);return P(l,g)&&(g.hitSide=!0),g}function Zo(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=pr(e,a,i),c.outside;){if(r<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*r}return c}function Jo(e,t){var r=Xt(e,t.line);if(!r||r.hidden)return null;var n=M(e.doc,t.line),i=Gt(r,n,t.line),o=Ce(n,e.doc.direction),a="left";if(o){a=ke(o,t.ch)%2?"right":"left"}var l=Qt(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function Qo(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function ea(e,t){return t&&(e.bad=!0),e}function ta(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 ra(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return ea(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 na(o,t,r)}}function na(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 ea(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 ea(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 ea(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 ea(D(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 ea(D(f.line,f.ch+v),a);v+=g.textContent.length}}function ia(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&&($a(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&&(Oe(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var s=Ro(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s}
5
- var oa=navigator.userAgent,aa=navigator.platform,la=/gecko\/\d/i.test(oa),sa=/MSIE \d/.test(oa),ca=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(oa),ua=/Edge\/(\d+)/.exec(oa),da=sa||ca||ua,fa=da&&(sa?document.documentMode||6:+(ua||ca)[1]),ha=!ua&&/WebKit\//.test(oa),pa=ha&&/Qt\/\d+\.\d+/.test(oa),ma=!ua&&/Chrome\//.test(oa),ga=/Opera\//.test(oa),va=/Apple Computer/.test(navigator.vendor),ya=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(oa),ba=/PhantomJS/.test(oa),wa=!ua&&/AppleWebKit/.test(oa)&&/Mobile\/\w+/.test(oa),xa=/Android/.test(oa),ka=wa||xa||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(oa),Ca=wa||/Mac/.test(aa),Sa=/\bCrOS\b/.test(oa),Ta=/win/i.test(aa),La=ga&&oa.match(/Version\/(\d*\.\d*)/);La&&(La=Number(La[1])),La&&La>=15&&(ga=!1,ha=!0);var Ma,Aa=Ca&&(pa||ga&&(null==La||La<12.11)),Oa=la||da&&fa>=9,Na=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:"")}};Ma=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 _a=function(e){e.select()};wa?_a=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:da&&(_a=function(e){try{e.select()}catch(e){}});var Ea=function(){this.id=null};Ea.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Wa,Fa,Da=30,za={toString:function(){return"CodeMirror.Pass"}},Pa={scroll:!1},Ha={origin:"*mouse"},Ia={origin:"+move"},Ra=[""],ja=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ba=/[\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]/,qa=!1,Ua=!1,Ka=null,Va=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 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}}(),Ga=[],$a=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]||Ga).concat(r)}},Ya=function(){if(da&&fa<9)return!1;var e=n("div");return"draggable"in e||"dragDrop"in e}(),Xa=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/)},Za=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)},Ja=function(){var e=n("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Qa=null,el={},tl={},rl={},nl=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};nl.prototype.eol=function(){return this.pos>=this.string.length},nl.prototype.sol=function(){return this.pos==this.lineStart},nl.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},nl.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},nl.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},nl.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},nl.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},nl.prototype.skipToEnd=function(){this.pos=this.string.length},nl.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},nl.prototype.backUp=function(e){this.pos-=e},nl.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)},nl.prototype.indentation=function(){return d(this.string,null,this.tabSize)-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},nl.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},nl.prototype.current=function(){return this.string.slice(this.start,this.pos)},nl.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},nl.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)};var il=function(e,t){this.state=e,this.lookAhead=t},ol=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0};ol.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ol.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ol.fromSaved=function(e,t,r){return t instanceof il?new ol(e,Ye(e.mode,t.state),r,t.lookAhead):new ol(e,Ye(e.mode,t),r)},ol.prototype.save=function(e){var t=!1!==e?Ye(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new il(t,this.maxLookAhead):t};var al=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r},ll=function(e,t,r){this.text=e,ne(this,t),this.height=r?r(this):1};ll.prototype.lineNo=function(){return _(this)},Fe(ll);var sl,cl={},ul={},dl=null,fl=null,hl={left:0,right:0,top:0,bottom:0},pl=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),$a(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),$a(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,da&&fa<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};pl.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}},pl.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},pl.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},pl.prototype.zeroWidthHack=function(){var e=Ca&&!ya?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Ea,this.disableVert=new Ea},pl.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)},pl.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var ml=function(){};ml.prototype.update=function(){return{bottom:0,right:0}},ml.prototype.setScrollLeft=function(){},ml.prototype.setScrollTop=function(){},ml.prototype.clear=function(){};var gl={native:pl,null:ml},vl=0,yl=function(e,t,r){var n=e.display;this.viewport=t,this.visible=Pr(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=Ut(e),this.force=r,this.dims=wr(e),this.events=[]};yl.prototype.signal=function(e,t){We(e,t)&&this.events.push(arguments)},yl.prototype.finish=function(){for(var e=this,t=0;t<this.events.length;t++)Ne.apply(null,e.events[t])};var bl=0,wl=null;da?wl=-.53:la?wl=15:ma?wl=-.7:va&&(wl=-1/3);var xl=function(e,t){this.ranges=e,this.primIndex=t};xl.prototype.primary=function(){return this.ranges[this.primIndex]},xl.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},xl.prototype.deepCopy=function(){for(var e=this,t=[],r=0;r<this.ranges.length;r++)t[r]=new kl(H(e.ranges[r].anchor),H(e.ranges[r].head));return new xl(t,this.primIndex)},xl.prototype.somethingSelected=function(){for(var e=this,t=0;t<this.ranges.length;t++)if(!e.ranges[t].empty())return!0;return!1},xl.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 kl=function(e,t){this.anchor=e,this.head=t};kl.prototype.from=function(){return R(this.anchor,this.head)},kl.prototype.to=function(){return I(this.anchor,this.head)},kl.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Ri.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,ut(o),St(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}},ji.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 Ri))){var s=[];this.collapse(s),this.children=[new Ri(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 Ri(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 ji(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 ji(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 Cl=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};Cl.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=Ht(this);N(n,Math.max(0,n.height-a)),t&&(fn(t,function(){Bi(t,n,-a),vn(t,i,"widget")}),St(t,"lineWidgetCleared",t,this,i))}},Cl.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=Ht(this)-t;i&&(N(n,n.height+i),r&&fn(r,function(){r.curOp.forceUpdate=!0,Bi(r,n,i),St(r,"lineWidgetChanged",r,e,_(n))}))},Fe(Cl);var Sl=0,Tl=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++Sl};Tl.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&nn(t),We(this,"clear")){var n=this.find();n&&St(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?vn(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&&gn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&ki(t.doc)),t&&St(t,"markerCleared",t,this,i,o),r&&on(t),this.parent&&this.parent.clear()}},Tl.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}},Tl.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&fn(n,function(){var i=t.line,o=_(t.line),a=Xt(n,o);if(a&&(nr(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=Ht(r)-l;s&&N(i,i.height+s)}St(n,"markerChanged",n,e)})},Tl.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)},Tl.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)}},Fe(Tl);var Ll=function(e,t){var r=this;this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=r};Ll.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();St(this,"clear")}},Ll.prototype.find=function(e,t){return this.primary.find(e,t)},Fe(Ll);var Ml=0,Al=function(e,t,r,n,i){if(!(this instanceof Al))return new Al(e,t,r,n,i);null==r&&(r=0),ji.call(this,[new Ri([new ll("",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=In(o),this.history=new Qn(null),this.id=++Ml,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),$n(this,{from:o,to:o,text:e}),bi(this,In(o),Pa)};Al.prototype=b(ji.prototype,{constructor:Al,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:mn(function(e){var t=D(this.first,0),r=this.first+this.size-1;Oi(this,{from:t,to:D(r,M(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&Vr(this.cm,0,0),bi(this,In(t),Pa)}),replaceRange:function(e,t,r,n){t=B(this,t),r=r?B(this,r):t,Di(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:mn(function(e,t,r){gi(this,B(this,"number"==typeof e?D(e,t||0):e),null,r)}),setSelection:mn(function(e,t,r){gi(this,B(this,e),B(this,t||e),r)}),extendSelection:mn(function(e,t,r){hi(this,B(this,e),t&&B(this,t),r)}),extendSelections:mn(function(e,t){pi(this,U(this,e),t)}),extendSelectionsBy:mn(function(e,t){pi(this,U(this,g(this.sel.ranges,e)),t)}),setSelections:mn(function(e,t,r){var n=this;if(e.length){for(var i=[],o=0;o<e.length;o++)i[o]=new kl(B(n,e[o].anchor),B(n,e[o].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),bi(this,Hn(i,t),r)}}),addSelection:mn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new kl(B(this,e),B(this,t||e))),bi(this,Hn(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:mn(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&&Un(this,i,t),c=i.length-1;c>=0;c--)Oi(n,i[c]);s?yi(this,s):this.cm&&Kr(this.cm)}),undo:mn(function(){_i(this,"undo")}),redo:mn(function(){_i(this,"redo")}),undoSelection:mn(function(){_i(this,"undo",!0)}),redoSelection:mn(function(){_i(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 Qn(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:di(this.history.done),undone:di(this.history.undone)}},setHistory:function(e){var t=this.history=new Qn(this.history.maxGeneration);t.done=di(e.done.slice(0),null,!0),t.undone=di(e.undone.slice(0),null,!0)},setGutterMarker:mn(function(e,t,r){return Ii(this,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&k(n)&&(e.gutterMarkers=null),!0})}),clearGutter:mn(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&Ii(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:mn(function(t,r,n){return Ii(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:mn(function(t,r,n){return Ii(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:mn(function(e,t,r){return qi(this,e,t,r)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return Ui(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),Ui(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 Al(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 Al(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}],Gi(n,Vi(this)),n},unlinkDoc:function(e){var t=this;if(e instanceof Ro&&(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),$i(Vi(t));break}}if(e.history==this.history){var i=[e.id];Yn(e,function(e){return i.push(e.id)},!0),e.history=new Qn(null),e.history.done=di(this.history.done,i),e.history.undone=di(this.history.undone,i)}},iterLinkedDocs:function(e){Yn(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Xa(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:mn(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Jn(this.cm))})}),Al.prototype.eachLine=Al.prototype.iter;for(var Ol=0,Nl=!1,_l={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"},El=0;El<10;El++)_l[El+48]=_l[El+96]=String(El);for(var Wl=65;Wl<=90;Wl++)_l[Wl]=String.fromCharCode(Wl);for(var Fl=1;Fl<=12;Fl++)_l[Fl+111]=_l[Fl+63235]="F"+Fl;var Dl={};Dl.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"},Dl.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"},Dl.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"},Dl.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"]},Dl.default=Ca?Dl.macDefault:Dl.pcDefault;var zl={selectAll:Mi,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),Pa)},killLine:function(e){return uo(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 uo(e,function(t){return{from:D(t.from().line,0),to:B(e.doc,D(t.to().line+1,0))}})},delLineLeft:function(e){return uo(e,function(e){return{from:D(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return uo(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 uo(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()},
6
- 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 fo(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return po(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ho(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")},Ia)},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")},Ia)},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/)?po(e,t.head):n},Ia)},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 fn(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 kl(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return fn(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);Kr(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},Pl=new Ea,Hl=null,Il=function(e,t,r){this.time=e,this.pos=t,this.button=r};Il.prototype.compare=function(e,t,r){return this.time+400>e&&0==z(t,this.pos)&&r==this.button};var Rl,jl,Bl={toString:function(){return"CodeMirror.Init"}},ql={},Ul={};Ro.defaults=ql,Ro.optionHandlers=Ul;var Kl=[];Ro.defineInitHook=function(e){return Kl.push(e)};var Vl=null,Gl=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Ea,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Gl.prototype.init=function(e){function t(e){if(!_e(i,e)){if(i.somethingSelected())qo({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=Go(i);qo({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,Pa),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=Vl.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var a=Yo(),l=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),l.value=Vl.text.join("\n");var s=document.activeElement;_a(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;$o(o,i.options.spellcheck),$a(o,"paste",function(e){_e(i,e)||Ko(e,i)||fa<=11&&setTimeout(hn(i,function(){return r.updateFromDOM()}),20)}),$a(o,"compositionstart",function(e){r.composing={data:e.data,done:!1}}),$a(o,"compositionupdate",function(e){r.composing||(r.composing={data:e.data,done:!1})}),$a(o,"compositionend",function(e){r.composing&&(e.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),$a(o,"touchstart",function(){return n.forceCompositionEnd()}),$a(o,"input",function(){r.composing||r.readFromDOMSoon()}),$a(o,"copy",t),$a(o,"cut",t)},Gl.prototype.prepareSelection=function(){var e=Mr(this.cm,!1);return e.focus=this.cm.state.focused,e},Gl.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Gl.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=ra(t,e.anchorNode,e.anchorOffset),a=ra(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&&Jo(t,n)||{node:l[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Jo(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=Ma(s.node,s.offset,c.offset,c.node)}catch(e){}f&&(!la&&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):la&&this.startGracePeriod()),this.rememberSelection()}},Gl.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)},Gl.prototype.showMultipleSelections=function(e){r(this.cm.display.cursorDiv,e.cursors),r(this.cm.display.selectionDiv,e.selection)},Gl.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Gl.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},Gl.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Gl.prototype.blur=function(){this.div.blur()},Gl.prototype.getField=function(){return this.div},Gl.prototype.supportsTouch=function(){return!0},Gl.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():fn(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},Gl.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Gl.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(xa&&ma&&this.cm.options.gutters.length&&Qo(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=ra(t,e.anchorNode,e.anchorOffset),n=ra(t,e.focusNode,e.focusOffset);r&&n&&fn(t,function(){bi(t.doc,In(r,n),Pa),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Gl.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(ta(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)?(Di(e.doc,d,k,C,"+input"),!0):void 0},Gl.prototype.ensurePolled=function(){this.forceCompositionEnd()},Gl.prototype.reset=function(){this.forceCompositionEnd()},Gl.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Gl.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))},Gl.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||fn(this.cm,function(){return gn(e.cm)})},Gl.prototype.setUneditable=function(e){e.contentEditable="false"},Gl.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||hn(this.cm,Uo)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Gl.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Gl.prototype.onContextMenu=function(){},Gl.prototype.resetPosition=function(){},Gl.prototype.needsContentAttribute=!0;var $l=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Ea,this.hasSelection=!1,this.composing=null};$l.prototype.init=function(e){function t(e){if(!_e(i,e)){if(i.somethingSelected())qo({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=Go(i);qo({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,Pa):(n.prevInput="",a.value=t.text.join("\n"),_a(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var r=this,n=this,i=this.cm,o=this.wrapper=Yo(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),wa&&(a.style.width="0px"),$a(a,"input",function(){da&&fa>=9&&r.hasSelection&&(r.hasSelection=null),n.poll()}),$a(a,"paste",function(e){_e(i,e)||Ko(e,i)||(i.state.pasteIncoming=!0,n.fastPoll())}),$a(a,"cut",t),$a(a,"copy",t),$a(e.scroller,"paste",function(t){It(e,t)||_e(i,t)||(i.state.pasteIncoming=!0,n.focus())}),$a(e.lineSpace,"selectstart",function(t){It(e,t)||De(t)}),$a(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"})}}),$a(a,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},$l.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Mr(e);if(e.options.moveInputWithCursor){var i=dr(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},$l.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")},$l.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&&_a(this.textarea),da&&fa>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",da&&fa>=9&&(this.hasSelection=null))}},$l.prototype.getField=function(){return this.textarea},$l.prototype.supportsTouch=function(){return!1},$l.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!ka||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},$l.prototype.blur=function(){this.textarea.blur()},$l.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},$l.prototype.receivedFocus=function(){this.slowPoll()},$l.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},$l.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)},$l.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||Za(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(da&&fa>=9&&this.hasSelection===i||Ca&&/[\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 fn(t,function(){Uo(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},$l.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},$l.prototype.onKeyPress=function(){da&&fa>=9&&(this.hasSelection=null),this.fastPoll()},$l.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,da&&fa<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!da||da&&fa<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==n.prevInput?hn(i,Mi)(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&&!ga){i.options.resetSelectionOnContextMenu&&-1==i.doc.sel.contains(l)&&hn(i,bi)(i.doc,In(l),Pa);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: "+(da?"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(ha&&(f=window.scrollY),o.input.focus(),ha&&window.scrollTo(null,f),o.input.reset(),i.somethingSelected()||(a.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),da&&fa>=9&&t(),Oa){He(e);var h=function(){Oe(window,"mouseup",h),setTimeout(r,20)};$a(window,"mouseup",h)}else setTimeout(r,50)}},$l.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},$l.prototype.setUneditable=function(){},$l.prototype.needsContentAttribute=!1,function(e){function t(t,n,i,o){e.defaults[t]=n,i&&(r[t]=o?function(e,t,r){r!=Bl&&i(e,t,r)}:i)}var r=e.optionHandlers;e.defineOption=t,e.Init=Bl,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Kn(e)},!0),t("indentUnit",2,Kn,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Vn(e),or(e),gn(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--)Di(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!=Bl&&e.refresh()}),t("specialCharPlaceholder",ht,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",ka?"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",!Ta),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){zo(e),Po(e)},!0),t("keyMap","default",function(e,t,r){var n=co(t),i=r!=Bl&&co(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Io,!0),t("gutters",[],function(e){Fn(e.options),Po(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 en(e)},!0),t("scrollbarStyle","native",function(e){rn(e),en(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Fn(e.options),Po(e)},!0),t("firstLineNumber",1,Po,!0),t("lineNumberFormatter",function(e){return e},Po,!0),t("showCursorWhenSelecting",!1,Lr,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Fr(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,Ho),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,Vn,!0),t("addModeClass",!1,Vn,!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,Vn,!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)}(Ro),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)&&hn(this,t[e])(this,r,i),Ne(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"](co(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:pn(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++,gn(this)}),removeOverlay:pn(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 gn(t)}}),indentLine:pn(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)&&Bo(this,e,t,r)}),indentSelection:pn(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&&(Bo(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Kr(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)Bo(t,c,e);var u=t.doc.sel.ranges;0==a.ch&&r.length==u.length&&u[i].from().ch>0&&mi(t.doc,i,new kl(a,u[i].to()),Pa)}}}),getTokenAt:function(e,t){return it(this,e,t)},getLineTokens:function(e,t){return it(this,D(e),t,!0)},getTokenTypeAt:function(e){e=B(this.doc,e);var t,r=Qe(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),et(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(),dr(this,r,t||"page")},charCoords:function(e,t){return ur(this,B(this.doc,e),t||"page")},coordsChar:function(e,t){return e=cr(this,e,t||"page"),pr(this,e.left,e.top)},lineAtHeight:function(e,t){return e=cr(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 sr(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=dr(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&&Br(this,{left:l,top:a,right:l+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:pn(wo),triggerOnKeyPress:pn(Co),triggerOnKeyUp:ko,triggerOnMouseDown:pn(To),execCommand:function(e){if(zl.hasOwnProperty(e))return zl[e].call(null,this)},triggerElectric:pn(function(e){Vo(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=Xo(i.doc,a,o,r,n),!a.hitSide);++l);return a},moveH:pn(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?Xo(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},Ia)}),deleteH:pn(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection("",null,"+delete"):uo(this,function(r){var i=Xo(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=dr(i,l,"div");if(null==a?a=c.left:c.left=a,l=Zo(i,c,o,r),l.hitSide)break}return l},moveV:pn(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=dr(r,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=Zo(r,l,e,t);return"page"==t&&a==n.sel.primary()&&Ur(r,ur(r,s,"div").top-l.top),s},Ia),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 kl(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"):Na(this.display.cursorDiv,"CodeMirror-overwrite"),Ne(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:pn(function(e,t){Vr(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-qt(this)-this.display.barHeight,width:e.scrollWidth-qt(this)-this.display.barWidth,clientHeight:Kt(this),clientWidth:Ut(this)}},scrollIntoView:pn(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?Gr(this,e):Yr(this,e.from,e.to,e.margin)}),setSize:pn(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&&ir(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){vn(r,i,"widget");break}++i}),this.curOp.forceUpdate=!0,Ne(this,"refresh",this)}),operation:function(e){return fn(this,e)},startOperation:function(){return nn(this)},endOperation:function(){return on(this)},refresh:pn(function(){var e=this.display.cachedTextHeight;gn(this),this.curOp.forceUpdate=!0,or(this),Vr(this,this.doc.scrollLeft,this.doc.scrollTop),_n(this),(null==e||Math.abs(e-yr(this.display))>.5)&&Cr(this),Ne(this,"refresh",this)}),swapDoc:pn(function(e){var t=this.doc;return t.cm=null,Xn(this,e),or(this),this.display.input.reset(),Vr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,St(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}},Fe(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})}}(Ro);var Yl="iter insert remove copy getEditor constructor".split(" ");for(var Xl in Al.prototype)Al.prototype.hasOwnProperty(Xl)&&f(Yl,Xl)<0&&(Ro.prototype[Xl]=function(e){return function(){return e.apply(this.doc,arguments)}}(Al.prototype[Xl]));return Fe(Al),Ro.inputStyles={textarea:$l,contenteditable:Gl},Ro.defineMode=function(e){Ro.defaults.mode||"null"==e||(Ro.defaults.mode=e),Ue.apply(this,arguments)},Ro.defineMIME=Ke,Ro.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Ro.defineMIME("text/plain","null"),Ro.defineExtension=function(e,t){Ro.prototype[e]=t},Ro.defineDocExtension=function(e,t){Al.prototype[e]=t},Ro.fromTextArea=ia,function(e){e.off=Oe,e.on=$a,e.wheelEventPixels=zn,e.Doc=Al,e.splitLines=Xa,e.countColumn=d,e.findColumn=h,e.isWordChar=w,e.Pass=za,e.signal=Ne,e.Line=ll,e.changeEnd=Rn,e.scrollbarModel=gl,e.Pos=D,e.cmpPos=z,e.modes=el,e.mimeModes=tl,e.resolveMode=Ve,e.getMode=Ge,e.modeExtensions=rl,e.extendMode=$e,e.copyState=Ye,e.startState=Ze,e.innerMode=Xe,e.commands=zl,e.keyMap=Dl,e.keyName=so,e.isModifierKey=ao,e.lookupKey=oo,e.normalizeKeyMap=io,e.StringStream=nl,e.SharedTextMarker=Ll,e.TextMarker=Tl,e.LineWidget=Cl,e.e_preventDefault=De,e.e_stopPropagation=ze,e.e_stop=He,e.addClass=l,e.contains=o,e.rmClass=Na,e.keyNames=_l}(Ro),Ro.version="5.29.0",Ro})},{}],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 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(),
7
- 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:"*/",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 Le=e,Me=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")):Te(e,t,1)?(n(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),i("regexp","string-2")):(e.eatWhile(De),i("operator","operator",e.current()));if("`"==r)return t.tokenize=s,s(e,t);if("#"==r)return e.skipToEnd(),i("error","error");if(De.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||e.eatWhile(De),i("operator","operator",e.current());if(We.test(r)){e.eatWhile(We);var o=e.current();if("."!=t.lastType){if(Fe.propertyIsEnumerable(o)){var c=Fe[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(Ne&&"@"==t.peek()&&t.match(ze))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(Ee){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=Pe.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(We.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(Ie.state=e,Ie.stream=i,Ie.marked=null,Ie.cc=o,Ie.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){if((o.length?o.pop():_e?k:x)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return Ie.marked?Ie.marked:"variable"==r&&d(e,n)?"variable-2":t}}}function h(){for(var e=arguments.length-1;e>=0;e--)Ie.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=Ie.state;if(Ie.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(){Ie.state.context={prev:Ie.state.context,vars:Ie.state.localVars},Ie.state.localVars=Re}function v(){Ie.state.localVars=Ie.state.context.vars,Ie.state.context=Ie.state.context.prev}function y(e,t){var r=function(){var r=Ie.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,Ie.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function b(){var e=Ie.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){return"var"==e?p(y("vardef",t.length),J,w(";"),b):"keyword a"==e?p(y("form"),S,x,b):"keyword b"==e?p(y("form"),x,b):"{"==e?p(y("}"),U,b):";"==e?p():"if"==e?("else"==Ie.state.lexical.info&&Ie.state.cc[Ie.state.cc.length-1]==b&&Ie.state.cc.pop()(),p(y("form"),S,x,b,ne)):"function"==e?p(ce):"for"==e?p(y("form"),ie,x,b):"variable"==e?Ee&&"type"==t?(Ie.marked="keyword",p(V,w("operator"),V,w(";"))):Ee&&"declare"==t?(Ie.marked="keyword",p(x)):p(y("stat"),P):"switch"==e?p(y("form"),S,w("{"),y("}","switch"),U,b,b):"case"==e?p(k,w(":")):"default"==e?p(w(":")):"catch"==e?p(y("form"),g,w("("),ue,w(")"),x,b,v):"class"==e?p(y("form"),fe,b):"export"==e?p(y("stat"),ge,b):"import"==e?p(y("stat"),ye,b):"module"==e?p(y("form"),Q,w("{"),y("}"),U,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(Ie.state.fatArrowAt==Ie.stream.start){var r=t?W:E;if("("==e)return p(g,y(")"),B(Q,")"),b,w("=>"),r,v);if("variable"==e)return h(g,Q,w("=>"),r,v)}var n=t?O:A;return He.hasOwnProperty(e)?p(n):"function"==e?p(ce,n):"class"==e?p(y("form"),de,b):"keyword c"==e||"async"==e?p(t?M:L):"("==e?p(y(")"),L,w(")"),b,n):"operator"==e||"spread"==e?p(t?C:k):"["==e?p(y("]"),Ce,b,n):"{"==e?q(I,"}",null,n):"quasi"==e?h(N,n):"new"==e?p(F(t)):p()}function L(e){return e.match(/[;\}\)\],]/)?h():h(k)}function M(e){return e.match(/[;\}\)\],]/)?h():h(C)}function A(e,t){return","==e?p(k):O(e,t,!1)}function O(e,t,r){var n=0==r?A:O,i=0==r?k:C
8
- ;return"=>"==e?p(g,r?W:E,v):"operator"==e?/\+\+|--/.test(t)||Ee&&"!"==t?p(n):"?"==t?p(k,w(":"),i):p(i):"quasi"==e?h(N,n):";"!=e?"("==e?q(C,")","call",n):"."==e?p(H,n):"["==e?p(y("]"),L,w("]"),b,n):Ee&&"as"==t?(Ie.marked="keyword",p(V,n)):void 0:void 0}function N(e,t){return"quasi"!=e?h():"${"!=t.slice(t.length-2)?p(N):p(k,_)}function _(e){if("}"==e)return Ie.marked="string-2",Ie.state.tokenize=s,p(N)}function E(e){return c(Ie.stream,Ie.state),h("{"==e?x:k)}function W(e){return c(Ie.stream,Ie.state),h("{"==e?x:C)}function F(e){return function(t){return"."==t?p(e?z:D):"variable"==t&&Ee?p(Z,e?O:A):h(e?C:k)}}function D(e,t){if("target"==t)return Ie.marked="keyword",p(A)}function z(e,t){if("target"==t)return Ie.marked="keyword",p(O)}function P(e){return":"==e?p(b,x):h(A,w(";"),b)}function H(e){if("variable"==e)return Ie.marked="property",p()}function I(e,t){return"async"==e?(Ie.marked="property",p(I)):"variable"==e||"keyword"==Ie.style?(Ie.marked="property",p("get"==t||"set"==t?R:j)):"number"==e||"string"==e?(Ie.marked=Ne?"property":Ie.style+" property",p(j)):"jsonld-keyword"==e?p(j):"modifier"==e?p(I):"["==e?p(k,w("]"),j):"spread"==e?p(k,j):":"==e?h(j):void 0}function R(e){return"variable"!=e?h(j):(Ie.marked="property",p(ce))}function j(e){return":"==e?p(C):"("==e?h(ce):void 0}function B(e,t,r){function n(i,o){if(r?r.indexOf(i)>-1:","==i){var a=Ie.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 q(e,t,r){for(var n=3;n<arguments.length;n++)Ie.cc.push(arguments[n]);return p(y(t,r),B(e,t),b)}function U(e){return"}"==e?p():h(x,U)}function K(e,t){if(Ee){if(":"==e)return p(V);if("?"==t)return p(K)}}function V(e,t){return"variable"==e?"keyof"==t?(Ie.marked="keyword",p(V)):(Ie.marked="type",p(X)):"string"==e||"number"==e||"atom"==e?p(X):"["==e?p(y("]"),B(V,"]",","),b,X):"{"==e?p(y("}"),B($,"}",",;"),b,X):"("==e?p(B(Y,")"),G):void 0}function G(e){if("=>"==e)return p(V)}function $(e,t){return"variable"==e||"keyword"==Ie.style?(Ie.marked="property",p($)):"?"==t?p($):":"==e?p(V):"["==e?p(k,K,w("]"),$):void 0}function Y(e){return"variable"==e?p(Y):":"==e?p(V):void 0}function X(e,t){return"<"==t?p(y(">"),B(V,">"),b,X):"|"==t||"."==e?p(V):"["==e?p(w("]"),X):"extends"==t?p(V):void 0}function Z(e,t){if("<"==t)return p(y(">"),B(V,">"),b,X)}function J(){return h(Q,K,te,re)}function Q(e,t){return"modifier"==e?p(Q):"variable"==e?(m(t),p()):"spread"==e?p(Q):"["==e?q(Q,"]"):"{"==e?q(ee,"}"):void 0}function ee(e,t){return"variable"!=e||Ie.stream.match(/^\s*:/,!1)?("variable"==e&&(Ie.marked="property"),"spread"==e?p(Q):"}"==e?h():p(w(":"),Q,te)):(m(t),p(te))}function te(e,t){if("="==t)return p(C)}function re(e){if(","==e)return p(J)}function ne(e,t){if("keyword b"==e&&"else"==t)return p(y("form","else"),x,b)}function ie(e){if("("==e)return p(y(")"),oe,w(")"),b)}function oe(e){return"var"==e?p(J,w(";"),le):";"==e?p(le):"variable"==e?p(ae):h(k,w(";"),le)}function ae(e,t){return"in"==t||"of"==t?(Ie.marked="keyword",p(k)):p(A,le)}function le(e,t){return";"==e?p(se):"in"==t||"of"==t?(Ie.marked="keyword",p(k)):h(k,w(";"),se)}function se(e){")"!=e&&p(k)}function ce(e,t){return"*"==t?(Ie.marked="keyword",p(ce)):"variable"==e?(m(t),p(ce)):"("==e?p(g,y(")"),B(ue,")"),b,K,x,v):Ee&&"<"==t?p(y(">"),B(V,">"),b,ce):void 0}function ue(e){return"spread"==e||"modifier"==e?p(ue):h(Q,K,te)}function de(e,t){return"variable"==e?fe(e,t):he(e,t)}function fe(e,t){if("variable"==e)return m(t),p(he)}function he(e,t){return"<"==t?p(y(">"),B(V,">"),b,he):"extends"==t||"implements"==t||Ee&&","==e?p(Ee?V:k,he):"{"==e?p(y("}"),pe,b):void 0}function pe(e,t){return"modifier"==e||"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t)&&Ie.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(Ie.marked="keyword",p(pe)):"variable"==e?(Ie.marked="property",p(Ee?me:ce,pe)):"["==e?p(k,w("]"),Ee?me:ce,pe):"*"==t?(Ie.marked="keyword",p(pe)):";"==e?p(pe):"}"==e?p():"@"==t?p(k,pe):void 0}function me(e,t){return"?"==t?p(me):":"==e?p(V,te):"="==t?p(C):h(ce)}function ge(e,t){return"*"==t?(Ie.marked="keyword",p(ke,w(";"))):"default"==t?(Ie.marked="keyword",p(k,w(";"))):"{"==e?p(B(ve,"}"),ke,w(";")):h(x)}function ve(e,t){return"as"==t?(Ie.marked="keyword",p(w("variable"))):"variable"==e?h(C,ve):void 0}function ye(e){return"string"==e?p():h(be,we,ke)}function be(e,t){return"{"==e?q(be,"}"):("variable"==e&&m(t),"*"==t&&(Ie.marked="keyword"),p(xe))}function we(e){if(","==e)return p(be,we)}function xe(e,t){if("as"==t)return Ie.marked="keyword",p(be)}function ke(e,t){if("from"==t)return Ie.marked="keyword",p(k)}function Ce(e){return"]"==e?p():h(B(C,"]"))}function Se(e,t){return"operator"==e.lastType||","==e.lastType||De.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function Te(e,t,r){return t.tokenize==o&&/^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}var Le,Me,Ae=t.indentUnit,Oe=r.statementIndent,Ne=r.jsonld,_e=r.json||Ne,Ee=r.typescript,We=r.wordCharacters||/[\w$\xa1-\uffff]/,Fe=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},a={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:n,break:n,continue:n,new:e("new"),delete:n,throw:n,debugger:n,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:i,typeof:i,instanceof:i,true:o,false:o,null:o,undefined:o,NaN:o,Infinity:o,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n};if(Ee){var l={type:"variable",style:"type"},s={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:l,number:l,boolean:l,any:l};for(var c in s)a[c]=s[c]}return a}(),De=/[+\-*&%=<>!?|~^@]/,ze=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Pe="([{}])",He={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},Ie={state:null,column:null,marked:null,cc:null},Re={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(e){var t={tokenize:o,lastType:"sof",cc:[],lexical:new u((e||0)-Ae,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"==Le?r:(t.lastType="operator"!=Le||"++"!=Me&&"--"!=Me?Le:"incdec",f(t,r,Le,Me,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!=ne)break}for(;("stat"==s.type||"form"==s.type)&&("}"==a||(i=t.cc[t.cc.length-1])&&(i==A||i==O)&&!/^[,\.=+\-*:?[\(]/.test(n));)s=s.prev;Oe&&")"==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+Ae:"stat"==d?s.indented+(Se(t,n)?Oe||Ae:0):"switch"!=s.info||f||0==r.doubleIndentSwitch?s.align?s.column+(f?0:1):s.indented+(f?0:Ae):s.indented+(/^(?:case|default)\b/.test(n)?Ae:2*Ae)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:_e?null:"/*",blockCommentEnd:_e?null:"*/",lineComment:_e?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:_e?"json":"javascript",jsonldMode:Ne,jsonMode:_e,expressionAllowed:Te,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";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
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","abs","mid","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","moveCharLogically","moveLogically","endOfLine","visually","moveInStorageOrder","prep","prepareMeasureForLine","targetTop","measureCharPrepared","moveVisually","bidi","partPos","mv","getWrappedLineExtent","lineWrapping","wrappedLineExtentChar","begin","wrappedLineExtent","searchInVisualLine","getRes","res","nextCh","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","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","i_end","opaque","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","curWidth","heights","rects","getClientRects","bottom","mapFromLineView","before","updateExternalMeasurement","measureChar","bias","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","intoCoordSystem","includeWidgets","yOff","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","invert","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","mergedPos","assign","prevDiff","prevPos","beginLeft","steps","ceil","prevPos$1","diff_change_per_step","box","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","add","fragment","rightSide","drawForLine","fromArg","toArg","lineLen","rightPos","leftPos","tmp","leftSide","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","hasFocus","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","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","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","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","startSel","ourIndex","oldRange","ourRange","ranges$1","sel_mouse","curCount","counter","editorSize","move","gutterEvent","prevent","mX","mY","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","touches","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","side","isInGutter","scan","badPos","bad","domTextBetween","recognizeMarker","closing","lineSep","addText","walk","cmText","textContent","markerID","isBlock","nodeName","nodeValue","domToPos","lineNode","locateNodeInLineView","textNode","topNode","curNode","dist","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","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","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","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","isOperatorChar","tokenQuasi","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","maybeelse","functiondef","forspec","typeexpr","maybelabel","funarg","afterExport","afterImport","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","atomicTypes","classExpression","maybeexpressionNoComma","maybeexpression","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","operator","atom","jsKeywords","if","while","with","else","do","try","finally","return","break","continue","new","delete","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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