From 9ea267986cff67bec64304736a141f25d1dc7b97 Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Fri, 26 Sep 2025 20:17:24 +0200 Subject: [PATCH] fix broken link --- index.html | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 4daa40e..92dd2a5 100644 --- a/index.html +++ b/index.html @@ -53,7 +53,7 @@ A cute standard for (deep)linking 3D files via URI's. - » Example 3D-file Browser + » Example 3D-file @@ -79,7 +79,11 @@ A cute standard for (deep)linking 3D files via URI's. + + + + @@ -1071,7 +1075,7 @@ button.sidebar-toggle{ {"created":"20230523124940866","title":"$:/config/DefaultSidebarTab","text":"Home","modified":"20250211170701446"}, {"created":"20230424093821723","text":"yes","tags":"","title":"$:/config/HtmlParser/DisableSandbox","modified":"20230424142930452"}, {"created":"20230424140117603","text":"allowvr allowfullscreen allow-scripts","tags":"","title":"$:/config/HtmlParser/SandboxTokens","modified":"20230424142737213"}, -{"created":"20230423174843715","text":".js","title":"$:/config/Manager/Filter","modified":"20250926180605903"}, +{"created":"20230423174843715","text":"topme","title":"$:/config/Manager/Filter","modified":"20250926181628600"}, {"created":"20230423164137536","text":"","title":"$:/config/Manager/System","modified":"20240718185732477"}, {"created":"20240718202303000","title":"$:/config/Manager/Tag","text":"","modified":"20240719125709259"}, {"created":"20230425162854560","title":"$:/config/Navigation/UpdateAddressBar","text":"permalink","modified":"20230427180247389"}, @@ -1111,14 +1115,14 @@ button.sidebar-toggle{ {"title":"$:/plugins/tiddlywiki/codemirror-mode-javascript","name":"CodeMirror Mode JavaScript","description":"JavaScript highlighting mode for CodeMirror","parent-plugin":"$:/plugins/tiddlywiki/codemirror","list":"readme","version":"5.2.7","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/codemirror/mode/javascript/javascript.js\":{\"text\":\"// CodeMirror, copyright (c) by Marijn Haverbeke and others\\n// Distributed under an MIT license: https://codemirror.net/LICENSE\\n!function(e){\\\"object\\\"==typeof exports&&\\\"object\\\"==typeof module?e(require(\\\"../../lib/codemirror\\\")):\\\"function\\\"==typeof define&&define.amd?define([\\\"../../lib/codemirror\\\"],e):e(CodeMirror)}(function(tt){\\\"use strict\\\";tt.defineMode(\\\"javascript\\\",function(e,l){var t,r,n,a,i,o,d=e.indentUnit,p=l.statementIndent,c=l.jsonld,s=l.json||c,u=l.typescript,f=l.wordCharacters||/[\\\\w$\\\\xa1-\\\\uffff]/,m=(t=v(\\\"keyword a\\\"),r=v(\\\"keyword b\\\"),n=v(\\\"keyword c\\\"),a=v(\\\"keyword d\\\"),i=v(\\\"operator\\\"),{if:v(\\\"if\\\"),while:t,with:t,else:r,do:r,try:r,finally:r,return:a,break:a,continue:a,new:v(\\\"new\\\"),delete:n,void:n,throw:n,debugger:v(\\\"debugger\\\"),var:v(\\\"var\\\"),const:v(\\\"var\\\"),let:v(\\\"var\\\"),function:v(\\\"function\\\"),catch:v(\\\"catch\\\"),for:v(\\\"for\\\"),switch:v(\\\"switch\\\"),case:v(\\\"case\\\"),default:v(\\\"default\\\"),in:i,typeof:i,instanceof:i,true:o={type:\\\"atom\\\",style:\\\"atom\\\"},false:o,null:o,undefined:o,NaN:o,Infinity:o,this:v(\\\"this\\\"),class:v(\\\"class\\\"),super:v(\\\"atom\\\"),yield:n,export:v(\\\"export\\\"),import:v(\\\"import\\\"),extends:n,await:n});function v(e){return{type:e,style:\\\"keyword\\\"}}var k,y,w=/[+\\\\-*&%=\u003C>!?|~^@]/,b=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\\\"/;function x(e,t,r){return k=e,y=r,t}function h(e,t){var a,r=e.next();if('\\\"'==r||\\\"'\\\"==r)return t.tokenize=(a=r,function(e,t){var r,n=!1;if(c&&\\\"@\\\"==e.peek()&&e.match(b))return t.tokenize=h,x(\\\"jsonld-keyword\\\",\\\"meta\\\");for(;null!=(r=e.next())&&(r!=a||n);)n=!n&&\\\"\\\\\\\\\\\"==r;return n||(t.tokenize=h),x(\\\"string\\\",\\\"string\\\")}),t.tokenize(e,t);if(\\\".\\\"==r&&e.match(/^\\\\d[\\\\d_]*(?:[eE][+\\\\-]?[\\\\d_]+)?/))return x(\\\"number\\\",\\\"number\\\");if(\\\".\\\"==r&&e.match(\\\"..\\\"))return x(\\\"spread\\\",\\\"meta\\\");if(/[\\\\[\\\\]{}\\\\(\\\\),;\\\\:\\\\.]/.test(r))return x(r);if(\\\"=\\\"==r&&e.eat(\\\">\\\"))return x(\\\"=>\\\",\\\"operator\\\");if(\\\"0\\\"==r&&e.match(/^(?:x[\\\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return x(\\\"number\\\",\\\"number\\\");if(/\\\\d/.test(r))return e.match(/^[\\\\d_]*(?:n|(?:\\\\.[\\\\d_]*)?(?:[eE][+\\\\-]?[\\\\d_]+)?)?/),x(\\\"number\\\",\\\"number\\\");if(\\\"/\\\"==r)return e.eat(\\\"*\\\")?(t.tokenize=g)(e,t):e.eat(\\\"/\\\")?(e.skipToEnd(),x(\\\"comment\\\",\\\"comment\\\")):et(e,t,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if(\\\"/\\\"==t&&!n)return;\\\"[\\\"==t?n=!0:n&&\\\"]\\\"==t&&(n=!1)}r=!r&&\\\"\\\\\\\\\\\"==t}}(e),e.match(/^\\\\b(([gimyus])(?![gimyus]*\\\\2))+\\\\b/),x(\\\"regexp\\\",\\\"string-2\\\")):(e.eat(\\\"=\\\"),x(\\\"operator\\\",\\\"operator\\\",e.current()));if(\\\"`\\\"==r)return(t.tokenize=j)(e,t);if(\\\"#\\\"==r&&\\\"!\\\"==e.peek())return e.skipToEnd(),x(\\\"meta\\\",\\\"meta\\\");if(\\\"#\\\"==r&&e.eatWhile(f))return x(\\\"variable\\\",\\\"property\\\");if(\\\"\u003C\\\"==r&&e.match(\\\"!--\\\")||\\\"-\\\"==r&&e.match(\\\"->\\\")&&!/\\\\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),x(\\\"comment\\\",\\\"comment\\\");if(w.test(r))return\\\">\\\"==r&&t.lexical&&\\\">\\\"==t.lexical.type||(e.eat(\\\"=\\\")?\\\"!\\\"!=r&&\\\"=\\\"!=r||e.eat(\\\"=\\\"):/[\u003C>*+\\\\-|&?]/.test(r)&&(e.eat(r),\\\">\\\"==r&&e.eat(r))),\\\"?\\\"==r&&e.eat(\\\".\\\")?x(\\\".\\\"):x(\\\"operator\\\",\\\"operator\\\",e.current());if(f.test(r)){e.eatWhile(f);var n=e.current();if(\\\".\\\"!=t.lastType){if(m.propertyIsEnumerable(n)){var i=m[n];return x(i.type,i.style,n)}if(\\\"async\\\"==n&&e.match(/^(\\\\s|\\\\/\\\\*([^*]|\\\\*(?!\\\\/))*?\\\\*\\\\/)*[\\\\[\\\\(\\\\w]/,!1))return x(\\\"async\\\",\\\"keyword\\\",n)}return x(\\\"variable\\\",\\\"variable\\\",n)}}function g(e,t){for(var r,n=!1;r=e.next();){if(\\\"/\\\"==r&&n){t.tokenize=h;break}n=\\\"*\\\"==r}return x(\\\"comment\\\",\\\"comment\\\")}function j(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&(\\\"`\\\"==r||\\\"$\\\"==r&&e.eat(\\\"{\\\"))){t.tokenize=h;break}n=!n&&\\\"\\\\\\\\\\\"==r}return x(\\\"quasi\\\",\\\"string-2\\\",e.current())}var M=\\\"([{}])\\\";function A(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r,n=e.string.indexOf(\\\"=>\\\",e.start);if(!(n\u003C0)){!u||(r=/:\\\\s*(?:\\\\w+(?:\u003C[^>]*>|\\\\[\\\\])?|\\\\{[^}]*\\\\})\\\\s*$/.exec(e.string.slice(e.start,n)))&&(n=r.index);for(var a=0,i=!1,o=n-1;0\u003C=o;--o){var c=e.string.charAt(o),s=M.indexOf(c);if(0\u003C=s&&s\u003C3){if(!a){++o;break}if(0==--a){\\\"(\\\"==c&&(i=!0);break}}else if(3\u003C=s&&s\u003C6)++a;else if(f.test(c))i=!0;else if(/[\\\"'\\\\/`]/.test(c))for(;;--o){if(0==o)return;if(e.string.charAt(o-1)==c&&\\\"\\\\\\\\\\\"!=e.string.charAt(o-2)){o--;break}}else if(i&&!a){++o;break}}i&&!a&&(t.fatArrowAt=o)}}var V={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,\\\"jsonld-keyword\\\":!0};function E(e,t,r,n,a,i){this.indented=e,this.column=t,this.type=r,this.prev=a,this.info=i,null!=n&&(this.align=n)}function z(e,t,r,n,a){var i=e.cc;for(I.state=e,I.stream=a,I.marked=null,I.cc=i,I.style=t,e.lexical.hasOwnProperty(\\\"align\\\")||(e.lexical.align=!0);;){if((i.length?i.pop():s?J:D)(r,n)){for(;i.length&&i[i.length-1].lex;)i.pop()();return I.marked?I.marked:\\\"variable\\\"==r&&function(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return 1;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return 1}(e,n)?\\\"variable-2\\\":t}}}var I={state:null,column:null,marked:null,cc:null};function T(){for(var e=arguments.length-1;0\u003C=e;e--)I.cc.push(arguments[e])}function $(){return T.apply(null,arguments),!0}function C(e,t){for(var r=t;r;r=r.next)if(r.name==e)return 1}function _(e){var t=I.state;if(I.marked=\\\"def\\\",t.context)if(\\\"var\\\"==t.lexical.info&&t.context&&t.context.block){var r=function e(t,r){{if(r){if(r.block){var n=e(t,r.prev);return n?n==r.prev?r:new q(n,r.vars,!0):null}return C(t,r.vars)?r:new q(r.prev,new S(t,r.vars),!1)}return null}}(e,t.context);if(null!=r)return void(t.context=r)}else if(!C(e,t.localVars))return void(t.localVars=new S(e,t.localVars));l.globalVars&&!C(e,t.globalVars)&&(t.globalVars=new S(e,t.globalVars))}function O(e){return\\\"public\\\"==e||\\\"private\\\"==e||\\\"protected\\\"==e||\\\"abstract\\\"==e||\\\"readonly\\\"==e}function q(e,t,r){this.prev=e,this.vars=t,this.block=r}function S(e,t){this.name=e,this.next=t}var P=new S(\\\"this\\\",new S(\\\"arguments\\\",null));function N(){I.state.context=new q(I.state.context,I.state.localVars,!1),I.state.localVars=P}function U(){I.state.context=new q(I.state.context,I.state.localVars,!0),I.state.localVars=null}function W(){I.state.localVars=I.state.context.vars,I.state.context=I.state.context.prev}function B(n,a){function e(){var e=I.state,t=e.indented;if(\\\"stat\\\"==e.lexical.type)t=e.lexical.indented;else for(var r=e.lexical;r&&\\\")\\\"==r.type&&r.align;r=r.prev)t=r.indented;e.lexical=new E(t,I.stream.column(),n,null,e.lexical,a)}return e.lex=!0,e}function F(){var e=I.state;e.lexical.prev&&(\\\")\\\"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function H(r){return function e(t){return t==r?$():\\\";\\\"==r||\\\"}\\\"==t||\\\")\\\"==t||\\\"]\\\"==t?T():$(e)}}function D(e,t){return\\\"var\\\"==e?$(B(\\\"vardef\\\",t),Ae,H(\\\";\\\"),F):\\\"keyword a\\\"==e?$(B(\\\"form\\\"),L,D,F):\\\"keyword b\\\"==e?$(B(\\\"form\\\"),D,F):\\\"keyword d\\\"==e?I.stream.match(/^\\\\s*$/,!1)?$():$(B(\\\"stat\\\"),R,H(\\\";\\\"),F):\\\"debugger\\\"==e?$(H(\\\";\\\")):\\\"{\\\"==e?$(B(\\\"}\\\"),U,de,F,W):\\\";\\\"==e?$():\\\"if\\\"==e?(\\\"else\\\"==I.state.lexical.info&&I.state.cc[I.state.cc.length-1]==F&&I.state.cc.pop()(),$(B(\\\"form\\\"),L,D,F,$e)):\\\"function\\\"==e?$(qe):\\\"for\\\"==e?$(B(\\\"form\\\"),Ce,D,F):\\\"class\\\"==e||u&&\\\"interface\\\"==t?(I.marked=\\\"keyword\\\",$(B(\\\"form\\\",\\\"class\\\"==e?e:t),We,F)):\\\"variable\\\"==e?u&&\\\"declare\\\"==t?(I.marked=\\\"keyword\\\",$(D)):u&&(\\\"module\\\"==t||\\\"enum\\\"==t||\\\"type\\\"==t)&&I.stream.match(/^\\\\s*\\\\w/,!1)?(I.marked=\\\"keyword\\\",\\\"enum\\\"==t?$(Ye):\\\"type\\\"==t?$(Pe,H(\\\"operator\\\"),ye,H(\\\";\\\")):$(B(\\\"form\\\"),Ve,H(\\\"{\\\"),B(\\\"}\\\"),de,F,F)):u&&\\\"namespace\\\"==t?(I.marked=\\\"keyword\\\",$(B(\\\"form\\\"),J,D,F)):u&&\\\"abstract\\\"==t?(I.marked=\\\"keyword\\\",$(D)):$(B(\\\"stat\\\"),ie):\\\"switch\\\"==e?$(B(\\\"form\\\"),L,H(\\\"{\\\"),B(\\\"}\\\",\\\"switch\\\"),U,de,F,F,W):\\\"case\\\"==e?$(J,H(\\\":\\\")):\\\"default\\\"==e?$(H(\\\":\\\")):\\\"catch\\\"==e?$(B(\\\"form\\\"),N,G,D,F,W):\\\"export\\\"==e?$(B(\\\"stat\\\"),De,F):\\\"import\\\"==e?$(B(\\\"stat\\\"),Je,F):\\\"async\\\"==e?$(D):\\\"@\\\"==t?$(J,D):T(B(\\\"stat\\\"),J,H(\\\";\\\"),F)}function G(e){if(\\\"(\\\"==e)return $(Ne,H(\\\")\\\"))}function J(e,t){return Q(e,t,!1)}function K(e,t){return Q(e,t,!0)}function L(e){return\\\"(\\\"!=e?T():$(B(\\\")\\\"),R,H(\\\")\\\"),F)}function Q(e,t,r){if(I.state.fatArrowAt==I.stream.start){var n=r?re:te;if(\\\"(\\\"==e)return $(N,B(\\\")\\\"),fe(Ne,\\\")\\\"),F,H(\\\"=>\\\"),n,W);if(\\\"variable\\\"==e)return T(N,Ve,H(\\\"=>\\\"),n,W)}var a,i=r?Y:X;return V.hasOwnProperty(e)?$(i):\\\"function\\\"==e?$(qe,i):\\\"class\\\"==e||u&&\\\"interface\\\"==t?(I.marked=\\\"keyword\\\",$(B(\\\"form\\\"),Ue,F)):\\\"keyword c\\\"==e||\\\"async\\\"==e?$(r?K:J):\\\"(\\\"==e?$(B(\\\")\\\"),R,H(\\\")\\\"),F,i):\\\"operator\\\"==e||\\\"spread\\\"==e?$(r?K:J):\\\"[\\\"==e?$(B(\\\"]\\\"),Xe,F,i):\\\"{\\\"==e?le(ce,\\\"}\\\",null,i):\\\"quasi\\\"==e?T(Z,i):\\\"new\\\"==e?$((a=r,function(e){return\\\".\\\"==e?$(a?ae:ne):\\\"variable\\\"==e&&u?$(ge,a?Y:X):T(a?K:J)})):\\\"import\\\"==e?$(J):$()}function R(e){return e.match(/[;\\\\}\\\\)\\\\],]/)?T():T(J)}function X(e,t){return\\\",\\\"==e?$(R):Y(e,t,!1)}function Y(e,t,r){var n=0==r?X:Y,a=0==r?J:K;return\\\"=>\\\"==e?$(N,r?re:te,W):\\\"operator\\\"==e?/\\\\+\\\\+|--/.test(t)||u&&\\\"!\\\"==t?$(n):u&&\\\"\u003C\\\"==t&&I.stream.match(/^([^\u003C>]|\u003C[^\u003C>]*>)*>\\\\s*\\\\(/,!1)?$(B(\\\">\\\"),fe(ye,\\\">\\\"),F,n):\\\"?\\\"==t?$(J,H(\\\":\\\"),a):$(a):\\\"quasi\\\"==e?T(Z,n):\\\";\\\"!=e?\\\"(\\\"==e?le(K,\\\")\\\",\\\"call\\\",n):\\\".\\\"==e?$(oe,n):\\\"[\\\"==e?$(B(\\\"]\\\"),R,H(\\\"]\\\"),F,n):u&&\\\"as\\\"==t?(I.marked=\\\"keyword\\\",$(ye,n)):\\\"regexp\\\"==e?(I.state.lastType=I.marked=\\\"operator\\\",I.stream.backUp(I.stream.pos-I.stream.start-1),$(a)):void 0:void 0}function Z(e,t){return\\\"quasi\\\"!=e?T():\\\"${\\\"!=t.slice(t.length-2)?$(Z):$(J,ee)}function ee(e){if(\\\"}\\\"==e)return I.marked=\\\"string-2\\\",I.state.tokenize=j,$(Z)}function te(e){return A(I.stream,I.state),T(\\\"{\\\"==e?D:J)}function re(e){return A(I.stream,I.state),T(\\\"{\\\"==e?D:K)}function ne(e,t){if(\\\"target\\\"==t)return I.marked=\\\"keyword\\\",$(X)}function ae(e,t){if(\\\"target\\\"==t)return I.marked=\\\"keyword\\\",$(Y)}function ie(e){return\\\":\\\"==e?$(F,D):T(X,H(\\\";\\\"),F)}function oe(e){if(\\\"variable\\\"==e)return I.marked=\\\"property\\\",$()}function ce(e,t){if(\\\"async\\\"==e)return I.marked=\\\"property\\\",$(ce);if(\\\"variable\\\"==e||\\\"keyword\\\"==I.style){return(I.marked=\\\"property\\\",\\\"get\\\"==t||\\\"set\\\"==t)?$(se):(u&&I.state.fatArrowAt==I.stream.start&&(r=I.stream.match(/^\\\\s*:\\\\s*/,!1))&&(I.state.fatArrowAt=I.stream.pos+r[0].length),$(ue));var r}else{if(\\\"number\\\"==e||\\\"string\\\"==e)return I.marked=c?\\\"property\\\":I.style+\\\" property\\\",$(ue);if(\\\"jsonld-keyword\\\"==e)return $(ue);if(u&&O(t))return I.marked=\\\"keyword\\\",$(ce);if(\\\"[\\\"==e)return $(J,pe,H(\\\"]\\\"),ue);if(\\\"spread\\\"==e)return $(K,ue);if(\\\"*\\\"==t)return I.marked=\\\"keyword\\\",$(ce);if(\\\":\\\"==e)return T(ue)}}function se(e){return\\\"variable\\\"!=e?T(ue):(I.marked=\\\"property\\\",$(qe))}function ue(e){return\\\":\\\"==e?$(K):\\\"(\\\"==e?T(qe):void 0}function fe(n,a,i){function o(e,t){if(i?-1\u003Ci.indexOf(e):\\\",\\\"==e){var r=I.state.lexical;return\\\"call\\\"==r.info&&(r.pos=(r.pos||0)+1),$(function(e,t){return e==a||t==a?T():T(n)},o)}return e==a||t==a?$():i&&-1\u003Ci.indexOf(\\\";\\\")?T(n):$(H(a))}return function(e,t){return e==a||t==a?$():T(n,o)}}function le(e,t,r){for(var n=3;n\u003Carguments.length;n++)I.cc.push(arguments[n]);return $(B(t,r),fe(e,t),F)}function de(e){return\\\"}\\\"==e?$():T(D,de)}function pe(e,t){if(u){if(\\\":\\\"==e)return $(ye);if(\\\"?\\\"==t)return $(pe)}}function me(e,t){if(u&&(\\\":\\\"==e||\\\"in\\\"==t))return $(ye)}function ve(e){if(u&&\\\":\\\"==e)return I.stream.match(/^\\\\s*\\\\w+\\\\s+is\\\\b/,!1)?$(J,ke,ye):$(ye)}function ke(e,t){if(\\\"is\\\"==t)return I.marked=\\\"keyword\\\",$()}function ye(e,t){return\\\"keyof\\\"==t||\\\"typeof\\\"==t||\\\"infer\\\"==t?(I.marked=\\\"keyword\\\",$(\\\"typeof\\\"==t?K:ye)):\\\"variable\\\"==e||\\\"void\\\"==t?(I.marked=\\\"type\\\",$(he)):\\\"|\\\"==t||\\\"&\\\"==t?$(ye):\\\"string\\\"==e||\\\"number\\\"==e||\\\"atom\\\"==e?$(he):\\\"[\\\"==e?$(B(\\\"]\\\"),fe(ye,\\\"]\\\",\\\",\\\"),F,he):\\\"{\\\"==e?$(B(\\\"}\\\"),fe(be,\\\"}\\\",\\\",;\\\"),F,he):\\\"(\\\"==e?$(fe(xe,\\\")\\\"),we,he):\\\"\u003C\\\"==e?$(fe(ye,\\\">\\\"),ye):void 0}function we(e){if(\\\"=>\\\"==e)return $(ye)}function be(e,t){return\\\"variable\\\"==e||\\\"keyword\\\"==I.style?(I.marked=\\\"property\\\",$(be)):\\\"?\\\"==t||\\\"number\\\"==e||\\\"string\\\"==e?$(be):\\\":\\\"==e?$(ye):\\\"[\\\"==e?$(H(\\\"variable\\\"),me,H(\\\"]\\\"),be):\\\"(\\\"==e?T(Se,be):void 0}function xe(e,t){return\\\"variable\\\"==e&&I.stream.match(/^\\\\s*[?:]/,!1)||\\\"?\\\"==t?$(xe):\\\":\\\"==e?$(ye):\\\"spread\\\"==e?$(xe):T(ye)}function he(e,t){return\\\"\u003C\\\"==t?$(B(\\\">\\\"),fe(ye,\\\">\\\"),F,he):\\\"|\\\"==t||\\\".\\\"==e||\\\"&\\\"==t?$(ye):\\\"[\\\"==e?$(ye,H(\\\"]\\\"),he):\\\"extends\\\"==t||\\\"implements\\\"==t?(I.marked=\\\"keyword\\\",$(ye)):\\\"?\\\"==t?$(ye,H(\\\":\\\"),ye):void 0}function ge(e,t){if(\\\"\u003C\\\"==t)return $(B(\\\">\\\"),fe(ye,\\\">\\\"),F,he)}function je(){return T(ye,Me)}function Me(e,t){if(\\\"=\\\"==t)return $(ye)}function Ae(e,t){return\\\"enum\\\"==t?(I.marked=\\\"keyword\\\",$(Ye)):T(Ve,pe,Ie,Te)}function Ve(e,t){return u&&O(t)?(I.marked=\\\"keyword\\\",$(Ve)):\\\"variable\\\"==e?(_(t),$()):\\\"spread\\\"==e?$(Ve):\\\"[\\\"==e?le(ze,\\\"]\\\"):\\\"{\\\"==e?le(Ee,\\\"}\\\"):void 0}function Ee(e,t){return\\\"variable\\\"!=e||I.stream.match(/^\\\\s*:/,!1)?(\\\"variable\\\"==e&&(I.marked=\\\"property\\\"),\\\"spread\\\"==e?$(Ve):\\\"}\\\"==e?T():\\\"[\\\"==e?$(J,H(\\\"]\\\"),H(\\\":\\\"),Ee):$(H(\\\":\\\"),Ve,Ie)):(_(t),$(Ie))}function ze(){return T(Ve,Ie)}function Ie(e,t){if(\\\"=\\\"==t)return $(K)}function Te(e){if(\\\",\\\"==e)return $(Ae)}function $e(e,t){if(\\\"keyword b\\\"==e&&\\\"else\\\"==t)return $(B(\\\"form\\\",\\\"else\\\"),D,F)}function Ce(e,t){return\\\"await\\\"==t?$(Ce):\\\"(\\\"==e?$(B(\\\")\\\"),_e,F):void 0}function _e(e){return\\\"var\\\"==e?$(Ae,Oe):(\\\"variable\\\"==e?$:T)(Oe)}function Oe(e,t){return\\\")\\\"==e?$():\\\";\\\"==e?$(Oe):\\\"in\\\"==t||\\\"of\\\"==t?(I.marked=\\\"keyword\\\",$(J,Oe)):T(J,Oe)}function qe(e,t){return\\\"*\\\"==t?(I.marked=\\\"keyword\\\",$(qe)):\\\"variable\\\"==e?(_(t),$(qe)):\\\"(\\\"==e?$(N,B(\\\")\\\"),fe(Ne,\\\")\\\"),F,ve,D,W):u&&\\\"\u003C\\\"==t?$(B(\\\">\\\"),fe(je,\\\">\\\"),F,qe):void 0}function Se(e,t){return\\\"*\\\"==t?(I.marked=\\\"keyword\\\",$(Se)):\\\"variable\\\"==e?(_(t),$(Se)):\\\"(\\\"==e?$(N,B(\\\")\\\"),fe(Ne,\\\")\\\"),F,ve,W):u&&\\\"\u003C\\\"==t?$(B(\\\">\\\"),fe(je,\\\">\\\"),F,Se):void 0}function Pe(e,t){return\\\"keyword\\\"==e||\\\"variable\\\"==e?(I.marked=\\\"type\\\",$(Pe)):\\\"\u003C\\\"==t?$(B(\\\">\\\"),fe(je,\\\">\\\"),F):void 0}function Ne(e,t){return\\\"@\\\"==t&&$(J,Ne),\\\"spread\\\"==e?$(Ne):u&&O(t)?(I.marked=\\\"keyword\\\",$(Ne)):u&&\\\"this\\\"==e?$(pe,Ie):T(Ve,pe,Ie)}function Ue(e,t){return(\\\"variable\\\"==e?We:Be)(e,t)}function We(e,t){if(\\\"variable\\\"==e)return _(t),$(Be)}function Be(e,t){return\\\"\u003C\\\"==t?$(B(\\\">\\\"),fe(je,\\\">\\\"),F,Be):\\\"extends\\\"==t||\\\"implements\\\"==t||u&&\\\",\\\"==e?(\\\"implements\\\"==t&&(I.marked=\\\"keyword\\\"),$(u?ye:J,Be)):\\\"{\\\"==e?$(B(\\\"}\\\"),Fe,F):void 0}function Fe(e,t){return\\\"async\\\"==e||\\\"variable\\\"==e&&(\\\"static\\\"==t||\\\"get\\\"==t||\\\"set\\\"==t||u&&O(t))&&I.stream.match(/^\\\\s+[\\\\w$\\\\xa1-\\\\uffff]/,!1)?(I.marked=\\\"keyword\\\",$(Fe)):\\\"variable\\\"==e||\\\"keyword\\\"==I.style?(I.marked=\\\"property\\\",$(He,Fe)):\\\"number\\\"==e||\\\"string\\\"==e?$(He,Fe):\\\"[\\\"==e?$(J,pe,H(\\\"]\\\"),He,Fe):\\\"*\\\"==t?(I.marked=\\\"keyword\\\",$(Fe)):u&&\\\"(\\\"==e?T(Se,Fe):\\\";\\\"==e||\\\",\\\"==e?$(Fe):\\\"}\\\"==e?$():\\\"@\\\"==t?$(J,Fe):void 0}function He(e,t){if(\\\"?\\\"==t)return $(He);if(\\\":\\\"==e)return $(ye,Ie);if(\\\"=\\\"==t)return $(K);var r=I.state.lexical.prev;return T(r&&\\\"interface\\\"==r.info?Se:qe)}function De(e,t){return\\\"*\\\"==t?(I.marked=\\\"keyword\\\",$(Re,H(\\\";\\\"))):\\\"default\\\"==t?(I.marked=\\\"keyword\\\",$(J,H(\\\";\\\"))):\\\"{\\\"==e?$(fe(Ge,\\\"}\\\"),Re,H(\\\";\\\")):T(D)}function Ge(e,t){return\\\"as\\\"==t?(I.marked=\\\"keyword\\\",$(H(\\\"variable\\\"))):\\\"variable\\\"==e?T(K,Ge):void 0}function Je(e){return\\\"string\\\"==e?$():\\\"(\\\"==e?T(J):T(Ke,Le,Re)}function Ke(e,t){return\\\"{\\\"==e?le(Ke,\\\"}\\\"):(\\\"variable\\\"==e&&_(t),\\\"*\\\"==t&&(I.marked=\\\"keyword\\\"),$(Qe))}function Le(e){if(\\\",\\\"==e)return $(Ke,Le)}function Qe(e,t){if(\\\"as\\\"==t)return I.marked=\\\"keyword\\\",$(Ke)}function Re(e,t){if(\\\"from\\\"==t)return I.marked=\\\"keyword\\\",$(J)}function Xe(e){return\\\"]\\\"==e?$():T(fe(K,\\\"]\\\"))}function Ye(){return T(B(\\\"form\\\"),Ve,H(\\\"{\\\"),B(\\\"}\\\"),fe(Ze,\\\"}\\\"),F,F)}function Ze(){return T(Ve,Ie)}function et(e,t,r){return t.tokenize==h&&/^(?: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)))}return F.lex=W.lex=!0,{startState:function(e){var t={tokenize:h,lastType:\\\"sof\\\",cc:[],lexical:new E((e||0)-d,0,\\\"block\\\",!1),localVars:l.localVars,context:l.localVars&&new q(null,null,!1),indented:e||0};return l.globalVars&&\\\"object\\\"==typeof l.globalVars&&(t.globalVars=l.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty(\\\"align\\\")||(t.lexical.align=!1),t.indented=e.indentation(),A(e,t)),t.tokenize!=g&&e.eatSpace())return null;var r=t.tokenize(e,t);return\\\"comment\\\"==k?r:(t.lastType=\\\"operator\\\"!=k||\\\"++\\\"!=y&&\\\"--\\\"!=y?k:\\\"incdec\\\",z(t,r,k,y,e))},indent:function(e,t){if(e.tokenize==g||e.tokenize==j)return tt.Pass;if(e.tokenize!=h)return 0;var r,n=t&&t.charAt(0),a=e.lexical;if(!/^\\\\s*else\\\\b/.test(t))for(var i=e.cc.length-1;0\u003C=i;--i){var o=e.cc[i];if(o==F)a=a.prev;else if(o!=$e)break}for(;(\\\"stat\\\"==a.type||\\\"form\\\"==a.type)&&(\\\"}\\\"==n||(r=e.cc[e.cc.length-1])&&(r==X||r==Y)&&!/^[,\\\\.=+\\\\-*:?[\\\\(]/.test(t));)a=a.prev;p&&\\\")\\\"==a.type&&\\\"stat\\\"==a.prev.type&&(a=a.prev);var c,s,u=a.type,f=n==u;return\\\"vardef\\\"==u?a.indented+(\\\"operator\\\"==e.lastType||\\\",\\\"==e.lastType?a.info.length+1:0):\\\"form\\\"==u&&\\\"{\\\"==n?a.indented:\\\"form\\\"==u?a.indented+d:\\\"stat\\\"==u?a.indented+(s=t,\\\"operator\\\"==(c=e).lastType||\\\",\\\"==c.lastType||w.test(s.charAt(0))||/[,.]/.test(s.charAt(0))?p||d:0):\\\"switch\\\"!=a.info||f||0==l.doubleIndentSwitch?a.align?a.column+(f?0:1):a.indented+(f?0:d):a.indented+(/^(?:case|default)\\\\b/.test(t)?d:2*d)},electricInput:/^\\\\s*(?:case .*?:|default:|\\\\{|\\\\})$/,blockCommentStart:s?null:\\\"/*\\\",blockCommentEnd:s?null:\\\"*/\\\",blockCommentContinue:s?null:\\\" * \\\",lineComment:s?null:\\\"//\\\",fold:\\\"brace\\\",closeBrackets:\\\"()[]{}''\\\\\\\"\\\\\\\"``\\\",helperType:s?\\\"json\\\":\\\"javascript\\\",jsonldMode:c,jsonMode:s,expressionAllowed:et,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=J&&t!=K||e.cc.pop()}}}),tt.registerHelper(\\\"wordChars\\\",\\\"javascript\\\",/[\\\\w$]/),tt.defineMIME(\\\"text/javascript\\\",\\\"javascript\\\"),tt.defineMIME(\\\"text/ecmascript\\\",\\\"javascript\\\"),tt.defineMIME(\\\"application/javascript\\\",\\\"javascript\\\"),tt.defineMIME(\\\"application/x-javascript\\\",\\\"javascript\\\"),tt.defineMIME(\\\"application/ecmascript\\\",\\\"javascript\\\"),tt.defineMIME(\\\"application/json\\\",{name:\\\"javascript\\\",json:!0}),tt.defineMIME(\\\"application/x-json\\\",{name:\\\"javascript\\\",json:!0}),tt.defineMIME(\\\"application/ld+json\\\",{name:\\\"javascript\\\",jsonld:!0}),tt.defineMIME(\\\"text/typescript\\\",{name:\\\"javascript\\\",typescript:!0}),tt.defineMIME(\\\"application/typescript\\\",{name:\\\"javascript\\\",typescript:!0})});\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/codemirror/mode/javascript/javascript.js\",\"module-type\":\"codemirror\"},\"$:/plugins/tiddlywiki/codemirror-mode-javascript/readme\":{\"title\":\"$:/plugins/tiddlywiki/codemirror-mode-javascript/readme\",\"text\":\"This plugin adds Syntax Highlighting for Javascript tiddlers (application/javascript) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\\n\\n\"}}}"}, {"title":"$:/plugins/tiddlywiki/codemirror-mode-xml","name":"CodeMirror Mode XML","description":"XML highlighting mode for CodeMirror","parent-plugin":"$:/plugins/tiddlywiki/codemirror","list":"readme","version":"5.2.7","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/codemirror/mode/xml/xml.js\":{\"text\":\"// CodeMirror, copyright (c) by Marijn Haverbeke and others\\n// Distributed under an MIT license: https://codemirror.net/LICENSE\\n!function(t){\\\"object\\\"==typeof exports&&\\\"object\\\"==typeof module?t(require(\\\"../../lib/codemirror\\\")):\\\"function\\\"==typeof define&&define.amd?define([\\\"../../lib/codemirror\\\"],t):t(CodeMirror)}(function(N){\\\"use strict\\\";var y={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},z={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};N.defineMode(\\\"xml\\\",function(t,e){var i,a,l=t.indentUnit,u={},n=e.htmlMode?y:z;for(var r in n)u[r]=n[r];for(var r in e)u[r]=e[r];function c(e,n){function t(t){return(n.tokenize=t)(e,n)}var r=e.next();if(\\\"\u003C\\\"==r)return e.eat(\\\"!\\\")?e.eat(\\\"[\\\")?e.match(\\\"CDATA[\\\")?t(s(\\\"atom\\\",\\\"]]>\\\")):null:e.match(\\\"--\\\")?t(s(\\\"comment\\\",\\\"--\\\\x3e\\\")):e.match(\\\"DOCTYPE\\\",!0,!0)?(e.eatWhile(/[\\\\w\\\\._\\\\-]/),t(function r(o){return function(t,e){for(var n;null!=(n=t.next());){if(\\\"\u003C\\\"==n)return e.tokenize=r(o+1),e.tokenize(t,e);if(\\\">\\\"==n){if(1!=o)return e.tokenize=r(o-1),e.tokenize(t,e);e.tokenize=c;break}}return\\\"meta\\\"}}(1))):null:e.eat(\\\"?\\\")?(e.eatWhile(/[\\\\w\\\\._\\\\-]/),n.tokenize=s(\\\"meta\\\",\\\"?>\\\"),\\\"meta\\\"):(i=e.eat(\\\"/\\\")?\\\"closeTag\\\":\\\"openTag\\\",n.tokenize=d,\\\"tag bracket\\\");if(\\\"&\\\"!=r)return e.eatWhile(/[^&\u003C]/),null;var o=e.eat(\\\"#\\\")?e.eat(\\\"x\\\")?e.eatWhile(/[a-fA-F\\\\d]/)&&e.eat(\\\";\\\"):e.eatWhile(/[\\\\d]/)&&e.eat(\\\";\\\"):e.eatWhile(/[\\\\w\\\\.\\\\-:]/)&&e.eat(\\\";\\\");return o?\\\"atom\\\":\\\"error\\\"}function d(t,e){var n=t.next();if(\\\">\\\"==n||\\\"/\\\"==n&&t.eat(\\\">\\\"))return e.tokenize=c,i=\\\">\\\"==n?\\\"endTag\\\":\\\"selfcloseTag\\\",\\\"tag bracket\\\";if(\\\"=\\\"==n)return i=\\\"equals\\\",null;if(\\\"\u003C\\\"!=n)return/[\\\\'\\\\\\\"]/.test(n)?(e.tokenize=(r=n,a.isInAttribute=!0,a),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\\\\s\\\\u00a0=\u003C>\\\\\\\"\\\\']*[^\\\\s\\\\u00a0=\u003C>\\\\\\\"\\\\'\\\\/]/),\\\"word\\\");e.tokenize=c,e.state=g,e.tagName=e.tagStart=null;var r,o=e.tokenize(t,e);return o?o+\\\" tag error\\\":\\\"tag error\\\";function a(t,e){for(;!t.eol();)if(t.next()==r){e.tokenize=d;break}return\\\"string\\\"}}function s(n,r){return function(t,e){for(;!t.eol();){if(t.match(r)){e.tokenize=c;break}t.next()}return n}}function f(t,e,n){this.prev=t.context,this.tagName=e||\\\"\\\",this.indent=t.indented,this.startOfLine=n,(u.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function o(t){t.context&&(t.context=t.context.prev)}function m(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!u.contextGrabbers.hasOwnProperty(n)||!u.contextGrabbers[n].hasOwnProperty(e))return;o(t)}}function g(t,e,n){return\\\"openTag\\\"==t?(n.tagStart=e.column(),p):\\\"closeTag\\\"==t?h:g}function p(t,e,n){return\\\"word\\\"==t?(n.tagName=e.current(),a=\\\"tag\\\",k):u.allowMissingTagName&&\\\"endTag\\\"==t?(a=\\\"tag bracket\\\",k(t,0,n)):(a=\\\"error\\\",p)}function h(t,e,n){if(\\\"word\\\"!=t)return u.allowMissingTagName&&\\\"endTag\\\"==t?(a=\\\"tag bracket\\\",x(t,0,n)):(a=\\\"error\\\",b);var r=e.current();return n.context&&n.context.tagName!=r&&u.implicitlyClosed.hasOwnProperty(n.context.tagName)&&o(n),n.context&&n.context.tagName==r||!1===u.matchClosing?(a=\\\"tag\\\",x):(a=\\\"tag error\\\",b)}function x(t,e,n){return\\\"endTag\\\"!=t?(a=\\\"error\\\",x):(o(n),g)}function b(t,e,n){return a=\\\"error\\\",x(t,0,n)}function k(t,e,n){if(\\\"word\\\"==t)return a=\\\"attribute\\\",v;if(\\\"endTag\\\"!=t&&\\\"selfcloseTag\\\"!=t)return a=\\\"error\\\",k;var r=n.tagName,o=n.tagStart;return n.tagName=n.tagStart=null,\\\"selfcloseTag\\\"==t||u.autoSelfClosers.hasOwnProperty(r)?m(n,r):(m(n,r),n.context=new f(n,r,o==n.indented)),g}function v(t,e,n){return\\\"equals\\\"==t?w:(u.allowMissing||(a=\\\"error\\\"),k(t,0,n))}function w(t,e,n){return\\\"string\\\"==t?T:\\\"word\\\"==t&&u.allowUnquoted?(a=\\\"string\\\",k):(a=\\\"error\\\",k(t,0,n))}function T(t,e,n){return\\\"string\\\"==t?T:k(t,0,n)}return c.isInText=!0,{startState:function(t){var e={tokenize:c,state:g,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;i=null;var n=e.tokenize(t,e);return(n||i)&&\\\"comment\\\"!=n&&(a=null,e.state=e.state(i||n,t,e),a&&(n=\\\"error\\\"==a?n+\\\" error\\\":a)),n},indent:function(t,e,n){var r=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+l;if(r&&r.noIndent)return N.Pass;if(t.tokenize!=d&&t.tokenize!=c)return n?n.match(/^(\\\\s*)/)[0].length:0;if(t.tagName)return!1!==u.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+l*(u.multilineTagIndentFactor||1);if(u.alignCDATA&&/\u003C!\\\\[CDATA\\\\[/.test(e))return 0;var o=e&&/^\u003C(\\\\/)?([\\\\w_:\\\\.-]*)/.exec(e);if(o&&o[1])for(;r;){if(r.tagName==o[2]){r=r.prev;break}if(!u.implicitlyClosed.hasOwnProperty(r.tagName))break;r=r.prev}else if(o)for(;r;){var a=u.contextGrabbers[r.tagName];if(!a||!a.hasOwnProperty(o[2]))break;r=r.prev}for(;r&&r.prev&&!r.startOfLine;)r=r.prev;return r?r.indent+l:t.baseIndent||0},electricInput:/\u003C\\\\/[\\\\s\\\\w:]+>$/,blockCommentStart:\\\"\\\\x3c!--\\\",blockCommentEnd:\\\"--\\\\x3e\\\",configuration:u.htmlMode?\\\"html\\\":\\\"xml\\\",helperType:u.htmlMode?\\\"html\\\":\\\"xml\\\",skipAttribute:function(t){t.state==w&&(t.state=k)},xmlCurrentTag:function(t){return t.tagName?{name:t.tagName,close:\\\"closeTag\\\"==t.type}:null},xmlCurrentContext:function(t){for(var e=[],n=t.context;n;n=n.prev)e.push(n.tagName);return e.reverse()}}}),N.defineMIME(\\\"text/xml\\\",\\\"xml\\\"),N.defineMIME(\\\"application/xml\\\",\\\"xml\\\"),N.mimeModes.hasOwnProperty(\\\"text/html\\\")||N.defineMIME(\\\"text/html\\\",{name:\\\"xml\\\",htmlMode:!0})});\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/codemirror/mode/xml/xml.js\",\"module-type\":\"codemirror\"},\"$:/plugins/tiddlywiki/codemirror-mode-xml/readme\":{\"title\":\"$:/plugins/tiddlywiki/codemirror-mode-xml/readme\",\"text\":\"This plugin is a requirement for other Syntax-highlighting plugins and adds Highlighting for XML tiddlers (application/xml) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\\n\\n\"}}}"}, {"title":"$:/plugins/tiddlywiki/markdown","name":"Markdown","description":"Markdown parser based on markdown-it","list":"readme config syntax license","version":"5.2.7","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold\",\"list-after\":\"$:/core/ui/EditorToolbar/bold\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/bold\",\"caption\":\"{{$:/language/Buttons/Bold/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Bold/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((bold))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"wrap-selection\\\"\\n\\tprefix=\\\"**\\\"\\n\\tsuffix=\\\"**\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-1\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-1\",\"caption\":\"{{$:/language/Buttons/Heading1/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading1/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((heading-1))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"1\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-2\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-2\",\"caption\":\"{{$:/language/Buttons/Heading2/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading2/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((heading-2))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"2\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-3\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-3\",\"caption\":\"{{$:/language/Buttons/Heading3/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading3/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((heading-3))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"3\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-4\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-4\",\"caption\":\"{{$:/language/Buttons/Heading4/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading4/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((heading-4))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"4\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-5\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-5\",\"caption\":\"{{$:/language/Buttons/Heading5/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading5/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((heading-5))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"5\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-6\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-6\",\"caption\":\"{{$:/language/Buttons/Heading6/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading6/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((heading-6))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"6\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/italic\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/italic\",\"list-after\":\"$:/core/ui/EditorToolbar/italic\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/italic\",\"caption\":\"{{$:/language/Buttons/Italic/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Italic/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((italic))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"wrap-selection\\\"\\n\\tprefix=\\\"*\\\"\\n\\tsuffix=\\\"*\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/link-dropdown\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/link-dropdown\",\"text\":\"\\\\define lingo-base() $:/language/Buttons/Link/\\n\\n\\\\define add-link-actions()\\n\\\\whitespace trim\\n\u003C$action-sendmessage $message=\\\"tm-edit-text-operation\\\" $param=\\\"make-markdown-link\\\" text={{$(linkTiddler)$}} />\\n\u003C$action-deletetiddler $filter=\\\"[\u003Cdropdown-state>] [\u003CsearchTiddler>] [\u003ClinkTiddler>] [\u003CstoreTitle>] [\u003CsearchListState>]\\\"/>\\n\\\\end\\n\\n\\\\define get-focus-selector() [data-tiddler-title=\\\"$(cssEscapedTitle)$\\\"] .tc-create-wikitext-link input\\n\\n\\\\define cancel-search-actions-inner()\\n\u003C$set name=\\\"userInput\\\" value={{{ [\u003CstoreTitle>get[text]] }}}>\u003C$list filter=\\\"[\u003CsearchTiddler>get[text]!match\u003CuserInput>]\\\" emptyMessage=\\\"\u003C$action-deletetiddler $filter='[\u003CsearchTiddler>] [\u003ClinkTiddler>] [\u003CstoreTitle>] [\u003CsearchListState>]'/>\\\">\u003C$action-setfield $tiddler=\u003C\u003CsearchTiddler>> text=\u003C\u003CuserInput>>/>\u003C$action-setfield $tiddler=\u003C\u003CrefreshTitle>> text=\\\"yes\\\"/>\u003C/$list>\u003C/$set>\\n\\\\end\\n\\n\\\\define cancel-search-actions() \u003C$list filter=\\\"[\u003CstoreTitle>!has[text]] +[\u003CsearchTiddler>!has[text]]\\\" emptyMessage=\\\"\u003C\u003Ccancel-search-actions-inner>>\\\">\u003C$action-sendmessage $message=\\\"tm-edit-text-operation\\\" $param=\\\"focus-editor\\\"/>\u003C/$list>\\n\\n\\\\define external-link()\\n\\\\whitespace trim\\n\u003C$button class=\\\"tc-btn-invisible\\\" style=\\\"width: auto; display: inline-block; background-colour: inherit;\\\" actions=\u003C\u003Cadd-link-actions>>>\\n{{$:/core/images/chevron-right}}\\n\u003C/$button>\\n\\\\end\\n\\n\\\\define set-next-input-tab(beforeafter:\\\"after\\\") \u003C$macrocall $name=\\\"change-input-tab\\\" stateTitle=\\\"$:/state/tab/search-results/sidebar\\\" tag=\\\"$:/tags/SearchResults\\\" beforeafter=\\\"$beforeafter$\\\" defaultState={{$:/config/SearchResults/Default}} actions=\\\"\u003C$action-setfield $tiddler='$:/state/search/currentTab' text=\u003C\u003CnextTab>>/>\\\"/>\\n\\n\\\\define body(config-title)\\n\\\\whitespace trim\\n''\u003C\u003Clingo Hint>>''\\n\\n\u003C$vars searchTiddler=\\\"\\\"\\\"$config-title$/search\\\"\\\"\\\" linkTiddler=\\\"\\\"\\\"$config-title$/link\\\"\\\"\\\" linktext=\\\"\\\" searchListState=\u003C\u003Cqualify \\\"$:/temp/link-search/selected-item\\\">> refreshTitle=\u003C\u003Cqualify \\\"$:/temp/link-search/refresh\\\">> storeTitle=\u003C\u003Cqualify \\\"$:/temp/link-search/input\\\">>>\\n\\n\u003C$vars linkTiddler=\u003C\u003CsearchTiddler>>>\\n\u003C$keyboard key=\\\"((input-tab-right))\\\" actions=\u003C\u003Cset-next-input-tab>>>\\n\u003C$keyboard key=\\\"((input-tab-left))\\\" actions=\u003C\u003Cset-next-input-tab \\\"before\\\">> class=\\\"tc-create-wikitext-link\\\">\\n\u003C$macrocall $name=\\\"keyboard-driven-input\\\" tiddler=\u003C\u003CsearchTiddler>> storeTitle=\u003C\u003CstoreTitle>>\\n\\t\\tselectionStateTitle=\u003C\u003CsearchListState>> refreshTitle=\u003C\u003CrefreshTitle>> type=\\\"search\\\" filterMinLength=\\\"1\\\"\\n\\t\\ttag=\\\"input\\\" focus=\\\"true\\\" class=\\\"tc-popup-handle\\\" inputCancelActions=\u003C\u003Ccancel-search-actions>>\\n\\t\\tinputAcceptActions=\u003C\u003Cadd-link-actions>> placeholder={{$:/language/Search/Search}} default=\\\"\\\"\\n\\t\\tconfigTiddlerFilter=\\\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\\\" />\\n\u003C/$keyboard>\\n\u003C/$keyboard>\\n \\n\u003C$reveal tag=\\\"span\\\" state=\u003C\u003CstoreTitle>> type=\\\"nomatch\\\" text=\\\"\\\">\\n\u003C\u003Cexternal-link>>\\n \\n\u003C$button class=\\\"tc-btn-invisible\\\" style=\\\"width: auto; display: inline-block; background-colour: inherit;\\\">\\n\u003C\u003Ccancel-search-actions>>\u003C$set name=\\\"cssEscapedTitle\\\" value={{{ [\u003CstoryTiddler>escapecss[]] }}}>\u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\u003C\u003Cget-focus-selector>>/>\u003C/$set>\\n{{$:/core/images/close-button}}\\n\u003C/$button>\\n\u003C/$reveal>\\n\u003C/$vars>\\n\\n\u003C$reveal tag=\\\"div\\\" state=\u003C\u003CstoreTitle>> type=\\\"nomatch\\\" text=\\\"\\\">\\n\\n\u003C$linkcatcher actions=\u003C\u003Cadd-link-actions>> to=\u003C\u003ClinkTiddler>>>\\n\\n\u003C$vars userInput={{{ [\u003CstoreTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\\n\\n{{$:/core/ui/SearchResults}}\\n\\n\u003C/$vars>\\n\\n\u003C/$linkcatcher>\\n\\n\u003C/$reveal>\\n\\n\u003C/$vars>\\n\\n\\\\end\\n\\n\u003C$macrocall $name=\\\"body\\\" config-title=\u003C\u003Cqualify \\\"$:/state/Link/\\\">>/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/link\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/link\",\"list-after\":\"$:/core/ui/EditorToolbar/link\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/link\",\"caption\":\"{{$:/language/Buttons/Link/Caption}}\",\"description\":\"{{$:/language/Buttons/Link/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"button-classes\":\"tc-text-editor-toolbar-item-start-group\",\"shortcuts\":\"((link))\",\"dropdown\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/link-dropdown\",\"text\":\"\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/linkify\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/linkify\",\"caption\":\"{{$:/language/Buttons/Linkify/Caption}} (Markdown)\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"description\":\"{{$:/language/Buttons/Linkify/Hint}}\",\"icon\":\"$:/plugins/tiddlywiki/markdown/images/markdown-linkify\",\"list-after\":\"$:/core/ui/EditorToolbar/linkify\",\"shortcuts\":\"((linkify))\",\"tags\":\"$:/tags/EditorToolbar\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"wrap-selection\\\"\\n\\tprefix=\\\"[\\\"\\n\\tsuffix=\\\"]()\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet\",\"list-after\":\"$:/core/ui/EditorToolbar/list-bullet\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/list-bullet\",\"caption\":\"{{$:/language/Buttons/ListBullet/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/ListBullet/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((list-bullet))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"*\\\"\\n\\tcount=\\\"1\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number\",\"list-after\":\"$:/core/ui/EditorToolbar/list-number\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/list-number\",\"caption\":\"{{$:/language/Buttons/ListNumber/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/ListNumber/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((list-number))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"1.\\\"\\n\\tcount=\\\"1\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-block\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-block\",\"list-after\":\"$:/core/ui/EditorToolbar/mono-block\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/mono-block\",\"caption\":\"{{$:/language/Buttons/MonoBlock/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/MonoBlock/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"button-classes\":\"tc-text-editor-toolbar-item-start-group\",\"shortcuts\":\"((mono-block))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"wrap-lines\\\"\\n\\tprefix=\\\"\\n```\\\"\\n\\tsuffix=\\\"```\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line\",\"list-after\":\"$:/core/ui/EditorToolbar/mono-line\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/mono-line\",\"caption\":\"{{$:/language/Buttons/MonoLine/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/MonoLine/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((mono-line))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"wrap-selection\\\"\\n\\tprefix=\\\"`\\\"\\n\\tsuffix=\\\"`\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/quote\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/quote\",\"list-after\":\"$:/core/ui/EditorToolbar/quote\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/quote\",\"caption\":\"{{$:/language/Buttons/Quote/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Quote/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]] [\u003CtargetTiddler>type[text/markdown]]\",\"shortcuts\":\"((quote))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\">\\\"\\n\\tcount=\\\"1\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/KeyboardShortcuts/new-markdown-tiddler\":{\"title\":\"$:/plugins/tiddlywiki/markdown/KeyboardShortcuts/new-markdown-tiddler\",\"tags\":\"$:/tags/KeyboardShortcut\",\"key\":\"((new-markdown-tiddler))\",\"text\":\"\\\\whitespace trim\\n\u003C$navigator story=\\\"$:/StoryList\\\" history=\\\"$:/HistoryList\\\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\u003C$action-sendmessage $message=\\\"tm-new-tiddler\\\" type=\\\"text/markdown\\\"/>\\n\u003C/$navigator>\\n\"},\"$:/config/ShortcutInfo/new-markdown-tiddler\":{\"title\":\"$:/config/ShortcutInfo/new-markdown-tiddler\",\"text\":\"{{$:/language/Buttons/NewMarkdown/Hint}}\"},\"$:/config/shortcuts-mac/new-markdown-tiddler\":{\"title\":\"$:/config/shortcuts-mac/new-markdown-tiddler\",\"text\":\"ctrl-M\"},\"$:/config/shortcuts-not-mac/new-markdown-tiddler\":{\"title\":\"$:/config/shortcuts-not-mac/new-markdown-tiddler\",\"text\":\"alt-M\"},\"$:/config/markdown/breaks\":{\"title\":\"$:/config/markdown/breaks\",\"text\":\"false\"},\"$:/config/markdown/linkify\":{\"title\":\"$:/config/markdown/linkify\",\"text\":\"false\"},\"$:/config/markdown/quotes\":{\"title\":\"$:/config/markdown/quotes\",\"text\":\"“”‘’\"},\"$:/config/markdown/renderWikiText\":{\"title\":\"$:/config/markdown/renderWikiText\",\"text\":\"true\"},\"$:/config/markdown/renderWikiTextPragma\":{\"title\":\"$:/config/markdown/renderWikiTextPragma\",\"text\":\"\\\\rules only html entity syslink prettylink image prettyextlink wikilink commentblock commentinline macrocallblock macrocallinline transcludeblock transcludeinline filteredtranscludeblock filteredtranscludeinline\"},\"$:/config/markdown/typographer\":{\"title\":\"$:/config/markdown/typographer\",\"text\":\"false\"},\"$:/plugins/tiddlywiki/markdown/config\":{\"title\":\"$:/plugins/tiddlywiki/markdown/config\",\"text\":\"! Plugin Configuration\\n\\n|!Config |!Default |!Description |\\n|[[breaks|$:/config/markdown/breaks]]|`false`|markdown-it library config: Convert '\\\\n' in paragraphs into `\u003Cbr>` |\\n|[[linkify|$:/config/markdown/linkify]]|`false`|markdown-it library config: Autoconvert URL-like text to links |\\n|[[renderWikiText|$:/config/markdown/renderWikiText]]|`true`|After Markdown is parsed, should any text elements be handed off to the ~WikiText parser for further processing? |\\n|[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]|\u003Ccode>\u003C$view tiddler=\\\"$:/plugins/tiddlywiki/markdown\\\" subtiddler=\\\"$:/config/markdown/renderWikiTextPragma\\\" mode=\\\"inline\\\"/>\u003C/code>|When handing off to the ~WikiText parser, what parser rules should it follow? |\\n|[[typographer|$:/config/markdown/typographer]]|`false`|markdown-it library config: Enable some language-neutral replacement + quotes beautification |\\n|[[quotes|$:/config/markdown/quotes]]|`“”‘’`|markdown-it library config: Double + single quotes replacement pairs, when `typographer` is enabled |\\n\\n''IMPORTANT:'' You must reload your wiki for changes to take effect.\\n\\n\u003Ch2 style=\\\"margin-top:1.5em\\\">~WikiText Pragma\u003C/h2>\\n\\nThe value of [[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]] has been carefully tuned to properly integrate markdown with ~TiddlyWiki. Changing this setting may produce unexpected results, but the inclusion of the following parser rules should be fine:\\n\\n; image\\n: embed images using ~TiddlyWiki's image syntax:\\n\\n\u003Cp style=\\\"margin-left:1em\\\">\\n\\n```\\n[img[An explanatory tooltip|TiddlerTitle]]\\n\\n[img width=23 class=\\\"tc-image\\\" [https://tiddlywiki.com/fractalveg.jpg]]\\n```\\n\u003C/p>\\n\\n; prettylink\\n: create links the ~TiddlyWiki way:\\n\\n\u003Cp style=\\\"margin-left:1em\\\">\\n\\n```\\n[[TiddlerTitle]]\\n\\n[[Displayed Link Title|Tiddler Title]]\\n\\n[[TW5|https://tiddlywiki.com/]]\\n```\\n\u003C/p>\\n\\n; prettyextlink\\n: create external links using the following syntax:\\n\\n\u003Cp style=\\\"margin-left:1em\\\">\\n\\n```\\n[ext[Open file|index.html]]\\n\\n[ext[Open file|../README.md]]\\n```\\n\u003C/p>\\n\\n; wikilink\\n: auto-link ~CamelCase titles\\n\\n; syslink\\n: auto-link system tiddlers\\n\\n\u003Ch2 style=\\\"margin-top:1.5em\\\">Typographical Replacements\u003C/h2>\\n\\nWhen [[typographer|$:/config/markdown/typographer]] is enabled, markdown-it will provide these typographical replacements:\\n\\n```\\n(c) (C) → ©\\n(tm) (TM) → ™\\n(r) (R) → ®\\n+- → ±\\n... → …\\n?.... → ?..\\n!.... → !..\\n????? → ???\\n!!!!! → !!!\\n,, → ,\\n-- → –\\n--- → —\\n```\"},\"$:/language/Docs/Types/text/markdown\":{\"title\":\"$:/language/Docs/Types/text/markdown\",\"description\":\"Markdown\",\"name\":\"text/markdown\",\"group\":\"Text\"},\"$:/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js\":{\"title\":\"$:/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js\\ntype: application/javascript\\nmodule-type: texteditoroperation\\n\\nText editor operation to make a markdown link\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nexports[\\\"make-markdown-link\\\"] = function(event,operation) {\\n\\tvar rx = /[()\\\\\\\\]/g, rs = '\\\\\\\\$&';\\n\\n\\tif(operation.selection) {\\n\\t\\tvar desc = operation.selection.replace(/[\\\\[\\\\]\\\\\\\\]/g, rs);\\n\\n\\t\\tif(event.paramObject.text.indexOf(\\\"://\\\") !== -1) {\\n\\t\\t\\toperation.replacement = \\\"[\\\" + desc + \\\"](\\\" + event.paramObject.text.replace(rx, rs) + \\\")\\\";\\n\\t\\t} else {\\n\\t\\t\\toperation.replacement = \\\"[\\\" + desc + \\\"](#\\\" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + \\\")\\\";\\n\\t\\t}\\n\\t\\toperation.cutStart = operation.selStart;\\n\\t\\toperation.cutEnd = operation.selEnd;\\n\\t} else {\\n\\t\\tif(event.paramObject.text.indexOf(\\\"://\\\") !== -1) {\\n\\t\\t\\toperation.replacement = \\\"\u003C\\\" + event.paramObject.text.replace(/[\u003C>]/g, function(m, offset, str) {\\n\\t\\t\\t\\treturn encodeURI(m);\\n\\t\\t\\t}) + \\\">\\\";\\n\\t\\t} else {\\n\\t\\t\\toperation.replacement = \\\"[](#\\\" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + \\\")\\\";\\n\\t\\t}\\n\\t\\toperation.cutStart = operation.selStart;\\n\\t\\toperation.cutEnd = operation.selEnd;\\n\\t}\\n\\toperation.newSelStart = operation.selStart + operation.replacement.length;\\n\\toperation.newSelEnd = operation.newSelStart;\\n};\\n\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"texteditoroperation\"},\"$:/plugins/tiddlywiki/markdown/markdown-it.js\":{\"text\":\"/*! markdown-it 13.0.1 https://github.com/markdown-it/markdown-it @license MIT */\\n!function(e,r){\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module?module.exports=r():\\\"function\\\"==typeof define&&define.amd?define(r):(e=\\\"undefined\\\"!=typeof globalThis?globalThis:e||self).markdownit=r()}(this,(function(){\\\"use strict\\\";function e(e){if(e.__esModule)return e;var r=Object.defineProperty({},\\\"__esModule\\\",{value:!0});return Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})})),r}var r={Aacute:\\\"\\\\xc1\\\",aacute:\\\"\\\\xe1\\\",Abreve:\\\"\\\\u0102\\\",abreve:\\\"\\\\u0103\\\",ac:\\\"\\\\u223e\\\",acd:\\\"\\\\u223f\\\",acE:\\\"\\\\u223e\\\\u0333\\\",Acirc:\\\"\\\\xc2\\\",acirc:\\\"\\\\xe2\\\",acute:\\\"\\\\xb4\\\",Acy:\\\"\\\\u0410\\\",acy:\\\"\\\\u0430\\\",AElig:\\\"\\\\xc6\\\",aelig:\\\"\\\\xe6\\\",af:\\\"\\\\u2061\\\",Afr:\\\"\\\\ud835\\\\udd04\\\",afr:\\\"\\\\ud835\\\\udd1e\\\",Agrave:\\\"\\\\xc0\\\",agrave:\\\"\\\\xe0\\\",alefsym:\\\"\\\\u2135\\\",aleph:\\\"\\\\u2135\\\",Alpha:\\\"\\\\u0391\\\",alpha:\\\"\\\\u03b1\\\",Amacr:\\\"\\\\u0100\\\",amacr:\\\"\\\\u0101\\\",amalg:\\\"\\\\u2a3f\\\",amp:\\\"&\\\",AMP:\\\"&\\\",andand:\\\"\\\\u2a55\\\",And:\\\"\\\\u2a53\\\",and:\\\"\\\\u2227\\\",andd:\\\"\\\\u2a5c\\\",andslope:\\\"\\\\u2a58\\\",andv:\\\"\\\\u2a5a\\\",ang:\\\"\\\\u2220\\\",ange:\\\"\\\\u29a4\\\",angle:\\\"\\\\u2220\\\",angmsdaa:\\\"\\\\u29a8\\\",angmsdab:\\\"\\\\u29a9\\\",angmsdac:\\\"\\\\u29aa\\\",angmsdad:\\\"\\\\u29ab\\\",angmsdae:\\\"\\\\u29ac\\\",angmsdaf:\\\"\\\\u29ad\\\",angmsdag:\\\"\\\\u29ae\\\",angmsdah:\\\"\\\\u29af\\\",angmsd:\\\"\\\\u2221\\\",angrt:\\\"\\\\u221f\\\",angrtvb:\\\"\\\\u22be\\\",angrtvbd:\\\"\\\\u299d\\\",angsph:\\\"\\\\u2222\\\",angst:\\\"\\\\xc5\\\",angzarr:\\\"\\\\u237c\\\",Aogon:\\\"\\\\u0104\\\",aogon:\\\"\\\\u0105\\\",Aopf:\\\"\\\\ud835\\\\udd38\\\",aopf:\\\"\\\\ud835\\\\udd52\\\",apacir:\\\"\\\\u2a6f\\\",ap:\\\"\\\\u2248\\\",apE:\\\"\\\\u2a70\\\",ape:\\\"\\\\u224a\\\",apid:\\\"\\\\u224b\\\",apos:\\\"'\\\",ApplyFunction:\\\"\\\\u2061\\\",approx:\\\"\\\\u2248\\\",approxeq:\\\"\\\\u224a\\\",Aring:\\\"\\\\xc5\\\",aring:\\\"\\\\xe5\\\",Ascr:\\\"\\\\ud835\\\\udc9c\\\",ascr:\\\"\\\\ud835\\\\udcb6\\\",Assign:\\\"\\\\u2254\\\",ast:\\\"*\\\",asymp:\\\"\\\\u2248\\\",asympeq:\\\"\\\\u224d\\\",Atilde:\\\"\\\\xc3\\\",atilde:\\\"\\\\xe3\\\",Auml:\\\"\\\\xc4\\\",auml:\\\"\\\\xe4\\\",awconint:\\\"\\\\u2233\\\",awint:\\\"\\\\u2a11\\\",backcong:\\\"\\\\u224c\\\",backepsilon:\\\"\\\\u03f6\\\",backprime:\\\"\\\\u2035\\\",backsim:\\\"\\\\u223d\\\",backsimeq:\\\"\\\\u22cd\\\",Backslash:\\\"\\\\u2216\\\",Barv:\\\"\\\\u2ae7\\\",barvee:\\\"\\\\u22bd\\\",barwed:\\\"\\\\u2305\\\",Barwed:\\\"\\\\u2306\\\",barwedge:\\\"\\\\u2305\\\",bbrk:\\\"\\\\u23b5\\\",bbrktbrk:\\\"\\\\u23b6\\\",bcong:\\\"\\\\u224c\\\",Bcy:\\\"\\\\u0411\\\",bcy:\\\"\\\\u0431\\\",bdquo:\\\"\\\\u201e\\\",becaus:\\\"\\\\u2235\\\",because:\\\"\\\\u2235\\\",Because:\\\"\\\\u2235\\\",bemptyv:\\\"\\\\u29b0\\\",bepsi:\\\"\\\\u03f6\\\",bernou:\\\"\\\\u212c\\\",Bernoullis:\\\"\\\\u212c\\\",Beta:\\\"\\\\u0392\\\",beta:\\\"\\\\u03b2\\\",beth:\\\"\\\\u2136\\\",between:\\\"\\\\u226c\\\",Bfr:\\\"\\\\ud835\\\\udd05\\\",bfr:\\\"\\\\ud835\\\\udd1f\\\",bigcap:\\\"\\\\u22c2\\\",bigcirc:\\\"\\\\u25ef\\\",bigcup:\\\"\\\\u22c3\\\",bigodot:\\\"\\\\u2a00\\\",bigoplus:\\\"\\\\u2a01\\\",bigotimes:\\\"\\\\u2a02\\\",bigsqcup:\\\"\\\\u2a06\\\",bigstar:\\\"\\\\u2605\\\",bigtriangledown:\\\"\\\\u25bd\\\",bigtriangleup:\\\"\\\\u25b3\\\",biguplus:\\\"\\\\u2a04\\\",bigvee:\\\"\\\\u22c1\\\",bigwedge:\\\"\\\\u22c0\\\",bkarow:\\\"\\\\u290d\\\",blacklozenge:\\\"\\\\u29eb\\\",blacksquare:\\\"\\\\u25aa\\\",blacktriangle:\\\"\\\\u25b4\\\",blacktriangledown:\\\"\\\\u25be\\\",blacktriangleleft:\\\"\\\\u25c2\\\",blacktriangleright:\\\"\\\\u25b8\\\",blank:\\\"\\\\u2423\\\",blk12:\\\"\\\\u2592\\\",blk14:\\\"\\\\u2591\\\",blk34:\\\"\\\\u2593\\\",block:\\\"\\\\u2588\\\",bne:\\\"=\\\\u20e5\\\",bnequiv:\\\"\\\\u2261\\\\u20e5\\\",bNot:\\\"\\\\u2aed\\\",bnot:\\\"\\\\u2310\\\",Bopf:\\\"\\\\ud835\\\\udd39\\\",bopf:\\\"\\\\ud835\\\\udd53\\\",bot:\\\"\\\\u22a5\\\",bottom:\\\"\\\\u22a5\\\",bowtie:\\\"\\\\u22c8\\\",boxbox:\\\"\\\\u29c9\\\",boxdl:\\\"\\\\u2510\\\",boxdL:\\\"\\\\u2555\\\",boxDl:\\\"\\\\u2556\\\",boxDL:\\\"\\\\u2557\\\",boxdr:\\\"\\\\u250c\\\",boxdR:\\\"\\\\u2552\\\",boxDr:\\\"\\\\u2553\\\",boxDR:\\\"\\\\u2554\\\",boxh:\\\"\\\\u2500\\\",boxH:\\\"\\\\u2550\\\",boxhd:\\\"\\\\u252c\\\",boxHd:\\\"\\\\u2564\\\",boxhD:\\\"\\\\u2565\\\",boxHD:\\\"\\\\u2566\\\",boxhu:\\\"\\\\u2534\\\",boxHu:\\\"\\\\u2567\\\",boxhU:\\\"\\\\u2568\\\",boxHU:\\\"\\\\u2569\\\",boxminus:\\\"\\\\u229f\\\",boxplus:\\\"\\\\u229e\\\",boxtimes:\\\"\\\\u22a0\\\",boxul:\\\"\\\\u2518\\\",boxuL:\\\"\\\\u255b\\\",boxUl:\\\"\\\\u255c\\\",boxUL:\\\"\\\\u255d\\\",boxur:\\\"\\\\u2514\\\",boxuR:\\\"\\\\u2558\\\",boxUr:\\\"\\\\u2559\\\",boxUR:\\\"\\\\u255a\\\",boxv:\\\"\\\\u2502\\\",boxV:\\\"\\\\u2551\\\",boxvh:\\\"\\\\u253c\\\",boxvH:\\\"\\\\u256a\\\",boxVh:\\\"\\\\u256b\\\",boxVH:\\\"\\\\u256c\\\",boxvl:\\\"\\\\u2524\\\",boxvL:\\\"\\\\u2561\\\",boxVl:\\\"\\\\u2562\\\",boxVL:\\\"\\\\u2563\\\",boxvr:\\\"\\\\u251c\\\",boxvR:\\\"\\\\u255e\\\",boxVr:\\\"\\\\u255f\\\",boxVR:\\\"\\\\u2560\\\",bprime:\\\"\\\\u2035\\\",breve:\\\"\\\\u02d8\\\",Breve:\\\"\\\\u02d8\\\",brvbar:\\\"\\\\xa6\\\",bscr:\\\"\\\\ud835\\\\udcb7\\\",Bscr:\\\"\\\\u212c\\\",bsemi:\\\"\\\\u204f\\\",bsim:\\\"\\\\u223d\\\",bsime:\\\"\\\\u22cd\\\",bsolb:\\\"\\\\u29c5\\\",bsol:\\\"\\\\\\\\\\\",bsolhsub:\\\"\\\\u27c8\\\",bull:\\\"\\\\u2022\\\",bullet:\\\"\\\\u2022\\\",bump:\\\"\\\\u224e\\\",bumpE:\\\"\\\\u2aae\\\",bumpe:\\\"\\\\u224f\\\",Bumpeq:\\\"\\\\u224e\\\",bumpeq:\\\"\\\\u224f\\\",Cacute:\\\"\\\\u0106\\\",cacute:\\\"\\\\u0107\\\",capand:\\\"\\\\u2a44\\\",capbrcup:\\\"\\\\u2a49\\\",capcap:\\\"\\\\u2a4b\\\",cap:\\\"\\\\u2229\\\",Cap:\\\"\\\\u22d2\\\",capcup:\\\"\\\\u2a47\\\",capdot:\\\"\\\\u2a40\\\",CapitalDifferentialD:\\\"\\\\u2145\\\",caps:\\\"\\\\u2229\\\\ufe00\\\",caret:\\\"\\\\u2041\\\",caron:\\\"\\\\u02c7\\\",Cayleys:\\\"\\\\u212d\\\",ccaps:\\\"\\\\u2a4d\\\",Ccaron:\\\"\\\\u010c\\\",ccaron:\\\"\\\\u010d\\\",Ccedil:\\\"\\\\xc7\\\",ccedil:\\\"\\\\xe7\\\",Ccirc:\\\"\\\\u0108\\\",ccirc:\\\"\\\\u0109\\\",Cconint:\\\"\\\\u2230\\\",ccups:\\\"\\\\u2a4c\\\",ccupssm:\\\"\\\\u2a50\\\",Cdot:\\\"\\\\u010a\\\",cdot:\\\"\\\\u010b\\\",cedil:\\\"\\\\xb8\\\",Cedilla:\\\"\\\\xb8\\\",cemptyv:\\\"\\\\u29b2\\\",cent:\\\"\\\\xa2\\\",centerdot:\\\"\\\\xb7\\\",CenterDot:\\\"\\\\xb7\\\",cfr:\\\"\\\\ud835\\\\udd20\\\",Cfr:\\\"\\\\u212d\\\",CHcy:\\\"\\\\u0427\\\",chcy:\\\"\\\\u0447\\\",check:\\\"\\\\u2713\\\",checkmark:\\\"\\\\u2713\\\",Chi:\\\"\\\\u03a7\\\",chi:\\\"\\\\u03c7\\\",circ:\\\"\\\\u02c6\\\",circeq:\\\"\\\\u2257\\\",circlearrowleft:\\\"\\\\u21ba\\\",circlearrowright:\\\"\\\\u21bb\\\",circledast:\\\"\\\\u229b\\\",circledcirc:\\\"\\\\u229a\\\",circleddash:\\\"\\\\u229d\\\",CircleDot:\\\"\\\\u2299\\\",circledR:\\\"\\\\xae\\\",circledS:\\\"\\\\u24c8\\\",CircleMinus:\\\"\\\\u2296\\\",CirclePlus:\\\"\\\\u2295\\\",CircleTimes:\\\"\\\\u2297\\\",cir:\\\"\\\\u25cb\\\",cirE:\\\"\\\\u29c3\\\",cire:\\\"\\\\u2257\\\",cirfnint:\\\"\\\\u2a10\\\",cirmid:\\\"\\\\u2aef\\\",cirscir:\\\"\\\\u29c2\\\",ClockwiseContourIntegral:\\\"\\\\u2232\\\",CloseCurlyDoubleQuote:\\\"\\\\u201d\\\",CloseCurlyQuote:\\\"\\\\u2019\\\",clubs:\\\"\\\\u2663\\\",clubsuit:\\\"\\\\u2663\\\",colon:\\\":\\\",Colon:\\\"\\\\u2237\\\",Colone:\\\"\\\\u2a74\\\",colone:\\\"\\\\u2254\\\",coloneq:\\\"\\\\u2254\\\",comma:\\\",\\\",commat:\\\"@\\\",comp:\\\"\\\\u2201\\\",compfn:\\\"\\\\u2218\\\",complement:\\\"\\\\u2201\\\",complexes:\\\"\\\\u2102\\\",cong:\\\"\\\\u2245\\\",congdot:\\\"\\\\u2a6d\\\",Congruent:\\\"\\\\u2261\\\",conint:\\\"\\\\u222e\\\",Conint:\\\"\\\\u222f\\\",ContourIntegral:\\\"\\\\u222e\\\",copf:\\\"\\\\ud835\\\\udd54\\\",Copf:\\\"\\\\u2102\\\",coprod:\\\"\\\\u2210\\\",Coproduct:\\\"\\\\u2210\\\",copy:\\\"\\\\xa9\\\",COPY:\\\"\\\\xa9\\\",copysr:\\\"\\\\u2117\\\",CounterClockwiseContourIntegral:\\\"\\\\u2233\\\",crarr:\\\"\\\\u21b5\\\",cross:\\\"\\\\u2717\\\",Cross:\\\"\\\\u2a2f\\\",Cscr:\\\"\\\\ud835\\\\udc9e\\\",cscr:\\\"\\\\ud835\\\\udcb8\\\",csub:\\\"\\\\u2acf\\\",csube:\\\"\\\\u2ad1\\\",csup:\\\"\\\\u2ad0\\\",csupe:\\\"\\\\u2ad2\\\",ctdot:\\\"\\\\u22ef\\\",cudarrl:\\\"\\\\u2938\\\",cudarrr:\\\"\\\\u2935\\\",cuepr:\\\"\\\\u22de\\\",cuesc:\\\"\\\\u22df\\\",cularr:\\\"\\\\u21b6\\\",cularrp:\\\"\\\\u293d\\\",cupbrcap:\\\"\\\\u2a48\\\",cupcap:\\\"\\\\u2a46\\\",CupCap:\\\"\\\\u224d\\\",cup:\\\"\\\\u222a\\\",Cup:\\\"\\\\u22d3\\\",cupcup:\\\"\\\\u2a4a\\\",cupdot:\\\"\\\\u228d\\\",cupor:\\\"\\\\u2a45\\\",cups:\\\"\\\\u222a\\\\ufe00\\\",curarr:\\\"\\\\u21b7\\\",curarrm:\\\"\\\\u293c\\\",curlyeqprec:\\\"\\\\u22de\\\",curlyeqsucc:\\\"\\\\u22df\\\",curlyvee:\\\"\\\\u22ce\\\",curlywedge:\\\"\\\\u22cf\\\",curren:\\\"\\\\xa4\\\",curvearrowleft:\\\"\\\\u21b6\\\",curvearrowright:\\\"\\\\u21b7\\\",cuvee:\\\"\\\\u22ce\\\",cuwed:\\\"\\\\u22cf\\\",cwconint:\\\"\\\\u2232\\\",cwint:\\\"\\\\u2231\\\",cylcty:\\\"\\\\u232d\\\",dagger:\\\"\\\\u2020\\\",Dagger:\\\"\\\\u2021\\\",daleth:\\\"\\\\u2138\\\",darr:\\\"\\\\u2193\\\",Darr:\\\"\\\\u21a1\\\",dArr:\\\"\\\\u21d3\\\",dash:\\\"\\\\u2010\\\",Dashv:\\\"\\\\u2ae4\\\",dashv:\\\"\\\\u22a3\\\",dbkarow:\\\"\\\\u290f\\\",dblac:\\\"\\\\u02dd\\\",Dcaron:\\\"\\\\u010e\\\",dcaron:\\\"\\\\u010f\\\",Dcy:\\\"\\\\u0414\\\",dcy:\\\"\\\\u0434\\\",ddagger:\\\"\\\\u2021\\\",ddarr:\\\"\\\\u21ca\\\",DD:\\\"\\\\u2145\\\",dd:\\\"\\\\u2146\\\",DDotrahd:\\\"\\\\u2911\\\",ddotseq:\\\"\\\\u2a77\\\",deg:\\\"\\\\xb0\\\",Del:\\\"\\\\u2207\\\",Delta:\\\"\\\\u0394\\\",delta:\\\"\\\\u03b4\\\",demptyv:\\\"\\\\u29b1\\\",dfisht:\\\"\\\\u297f\\\",Dfr:\\\"\\\\ud835\\\\udd07\\\",dfr:\\\"\\\\ud835\\\\udd21\\\",dHar:\\\"\\\\u2965\\\",dharl:\\\"\\\\u21c3\\\",dharr:\\\"\\\\u21c2\\\",DiacriticalAcute:\\\"\\\\xb4\\\",DiacriticalDot:\\\"\\\\u02d9\\\",DiacriticalDoubleAcute:\\\"\\\\u02dd\\\",DiacriticalGrave:\\\"`\\\",DiacriticalTilde:\\\"\\\\u02dc\\\",diam:\\\"\\\\u22c4\\\",diamond:\\\"\\\\u22c4\\\",Diamond:\\\"\\\\u22c4\\\",diamondsuit:\\\"\\\\u2666\\\",diams:\\\"\\\\u2666\\\",die:\\\"\\\\xa8\\\",DifferentialD:\\\"\\\\u2146\\\",digamma:\\\"\\\\u03dd\\\",disin:\\\"\\\\u22f2\\\",div:\\\"\\\\xf7\\\",divide:\\\"\\\\xf7\\\",divideontimes:\\\"\\\\u22c7\\\",divonx:\\\"\\\\u22c7\\\",DJcy:\\\"\\\\u0402\\\",djcy:\\\"\\\\u0452\\\",dlcorn:\\\"\\\\u231e\\\",dlcrop:\\\"\\\\u230d\\\",dollar:\\\"$\\\",Dopf:\\\"\\\\ud835\\\\udd3b\\\",dopf:\\\"\\\\ud835\\\\udd55\\\",Dot:\\\"\\\\xa8\\\",dot:\\\"\\\\u02d9\\\",DotDot:\\\"\\\\u20dc\\\",doteq:\\\"\\\\u2250\\\",doteqdot:\\\"\\\\u2251\\\",DotEqual:\\\"\\\\u2250\\\",dotminus:\\\"\\\\u2238\\\",dotplus:\\\"\\\\u2214\\\",dotsquare:\\\"\\\\u22a1\\\",doublebarwedge:\\\"\\\\u2306\\\",DoubleContourIntegral:\\\"\\\\u222f\\\",DoubleDot:\\\"\\\\xa8\\\",DoubleDownArrow:\\\"\\\\u21d3\\\",DoubleLeftArrow:\\\"\\\\u21d0\\\",DoubleLeftRightArrow:\\\"\\\\u21d4\\\",DoubleLeftTee:\\\"\\\\u2ae4\\\",DoubleLongLeftArrow:\\\"\\\\u27f8\\\",DoubleLongLeftRightArrow:\\\"\\\\u27fa\\\",DoubleLongRightArrow:\\\"\\\\u27f9\\\",DoubleRightArrow:\\\"\\\\u21d2\\\",DoubleRightTee:\\\"\\\\u22a8\\\",DoubleUpArrow:\\\"\\\\u21d1\\\",DoubleUpDownArrow:\\\"\\\\u21d5\\\",DoubleVerticalBar:\\\"\\\\u2225\\\",DownArrowBar:\\\"\\\\u2913\\\",downarrow:\\\"\\\\u2193\\\",DownArrow:\\\"\\\\u2193\\\",Downarrow:\\\"\\\\u21d3\\\",DownArrowUpArrow:\\\"\\\\u21f5\\\",DownBreve:\\\"\\\\u0311\\\",downdownarrows:\\\"\\\\u21ca\\\",downharpoonleft:\\\"\\\\u21c3\\\",downharpoonright:\\\"\\\\u21c2\\\",DownLeftRightVector:\\\"\\\\u2950\\\",DownLeftTeeVector:\\\"\\\\u295e\\\",DownLeftVectorBar:\\\"\\\\u2956\\\",DownLeftVector:\\\"\\\\u21bd\\\",DownRightTeeVector:\\\"\\\\u295f\\\",DownRightVectorBar:\\\"\\\\u2957\\\",DownRightVector:\\\"\\\\u21c1\\\",DownTeeArrow:\\\"\\\\u21a7\\\",DownTee:\\\"\\\\u22a4\\\",drbkarow:\\\"\\\\u2910\\\",drcorn:\\\"\\\\u231f\\\",drcrop:\\\"\\\\u230c\\\",Dscr:\\\"\\\\ud835\\\\udc9f\\\",dscr:\\\"\\\\ud835\\\\udcb9\\\",DScy:\\\"\\\\u0405\\\",dscy:\\\"\\\\u0455\\\",dsol:\\\"\\\\u29f6\\\",Dstrok:\\\"\\\\u0110\\\",dstrok:\\\"\\\\u0111\\\",dtdot:\\\"\\\\u22f1\\\",dtri:\\\"\\\\u25bf\\\",dtrif:\\\"\\\\u25be\\\",duarr:\\\"\\\\u21f5\\\",duhar:\\\"\\\\u296f\\\",dwangle:\\\"\\\\u29a6\\\",DZcy:\\\"\\\\u040f\\\",dzcy:\\\"\\\\u045f\\\",dzigrarr:\\\"\\\\u27ff\\\",Eacute:\\\"\\\\xc9\\\",eacute:\\\"\\\\xe9\\\",easter:\\\"\\\\u2a6e\\\",Ecaron:\\\"\\\\u011a\\\",ecaron:\\\"\\\\u011b\\\",Ecirc:\\\"\\\\xca\\\",ecirc:\\\"\\\\xea\\\",ecir:\\\"\\\\u2256\\\",ecolon:\\\"\\\\u2255\\\",Ecy:\\\"\\\\u042d\\\",ecy:\\\"\\\\u044d\\\",eDDot:\\\"\\\\u2a77\\\",Edot:\\\"\\\\u0116\\\",edot:\\\"\\\\u0117\\\",eDot:\\\"\\\\u2251\\\",ee:\\\"\\\\u2147\\\",efDot:\\\"\\\\u2252\\\",Efr:\\\"\\\\ud835\\\\udd08\\\",efr:\\\"\\\\ud835\\\\udd22\\\",eg:\\\"\\\\u2a9a\\\",Egrave:\\\"\\\\xc8\\\",egrave:\\\"\\\\xe8\\\",egs:\\\"\\\\u2a96\\\",egsdot:\\\"\\\\u2a98\\\",el:\\\"\\\\u2a99\\\",Element:\\\"\\\\u2208\\\",elinters:\\\"\\\\u23e7\\\",ell:\\\"\\\\u2113\\\",els:\\\"\\\\u2a95\\\",elsdot:\\\"\\\\u2a97\\\",Emacr:\\\"\\\\u0112\\\",emacr:\\\"\\\\u0113\\\",empty:\\\"\\\\u2205\\\",emptyset:\\\"\\\\u2205\\\",EmptySmallSquare:\\\"\\\\u25fb\\\",emptyv:\\\"\\\\u2205\\\",EmptyVerySmallSquare:\\\"\\\\u25ab\\\",emsp13:\\\"\\\\u2004\\\",emsp14:\\\"\\\\u2005\\\",emsp:\\\"\\\\u2003\\\",ENG:\\\"\\\\u014a\\\",eng:\\\"\\\\u014b\\\",ensp:\\\"\\\\u2002\\\",Eogon:\\\"\\\\u0118\\\",eogon:\\\"\\\\u0119\\\",Eopf:\\\"\\\\ud835\\\\udd3c\\\",eopf:\\\"\\\\ud835\\\\udd56\\\",epar:\\\"\\\\u22d5\\\",eparsl:\\\"\\\\u29e3\\\",eplus:\\\"\\\\u2a71\\\",epsi:\\\"\\\\u03b5\\\",Epsilon:\\\"\\\\u0395\\\",epsilon:\\\"\\\\u03b5\\\",epsiv:\\\"\\\\u03f5\\\",eqcirc:\\\"\\\\u2256\\\",eqcolon:\\\"\\\\u2255\\\",eqsim:\\\"\\\\u2242\\\",eqslantgtr:\\\"\\\\u2a96\\\",eqslantless:\\\"\\\\u2a95\\\",Equal:\\\"\\\\u2a75\\\",equals:\\\"=\\\",EqualTilde:\\\"\\\\u2242\\\",equest:\\\"\\\\u225f\\\",Equilibrium:\\\"\\\\u21cc\\\",equiv:\\\"\\\\u2261\\\",equivDD:\\\"\\\\u2a78\\\",eqvparsl:\\\"\\\\u29e5\\\",erarr:\\\"\\\\u2971\\\",erDot:\\\"\\\\u2253\\\",escr:\\\"\\\\u212f\\\",Escr:\\\"\\\\u2130\\\",esdot:\\\"\\\\u2250\\\",Esim:\\\"\\\\u2a73\\\",esim:\\\"\\\\u2242\\\",Eta:\\\"\\\\u0397\\\",eta:\\\"\\\\u03b7\\\",ETH:\\\"\\\\xd0\\\",eth:\\\"\\\\xf0\\\",Euml:\\\"\\\\xcb\\\",euml:\\\"\\\\xeb\\\",euro:\\\"\\\\u20ac\\\",excl:\\\"!\\\",exist:\\\"\\\\u2203\\\",Exists:\\\"\\\\u2203\\\",expectation:\\\"\\\\u2130\\\",exponentiale:\\\"\\\\u2147\\\",ExponentialE:\\\"\\\\u2147\\\",fallingdotseq:\\\"\\\\u2252\\\",Fcy:\\\"\\\\u0424\\\",fcy:\\\"\\\\u0444\\\",female:\\\"\\\\u2640\\\",ffilig:\\\"\\\\ufb03\\\",fflig:\\\"\\\\ufb00\\\",ffllig:\\\"\\\\ufb04\\\",Ffr:\\\"\\\\ud835\\\\udd09\\\",ffr:\\\"\\\\ud835\\\\udd23\\\",filig:\\\"\\\\ufb01\\\",FilledSmallSquare:\\\"\\\\u25fc\\\",FilledVerySmallSquare:\\\"\\\\u25aa\\\",fjlig:\\\"fj\\\",flat:\\\"\\\\u266d\\\",fllig:\\\"\\\\ufb02\\\",fltns:\\\"\\\\u25b1\\\",fnof:\\\"\\\\u0192\\\",Fopf:\\\"\\\\ud835\\\\udd3d\\\",fopf:\\\"\\\\ud835\\\\udd57\\\",forall:\\\"\\\\u2200\\\",ForAll:\\\"\\\\u2200\\\",fork:\\\"\\\\u22d4\\\",forkv:\\\"\\\\u2ad9\\\",Fouriertrf:\\\"\\\\u2131\\\",fpartint:\\\"\\\\u2a0d\\\",frac12:\\\"\\\\xbd\\\",frac13:\\\"\\\\u2153\\\",frac14:\\\"\\\\xbc\\\",frac15:\\\"\\\\u2155\\\",frac16:\\\"\\\\u2159\\\",frac18:\\\"\\\\u215b\\\",frac23:\\\"\\\\u2154\\\",frac25:\\\"\\\\u2156\\\",frac34:\\\"\\\\xbe\\\",frac35:\\\"\\\\u2157\\\",frac38:\\\"\\\\u215c\\\",frac45:\\\"\\\\u2158\\\",frac56:\\\"\\\\u215a\\\",frac58:\\\"\\\\u215d\\\",frac78:\\\"\\\\u215e\\\",frasl:\\\"\\\\u2044\\\",frown:\\\"\\\\u2322\\\",fscr:\\\"\\\\ud835\\\\udcbb\\\",Fscr:\\\"\\\\u2131\\\",gacute:\\\"\\\\u01f5\\\",Gamma:\\\"\\\\u0393\\\",gamma:\\\"\\\\u03b3\\\",Gammad:\\\"\\\\u03dc\\\",gammad:\\\"\\\\u03dd\\\",gap:\\\"\\\\u2a86\\\",Gbreve:\\\"\\\\u011e\\\",gbreve:\\\"\\\\u011f\\\",Gcedil:\\\"\\\\u0122\\\",Gcirc:\\\"\\\\u011c\\\",gcirc:\\\"\\\\u011d\\\",Gcy:\\\"\\\\u0413\\\",gcy:\\\"\\\\u0433\\\",Gdot:\\\"\\\\u0120\\\",gdot:\\\"\\\\u0121\\\",ge:\\\"\\\\u2265\\\",gE:\\\"\\\\u2267\\\",gEl:\\\"\\\\u2a8c\\\",gel:\\\"\\\\u22db\\\",geq:\\\"\\\\u2265\\\",geqq:\\\"\\\\u2267\\\",geqslant:\\\"\\\\u2a7e\\\",gescc:\\\"\\\\u2aa9\\\",ges:\\\"\\\\u2a7e\\\",gesdot:\\\"\\\\u2a80\\\",gesdoto:\\\"\\\\u2a82\\\",gesdotol:\\\"\\\\u2a84\\\",gesl:\\\"\\\\u22db\\\\ufe00\\\",gesles:\\\"\\\\u2a94\\\",Gfr:\\\"\\\\ud835\\\\udd0a\\\",gfr:\\\"\\\\ud835\\\\udd24\\\",gg:\\\"\\\\u226b\\\",Gg:\\\"\\\\u22d9\\\",ggg:\\\"\\\\u22d9\\\",gimel:\\\"\\\\u2137\\\",GJcy:\\\"\\\\u0403\\\",gjcy:\\\"\\\\u0453\\\",gla:\\\"\\\\u2aa5\\\",gl:\\\"\\\\u2277\\\",glE:\\\"\\\\u2a92\\\",glj:\\\"\\\\u2aa4\\\",gnap:\\\"\\\\u2a8a\\\",gnapprox:\\\"\\\\u2a8a\\\",gne:\\\"\\\\u2a88\\\",gnE:\\\"\\\\u2269\\\",gneq:\\\"\\\\u2a88\\\",gneqq:\\\"\\\\u2269\\\",gnsim:\\\"\\\\u22e7\\\",Gopf:\\\"\\\\ud835\\\\udd3e\\\",gopf:\\\"\\\\ud835\\\\udd58\\\",grave:\\\"`\\\",GreaterEqual:\\\"\\\\u2265\\\",GreaterEqualLess:\\\"\\\\u22db\\\",GreaterFullEqual:\\\"\\\\u2267\\\",GreaterGreater:\\\"\\\\u2aa2\\\",GreaterLess:\\\"\\\\u2277\\\",GreaterSlantEqual:\\\"\\\\u2a7e\\\",GreaterTilde:\\\"\\\\u2273\\\",Gscr:\\\"\\\\ud835\\\\udca2\\\",gscr:\\\"\\\\u210a\\\",gsim:\\\"\\\\u2273\\\",gsime:\\\"\\\\u2a8e\\\",gsiml:\\\"\\\\u2a90\\\",gtcc:\\\"\\\\u2aa7\\\",gtcir:\\\"\\\\u2a7a\\\",gt:\\\">\\\",GT:\\\">\\\",Gt:\\\"\\\\u226b\\\",gtdot:\\\"\\\\u22d7\\\",gtlPar:\\\"\\\\u2995\\\",gtquest:\\\"\\\\u2a7c\\\",gtrapprox:\\\"\\\\u2a86\\\",gtrarr:\\\"\\\\u2978\\\",gtrdot:\\\"\\\\u22d7\\\",gtreqless:\\\"\\\\u22db\\\",gtreqqless:\\\"\\\\u2a8c\\\",gtrless:\\\"\\\\u2277\\\",gtrsim:\\\"\\\\u2273\\\",gvertneqq:\\\"\\\\u2269\\\\ufe00\\\",gvnE:\\\"\\\\u2269\\\\ufe00\\\",Hacek:\\\"\\\\u02c7\\\",hairsp:\\\"\\\\u200a\\\",half:\\\"\\\\xbd\\\",hamilt:\\\"\\\\u210b\\\",HARDcy:\\\"\\\\u042a\\\",hardcy:\\\"\\\\u044a\\\",harrcir:\\\"\\\\u2948\\\",harr:\\\"\\\\u2194\\\",hArr:\\\"\\\\u21d4\\\",harrw:\\\"\\\\u21ad\\\",Hat:\\\"^\\\",hbar:\\\"\\\\u210f\\\",Hcirc:\\\"\\\\u0124\\\",hcirc:\\\"\\\\u0125\\\",hearts:\\\"\\\\u2665\\\",heartsuit:\\\"\\\\u2665\\\",hellip:\\\"\\\\u2026\\\",hercon:\\\"\\\\u22b9\\\",hfr:\\\"\\\\ud835\\\\udd25\\\",Hfr:\\\"\\\\u210c\\\",HilbertSpace:\\\"\\\\u210b\\\",hksearow:\\\"\\\\u2925\\\",hkswarow:\\\"\\\\u2926\\\",hoarr:\\\"\\\\u21ff\\\",homtht:\\\"\\\\u223b\\\",hookleftarrow:\\\"\\\\u21a9\\\",hookrightarrow:\\\"\\\\u21aa\\\",hopf:\\\"\\\\ud835\\\\udd59\\\",Hopf:\\\"\\\\u210d\\\",horbar:\\\"\\\\u2015\\\",HorizontalLine:\\\"\\\\u2500\\\",hscr:\\\"\\\\ud835\\\\udcbd\\\",Hscr:\\\"\\\\u210b\\\",hslash:\\\"\\\\u210f\\\",Hstrok:\\\"\\\\u0126\\\",hstrok:\\\"\\\\u0127\\\",HumpDownHump:\\\"\\\\u224e\\\",HumpEqual:\\\"\\\\u224f\\\",hybull:\\\"\\\\u2043\\\",hyphen:\\\"\\\\u2010\\\",Iacute:\\\"\\\\xcd\\\",iacute:\\\"\\\\xed\\\",ic:\\\"\\\\u2063\\\",Icirc:\\\"\\\\xce\\\",icirc:\\\"\\\\xee\\\",Icy:\\\"\\\\u0418\\\",icy:\\\"\\\\u0438\\\",Idot:\\\"\\\\u0130\\\",IEcy:\\\"\\\\u0415\\\",iecy:\\\"\\\\u0435\\\",iexcl:\\\"\\\\xa1\\\",iff:\\\"\\\\u21d4\\\",ifr:\\\"\\\\ud835\\\\udd26\\\",Ifr:\\\"\\\\u2111\\\",Igrave:\\\"\\\\xcc\\\",igrave:\\\"\\\\xec\\\",ii:\\\"\\\\u2148\\\",iiiint:\\\"\\\\u2a0c\\\",iiint:\\\"\\\\u222d\\\",iinfin:\\\"\\\\u29dc\\\",iiota:\\\"\\\\u2129\\\",IJlig:\\\"\\\\u0132\\\",ijlig:\\\"\\\\u0133\\\",Imacr:\\\"\\\\u012a\\\",imacr:\\\"\\\\u012b\\\",image:\\\"\\\\u2111\\\",ImaginaryI:\\\"\\\\u2148\\\",imagline:\\\"\\\\u2110\\\",imagpart:\\\"\\\\u2111\\\",imath:\\\"\\\\u0131\\\",Im:\\\"\\\\u2111\\\",imof:\\\"\\\\u22b7\\\",imped:\\\"\\\\u01b5\\\",Implies:\\\"\\\\u21d2\\\",incare:\\\"\\\\u2105\\\",in:\\\"\\\\u2208\\\",infin:\\\"\\\\u221e\\\",infintie:\\\"\\\\u29dd\\\",inodot:\\\"\\\\u0131\\\",intcal:\\\"\\\\u22ba\\\",int:\\\"\\\\u222b\\\",Int:\\\"\\\\u222c\\\",integers:\\\"\\\\u2124\\\",Integral:\\\"\\\\u222b\\\",intercal:\\\"\\\\u22ba\\\",Intersection:\\\"\\\\u22c2\\\",intlarhk:\\\"\\\\u2a17\\\",intprod:\\\"\\\\u2a3c\\\",InvisibleComma:\\\"\\\\u2063\\\",InvisibleTimes:\\\"\\\\u2062\\\",IOcy:\\\"\\\\u0401\\\",iocy:\\\"\\\\u0451\\\",Iogon:\\\"\\\\u012e\\\",iogon:\\\"\\\\u012f\\\",Iopf:\\\"\\\\ud835\\\\udd40\\\",iopf:\\\"\\\\ud835\\\\udd5a\\\",Iota:\\\"\\\\u0399\\\",iota:\\\"\\\\u03b9\\\",iprod:\\\"\\\\u2a3c\\\",iquest:\\\"\\\\xbf\\\",iscr:\\\"\\\\ud835\\\\udcbe\\\",Iscr:\\\"\\\\u2110\\\",isin:\\\"\\\\u2208\\\",isindot:\\\"\\\\u22f5\\\",isinE:\\\"\\\\u22f9\\\",isins:\\\"\\\\u22f4\\\",isinsv:\\\"\\\\u22f3\\\",isinv:\\\"\\\\u2208\\\",it:\\\"\\\\u2062\\\",Itilde:\\\"\\\\u0128\\\",itilde:\\\"\\\\u0129\\\",Iukcy:\\\"\\\\u0406\\\",iukcy:\\\"\\\\u0456\\\",Iuml:\\\"\\\\xcf\\\",iuml:\\\"\\\\xef\\\",Jcirc:\\\"\\\\u0134\\\",jcirc:\\\"\\\\u0135\\\",Jcy:\\\"\\\\u0419\\\",jcy:\\\"\\\\u0439\\\",Jfr:\\\"\\\\ud835\\\\udd0d\\\",jfr:\\\"\\\\ud835\\\\udd27\\\",jmath:\\\"\\\\u0237\\\",Jopf:\\\"\\\\ud835\\\\udd41\\\",jopf:\\\"\\\\ud835\\\\udd5b\\\",Jscr:\\\"\\\\ud835\\\\udca5\\\",jscr:\\\"\\\\ud835\\\\udcbf\\\",Jsercy:\\\"\\\\u0408\\\",jsercy:\\\"\\\\u0458\\\",Jukcy:\\\"\\\\u0404\\\",jukcy:\\\"\\\\u0454\\\",Kappa:\\\"\\\\u039a\\\",kappa:\\\"\\\\u03ba\\\",kappav:\\\"\\\\u03f0\\\",Kcedil:\\\"\\\\u0136\\\",kcedil:\\\"\\\\u0137\\\",Kcy:\\\"\\\\u041a\\\",kcy:\\\"\\\\u043a\\\",Kfr:\\\"\\\\ud835\\\\udd0e\\\",kfr:\\\"\\\\ud835\\\\udd28\\\",kgreen:\\\"\\\\u0138\\\",KHcy:\\\"\\\\u0425\\\",khcy:\\\"\\\\u0445\\\",KJcy:\\\"\\\\u040c\\\",kjcy:\\\"\\\\u045c\\\",Kopf:\\\"\\\\ud835\\\\udd42\\\",kopf:\\\"\\\\ud835\\\\udd5c\\\",Kscr:\\\"\\\\ud835\\\\udca6\\\",kscr:\\\"\\\\ud835\\\\udcc0\\\",lAarr:\\\"\\\\u21da\\\",Lacute:\\\"\\\\u0139\\\",lacute:\\\"\\\\u013a\\\",laemptyv:\\\"\\\\u29b4\\\",lagran:\\\"\\\\u2112\\\",Lambda:\\\"\\\\u039b\\\",lambda:\\\"\\\\u03bb\\\",lang:\\\"\\\\u27e8\\\",Lang:\\\"\\\\u27ea\\\",langd:\\\"\\\\u2991\\\",langle:\\\"\\\\u27e8\\\",lap:\\\"\\\\u2a85\\\",Laplacetrf:\\\"\\\\u2112\\\",laquo:\\\"\\\\xab\\\",larrb:\\\"\\\\u21e4\\\",larrbfs:\\\"\\\\u291f\\\",larr:\\\"\\\\u2190\\\",Larr:\\\"\\\\u219e\\\",lArr:\\\"\\\\u21d0\\\",larrfs:\\\"\\\\u291d\\\",larrhk:\\\"\\\\u21a9\\\",larrlp:\\\"\\\\u21ab\\\",larrpl:\\\"\\\\u2939\\\",larrsim:\\\"\\\\u2973\\\",larrtl:\\\"\\\\u21a2\\\",latail:\\\"\\\\u2919\\\",lAtail:\\\"\\\\u291b\\\",lat:\\\"\\\\u2aab\\\",late:\\\"\\\\u2aad\\\",lates:\\\"\\\\u2aad\\\\ufe00\\\",lbarr:\\\"\\\\u290c\\\",lBarr:\\\"\\\\u290e\\\",lbbrk:\\\"\\\\u2772\\\",lbrace:\\\"{\\\",lbrack:\\\"[\\\",lbrke:\\\"\\\\u298b\\\",lbrksld:\\\"\\\\u298f\\\",lbrkslu:\\\"\\\\u298d\\\",Lcaron:\\\"\\\\u013d\\\",lcaron:\\\"\\\\u013e\\\",Lcedil:\\\"\\\\u013b\\\",lcedil:\\\"\\\\u013c\\\",lceil:\\\"\\\\u2308\\\",lcub:\\\"{\\\",Lcy:\\\"\\\\u041b\\\",lcy:\\\"\\\\u043b\\\",ldca:\\\"\\\\u2936\\\",ldquo:\\\"\\\\u201c\\\",ldquor:\\\"\\\\u201e\\\",ldrdhar:\\\"\\\\u2967\\\",ldrushar:\\\"\\\\u294b\\\",ldsh:\\\"\\\\u21b2\\\",le:\\\"\\\\u2264\\\",lE:\\\"\\\\u2266\\\",LeftAngleBracket:\\\"\\\\u27e8\\\",LeftArrowBar:\\\"\\\\u21e4\\\",leftarrow:\\\"\\\\u2190\\\",LeftArrow:\\\"\\\\u2190\\\",Leftarrow:\\\"\\\\u21d0\\\",LeftArrowRightArrow:\\\"\\\\u21c6\\\",leftarrowtail:\\\"\\\\u21a2\\\",LeftCeiling:\\\"\\\\u2308\\\",LeftDoubleBracket:\\\"\\\\u27e6\\\",LeftDownTeeVector:\\\"\\\\u2961\\\",LeftDownVectorBar:\\\"\\\\u2959\\\",LeftDownVector:\\\"\\\\u21c3\\\",LeftFloor:\\\"\\\\u230a\\\",leftharpoondown:\\\"\\\\u21bd\\\",leftharpoonup:\\\"\\\\u21bc\\\",leftleftarrows:\\\"\\\\u21c7\\\",leftrightarrow:\\\"\\\\u2194\\\",LeftRightArrow:\\\"\\\\u2194\\\",Leftrightarrow:\\\"\\\\u21d4\\\",leftrightarrows:\\\"\\\\u21c6\\\",leftrightharpoons:\\\"\\\\u21cb\\\",leftrightsquigarrow:\\\"\\\\u21ad\\\",LeftRightVector:\\\"\\\\u294e\\\",LeftTeeArrow:\\\"\\\\u21a4\\\",LeftTee:\\\"\\\\u22a3\\\",LeftTeeVector:\\\"\\\\u295a\\\",leftthreetimes:\\\"\\\\u22cb\\\",LeftTriangleBar:\\\"\\\\u29cf\\\",LeftTriangle:\\\"\\\\u22b2\\\",LeftTriangleEqual:\\\"\\\\u22b4\\\",LeftUpDownVector:\\\"\\\\u2951\\\",LeftUpTeeVector:\\\"\\\\u2960\\\",LeftUpVectorBar:\\\"\\\\u2958\\\",LeftUpVector:\\\"\\\\u21bf\\\",LeftVectorBar:\\\"\\\\u2952\\\",LeftVector:\\\"\\\\u21bc\\\",lEg:\\\"\\\\u2a8b\\\",leg:\\\"\\\\u22da\\\",leq:\\\"\\\\u2264\\\",leqq:\\\"\\\\u2266\\\",leqslant:\\\"\\\\u2a7d\\\",lescc:\\\"\\\\u2aa8\\\",les:\\\"\\\\u2a7d\\\",lesdot:\\\"\\\\u2a7f\\\",lesdoto:\\\"\\\\u2a81\\\",lesdotor:\\\"\\\\u2a83\\\",lesg:\\\"\\\\u22da\\\\ufe00\\\",lesges:\\\"\\\\u2a93\\\",lessapprox:\\\"\\\\u2a85\\\",lessdot:\\\"\\\\u22d6\\\",lesseqgtr:\\\"\\\\u22da\\\",lesseqqgtr:\\\"\\\\u2a8b\\\",LessEqualGreater:\\\"\\\\u22da\\\",LessFullEqual:\\\"\\\\u2266\\\",LessGreater:\\\"\\\\u2276\\\",lessgtr:\\\"\\\\u2276\\\",LessLess:\\\"\\\\u2aa1\\\",lesssim:\\\"\\\\u2272\\\",LessSlantEqual:\\\"\\\\u2a7d\\\",LessTilde:\\\"\\\\u2272\\\",lfisht:\\\"\\\\u297c\\\",lfloor:\\\"\\\\u230a\\\",Lfr:\\\"\\\\ud835\\\\udd0f\\\",lfr:\\\"\\\\ud835\\\\udd29\\\",lg:\\\"\\\\u2276\\\",lgE:\\\"\\\\u2a91\\\",lHar:\\\"\\\\u2962\\\",lhard:\\\"\\\\u21bd\\\",lharu:\\\"\\\\u21bc\\\",lharul:\\\"\\\\u296a\\\",lhblk:\\\"\\\\u2584\\\",LJcy:\\\"\\\\u0409\\\",ljcy:\\\"\\\\u0459\\\",llarr:\\\"\\\\u21c7\\\",ll:\\\"\\\\u226a\\\",Ll:\\\"\\\\u22d8\\\",llcorner:\\\"\\\\u231e\\\",Lleftarrow:\\\"\\\\u21da\\\",llhard:\\\"\\\\u296b\\\",lltri:\\\"\\\\u25fa\\\",Lmidot:\\\"\\\\u013f\\\",lmidot:\\\"\\\\u0140\\\",lmoustache:\\\"\\\\u23b0\\\",lmoust:\\\"\\\\u23b0\\\",lnap:\\\"\\\\u2a89\\\",lnapprox:\\\"\\\\u2a89\\\",lne:\\\"\\\\u2a87\\\",lnE:\\\"\\\\u2268\\\",lneq:\\\"\\\\u2a87\\\",lneqq:\\\"\\\\u2268\\\",lnsim:\\\"\\\\u22e6\\\",loang:\\\"\\\\u27ec\\\",loarr:\\\"\\\\u21fd\\\",lobrk:\\\"\\\\u27e6\\\",longleftarrow:\\\"\\\\u27f5\\\",LongLeftArrow:\\\"\\\\u27f5\\\",Longleftarrow:\\\"\\\\u27f8\\\",longleftrightarrow:\\\"\\\\u27f7\\\",LongLeftRightArrow:\\\"\\\\u27f7\\\",Longleftrightarrow:\\\"\\\\u27fa\\\",longmapsto:\\\"\\\\u27fc\\\",longrightarrow:\\\"\\\\u27f6\\\",LongRightArrow:\\\"\\\\u27f6\\\",Longrightarrow:\\\"\\\\u27f9\\\",looparrowleft:\\\"\\\\u21ab\\\",looparrowright:\\\"\\\\u21ac\\\",lopar:\\\"\\\\u2985\\\",Lopf:\\\"\\\\ud835\\\\udd43\\\",lopf:\\\"\\\\ud835\\\\udd5d\\\",loplus:\\\"\\\\u2a2d\\\",lotimes:\\\"\\\\u2a34\\\",lowast:\\\"\\\\u2217\\\",lowbar:\\\"_\\\",LowerLeftArrow:\\\"\\\\u2199\\\",LowerRightArrow:\\\"\\\\u2198\\\",loz:\\\"\\\\u25ca\\\",lozenge:\\\"\\\\u25ca\\\",lozf:\\\"\\\\u29eb\\\",lpar:\\\"(\\\",lparlt:\\\"\\\\u2993\\\",lrarr:\\\"\\\\u21c6\\\",lrcorner:\\\"\\\\u231f\\\",lrhar:\\\"\\\\u21cb\\\",lrhard:\\\"\\\\u296d\\\",lrm:\\\"\\\\u200e\\\",lrtri:\\\"\\\\u22bf\\\",lsaquo:\\\"\\\\u2039\\\",lscr:\\\"\\\\ud835\\\\udcc1\\\",Lscr:\\\"\\\\u2112\\\",lsh:\\\"\\\\u21b0\\\",Lsh:\\\"\\\\u21b0\\\",lsim:\\\"\\\\u2272\\\",lsime:\\\"\\\\u2a8d\\\",lsimg:\\\"\\\\u2a8f\\\",lsqb:\\\"[\\\",lsquo:\\\"\\\\u2018\\\",lsquor:\\\"\\\\u201a\\\",Lstrok:\\\"\\\\u0141\\\",lstrok:\\\"\\\\u0142\\\",ltcc:\\\"\\\\u2aa6\\\",ltcir:\\\"\\\\u2a79\\\",lt:\\\"\u003C\\\",LT:\\\"\u003C\\\",Lt:\\\"\\\\u226a\\\",ltdot:\\\"\\\\u22d6\\\",lthree:\\\"\\\\u22cb\\\",ltimes:\\\"\\\\u22c9\\\",ltlarr:\\\"\\\\u2976\\\",ltquest:\\\"\\\\u2a7b\\\",ltri:\\\"\\\\u25c3\\\",ltrie:\\\"\\\\u22b4\\\",ltrif:\\\"\\\\u25c2\\\",ltrPar:\\\"\\\\u2996\\\",lurdshar:\\\"\\\\u294a\\\",luruhar:\\\"\\\\u2966\\\",lvertneqq:\\\"\\\\u2268\\\\ufe00\\\",lvnE:\\\"\\\\u2268\\\\ufe00\\\",macr:\\\"\\\\xaf\\\",male:\\\"\\\\u2642\\\",malt:\\\"\\\\u2720\\\",maltese:\\\"\\\\u2720\\\",Map:\\\"\\\\u2905\\\",map:\\\"\\\\u21a6\\\",mapsto:\\\"\\\\u21a6\\\",mapstodown:\\\"\\\\u21a7\\\",mapstoleft:\\\"\\\\u21a4\\\",mapstoup:\\\"\\\\u21a5\\\",marker:\\\"\\\\u25ae\\\",mcomma:\\\"\\\\u2a29\\\",Mcy:\\\"\\\\u041c\\\",mcy:\\\"\\\\u043c\\\",mdash:\\\"\\\\u2014\\\",mDDot:\\\"\\\\u223a\\\",measuredangle:\\\"\\\\u2221\\\",MediumSpace:\\\"\\\\u205f\\\",Mellintrf:\\\"\\\\u2133\\\",Mfr:\\\"\\\\ud835\\\\udd10\\\",mfr:\\\"\\\\ud835\\\\udd2a\\\",mho:\\\"\\\\u2127\\\",micro:\\\"\\\\xb5\\\",midast:\\\"*\\\",midcir:\\\"\\\\u2af0\\\",mid:\\\"\\\\u2223\\\",middot:\\\"\\\\xb7\\\",minusb:\\\"\\\\u229f\\\",minus:\\\"\\\\u2212\\\",minusd:\\\"\\\\u2238\\\",minusdu:\\\"\\\\u2a2a\\\",MinusPlus:\\\"\\\\u2213\\\",mlcp:\\\"\\\\u2adb\\\",mldr:\\\"\\\\u2026\\\",mnplus:\\\"\\\\u2213\\\",models:\\\"\\\\u22a7\\\",Mopf:\\\"\\\\ud835\\\\udd44\\\",mopf:\\\"\\\\ud835\\\\udd5e\\\",mp:\\\"\\\\u2213\\\",mscr:\\\"\\\\ud835\\\\udcc2\\\",Mscr:\\\"\\\\u2133\\\",mstpos:\\\"\\\\u223e\\\",Mu:\\\"\\\\u039c\\\",mu:\\\"\\\\u03bc\\\",multimap:\\\"\\\\u22b8\\\",mumap:\\\"\\\\u22b8\\\",nabla:\\\"\\\\u2207\\\",Nacute:\\\"\\\\u0143\\\",nacute:\\\"\\\\u0144\\\",nang:\\\"\\\\u2220\\\\u20d2\\\",nap:\\\"\\\\u2249\\\",napE:\\\"\\\\u2a70\\\\u0338\\\",napid:\\\"\\\\u224b\\\\u0338\\\",napos:\\\"\\\\u0149\\\",napprox:\\\"\\\\u2249\\\",natural:\\\"\\\\u266e\\\",naturals:\\\"\\\\u2115\\\",natur:\\\"\\\\u266e\\\",nbsp:\\\"\\\\xa0\\\",nbump:\\\"\\\\u224e\\\\u0338\\\",nbumpe:\\\"\\\\u224f\\\\u0338\\\",ncap:\\\"\\\\u2a43\\\",Ncaron:\\\"\\\\u0147\\\",ncaron:\\\"\\\\u0148\\\",Ncedil:\\\"\\\\u0145\\\",ncedil:\\\"\\\\u0146\\\",ncong:\\\"\\\\u2247\\\",ncongdot:\\\"\\\\u2a6d\\\\u0338\\\",ncup:\\\"\\\\u2a42\\\",Ncy:\\\"\\\\u041d\\\",ncy:\\\"\\\\u043d\\\",ndash:\\\"\\\\u2013\\\",nearhk:\\\"\\\\u2924\\\",nearr:\\\"\\\\u2197\\\",neArr:\\\"\\\\u21d7\\\",nearrow:\\\"\\\\u2197\\\",ne:\\\"\\\\u2260\\\",nedot:\\\"\\\\u2250\\\\u0338\\\",NegativeMediumSpace:\\\"\\\\u200b\\\",NegativeThickSpace:\\\"\\\\u200b\\\",NegativeThinSpace:\\\"\\\\u200b\\\",NegativeVeryThinSpace:\\\"\\\\u200b\\\",nequiv:\\\"\\\\u2262\\\",nesear:\\\"\\\\u2928\\\",nesim:\\\"\\\\u2242\\\\u0338\\\",NestedGreaterGreater:\\\"\\\\u226b\\\",NestedLessLess:\\\"\\\\u226a\\\",NewLine:\\\"\\\\n\\\",nexist:\\\"\\\\u2204\\\",nexists:\\\"\\\\u2204\\\",Nfr:\\\"\\\\ud835\\\\udd11\\\",nfr:\\\"\\\\ud835\\\\udd2b\\\",ngE:\\\"\\\\u2267\\\\u0338\\\",nge:\\\"\\\\u2271\\\",ngeq:\\\"\\\\u2271\\\",ngeqq:\\\"\\\\u2267\\\\u0338\\\",ngeqslant:\\\"\\\\u2a7e\\\\u0338\\\",nges:\\\"\\\\u2a7e\\\\u0338\\\",nGg:\\\"\\\\u22d9\\\\u0338\\\",ngsim:\\\"\\\\u2275\\\",nGt:\\\"\\\\u226b\\\\u20d2\\\",ngt:\\\"\\\\u226f\\\",ngtr:\\\"\\\\u226f\\\",nGtv:\\\"\\\\u226b\\\\u0338\\\",nharr:\\\"\\\\u21ae\\\",nhArr:\\\"\\\\u21ce\\\",nhpar:\\\"\\\\u2af2\\\",ni:\\\"\\\\u220b\\\",nis:\\\"\\\\u22fc\\\",nisd:\\\"\\\\u22fa\\\",niv:\\\"\\\\u220b\\\",NJcy:\\\"\\\\u040a\\\",njcy:\\\"\\\\u045a\\\",nlarr:\\\"\\\\u219a\\\",nlArr:\\\"\\\\u21cd\\\",nldr:\\\"\\\\u2025\\\",nlE:\\\"\\\\u2266\\\\u0338\\\",nle:\\\"\\\\u2270\\\",nleftarrow:\\\"\\\\u219a\\\",nLeftarrow:\\\"\\\\u21cd\\\",nleftrightarrow:\\\"\\\\u21ae\\\",nLeftrightarrow:\\\"\\\\u21ce\\\",nleq:\\\"\\\\u2270\\\",nleqq:\\\"\\\\u2266\\\\u0338\\\",nleqslant:\\\"\\\\u2a7d\\\\u0338\\\",nles:\\\"\\\\u2a7d\\\\u0338\\\",nless:\\\"\\\\u226e\\\",nLl:\\\"\\\\u22d8\\\\u0338\\\",nlsim:\\\"\\\\u2274\\\",nLt:\\\"\\\\u226a\\\\u20d2\\\",nlt:\\\"\\\\u226e\\\",nltri:\\\"\\\\u22ea\\\",nltrie:\\\"\\\\u22ec\\\",nLtv:\\\"\\\\u226a\\\\u0338\\\",nmid:\\\"\\\\u2224\\\",NoBreak:\\\"\\\\u2060\\\",NonBreakingSpace:\\\"\\\\xa0\\\",nopf:\\\"\\\\ud835\\\\udd5f\\\",Nopf:\\\"\\\\u2115\\\",Not:\\\"\\\\u2aec\\\",not:\\\"\\\\xac\\\",NotCongruent:\\\"\\\\u2262\\\",NotCupCap:\\\"\\\\u226d\\\",NotDoubleVerticalBar:\\\"\\\\u2226\\\",NotElement:\\\"\\\\u2209\\\",NotEqual:\\\"\\\\u2260\\\",NotEqualTilde:\\\"\\\\u2242\\\\u0338\\\",NotExists:\\\"\\\\u2204\\\",NotGreater:\\\"\\\\u226f\\\",NotGreaterEqual:\\\"\\\\u2271\\\",NotGreaterFullEqual:\\\"\\\\u2267\\\\u0338\\\",NotGreaterGreater:\\\"\\\\u226b\\\\u0338\\\",NotGreaterLess:\\\"\\\\u2279\\\",NotGreaterSlantEqual:\\\"\\\\u2a7e\\\\u0338\\\",NotGreaterTilde:\\\"\\\\u2275\\\",NotHumpDownHump:\\\"\\\\u224e\\\\u0338\\\",NotHumpEqual:\\\"\\\\u224f\\\\u0338\\\",notin:\\\"\\\\u2209\\\",notindot:\\\"\\\\u22f5\\\\u0338\\\",notinE:\\\"\\\\u22f9\\\\u0338\\\",notinva:\\\"\\\\u2209\\\",notinvb:\\\"\\\\u22f7\\\",notinvc:\\\"\\\\u22f6\\\",NotLeftTriangleBar:\\\"\\\\u29cf\\\\u0338\\\",NotLeftTriangle:\\\"\\\\u22ea\\\",NotLeftTriangleEqual:\\\"\\\\u22ec\\\",NotLess:\\\"\\\\u226e\\\",NotLessEqual:\\\"\\\\u2270\\\",NotLessGreater:\\\"\\\\u2278\\\",NotLessLess:\\\"\\\\u226a\\\\u0338\\\",NotLessSlantEqual:\\\"\\\\u2a7d\\\\u0338\\\",NotLessTilde:\\\"\\\\u2274\\\",NotNestedGreaterGreater:\\\"\\\\u2aa2\\\\u0338\\\",NotNestedLessLess:\\\"\\\\u2aa1\\\\u0338\\\",notni:\\\"\\\\u220c\\\",notniva:\\\"\\\\u220c\\\",notnivb:\\\"\\\\u22fe\\\",notnivc:\\\"\\\\u22fd\\\",NotPrecedes:\\\"\\\\u2280\\\",NotPrecedesEqual:\\\"\\\\u2aaf\\\\u0338\\\",NotPrecedesSlantEqual:\\\"\\\\u22e0\\\",NotReverseElement:\\\"\\\\u220c\\\",NotRightTriangleBar:\\\"\\\\u29d0\\\\u0338\\\",NotRightTriangle:\\\"\\\\u22eb\\\",NotRightTriangleEqual:\\\"\\\\u22ed\\\",NotSquareSubset:\\\"\\\\u228f\\\\u0338\\\",NotSquareSubsetEqual:\\\"\\\\u22e2\\\",NotSquareSuperset:\\\"\\\\u2290\\\\u0338\\\",NotSquareSupersetEqual:\\\"\\\\u22e3\\\",NotSubset:\\\"\\\\u2282\\\\u20d2\\\",NotSubsetEqual:\\\"\\\\u2288\\\",NotSucceeds:\\\"\\\\u2281\\\",NotSucceedsEqual:\\\"\\\\u2ab0\\\\u0338\\\",NotSucceedsSlantEqual:\\\"\\\\u22e1\\\",NotSucceedsTilde:\\\"\\\\u227f\\\\u0338\\\",NotSuperset:\\\"\\\\u2283\\\\u20d2\\\",NotSupersetEqual:\\\"\\\\u2289\\\",NotTilde:\\\"\\\\u2241\\\",NotTildeEqual:\\\"\\\\u2244\\\",NotTildeFullEqual:\\\"\\\\u2247\\\",NotTildeTilde:\\\"\\\\u2249\\\",NotVerticalBar:\\\"\\\\u2224\\\",nparallel:\\\"\\\\u2226\\\",npar:\\\"\\\\u2226\\\",nparsl:\\\"\\\\u2afd\\\\u20e5\\\",npart:\\\"\\\\u2202\\\\u0338\\\",npolint:\\\"\\\\u2a14\\\",npr:\\\"\\\\u2280\\\",nprcue:\\\"\\\\u22e0\\\",nprec:\\\"\\\\u2280\\\",npreceq:\\\"\\\\u2aaf\\\\u0338\\\",npre:\\\"\\\\u2aaf\\\\u0338\\\",nrarrc:\\\"\\\\u2933\\\\u0338\\\",nrarr:\\\"\\\\u219b\\\",nrArr:\\\"\\\\u21cf\\\",nrarrw:\\\"\\\\u219d\\\\u0338\\\",nrightarrow:\\\"\\\\u219b\\\",nRightarrow:\\\"\\\\u21cf\\\",nrtri:\\\"\\\\u22eb\\\",nrtrie:\\\"\\\\u22ed\\\",nsc:\\\"\\\\u2281\\\",nsccue:\\\"\\\\u22e1\\\",nsce:\\\"\\\\u2ab0\\\\u0338\\\",Nscr:\\\"\\\\ud835\\\\udca9\\\",nscr:\\\"\\\\ud835\\\\udcc3\\\",nshortmid:\\\"\\\\u2224\\\",nshortparallel:\\\"\\\\u2226\\\",nsim:\\\"\\\\u2241\\\",nsime:\\\"\\\\u2244\\\",nsimeq:\\\"\\\\u2244\\\",nsmid:\\\"\\\\u2224\\\",nspar:\\\"\\\\u2226\\\",nsqsube:\\\"\\\\u22e2\\\",nsqsupe:\\\"\\\\u22e3\\\",nsub:\\\"\\\\u2284\\\",nsubE:\\\"\\\\u2ac5\\\\u0338\\\",nsube:\\\"\\\\u2288\\\",nsubset:\\\"\\\\u2282\\\\u20d2\\\",nsubseteq:\\\"\\\\u2288\\\",nsubseteqq:\\\"\\\\u2ac5\\\\u0338\\\",nsucc:\\\"\\\\u2281\\\",nsucceq:\\\"\\\\u2ab0\\\\u0338\\\",nsup:\\\"\\\\u2285\\\",nsupE:\\\"\\\\u2ac6\\\\u0338\\\",nsupe:\\\"\\\\u2289\\\",nsupset:\\\"\\\\u2283\\\\u20d2\\\",nsupseteq:\\\"\\\\u2289\\\",nsupseteqq:\\\"\\\\u2ac6\\\\u0338\\\",ntgl:\\\"\\\\u2279\\\",Ntilde:\\\"\\\\xd1\\\",ntilde:\\\"\\\\xf1\\\",ntlg:\\\"\\\\u2278\\\",ntriangleleft:\\\"\\\\u22ea\\\",ntrianglelefteq:\\\"\\\\u22ec\\\",ntriangleright:\\\"\\\\u22eb\\\",ntrianglerighteq:\\\"\\\\u22ed\\\",Nu:\\\"\\\\u039d\\\",nu:\\\"\\\\u03bd\\\",num:\\\"#\\\",numero:\\\"\\\\u2116\\\",numsp:\\\"\\\\u2007\\\",nvap:\\\"\\\\u224d\\\\u20d2\\\",nvdash:\\\"\\\\u22ac\\\",nvDash:\\\"\\\\u22ad\\\",nVdash:\\\"\\\\u22ae\\\",nVDash:\\\"\\\\u22af\\\",nvge:\\\"\\\\u2265\\\\u20d2\\\",nvgt:\\\">\\\\u20d2\\\",nvHarr:\\\"\\\\u2904\\\",nvinfin:\\\"\\\\u29de\\\",nvlArr:\\\"\\\\u2902\\\",nvle:\\\"\\\\u2264\\\\u20d2\\\",nvlt:\\\"\u003C\\\\u20d2\\\",nvltrie:\\\"\\\\u22b4\\\\u20d2\\\",nvrArr:\\\"\\\\u2903\\\",nvrtrie:\\\"\\\\u22b5\\\\u20d2\\\",nvsim:\\\"\\\\u223c\\\\u20d2\\\",nwarhk:\\\"\\\\u2923\\\",nwarr:\\\"\\\\u2196\\\",nwArr:\\\"\\\\u21d6\\\",nwarrow:\\\"\\\\u2196\\\",nwnear:\\\"\\\\u2927\\\",Oacute:\\\"\\\\xd3\\\",oacute:\\\"\\\\xf3\\\",oast:\\\"\\\\u229b\\\",Ocirc:\\\"\\\\xd4\\\",ocirc:\\\"\\\\xf4\\\",ocir:\\\"\\\\u229a\\\",Ocy:\\\"\\\\u041e\\\",ocy:\\\"\\\\u043e\\\",odash:\\\"\\\\u229d\\\",Odblac:\\\"\\\\u0150\\\",odblac:\\\"\\\\u0151\\\",odiv:\\\"\\\\u2a38\\\",odot:\\\"\\\\u2299\\\",odsold:\\\"\\\\u29bc\\\",OElig:\\\"\\\\u0152\\\",oelig:\\\"\\\\u0153\\\",ofcir:\\\"\\\\u29bf\\\",Ofr:\\\"\\\\ud835\\\\udd12\\\",ofr:\\\"\\\\ud835\\\\udd2c\\\",ogon:\\\"\\\\u02db\\\",Ograve:\\\"\\\\xd2\\\",ograve:\\\"\\\\xf2\\\",ogt:\\\"\\\\u29c1\\\",ohbar:\\\"\\\\u29b5\\\",ohm:\\\"\\\\u03a9\\\",oint:\\\"\\\\u222e\\\",olarr:\\\"\\\\u21ba\\\",olcir:\\\"\\\\u29be\\\",olcross:\\\"\\\\u29bb\\\",oline:\\\"\\\\u203e\\\",olt:\\\"\\\\u29c0\\\",Omacr:\\\"\\\\u014c\\\",omacr:\\\"\\\\u014d\\\",Omega:\\\"\\\\u03a9\\\",omega:\\\"\\\\u03c9\\\",Omicron:\\\"\\\\u039f\\\",omicron:\\\"\\\\u03bf\\\",omid:\\\"\\\\u29b6\\\",ominus:\\\"\\\\u2296\\\",Oopf:\\\"\\\\ud835\\\\udd46\\\",oopf:\\\"\\\\ud835\\\\udd60\\\",opar:\\\"\\\\u29b7\\\",OpenCurlyDoubleQuote:\\\"\\\\u201c\\\",OpenCurlyQuote:\\\"\\\\u2018\\\",operp:\\\"\\\\u29b9\\\",oplus:\\\"\\\\u2295\\\",orarr:\\\"\\\\u21bb\\\",Or:\\\"\\\\u2a54\\\",or:\\\"\\\\u2228\\\",ord:\\\"\\\\u2a5d\\\",order:\\\"\\\\u2134\\\",orderof:\\\"\\\\u2134\\\",ordf:\\\"\\\\xaa\\\",ordm:\\\"\\\\xba\\\",origof:\\\"\\\\u22b6\\\",oror:\\\"\\\\u2a56\\\",orslope:\\\"\\\\u2a57\\\",orv:\\\"\\\\u2a5b\\\",oS:\\\"\\\\u24c8\\\",Oscr:\\\"\\\\ud835\\\\udcaa\\\",oscr:\\\"\\\\u2134\\\",Oslash:\\\"\\\\xd8\\\",oslash:\\\"\\\\xf8\\\",osol:\\\"\\\\u2298\\\",Otilde:\\\"\\\\xd5\\\",otilde:\\\"\\\\xf5\\\",otimesas:\\\"\\\\u2a36\\\",Otimes:\\\"\\\\u2a37\\\",otimes:\\\"\\\\u2297\\\",Ouml:\\\"\\\\xd6\\\",ouml:\\\"\\\\xf6\\\",ovbar:\\\"\\\\u233d\\\",OverBar:\\\"\\\\u203e\\\",OverBrace:\\\"\\\\u23de\\\",OverBracket:\\\"\\\\u23b4\\\",OverParenthesis:\\\"\\\\u23dc\\\",para:\\\"\\\\xb6\\\",parallel:\\\"\\\\u2225\\\",par:\\\"\\\\u2225\\\",parsim:\\\"\\\\u2af3\\\",parsl:\\\"\\\\u2afd\\\",part:\\\"\\\\u2202\\\",PartialD:\\\"\\\\u2202\\\",Pcy:\\\"\\\\u041f\\\",pcy:\\\"\\\\u043f\\\",percnt:\\\"%\\\",period:\\\".\\\",permil:\\\"\\\\u2030\\\",perp:\\\"\\\\u22a5\\\",pertenk:\\\"\\\\u2031\\\",Pfr:\\\"\\\\ud835\\\\udd13\\\",pfr:\\\"\\\\ud835\\\\udd2d\\\",Phi:\\\"\\\\u03a6\\\",phi:\\\"\\\\u03c6\\\",phiv:\\\"\\\\u03d5\\\",phmmat:\\\"\\\\u2133\\\",phone:\\\"\\\\u260e\\\",Pi:\\\"\\\\u03a0\\\",pi:\\\"\\\\u03c0\\\",pitchfork:\\\"\\\\u22d4\\\",piv:\\\"\\\\u03d6\\\",planck:\\\"\\\\u210f\\\",planckh:\\\"\\\\u210e\\\",plankv:\\\"\\\\u210f\\\",plusacir:\\\"\\\\u2a23\\\",plusb:\\\"\\\\u229e\\\",pluscir:\\\"\\\\u2a22\\\",plus:\\\"+\\\",plusdo:\\\"\\\\u2214\\\",plusdu:\\\"\\\\u2a25\\\",pluse:\\\"\\\\u2a72\\\",PlusMinus:\\\"\\\\xb1\\\",plusmn:\\\"\\\\xb1\\\",plussim:\\\"\\\\u2a26\\\",plustwo:\\\"\\\\u2a27\\\",pm:\\\"\\\\xb1\\\",Poincareplane:\\\"\\\\u210c\\\",pointint:\\\"\\\\u2a15\\\",popf:\\\"\\\\ud835\\\\udd61\\\",Popf:\\\"\\\\u2119\\\",pound:\\\"\\\\xa3\\\",prap:\\\"\\\\u2ab7\\\",Pr:\\\"\\\\u2abb\\\",pr:\\\"\\\\u227a\\\",prcue:\\\"\\\\u227c\\\",precapprox:\\\"\\\\u2ab7\\\",prec:\\\"\\\\u227a\\\",preccurlyeq:\\\"\\\\u227c\\\",Precedes:\\\"\\\\u227a\\\",PrecedesEqual:\\\"\\\\u2aaf\\\",PrecedesSlantEqual:\\\"\\\\u227c\\\",PrecedesTilde:\\\"\\\\u227e\\\",preceq:\\\"\\\\u2aaf\\\",precnapprox:\\\"\\\\u2ab9\\\",precneqq:\\\"\\\\u2ab5\\\",precnsim:\\\"\\\\u22e8\\\",pre:\\\"\\\\u2aaf\\\",prE:\\\"\\\\u2ab3\\\",precsim:\\\"\\\\u227e\\\",prime:\\\"\\\\u2032\\\",Prime:\\\"\\\\u2033\\\",primes:\\\"\\\\u2119\\\",prnap:\\\"\\\\u2ab9\\\",prnE:\\\"\\\\u2ab5\\\",prnsim:\\\"\\\\u22e8\\\",prod:\\\"\\\\u220f\\\",Product:\\\"\\\\u220f\\\",profalar:\\\"\\\\u232e\\\",profline:\\\"\\\\u2312\\\",profsurf:\\\"\\\\u2313\\\",prop:\\\"\\\\u221d\\\",Proportional:\\\"\\\\u221d\\\",Proportion:\\\"\\\\u2237\\\",propto:\\\"\\\\u221d\\\",prsim:\\\"\\\\u227e\\\",prurel:\\\"\\\\u22b0\\\",Pscr:\\\"\\\\ud835\\\\udcab\\\",pscr:\\\"\\\\ud835\\\\udcc5\\\",Psi:\\\"\\\\u03a8\\\",psi:\\\"\\\\u03c8\\\",puncsp:\\\"\\\\u2008\\\",Qfr:\\\"\\\\ud835\\\\udd14\\\",qfr:\\\"\\\\ud835\\\\udd2e\\\",qint:\\\"\\\\u2a0c\\\",qopf:\\\"\\\\ud835\\\\udd62\\\",Qopf:\\\"\\\\u211a\\\",qprime:\\\"\\\\u2057\\\",Qscr:\\\"\\\\ud835\\\\udcac\\\",qscr:\\\"\\\\ud835\\\\udcc6\\\",quaternions:\\\"\\\\u210d\\\",quatint:\\\"\\\\u2a16\\\",quest:\\\"?\\\",questeq:\\\"\\\\u225f\\\",quot:'\\\"',QUOT:'\\\"',rAarr:\\\"\\\\u21db\\\",race:\\\"\\\\u223d\\\\u0331\\\",Racute:\\\"\\\\u0154\\\",racute:\\\"\\\\u0155\\\",radic:\\\"\\\\u221a\\\",raemptyv:\\\"\\\\u29b3\\\",rang:\\\"\\\\u27e9\\\",Rang:\\\"\\\\u27eb\\\",rangd:\\\"\\\\u2992\\\",range:\\\"\\\\u29a5\\\",rangle:\\\"\\\\u27e9\\\",raquo:\\\"\\\\xbb\\\",rarrap:\\\"\\\\u2975\\\",rarrb:\\\"\\\\u21e5\\\",rarrbfs:\\\"\\\\u2920\\\",rarrc:\\\"\\\\u2933\\\",rarr:\\\"\\\\u2192\\\",Rarr:\\\"\\\\u21a0\\\",rArr:\\\"\\\\u21d2\\\",rarrfs:\\\"\\\\u291e\\\",rarrhk:\\\"\\\\u21aa\\\",rarrlp:\\\"\\\\u21ac\\\",rarrpl:\\\"\\\\u2945\\\",rarrsim:\\\"\\\\u2974\\\",Rarrtl:\\\"\\\\u2916\\\",rarrtl:\\\"\\\\u21a3\\\",rarrw:\\\"\\\\u219d\\\",ratail:\\\"\\\\u291a\\\",rAtail:\\\"\\\\u291c\\\",ratio:\\\"\\\\u2236\\\",rationals:\\\"\\\\u211a\\\",rbarr:\\\"\\\\u290d\\\",rBarr:\\\"\\\\u290f\\\",RBarr:\\\"\\\\u2910\\\",rbbrk:\\\"\\\\u2773\\\",rbrace:\\\"}\\\",rbrack:\\\"]\\\",rbrke:\\\"\\\\u298c\\\",rbrksld:\\\"\\\\u298e\\\",rbrkslu:\\\"\\\\u2990\\\",Rcaron:\\\"\\\\u0158\\\",rcaron:\\\"\\\\u0159\\\",Rcedil:\\\"\\\\u0156\\\",rcedil:\\\"\\\\u0157\\\",rceil:\\\"\\\\u2309\\\",rcub:\\\"}\\\",Rcy:\\\"\\\\u0420\\\",rcy:\\\"\\\\u0440\\\",rdca:\\\"\\\\u2937\\\",rdldhar:\\\"\\\\u2969\\\",rdquo:\\\"\\\\u201d\\\",rdquor:\\\"\\\\u201d\\\",rdsh:\\\"\\\\u21b3\\\",real:\\\"\\\\u211c\\\",realine:\\\"\\\\u211b\\\",realpart:\\\"\\\\u211c\\\",reals:\\\"\\\\u211d\\\",Re:\\\"\\\\u211c\\\",rect:\\\"\\\\u25ad\\\",reg:\\\"\\\\xae\\\",REG:\\\"\\\\xae\\\",ReverseElement:\\\"\\\\u220b\\\",ReverseEquilibrium:\\\"\\\\u21cb\\\",ReverseUpEquilibrium:\\\"\\\\u296f\\\",rfisht:\\\"\\\\u297d\\\",rfloor:\\\"\\\\u230b\\\",rfr:\\\"\\\\ud835\\\\udd2f\\\",Rfr:\\\"\\\\u211c\\\",rHar:\\\"\\\\u2964\\\",rhard:\\\"\\\\u21c1\\\",rharu:\\\"\\\\u21c0\\\",rharul:\\\"\\\\u296c\\\",Rho:\\\"\\\\u03a1\\\",rho:\\\"\\\\u03c1\\\",rhov:\\\"\\\\u03f1\\\",RightAngleBracket:\\\"\\\\u27e9\\\",RightArrowBar:\\\"\\\\u21e5\\\",rightarrow:\\\"\\\\u2192\\\",RightArrow:\\\"\\\\u2192\\\",Rightarrow:\\\"\\\\u21d2\\\",RightArrowLeftArrow:\\\"\\\\u21c4\\\",rightarrowtail:\\\"\\\\u21a3\\\",RightCeiling:\\\"\\\\u2309\\\",RightDoubleBracket:\\\"\\\\u27e7\\\",RightDownTeeVector:\\\"\\\\u295d\\\",RightDownVectorBar:\\\"\\\\u2955\\\",RightDownVector:\\\"\\\\u21c2\\\",RightFloor:\\\"\\\\u230b\\\",rightharpoondown:\\\"\\\\u21c1\\\",rightharpoonup:\\\"\\\\u21c0\\\",rightleftarrows:\\\"\\\\u21c4\\\",rightleftharpoons:\\\"\\\\u21cc\\\",rightrightarrows:\\\"\\\\u21c9\\\",rightsquigarrow:\\\"\\\\u219d\\\",RightTeeArrow:\\\"\\\\u21a6\\\",RightTee:\\\"\\\\u22a2\\\",RightTeeVector:\\\"\\\\u295b\\\",rightthreetimes:\\\"\\\\u22cc\\\",RightTriangleBar:\\\"\\\\u29d0\\\",RightTriangle:\\\"\\\\u22b3\\\",RightTriangleEqual:\\\"\\\\u22b5\\\",RightUpDownVector:\\\"\\\\u294f\\\",RightUpTeeVector:\\\"\\\\u295c\\\",RightUpVectorBar:\\\"\\\\u2954\\\",RightUpVector:\\\"\\\\u21be\\\",RightVectorBar:\\\"\\\\u2953\\\",RightVector:\\\"\\\\u21c0\\\",ring:\\\"\\\\u02da\\\",risingdotseq:\\\"\\\\u2253\\\",rlarr:\\\"\\\\u21c4\\\",rlhar:\\\"\\\\u21cc\\\",rlm:\\\"\\\\u200f\\\",rmoustache:\\\"\\\\u23b1\\\",rmoust:\\\"\\\\u23b1\\\",rnmid:\\\"\\\\u2aee\\\",roang:\\\"\\\\u27ed\\\",roarr:\\\"\\\\u21fe\\\",robrk:\\\"\\\\u27e7\\\",ropar:\\\"\\\\u2986\\\",ropf:\\\"\\\\ud835\\\\udd63\\\",Ropf:\\\"\\\\u211d\\\",roplus:\\\"\\\\u2a2e\\\",rotimes:\\\"\\\\u2a35\\\",RoundImplies:\\\"\\\\u2970\\\",rpar:\\\")\\\",rpargt:\\\"\\\\u2994\\\",rppolint:\\\"\\\\u2a12\\\",rrarr:\\\"\\\\u21c9\\\",Rrightarrow:\\\"\\\\u21db\\\",rsaquo:\\\"\\\\u203a\\\",rscr:\\\"\\\\ud835\\\\udcc7\\\",Rscr:\\\"\\\\u211b\\\",rsh:\\\"\\\\u21b1\\\",Rsh:\\\"\\\\u21b1\\\",rsqb:\\\"]\\\",rsquo:\\\"\\\\u2019\\\",rsquor:\\\"\\\\u2019\\\",rthree:\\\"\\\\u22cc\\\",rtimes:\\\"\\\\u22ca\\\",rtri:\\\"\\\\u25b9\\\",rtrie:\\\"\\\\u22b5\\\",rtrif:\\\"\\\\u25b8\\\",rtriltri:\\\"\\\\u29ce\\\",RuleDelayed:\\\"\\\\u29f4\\\",ruluhar:\\\"\\\\u2968\\\",rx:\\\"\\\\u211e\\\",Sacute:\\\"\\\\u015a\\\",sacute:\\\"\\\\u015b\\\",sbquo:\\\"\\\\u201a\\\",scap:\\\"\\\\u2ab8\\\",Scaron:\\\"\\\\u0160\\\",scaron:\\\"\\\\u0161\\\",Sc:\\\"\\\\u2abc\\\",sc:\\\"\\\\u227b\\\",sccue:\\\"\\\\u227d\\\",sce:\\\"\\\\u2ab0\\\",scE:\\\"\\\\u2ab4\\\",Scedil:\\\"\\\\u015e\\\",scedil:\\\"\\\\u015f\\\",Scirc:\\\"\\\\u015c\\\",scirc:\\\"\\\\u015d\\\",scnap:\\\"\\\\u2aba\\\",scnE:\\\"\\\\u2ab6\\\",scnsim:\\\"\\\\u22e9\\\",scpolint:\\\"\\\\u2a13\\\",scsim:\\\"\\\\u227f\\\",Scy:\\\"\\\\u0421\\\",scy:\\\"\\\\u0441\\\",sdotb:\\\"\\\\u22a1\\\",sdot:\\\"\\\\u22c5\\\",sdote:\\\"\\\\u2a66\\\",searhk:\\\"\\\\u2925\\\",searr:\\\"\\\\u2198\\\",seArr:\\\"\\\\u21d8\\\",searrow:\\\"\\\\u2198\\\",sect:\\\"\\\\xa7\\\",semi:\\\";\\\",seswar:\\\"\\\\u2929\\\",setminus:\\\"\\\\u2216\\\",setmn:\\\"\\\\u2216\\\",sext:\\\"\\\\u2736\\\",Sfr:\\\"\\\\ud835\\\\udd16\\\",sfr:\\\"\\\\ud835\\\\udd30\\\",sfrown:\\\"\\\\u2322\\\",sharp:\\\"\\\\u266f\\\",SHCHcy:\\\"\\\\u0429\\\",shchcy:\\\"\\\\u0449\\\",SHcy:\\\"\\\\u0428\\\",shcy:\\\"\\\\u0448\\\",ShortDownArrow:\\\"\\\\u2193\\\",ShortLeftArrow:\\\"\\\\u2190\\\",shortmid:\\\"\\\\u2223\\\",shortparallel:\\\"\\\\u2225\\\",ShortRightArrow:\\\"\\\\u2192\\\",ShortUpArrow:\\\"\\\\u2191\\\",shy:\\\"\\\\xad\\\",Sigma:\\\"\\\\u03a3\\\",sigma:\\\"\\\\u03c3\\\",sigmaf:\\\"\\\\u03c2\\\",sigmav:\\\"\\\\u03c2\\\",sim:\\\"\\\\u223c\\\",simdot:\\\"\\\\u2a6a\\\",sime:\\\"\\\\u2243\\\",simeq:\\\"\\\\u2243\\\",simg:\\\"\\\\u2a9e\\\",simgE:\\\"\\\\u2aa0\\\",siml:\\\"\\\\u2a9d\\\",simlE:\\\"\\\\u2a9f\\\",simne:\\\"\\\\u2246\\\",simplus:\\\"\\\\u2a24\\\",simrarr:\\\"\\\\u2972\\\",slarr:\\\"\\\\u2190\\\",SmallCircle:\\\"\\\\u2218\\\",smallsetminus:\\\"\\\\u2216\\\",smashp:\\\"\\\\u2a33\\\",smeparsl:\\\"\\\\u29e4\\\",smid:\\\"\\\\u2223\\\",smile:\\\"\\\\u2323\\\",smt:\\\"\\\\u2aaa\\\",smte:\\\"\\\\u2aac\\\",smtes:\\\"\\\\u2aac\\\\ufe00\\\",SOFTcy:\\\"\\\\u042c\\\",softcy:\\\"\\\\u044c\\\",solbar:\\\"\\\\u233f\\\",solb:\\\"\\\\u29c4\\\",sol:\\\"/\\\",Sopf:\\\"\\\\ud835\\\\udd4a\\\",sopf:\\\"\\\\ud835\\\\udd64\\\",spades:\\\"\\\\u2660\\\",spadesuit:\\\"\\\\u2660\\\",spar:\\\"\\\\u2225\\\",sqcap:\\\"\\\\u2293\\\",sqcaps:\\\"\\\\u2293\\\\ufe00\\\",sqcup:\\\"\\\\u2294\\\",sqcups:\\\"\\\\u2294\\\\ufe00\\\",Sqrt:\\\"\\\\u221a\\\",sqsub:\\\"\\\\u228f\\\",sqsube:\\\"\\\\u2291\\\",sqsubset:\\\"\\\\u228f\\\",sqsubseteq:\\\"\\\\u2291\\\",sqsup:\\\"\\\\u2290\\\",sqsupe:\\\"\\\\u2292\\\",sqsupset:\\\"\\\\u2290\\\",sqsupseteq:\\\"\\\\u2292\\\",square:\\\"\\\\u25a1\\\",Square:\\\"\\\\u25a1\\\",SquareIntersection:\\\"\\\\u2293\\\",SquareSubset:\\\"\\\\u228f\\\",SquareSubsetEqual:\\\"\\\\u2291\\\",SquareSuperset:\\\"\\\\u2290\\\",SquareSupersetEqual:\\\"\\\\u2292\\\",SquareUnion:\\\"\\\\u2294\\\",squarf:\\\"\\\\u25aa\\\",squ:\\\"\\\\u25a1\\\",squf:\\\"\\\\u25aa\\\",srarr:\\\"\\\\u2192\\\",Sscr:\\\"\\\\ud835\\\\udcae\\\",sscr:\\\"\\\\ud835\\\\udcc8\\\",ssetmn:\\\"\\\\u2216\\\",ssmile:\\\"\\\\u2323\\\",sstarf:\\\"\\\\u22c6\\\",Star:\\\"\\\\u22c6\\\",star:\\\"\\\\u2606\\\",starf:\\\"\\\\u2605\\\",straightepsilon:\\\"\\\\u03f5\\\",straightphi:\\\"\\\\u03d5\\\",strns:\\\"\\\\xaf\\\",sub:\\\"\\\\u2282\\\",Sub:\\\"\\\\u22d0\\\",subdot:\\\"\\\\u2abd\\\",subE:\\\"\\\\u2ac5\\\",sube:\\\"\\\\u2286\\\",subedot:\\\"\\\\u2ac3\\\",submult:\\\"\\\\u2ac1\\\",subnE:\\\"\\\\u2acb\\\",subne:\\\"\\\\u228a\\\",subplus:\\\"\\\\u2abf\\\",subrarr:\\\"\\\\u2979\\\",subset:\\\"\\\\u2282\\\",Subset:\\\"\\\\u22d0\\\",subseteq:\\\"\\\\u2286\\\",subseteqq:\\\"\\\\u2ac5\\\",SubsetEqual:\\\"\\\\u2286\\\",subsetneq:\\\"\\\\u228a\\\",subsetneqq:\\\"\\\\u2acb\\\",subsim:\\\"\\\\u2ac7\\\",subsub:\\\"\\\\u2ad5\\\",subsup:\\\"\\\\u2ad3\\\",succapprox:\\\"\\\\u2ab8\\\",succ:\\\"\\\\u227b\\\",succcurlyeq:\\\"\\\\u227d\\\",Succeeds:\\\"\\\\u227b\\\",SucceedsEqual:\\\"\\\\u2ab0\\\",SucceedsSlantEqual:\\\"\\\\u227d\\\",SucceedsTilde:\\\"\\\\u227f\\\",succeq:\\\"\\\\u2ab0\\\",succnapprox:\\\"\\\\u2aba\\\",succneqq:\\\"\\\\u2ab6\\\",succnsim:\\\"\\\\u22e9\\\",succsim:\\\"\\\\u227f\\\",SuchThat:\\\"\\\\u220b\\\",sum:\\\"\\\\u2211\\\",Sum:\\\"\\\\u2211\\\",sung:\\\"\\\\u266a\\\",sup1:\\\"\\\\xb9\\\",sup2:\\\"\\\\xb2\\\",sup3:\\\"\\\\xb3\\\",sup:\\\"\\\\u2283\\\",Sup:\\\"\\\\u22d1\\\",supdot:\\\"\\\\u2abe\\\",supdsub:\\\"\\\\u2ad8\\\",supE:\\\"\\\\u2ac6\\\",supe:\\\"\\\\u2287\\\",supedot:\\\"\\\\u2ac4\\\",Superset:\\\"\\\\u2283\\\",SupersetEqual:\\\"\\\\u2287\\\",suphsol:\\\"\\\\u27c9\\\",suphsub:\\\"\\\\u2ad7\\\",suplarr:\\\"\\\\u297b\\\",supmult:\\\"\\\\u2ac2\\\",supnE:\\\"\\\\u2acc\\\",supne:\\\"\\\\u228b\\\",supplus:\\\"\\\\u2ac0\\\",supset:\\\"\\\\u2283\\\",Supset:\\\"\\\\u22d1\\\",supseteq:\\\"\\\\u2287\\\",supseteqq:\\\"\\\\u2ac6\\\",supsetneq:\\\"\\\\u228b\\\",supsetneqq:\\\"\\\\u2acc\\\",supsim:\\\"\\\\u2ac8\\\",supsub:\\\"\\\\u2ad4\\\",supsup:\\\"\\\\u2ad6\\\",swarhk:\\\"\\\\u2926\\\",swarr:\\\"\\\\u2199\\\",swArr:\\\"\\\\u21d9\\\",swarrow:\\\"\\\\u2199\\\",swnwar:\\\"\\\\u292a\\\",szlig:\\\"\\\\xdf\\\",Tab:\\\"\\\\t\\\",target:\\\"\\\\u2316\\\",Tau:\\\"\\\\u03a4\\\",tau:\\\"\\\\u03c4\\\",tbrk:\\\"\\\\u23b4\\\",Tcaron:\\\"\\\\u0164\\\",tcaron:\\\"\\\\u0165\\\",Tcedil:\\\"\\\\u0162\\\",tcedil:\\\"\\\\u0163\\\",Tcy:\\\"\\\\u0422\\\",tcy:\\\"\\\\u0442\\\",tdot:\\\"\\\\u20db\\\",telrec:\\\"\\\\u2315\\\",Tfr:\\\"\\\\ud835\\\\udd17\\\",tfr:\\\"\\\\ud835\\\\udd31\\\",there4:\\\"\\\\u2234\\\",therefore:\\\"\\\\u2234\\\",Therefore:\\\"\\\\u2234\\\",Theta:\\\"\\\\u0398\\\",theta:\\\"\\\\u03b8\\\",thetasym:\\\"\\\\u03d1\\\",thetav:\\\"\\\\u03d1\\\",thickapprox:\\\"\\\\u2248\\\",thicksim:\\\"\\\\u223c\\\",ThickSpace:\\\"\\\\u205f\\\\u200a\\\",ThinSpace:\\\"\\\\u2009\\\",thinsp:\\\"\\\\u2009\\\",thkap:\\\"\\\\u2248\\\",thksim:\\\"\\\\u223c\\\",THORN:\\\"\\\\xde\\\",thorn:\\\"\\\\xfe\\\",tilde:\\\"\\\\u02dc\\\",Tilde:\\\"\\\\u223c\\\",TildeEqual:\\\"\\\\u2243\\\",TildeFullEqual:\\\"\\\\u2245\\\",TildeTilde:\\\"\\\\u2248\\\",timesbar:\\\"\\\\u2a31\\\",timesb:\\\"\\\\u22a0\\\",times:\\\"\\\\xd7\\\",timesd:\\\"\\\\u2a30\\\",tint:\\\"\\\\u222d\\\",toea:\\\"\\\\u2928\\\",topbot:\\\"\\\\u2336\\\",topcir:\\\"\\\\u2af1\\\",top:\\\"\\\\u22a4\\\",Topf:\\\"\\\\ud835\\\\udd4b\\\",topf:\\\"\\\\ud835\\\\udd65\\\",topfork:\\\"\\\\u2ada\\\",tosa:\\\"\\\\u2929\\\",tprime:\\\"\\\\u2034\\\",trade:\\\"\\\\u2122\\\",TRADE:\\\"\\\\u2122\\\",triangle:\\\"\\\\u25b5\\\",triangledown:\\\"\\\\u25bf\\\",triangleleft:\\\"\\\\u25c3\\\",trianglelefteq:\\\"\\\\u22b4\\\",triangleq:\\\"\\\\u225c\\\",triangleright:\\\"\\\\u25b9\\\",trianglerighteq:\\\"\\\\u22b5\\\",tridot:\\\"\\\\u25ec\\\",trie:\\\"\\\\u225c\\\",triminus:\\\"\\\\u2a3a\\\",TripleDot:\\\"\\\\u20db\\\",triplus:\\\"\\\\u2a39\\\",trisb:\\\"\\\\u29cd\\\",tritime:\\\"\\\\u2a3b\\\",trpezium:\\\"\\\\u23e2\\\",Tscr:\\\"\\\\ud835\\\\udcaf\\\",tscr:\\\"\\\\ud835\\\\udcc9\\\",TScy:\\\"\\\\u0426\\\",tscy:\\\"\\\\u0446\\\",TSHcy:\\\"\\\\u040b\\\",tshcy:\\\"\\\\u045b\\\",Tstrok:\\\"\\\\u0166\\\",tstrok:\\\"\\\\u0167\\\",twixt:\\\"\\\\u226c\\\",twoheadleftarrow:\\\"\\\\u219e\\\",twoheadrightarrow:\\\"\\\\u21a0\\\",Uacute:\\\"\\\\xda\\\",uacute:\\\"\\\\xfa\\\",uarr:\\\"\\\\u2191\\\",Uarr:\\\"\\\\u219f\\\",uArr:\\\"\\\\u21d1\\\",Uarrocir:\\\"\\\\u2949\\\",Ubrcy:\\\"\\\\u040e\\\",ubrcy:\\\"\\\\u045e\\\",Ubreve:\\\"\\\\u016c\\\",ubreve:\\\"\\\\u016d\\\",Ucirc:\\\"\\\\xdb\\\",ucirc:\\\"\\\\xfb\\\",Ucy:\\\"\\\\u0423\\\",ucy:\\\"\\\\u0443\\\",udarr:\\\"\\\\u21c5\\\",Udblac:\\\"\\\\u0170\\\",udblac:\\\"\\\\u0171\\\",udhar:\\\"\\\\u296e\\\",ufisht:\\\"\\\\u297e\\\",Ufr:\\\"\\\\ud835\\\\udd18\\\",ufr:\\\"\\\\ud835\\\\udd32\\\",Ugrave:\\\"\\\\xd9\\\",ugrave:\\\"\\\\xf9\\\",uHar:\\\"\\\\u2963\\\",uharl:\\\"\\\\u21bf\\\",uharr:\\\"\\\\u21be\\\",uhblk:\\\"\\\\u2580\\\",ulcorn:\\\"\\\\u231c\\\",ulcorner:\\\"\\\\u231c\\\",ulcrop:\\\"\\\\u230f\\\",ultri:\\\"\\\\u25f8\\\",Umacr:\\\"\\\\u016a\\\",umacr:\\\"\\\\u016b\\\",uml:\\\"\\\\xa8\\\",UnderBar:\\\"_\\\",UnderBrace:\\\"\\\\u23df\\\",UnderBracket:\\\"\\\\u23b5\\\",UnderParenthesis:\\\"\\\\u23dd\\\",Union:\\\"\\\\u22c3\\\",UnionPlus:\\\"\\\\u228e\\\",Uogon:\\\"\\\\u0172\\\",uogon:\\\"\\\\u0173\\\",Uopf:\\\"\\\\ud835\\\\udd4c\\\",uopf:\\\"\\\\ud835\\\\udd66\\\",UpArrowBar:\\\"\\\\u2912\\\",uparrow:\\\"\\\\u2191\\\",UpArrow:\\\"\\\\u2191\\\",Uparrow:\\\"\\\\u21d1\\\",UpArrowDownArrow:\\\"\\\\u21c5\\\",updownarrow:\\\"\\\\u2195\\\",UpDownArrow:\\\"\\\\u2195\\\",Updownarrow:\\\"\\\\u21d5\\\",UpEquilibrium:\\\"\\\\u296e\\\",upharpoonleft:\\\"\\\\u21bf\\\",upharpoonright:\\\"\\\\u21be\\\",uplus:\\\"\\\\u228e\\\",UpperLeftArrow:\\\"\\\\u2196\\\",UpperRightArrow:\\\"\\\\u2197\\\",upsi:\\\"\\\\u03c5\\\",Upsi:\\\"\\\\u03d2\\\",upsih:\\\"\\\\u03d2\\\",Upsilon:\\\"\\\\u03a5\\\",upsilon:\\\"\\\\u03c5\\\",UpTeeArrow:\\\"\\\\u21a5\\\",UpTee:\\\"\\\\u22a5\\\",upuparrows:\\\"\\\\u21c8\\\",urcorn:\\\"\\\\u231d\\\",urcorner:\\\"\\\\u231d\\\",urcrop:\\\"\\\\u230e\\\",Uring:\\\"\\\\u016e\\\",uring:\\\"\\\\u016f\\\",urtri:\\\"\\\\u25f9\\\",Uscr:\\\"\\\\ud835\\\\udcb0\\\",uscr:\\\"\\\\ud835\\\\udcca\\\",utdot:\\\"\\\\u22f0\\\",Utilde:\\\"\\\\u0168\\\",utilde:\\\"\\\\u0169\\\",utri:\\\"\\\\u25b5\\\",utrif:\\\"\\\\u25b4\\\",uuarr:\\\"\\\\u21c8\\\",Uuml:\\\"\\\\xdc\\\",uuml:\\\"\\\\xfc\\\",uwangle:\\\"\\\\u29a7\\\",vangrt:\\\"\\\\u299c\\\",varepsilon:\\\"\\\\u03f5\\\",varkappa:\\\"\\\\u03f0\\\",varnothing:\\\"\\\\u2205\\\",varphi:\\\"\\\\u03d5\\\",varpi:\\\"\\\\u03d6\\\",varpropto:\\\"\\\\u221d\\\",varr:\\\"\\\\u2195\\\",vArr:\\\"\\\\u21d5\\\",varrho:\\\"\\\\u03f1\\\",varsigma:\\\"\\\\u03c2\\\",varsubsetneq:\\\"\\\\u228a\\\\ufe00\\\",varsubsetneqq:\\\"\\\\u2acb\\\\ufe00\\\",varsupsetneq:\\\"\\\\u228b\\\\ufe00\\\",varsupsetneqq:\\\"\\\\u2acc\\\\ufe00\\\",vartheta:\\\"\\\\u03d1\\\",vartriangleleft:\\\"\\\\u22b2\\\",vartriangleright:\\\"\\\\u22b3\\\",vBar:\\\"\\\\u2ae8\\\",Vbar:\\\"\\\\u2aeb\\\",vBarv:\\\"\\\\u2ae9\\\",Vcy:\\\"\\\\u0412\\\",vcy:\\\"\\\\u0432\\\",vdash:\\\"\\\\u22a2\\\",vDash:\\\"\\\\u22a8\\\",Vdash:\\\"\\\\u22a9\\\",VDash:\\\"\\\\u22ab\\\",Vdashl:\\\"\\\\u2ae6\\\",veebar:\\\"\\\\u22bb\\\",vee:\\\"\\\\u2228\\\",Vee:\\\"\\\\u22c1\\\",veeeq:\\\"\\\\u225a\\\",vellip:\\\"\\\\u22ee\\\",verbar:\\\"|\\\",Verbar:\\\"\\\\u2016\\\",vert:\\\"|\\\",Vert:\\\"\\\\u2016\\\",VerticalBar:\\\"\\\\u2223\\\",VerticalLine:\\\"|\\\",VerticalSeparator:\\\"\\\\u2758\\\",VerticalTilde:\\\"\\\\u2240\\\",VeryThinSpace:\\\"\\\\u200a\\\",Vfr:\\\"\\\\ud835\\\\udd19\\\",vfr:\\\"\\\\ud835\\\\udd33\\\",vltri:\\\"\\\\u22b2\\\",vnsub:\\\"\\\\u2282\\\\u20d2\\\",vnsup:\\\"\\\\u2283\\\\u20d2\\\",Vopf:\\\"\\\\ud835\\\\udd4d\\\",vopf:\\\"\\\\ud835\\\\udd67\\\",vprop:\\\"\\\\u221d\\\",vrtri:\\\"\\\\u22b3\\\",Vscr:\\\"\\\\ud835\\\\udcb1\\\",vscr:\\\"\\\\ud835\\\\udccb\\\",vsubnE:\\\"\\\\u2acb\\\\ufe00\\\",vsubne:\\\"\\\\u228a\\\\ufe00\\\",vsupnE:\\\"\\\\u2acc\\\\ufe00\\\",vsupne:\\\"\\\\u228b\\\\ufe00\\\",Vvdash:\\\"\\\\u22aa\\\",vzigzag:\\\"\\\\u299a\\\",Wcirc:\\\"\\\\u0174\\\",wcirc:\\\"\\\\u0175\\\",wedbar:\\\"\\\\u2a5f\\\",wedge:\\\"\\\\u2227\\\",Wedge:\\\"\\\\u22c0\\\",wedgeq:\\\"\\\\u2259\\\",weierp:\\\"\\\\u2118\\\",Wfr:\\\"\\\\ud835\\\\udd1a\\\",wfr:\\\"\\\\ud835\\\\udd34\\\",Wopf:\\\"\\\\ud835\\\\udd4e\\\",wopf:\\\"\\\\ud835\\\\udd68\\\",wp:\\\"\\\\u2118\\\",wr:\\\"\\\\u2240\\\",wreath:\\\"\\\\u2240\\\",Wscr:\\\"\\\\ud835\\\\udcb2\\\",wscr:\\\"\\\\ud835\\\\udccc\\\",xcap:\\\"\\\\u22c2\\\",xcirc:\\\"\\\\u25ef\\\",xcup:\\\"\\\\u22c3\\\",xdtri:\\\"\\\\u25bd\\\",Xfr:\\\"\\\\ud835\\\\udd1b\\\",xfr:\\\"\\\\ud835\\\\udd35\\\",xharr:\\\"\\\\u27f7\\\",xhArr:\\\"\\\\u27fa\\\",Xi:\\\"\\\\u039e\\\",xi:\\\"\\\\u03be\\\",xlarr:\\\"\\\\u27f5\\\",xlArr:\\\"\\\\u27f8\\\",xmap:\\\"\\\\u27fc\\\",xnis:\\\"\\\\u22fb\\\",xodot:\\\"\\\\u2a00\\\",Xopf:\\\"\\\\ud835\\\\udd4f\\\",xopf:\\\"\\\\ud835\\\\udd69\\\",xoplus:\\\"\\\\u2a01\\\",xotime:\\\"\\\\u2a02\\\",xrarr:\\\"\\\\u27f6\\\",xrArr:\\\"\\\\u27f9\\\",Xscr:\\\"\\\\ud835\\\\udcb3\\\",xscr:\\\"\\\\ud835\\\\udccd\\\",xsqcup:\\\"\\\\u2a06\\\",xuplus:\\\"\\\\u2a04\\\",xutri:\\\"\\\\u25b3\\\",xvee:\\\"\\\\u22c1\\\",xwedge:\\\"\\\\u22c0\\\",Yacute:\\\"\\\\xdd\\\",yacute:\\\"\\\\xfd\\\",YAcy:\\\"\\\\u042f\\\",yacy:\\\"\\\\u044f\\\",Ycirc:\\\"\\\\u0176\\\",ycirc:\\\"\\\\u0177\\\",Ycy:\\\"\\\\u042b\\\",ycy:\\\"\\\\u044b\\\",yen:\\\"\\\\xa5\\\",Yfr:\\\"\\\\ud835\\\\udd1c\\\",yfr:\\\"\\\\ud835\\\\udd36\\\",YIcy:\\\"\\\\u0407\\\",yicy:\\\"\\\\u0457\\\",Yopf:\\\"\\\\ud835\\\\udd50\\\",yopf:\\\"\\\\ud835\\\\udd6a\\\",Yscr:\\\"\\\\ud835\\\\udcb4\\\",yscr:\\\"\\\\ud835\\\\udcce\\\",YUcy:\\\"\\\\u042e\\\",yucy:\\\"\\\\u044e\\\",yuml:\\\"\\\\xff\\\",Yuml:\\\"\\\\u0178\\\",Zacute:\\\"\\\\u0179\\\",zacute:\\\"\\\\u017a\\\",Zcaron:\\\"\\\\u017d\\\",zcaron:\\\"\\\\u017e\\\",Zcy:\\\"\\\\u0417\\\",zcy:\\\"\\\\u0437\\\",Zdot:\\\"\\\\u017b\\\",zdot:\\\"\\\\u017c\\\",zeetrf:\\\"\\\\u2128\\\",ZeroWidthSpace:\\\"\\\\u200b\\\",Zeta:\\\"\\\\u0396\\\",zeta:\\\"\\\\u03b6\\\",zfr:\\\"\\\\ud835\\\\udd37\\\",Zfr:\\\"\\\\u2128\\\",ZHcy:\\\"\\\\u0416\\\",zhcy:\\\"\\\\u0436\\\",zigrarr:\\\"\\\\u21dd\\\",zopf:\\\"\\\\ud835\\\\udd6b\\\",Zopf:\\\"\\\\u2124\\\",Zscr:\\\"\\\\ud835\\\\udcb5\\\",zscr:\\\"\\\\ud835\\\\udccf\\\",zwj:\\\"\\\\u200d\\\",zwnj:\\\"\\\\u200c\\\"},t=/[!-#%-\\\\*,-\\\\/:;\\\\?@\\\\[-\\\\]_\\\\{\\\\}\\\\xA1\\\\xA7\\\\xAB\\\\xB6\\\\xB7\\\\xBB\\\\xBF\\\\u037E\\\\u0387\\\\u055A-\\\\u055F\\\\u0589\\\\u058A\\\\u05BE\\\\u05C0\\\\u05C3\\\\u05C6\\\\u05F3\\\\u05F4\\\\u0609\\\\u060A\\\\u060C\\\\u060D\\\\u061B\\\\u061E\\\\u061F\\\\u066A-\\\\u066D\\\\u06D4\\\\u0700-\\\\u070D\\\\u07F7-\\\\u07F9\\\\u0830-\\\\u083E\\\\u085E\\\\u0964\\\\u0965\\\\u0970\\\\u09FD\\\\u0A76\\\\u0AF0\\\\u0C84\\\\u0DF4\\\\u0E4F\\\\u0E5A\\\\u0E5B\\\\u0F04-\\\\u0F12\\\\u0F14\\\\u0F3A-\\\\u0F3D\\\\u0F85\\\\u0FD0-\\\\u0FD4\\\\u0FD9\\\\u0FDA\\\\u104A-\\\\u104F\\\\u10FB\\\\u1360-\\\\u1368\\\\u1400\\\\u166D\\\\u166E\\\\u169B\\\\u169C\\\\u16EB-\\\\u16ED\\\\u1735\\\\u1736\\\\u17D4-\\\\u17D6\\\\u17D8-\\\\u17DA\\\\u1800-\\\\u180A\\\\u1944\\\\u1945\\\\u1A1E\\\\u1A1F\\\\u1AA0-\\\\u1AA6\\\\u1AA8-\\\\u1AAD\\\\u1B5A-\\\\u1B60\\\\u1BFC-\\\\u1BFF\\\\u1C3B-\\\\u1C3F\\\\u1C7E\\\\u1C7F\\\\u1CC0-\\\\u1CC7\\\\u1CD3\\\\u2010-\\\\u2027\\\\u2030-\\\\u2043\\\\u2045-\\\\u2051\\\\u2053-\\\\u205E\\\\u207D\\\\u207E\\\\u208D\\\\u208E\\\\u2308-\\\\u230B\\\\u2329\\\\u232A\\\\u2768-\\\\u2775\\\\u27C5\\\\u27C6\\\\u27E6-\\\\u27EF\\\\u2983-\\\\u2998\\\\u29D8-\\\\u29DB\\\\u29FC\\\\u29FD\\\\u2CF9-\\\\u2CFC\\\\u2CFE\\\\u2CFF\\\\u2D70\\\\u2E00-\\\\u2E2E\\\\u2E30-\\\\u2E4E\\\\u3001-\\\\u3003\\\\u3008-\\\\u3011\\\\u3014-\\\\u301F\\\\u3030\\\\u303D\\\\u30A0\\\\u30FB\\\\uA4FE\\\\uA4FF\\\\uA60D-\\\\uA60F\\\\uA673\\\\uA67E\\\\uA6F2-\\\\uA6F7\\\\uA874-\\\\uA877\\\\uA8CE\\\\uA8CF\\\\uA8F8-\\\\uA8FA\\\\uA8FC\\\\uA92E\\\\uA92F\\\\uA95F\\\\uA9C1-\\\\uA9CD\\\\uA9DE\\\\uA9DF\\\\uAA5C-\\\\uAA5F\\\\uAADE\\\\uAADF\\\\uAAF0\\\\uAAF1\\\\uABEB\\\\uFD3E\\\\uFD3F\\\\uFE10-\\\\uFE19\\\\uFE30-\\\\uFE52\\\\uFE54-\\\\uFE61\\\\uFE63\\\\uFE68\\\\uFE6A\\\\uFE6B\\\\uFF01-\\\\uFF03\\\\uFF05-\\\\uFF0A\\\\uFF0C-\\\\uFF0F\\\\uFF1A\\\\uFF1B\\\\uFF1F\\\\uFF20\\\\uFF3B-\\\\uFF3D\\\\uFF3F\\\\uFF5B\\\\uFF5D\\\\uFF5F-\\\\uFF65]|\\\\uD800[\\\\uDD00-\\\\uDD02\\\\uDF9F\\\\uDFD0]|\\\\uD801\\\\uDD6F|\\\\uD802[\\\\uDC57\\\\uDD1F\\\\uDD3F\\\\uDE50-\\\\uDE58\\\\uDE7F\\\\uDEF0-\\\\uDEF6\\\\uDF39-\\\\uDF3F\\\\uDF99-\\\\uDF9C]|\\\\uD803[\\\\uDF55-\\\\uDF59]|\\\\uD804[\\\\uDC47-\\\\uDC4D\\\\uDCBB\\\\uDCBC\\\\uDCBE-\\\\uDCC1\\\\uDD40-\\\\uDD43\\\\uDD74\\\\uDD75\\\\uDDC5-\\\\uDDC8\\\\uDDCD\\\\uDDDB\\\\uDDDD-\\\\uDDDF\\\\uDE38-\\\\uDE3D\\\\uDEA9]|\\\\uD805[\\\\uDC4B-\\\\uDC4F\\\\uDC5B\\\\uDC5D\\\\uDCC6\\\\uDDC1-\\\\uDDD7\\\\uDE41-\\\\uDE43\\\\uDE60-\\\\uDE6C\\\\uDF3C-\\\\uDF3E]|\\\\uD806[\\\\uDC3B\\\\uDE3F-\\\\uDE46\\\\uDE9A-\\\\uDE9C\\\\uDE9E-\\\\uDEA2]|\\\\uD807[\\\\uDC41-\\\\uDC45\\\\uDC70\\\\uDC71\\\\uDEF7\\\\uDEF8]|\\\\uD809[\\\\uDC70-\\\\uDC74]|\\\\uD81A[\\\\uDE6E\\\\uDE6F\\\\uDEF5\\\\uDF37-\\\\uDF3B\\\\uDF44]|\\\\uD81B[\\\\uDE97-\\\\uDE9A]|\\\\uD82F\\\\uDC9F|\\\\uD836[\\\\uDE87-\\\\uDE8B]|\\\\uD83A[\\\\uDD5E\\\\uDD5F]/,n={};function s(e,r,t){var o,i,a,c,l,u=\\\"\\\";for(\\\"string\\\"!=typeof r&&(t=r,r=s.defaultChars),void 0===t&&(t=!0),l=function(e){var r,t,s=n[e];if(s)return s;for(s=n[e]=[],r=0;r\u003C128;r++)t=String.fromCharCode(r),/^[0-9a-z]$/i.test(t)?s.push(t):s.push(\\\"%\\\"+(\\\"0\\\"+r.toString(16).toUpperCase()).slice(-2));for(r=0;r\u003Ce.length;r++)s[e.charCodeAt(r)]=e[r];return s}(r),o=0,i=e.length;o\u003Ci;o++)if(a=e.charCodeAt(o),t&&37===a&&o+2\u003Ci&&/^[0-9a-f]{2}$/i.test(e.slice(o+1,o+3)))u+=e.slice(o,o+3),o+=2;else if(a\u003C128)u+=l[a];else if(a>=55296&&a\u003C=57343){if(a>=55296&&a\u003C=56319&&o+1\u003Ci&&(c=e.charCodeAt(o+1))>=56320&&c\u003C=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+=\\\"%EF%BF%BD\\\"}else u+=encodeURIComponent(e[o]);return u}s.defaultChars=\\\";/?:@&=+$,-_.!~*'()#\\\",s.componentChars=\\\"-_.!~*'()\\\";var o=s,i={};function a(e,r){var t;return\\\"string\\\"!=typeof r&&(r=a.defaultChars),t=function(e){var r,t,n=i[e];if(n)return n;for(n=i[e]=[],r=0;r\u003C128;r++)t=String.fromCharCode(r),n.push(t);for(r=0;r\u003Ce.length;r++)n[t=e.charCodeAt(r)]=\\\"%\\\"+(\\\"0\\\"+t.toString(16).toUpperCase()).slice(-2);return n}(r),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var r,n,s,o,i,a,c,l=\\\"\\\";for(r=0,n=e.length;r\u003Cn;r+=3)(s=parseInt(e.slice(r+1,r+3),16))\u003C128?l+=t[s]:192==(224&s)&&r+3\u003Cn&&128==(192&(o=parseInt(e.slice(r+4,r+6),16)))?(l+=(c=s\u003C\u003C6&1984|63&o)\u003C128?\\\"\\\\ufffd\\\\ufffd\\\":String.fromCharCode(c),r+=3):224==(240&s)&&r+6\u003Cn&&(o=parseInt(e.slice(r+4,r+6),16),i=parseInt(e.slice(r+7,r+9),16),128==(192&o)&&128==(192&i))?(l+=(c=s\u003C\u003C12&61440|o\u003C\u003C6&4032|63&i)\u003C2048||c>=55296&&c\u003C=57343?\\\"\\\\ufffd\\\\ufffd\\\\ufffd\\\":String.fromCharCode(c),r+=6):240==(248&s)&&r+9\u003Cn&&(o=parseInt(e.slice(r+4,r+6),16),i=parseInt(e.slice(r+7,r+9),16),a=parseInt(e.slice(r+10,r+12),16),128==(192&o)&&128==(192&i)&&128==(192&a))?((c=s\u003C\u003C18&1835008|o\u003C\u003C12&258048|i\u003C\u003C6&4032|63&a)\u003C65536||c>1114111?l+=\\\"\\\\ufffd\\\\ufffd\\\\ufffd\\\\ufffd\\\":(c-=65536,l+=String.fromCharCode(55296+(c>>10),56320+(1023&c))),r+=9):l+=\\\"\\\\ufffd\\\";return l}))}a.defaultChars=\\\";/?:@&=+$,#\\\",a.componentChars=\\\"\\\";var c=a;function l(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var u=/^([a-z0-9.+-]+:)/i,p=/:[0-9]*$/,h=/^(\\\\/\\\\/?(?!\\\\/)[^\\\\?\\\\s]*)(\\\\?[^\\\\s]*)?$/,f=[\\\"{\\\",\\\"}\\\",\\\"|\\\",\\\"\\\\\\\\\\\",\\\"^\\\",\\\"`\\\"].concat([\\\"\u003C\\\",\\\">\\\",'\\\"',\\\"`\\\",\\\" \\\",\\\"\\\\r\\\",\\\"\\\\n\\\",\\\"\\\\t\\\"]),d=[\\\"'\\\"].concat(f),m=[\\\"%\\\",\\\"/\\\",\\\"?\\\",\\\";\\\",\\\"#\\\"].concat(d),g=[\\\"/\\\",\\\"?\\\",\\\"#\\\"],_=/^[+a-z0-9A-Z_-]{0,63}$/,k=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,\\\"javascript:\\\":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\\\"http:\\\":!0,\\\"https:\\\":!0,\\\"ftp:\\\":!0,\\\"gopher:\\\":!0,\\\"file:\\\":!0};l.prototype.parse=function(e,r){var t,n,s,o,i,a=e;if(a=a.trim(),!r&&1===e.split(\\\"#\\\").length){var c=h.exec(a);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}var l=u.exec(a);if(l&&(s=(l=l[0]).toLowerCase(),this.protocol=l,a=a.substr(l.length)),(r||l||a.match(/^\\\\/\\\\/[^@\\\\/]+@[^@\\\\/]+/))&&(!(i=\\\"//\\\"===a.substr(0,2))||l&&b[l]||(a=a.substr(2),this.slashes=!0)),!b[l]&&(i||l&&!v[l])){var p,f,d=-1;for(t=0;t\u003Cg.length;t++)-1!==(o=a.indexOf(g[t]))&&(-1===d||o\u003Cd)&&(d=o);for(-1!==(f=-1===d?a.lastIndexOf(\\\"@\\\"):a.lastIndexOf(\\\"@\\\",d))&&(p=a.slice(0,f),a=a.slice(f+1),this.auth=p),d=-1,t=0;t\u003Cm.length;t++)-1!==(o=a.indexOf(m[t]))&&(-1===d||o\u003Cd)&&(d=o);-1===d&&(d=a.length),\\\":\\\"===a[d-1]&&d--;var C=a.slice(0,d);a=a.slice(d),this.parseHost(C),this.hostname=this.hostname||\\\"\\\";var y=\\\"[\\\"===this.hostname[0]&&\\\"]\\\"===this.hostname[this.hostname.length-1];if(!y){var A=this.hostname.split(/\\\\./);for(t=0,n=A.length;t\u003Cn;t++){var x=A[t];if(x&&!x.match(_)){for(var D=\\\"\\\",w=0,E=x.length;w\u003CE;w++)x.charCodeAt(w)>127?D+=\\\"x\\\":D+=x[w];if(!D.match(_)){var q=A.slice(0,t),S=A.slice(t+1),F=x.match(k);F&&(q.push(F[1]),S.unshift(F[2])),S.length&&(a=S.join(\\\".\\\")+a),this.hostname=q.join(\\\".\\\");break}}}}this.hostname.length>255&&(this.hostname=\\\"\\\"),y&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var L=a.indexOf(\\\"#\\\");-1!==L&&(this.hash=a.substr(L),a=a.slice(0,L));var z=a.indexOf(\\\"?\\\");return-1!==z&&(this.search=a.substr(z),a=a.slice(0,z)),a&&(this.pathname=a),v[s]&&this.hostname&&!this.pathname&&(this.pathname=\\\"\\\"),this},l.prototype.parseHost=function(e){var r=p.exec(e);r&&(\\\":\\\"!==(r=r[0])&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)};var C={encode:o,decode:c,format:function(e){var r=\\\"\\\";return r+=e.protocol||\\\"\\\",r+=e.slashes?\\\"//\\\":\\\"\\\",r+=e.auth?e.auth+\\\"@\\\":\\\"\\\",e.hostname&&-1!==e.hostname.indexOf(\\\":\\\")?r+=\\\"[\\\"+e.hostname+\\\"]\\\":r+=e.hostname||\\\"\\\",r+=e.port?\\\":\\\"+e.port:\\\"\\\",r+=e.pathname||\\\"\\\",r+=e.search||\\\"\\\",r+=e.hash||\\\"\\\"},parse:function(e,r){if(e&&e instanceof l)return e;var t=new l;return t.parse(e,r),t}},y=/[\\\\0-\\\\uD7FF\\\\uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]|[\\\\uD800-\\\\uDBFF](?![\\\\uDC00-\\\\uDFFF])|(?:[^\\\\uD800-\\\\uDBFF]|^)[\\\\uDC00-\\\\uDFFF]/,A=/[\\\\0-\\\\x1F\\\\x7F-\\\\x9F]/,x=/[ \\\\xA0\\\\u1680\\\\u2000-\\\\u200A\\\\u2028\\\\u2029\\\\u202F\\\\u205F\\\\u3000]/,D={Any:y,Cc:A,Cf:/[\\\\xAD\\\\u0600-\\\\u0605\\\\u061C\\\\u06DD\\\\u070F\\\\u08E2\\\\u180E\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\uFEFF\\\\uFFF9-\\\\uFFFB]|\\\\uD804[\\\\uDCBD\\\\uDCCD]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F]/,P:t,Z:x},w=function(e,r,t){return t={path:r,exports:{},require:function(e,r){return function(){throw new Error(\\\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\\\")}(null==r&&t.path)}},e(t,t.exports),t.exports}((function(e,n){var s=Object.prototype.hasOwnProperty;function o(e,r){return s.call(e,r)}function i(e){return!(e>=55296&&e\u003C=57343)&&(!(e>=64976&&e\u003C=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e\u003C=8)&&(11!==e&&(!(e>=14&&e\u003C=31)&&(!(e>=127&&e\u003C=159)&&!(e>1114111)))))))}function a(e){if(e>65535){var r=55296+((e-=65536)>>10),t=56320+(1023&e);return String.fromCharCode(r,t)}return String.fromCharCode(e)}var c=/\\\\\\\\([!\\\"#$%&'()*+,\\\\-.\\\\/:;\u003C=>?@[\\\\\\\\\\\\]^_`{|}~])/g,l=new RegExp(c.source+\\\"|\\\"+/&([a-z#][a-z0-9]{1,31});/gi.source,\\\"gi\\\"),u=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;var p=/[&\u003C>\\\"]/,h=/[&\u003C>\\\"]/g,f={\\\"&\\\":\\\"&\\\",\\\"\u003C\\\":\\\"<\\\",\\\">\\\":\\\">\\\",'\\\"':\\\""\\\"};function d(e){return f[e]}var m=/[.?*+^$[\\\\]\\\\\\\\(){}|-]/g;n.lib={},n.lib.mdurl=C,n.lib.ucmicro=D,n.assign=function(e){var r=Array.prototype.slice.call(arguments,1);return r.forEach((function(r){if(r){if(\\\"object\\\"!=typeof r)throw new TypeError(r+\\\"must be object\\\");Object.keys(r).forEach((function(t){e[t]=r[t]}))}})),e},n.isString=function(e){return\\\"[object String]\\\"===function(e){return Object.prototype.toString.call(e)}(e)},n.has=o,n.unescapeMd=function(e){return e.indexOf(\\\"\\\\\\\\\\\")\u003C0?e:e.replace(c,\\\"$1\\\")},n.unescapeAll=function(e){return e.indexOf(\\\"\\\\\\\\\\\")\u003C0&&e.indexOf(\\\"&\\\")\u003C0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return o(r,t)?r[t]:35===t.charCodeAt(0)&&u.test(t)&&i(n=\\\"x\\\"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)}))},n.isValidEntityCode=i,n.fromCodePoint=a,n.escapeHtml=function(e){return p.test(e)?e.replace(h,d):e},n.arrayReplaceAt=function(e,r,t){return[].concat(e.slice(0,r),t,e.slice(r+1))},n.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},n.isWhiteSpace=function(e){if(e>=8192&&e\u003C=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},n.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},n.isPunctChar=function(e){return t.test(e)},n.escapeRE=function(e){return e.replace(m,\\\"\\\\\\\\$&\\\")},n.normalizeReference=function(e){return e=e.trim().replace(/\\\\s+/g,\\\" \\\"),\\\"\\\\u1e7e\\\"===\\\"\\\\u1e9e\\\".toLowerCase()&&(e=e.replace(/\\\\u1e9e/g,\\\"\\\\xdf\\\")),e.toLowerCase().toUpperCase()}})),E=w.unescapeAll,q=w.unescapeAll,S=function(e,r,t){var n,s,o=r,i={ok:!1,pos:0,lines:0,str:\\\"\\\"};if(60===e.charCodeAt(r)){for(r++;r\u003Ct;){if(10===(n=e.charCodeAt(r)))return i;if(60===n)return i;if(62===n)return i.pos=r+1,i.str=E(e.slice(o+1,r)),i.ok=!0,i;92===n&&r+1\u003Ct?r+=2:r++}return i}for(s=0;r\u003Ct&&32!==(n=e.charCodeAt(r))&&!(n\u003C32||127===n);)if(92===n&&r+1\u003Ct){if(32===e.charCodeAt(r+1))break;r+=2}else{if(40===n&&++s>32)return i;if(41===n){if(0===s)break;s--}r++}return o===r||0!==s||(i.str=E(e.slice(o,r)),i.lines=0,i.pos=r,i.ok=!0),i},F=function(e,r,t){var n,s,o=0,i=r,a={ok:!1,pos:0,lines:0,str:\\\"\\\"};if(r>=t)return a;if(34!==(s=e.charCodeAt(r))&&39!==s&&40!==s)return a;for(r++,40===s&&(s=41);r\u003Ct;){if((n=e.charCodeAt(r))===s)return a.pos=r+1,a.lines=o,a.str=q(e.slice(i+1,r)),a.ok=!0,a;if(40===n&&41===s)return a;10===n?o++:92===n&&r+1\u003Ct&&(r++,10===e.charCodeAt(r)&&o++),r++}return a},L={parseLinkLabel:function(e,r,t){var n,s,o,i,a=-1,c=e.posMax,l=e.pos;for(e.pos=r+1,n=1;e.pos\u003Cc;){if(93===(o=e.src.charCodeAt(e.pos))&&0===--n){s=!0;break}if(i=e.pos,e.md.inline.skipToken(e),91===o)if(i===e.pos-1)n++;else if(t)return e.pos=l,-1}return s&&(a=e.pos),e.pos=l,a},parseLinkDestination:S,parseLinkTitle:F},z=w.assign,T=w.unescapeAll,I=w.escapeHtml,M={};function R(){this.rules=z({},M)}M.code_inline=function(e,r,t,n,s){var o=e[r];return\\\"\u003Ccode\\\"+s.renderAttrs(o)+\\\">\\\"+I(e[r].content)+\\\"\u003C/code>\\\"},M.code_block=function(e,r,t,n,s){var o=e[r];return\\\"\u003Cpre\\\"+s.renderAttrs(o)+\\\">\u003Ccode>\\\"+I(e[r].content)+\\\"\u003C/code>\u003C/pre>\\\\n\\\"},M.fence=function(e,r,t,n,s){var o,i,a,c,l,u=e[r],p=u.info?T(u.info).trim():\\\"\\\",h=\\\"\\\",f=\\\"\\\";return p&&(h=(a=p.split(/(\\\\s+)/g))[0],f=a.slice(2).join(\\\"\\\")),0===(o=t.highlight&&t.highlight(u.content,h,f)||I(u.content)).indexOf(\\\"\u003Cpre\\\")?o+\\\"\\\\n\\\":p?(i=u.attrIndex(\\\"class\\\"),c=u.attrs?u.attrs.slice():[],i\u003C0?c.push([\\\"class\\\",t.langPrefix+h]):(c[i]=c[i].slice(),c[i][1]+=\\\" \\\"+t.langPrefix+h),l={attrs:c},\\\"\u003Cpre>\u003Ccode\\\"+s.renderAttrs(l)+\\\">\\\"+o+\\\"\u003C/code>\u003C/pre>\\\\n\\\"):\\\"\u003Cpre>\u003Ccode\\\"+s.renderAttrs(u)+\\\">\\\"+o+\\\"\u003C/code>\u003C/pre>\\\\n\\\"},M.image=function(e,r,t,n,s){var o=e[r];return o.attrs[o.attrIndex(\\\"alt\\\")][1]=s.renderInlineAsText(o.children,t,n),s.renderToken(e,r,t)},M.hardbreak=function(e,r,t){return t.xhtmlOut?\\\"\u003Cbr />\\\\n\\\":\\\"\u003Cbr>\\\\n\\\"},M.softbreak=function(e,r,t){return t.breaks?t.xhtmlOut?\\\"\u003Cbr />\\\\n\\\":\\\"\u003Cbr>\\\\n\\\":\\\"\\\\n\\\"},M.text=function(e,r){return I(e[r].content)},M.html_block=function(e,r){return e[r].content},M.html_inline=function(e,r){return e[r].content},R.prototype.renderAttrs=function(e){var r,t,n;if(!e.attrs)return\\\"\\\";for(n=\\\"\\\",r=0,t=e.attrs.length;r\u003Ct;r++)n+=\\\" \\\"+I(e.attrs[r][0])+'=\\\"'+I(e.attrs[r][1])+'\\\"';return n},R.prototype.renderToken=function(e,r,t){var n,s=\\\"\\\",o=!1,i=e[r];return i.hidden?\\\"\\\":(i.block&&-1!==i.nesting&&r&&e[r-1].hidden&&(s+=\\\"\\\\n\\\"),s+=(-1===i.nesting?\\\"\u003C/\\\":\\\"\u003C\\\")+i.tag,s+=this.renderAttrs(i),0===i.nesting&&t.xhtmlOut&&(s+=\\\" /\\\"),i.block&&(o=!0,1===i.nesting&&r+1\u003Ce.length&&(\\\"inline\\\"===(n=e[r+1]).type||n.hidden||-1===n.nesting&&n.tag===i.tag)&&(o=!1)),s+=o?\\\">\\\\n\\\":\\\">\\\")},R.prototype.renderInline=function(e,r,t){for(var n,s=\\\"\\\",o=this.rules,i=0,a=e.length;i\u003Ca;i++)void 0!==o[n=e[i].type]?s+=o[n](e,i,r,t,this):s+=this.renderToken(e,i,r);return s},R.prototype.renderInlineAsText=function(e,r,t){for(var n=\\\"\\\",s=0,o=e.length;s\u003Co;s++)\\\"text\\\"===e[s].type?n+=e[s].content:\\\"image\\\"===e[s].type?n+=this.renderInlineAsText(e[s].children,r,t):\\\"softbreak\\\"===e[s].type&&(n+=\\\"\\\\n\\\");return n},R.prototype.render=function(e,r,t){var n,s,o,i=\\\"\\\",a=this.rules;for(n=0,s=e.length;n\u003Cs;n++)\\\"inline\\\"===(o=e[n].type)?i+=this.renderInline(e[n].children,r,t):void 0!==a[o]?i+=a[e[n].type](e,n,r,t,this):i+=this.renderToken(e,n,r,t);return i};var B=R;function N(){this.__rules__=[],this.__cache__=null}N.prototype.__find__=function(e){for(var r=0;r\u003Cthis.__rules__.length;r++)if(this.__rules__[r].name===e)return r;return-1},N.prototype.__compile__=function(){var e=this,r=[\\\"\\\"];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){r.indexOf(e)\u003C0&&r.push(e)}))})),e.__cache__={},r.forEach((function(r){e.__cache__[r]=[],e.__rules__.forEach((function(t){t.enabled&&(r&&t.alt.indexOf(r)\u003C0||e.__cache__[r].push(t.fn))}))}))},N.prototype.at=function(e,r,t){var n=this.__find__(e),s=t||{};if(-1===n)throw new Error(\\\"Parser rule not found: \\\"+e);this.__rules__[n].fn=r,this.__rules__[n].alt=s.alt||[],this.__cache__=null},N.prototype.before=function(e,r,t,n){var s=this.__find__(e),o=n||{};if(-1===s)throw new Error(\\\"Parser rule not found: \\\"+e);this.__rules__.splice(s,0,{name:r,enabled:!0,fn:t,alt:o.alt||[]}),this.__cache__=null},N.prototype.after=function(e,r,t,n){var s=this.__find__(e),o=n||{};if(-1===s)throw new Error(\\\"Parser rule not found: \\\"+e);this.__rules__.splice(s+1,0,{name:r,enabled:!0,fn:t,alt:o.alt||[]}),this.__cache__=null},N.prototype.push=function(e,r,t){var n=t||{};this.__rules__.push({name:e,enabled:!0,fn:r,alt:n.alt||[]}),this.__cache__=null},N.prototype.enable=function(e,r){Array.isArray(e)||(e=[e]);var t=[];return e.forEach((function(e){var n=this.__find__(e);if(n\u003C0){if(r)return;throw new Error(\\\"Rules manager: invalid rule name \\\"+e)}this.__rules__[n].enabled=!0,t.push(e)}),this),this.__cache__=null,t},N.prototype.enableOnly=function(e,r){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,r)},N.prototype.disable=function(e,r){Array.isArray(e)||(e=[e]);var t=[];return e.forEach((function(e){var n=this.__find__(e);if(n\u003C0){if(r)return;throw new Error(\\\"Rules manager: invalid rule name \\\"+e)}this.__rules__[n].enabled=!1,t.push(e)}),this),this.__cache__=null,t},N.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]};var O=N,P=/\\\\r\\\\n?|\\\\n/g,j=/\\\\0/g,U=w.arrayReplaceAt;function V(e){return/^\u003C\\\\/a\\\\s*>/i.test(e)}var Z=/\\\\+-|\\\\.\\\\.|\\\\?\\\\?\\\\?\\\\?|!!!!|,,|--/,$=/\\\\((c|tm|r)\\\\)/i,G=/\\\\((c|tm|r)\\\\)/gi,H={c:\\\"\\\\xa9\\\",r:\\\"\\\\xae\\\",tm:\\\"\\\\u2122\\\"};function J(e,r){return H[r.toLowerCase()]}function W(e){var r,t,n=0;for(r=e.length-1;r>=0;r--)\\\"text\\\"!==(t=e[r]).type||n||(t.content=t.content.replace(G,J)),\\\"link_open\\\"===t.type&&\\\"auto\\\"===t.info&&n--,\\\"link_close\\\"===t.type&&\\\"auto\\\"===t.info&&n++}function Y(e){var r,t,n=0;for(r=e.length-1;r>=0;r--)\\\"text\\\"!==(t=e[r]).type||n||Z.test(t.content)&&(t.content=t.content.replace(/\\\\+-/g,\\\"\\\\xb1\\\").replace(/\\\\.{2,}/g,\\\"\\\\u2026\\\").replace(/([?!])\\\\u2026/g,\\\"$1..\\\").replace(/([?!]){4,}/g,\\\"$1$1$1\\\").replace(/,{2,}/g,\\\",\\\").replace(/(^|[^-])---(?=[^-]|$)/gm,\\\"$1\\\\u2014\\\").replace(/(^|\\\\s)--(?=\\\\s|$)/gm,\\\"$1\\\\u2013\\\").replace(/(^|[^-\\\\s])--(?=[^-\\\\s]|$)/gm,\\\"$1\\\\u2013\\\")),\\\"link_open\\\"===t.type&&\\\"auto\\\"===t.info&&n--,\\\"link_close\\\"===t.type&&\\\"auto\\\"===t.info&&n++}var K=w.isWhiteSpace,Q=w.isPunctChar,X=w.isMdAsciiPunct,ee=/['\\\"]/,re=/['\\\"]/g;function te(e,r,t){return e.slice(0,r)+t+e.slice(r+1)}function ne(e,r){var t,n,s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y;for(v=[],t=0;t\u003Ce.length;t++){for(n=e[t],c=e[t].level,k=v.length-1;k>=0&&!(v[k].level\u003C=c);k--);if(v.length=k+1,\\\"text\\\"===n.type){i=0,a=(s=n.content).length;e:for(;i\u003Ca&&(re.lastIndex=i,o=re.exec(s));){if(g=_=!0,i=o.index+1,b=\\\"'\\\"===o[0],u=32,o.index-1>=0)u=s.charCodeAt(o.index-1);else for(k=t-1;k>=0&&(\\\"softbreak\\\"!==e[k].type&&\\\"hardbreak\\\"!==e[k].type);k--)if(e[k].content){u=e[k].content.charCodeAt(e[k].content.length-1);break}if(p=32,i\u003Ca)p=s.charCodeAt(i);else for(k=t+1;k\u003Ce.length&&(\\\"softbreak\\\"!==e[k].type&&\\\"hardbreak\\\"!==e[k].type);k++)if(e[k].content){p=e[k].content.charCodeAt(0);break}if(h=X(u)||Q(String.fromCharCode(u)),f=X(p)||Q(String.fromCharCode(p)),d=K(u),(m=K(p))?g=!1:f&&(d||h||(g=!1)),d?_=!1:h&&(m||f||(_=!1)),34===p&&'\\\"'===o[0]&&u>=48&&u\u003C=57&&(_=g=!1),g&&_&&(g=h,_=f),g||_){if(_)for(k=v.length-1;k>=0&&(l=v[k],!(v[k].level\u003Cc));k--)if(l.single===b&&v[k].level===c){l=v[k],b?(C=r.md.options.quotes[2],y=r.md.options.quotes[3]):(C=r.md.options.quotes[0],y=r.md.options.quotes[1]),n.content=te(n.content,o.index,y),e[l.token].content=te(e[l.token].content,l.pos,C),i+=y.length-1,l.token===t&&(i+=C.length-1),a=(s=n.content).length,v.length=k;continue e}g?v.push({token:t,pos:o.index,single:b,level:c}):_&&b&&(n.content=te(n.content,o.index,\\\"\\\\u2019\\\"))}else b&&(n.content=te(n.content,o.index,\\\"\\\\u2019\\\"))}}}}function se(e,r,t){this.type=e,this.tag=r,this.attrs=null,this.map=null,this.nesting=t,this.level=0,this.children=null,this.content=\\\"\\\",this.markup=\\\"\\\",this.info=\\\"\\\",this.meta=null,this.block=!1,this.hidden=!1}se.prototype.attrIndex=function(e){var r,t,n;if(!this.attrs)return-1;for(t=0,n=(r=this.attrs).length;t\u003Cn;t++)if(r[t][0]===e)return t;return-1},se.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},se.prototype.attrSet=function(e,r){var t=this.attrIndex(e),n=[e,r];t\u003C0?this.attrPush(n):this.attrs[t]=n},se.prototype.attrGet=function(e){var r=this.attrIndex(e),t=null;return r>=0&&(t=this.attrs[r][1]),t},se.prototype.attrJoin=function(e,r){var t=this.attrIndex(e);t\u003C0?this.attrPush([e,r]):this.attrs[t][1]=this.attrs[t][1]+\\\" \\\"+r};var oe=se;function ie(e,r,t){this.src=e,this.env=t,this.tokens=[],this.inlineMode=!1,this.md=r}ie.prototype.Token=oe;var ae=ie,ce=[[\\\"normalize\\\",function(e){var r;r=(r=e.src.replace(P,\\\"\\\\n\\\")).replace(j,\\\"\\\\ufffd\\\"),e.src=r}],[\\\"block\\\",function(e){var r;e.inlineMode?((r=new e.Token(\\\"inline\\\",\\\"\\\",0)).content=e.src,r.map=[0,1],r.children=[],e.tokens.push(r)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}],[\\\"inline\\\",function(e){var r,t,n,s=e.tokens;for(t=0,n=s.length;t\u003Cn;t++)\\\"inline\\\"===(r=s[t]).type&&e.md.inline.parse(r.content,e.md,e.env,r.children)}],[\\\"linkify\\\",function(e){var r,t,n,s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b=e.tokens;if(e.md.options.linkify)for(t=0,n=b.length;t\u003Cn;t++)if(\\\"inline\\\"===b[t].type&&e.md.linkify.pretest(b[t].content))for(f=0,r=(s=b[t].children).length-1;r>=0;r--)if(\\\"link_close\\\"!==(i=s[r]).type){if(\\\"html_inline\\\"===i.type&&(k=i.content,/^\u003Ca[>\\\\s]/i.test(k)&&f>0&&f--,V(i.content)&&f++),!(f>0)&&\\\"text\\\"===i.type&&e.md.linkify.test(i.content)){for(l=i.content,_=e.md.linkify.match(l),a=[],h=i.level,p=0,_.length>0&&0===_[0].index&&r>0&&\\\"text_special\\\"===s[r-1].type&&(_=_.slice(1)),c=0;c\u003C_.length;c++)d=_[c].url,m=e.md.normalizeLink(d),e.md.validateLink(m)&&(g=_[c].text,g=_[c].schema?\\\"mailto:\\\"!==_[c].schema||/^mailto:/i.test(g)?e.md.normalizeLinkText(g):e.md.normalizeLinkText(\\\"mailto:\\\"+g).replace(/^mailto:/,\\\"\\\"):e.md.normalizeLinkText(\\\"http://\\\"+g).replace(/^http:\\\\/\\\\//,\\\"\\\"),(u=_[c].index)>p&&((o=new e.Token(\\\"text\\\",\\\"\\\",0)).content=l.slice(p,u),o.level=h,a.push(o)),(o=new e.Token(\\\"link_open\\\",\\\"a\\\",1)).attrs=[[\\\"href\\\",m]],o.level=h++,o.markup=\\\"linkify\\\",o.info=\\\"auto\\\",a.push(o),(o=new e.Token(\\\"text\\\",\\\"\\\",0)).content=g,o.level=h,a.push(o),(o=new e.Token(\\\"link_close\\\",\\\"a\\\",-1)).level=--h,o.markup=\\\"linkify\\\",o.info=\\\"auto\\\",a.push(o),p=_[c].lastIndex);p\u003Cl.length&&((o=new e.Token(\\\"text\\\",\\\"\\\",0)).content=l.slice(p),o.level=h,a.push(o)),b[t].children=s=U(s,r,a)}}else for(r--;s[r].level!==i.level&&\\\"link_open\\\"!==s[r].type;)r--}],[\\\"replacements\\\",function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)\\\"inline\\\"===e.tokens[r].type&&($.test(e.tokens[r].content)&&W(e.tokens[r].children),Z.test(e.tokens[r].content)&&Y(e.tokens[r].children))}],[\\\"smartquotes\\\",function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)\\\"inline\\\"===e.tokens[r].type&&ee.test(e.tokens[r].content)&&ne(e.tokens[r].children,e)}],[\\\"text_join\\\",function(e){var r,t,n,s,o,i,a=e.tokens;for(r=0,t=a.length;r\u003Ct;r++)if(\\\"inline\\\"===a[r].type){for(o=(n=a[r].children).length,s=0;s\u003Co;s++)\\\"text_special\\\"===n[s].type&&(n[s].type=\\\"text\\\");for(s=i=0;s\u003Co;s++)\\\"text\\\"===n[s].type&&s+1\u003Co&&\\\"text\\\"===n[s+1].type?n[s+1].content=n[s].content+n[s+1].content:(s!==i&&(n[i]=n[s]),i++);s!==i&&(n.length=i)}}]];function le(){this.ruler=new O;for(var e=0;e\u003Cce.length;e++)this.ruler.push(ce[e][0],ce[e][1])}le.prototype.process=function(e){var r,t,n;for(r=0,t=(n=this.ruler.getRules(\\\"\\\")).length;r\u003Ct;r++)n[r](e)},le.prototype.State=ae;var ue=le,pe=w.isSpace;function he(e,r){var t=e.bMarks[r]+e.tShift[r],n=e.eMarks[r];return e.src.slice(t,n)}function fe(e){var r,t=[],n=0,s=e.length,o=!1,i=0,a=\\\"\\\";for(r=e.charCodeAt(n);n\u003Cs;)124===r&&(o?(a+=e.substring(i,n-1),i=n):(t.push(a+e.substring(i,n)),a=\\\"\\\",i=n+1)),o=92===r,n++,r=e.charCodeAt(n);return t.push(a+e.substring(i)),t}var de=w.isSpace,me=w.isSpace,ge=w.isSpace;function _e(e,r){var t,n,s,o;return n=e.bMarks[r]+e.tShift[r],s=e.eMarks[r],42!==(t=e.src.charCodeAt(n++))&&45!==t&&43!==t||n\u003Cs&&(o=e.src.charCodeAt(n),!ge(o))?-1:n}function ke(e,r){var t,n=e.bMarks[r]+e.tShift[r],s=n,o=e.eMarks[r];if(s+1>=o)return-1;if((t=e.src.charCodeAt(s++))\u003C48||t>57)return-1;for(;;){if(s>=o)return-1;if(!((t=e.src.charCodeAt(s++))>=48&&t\u003C=57)){if(41===t||46===t)break;return-1}if(s-n>=10)return-1}return s\u003Co&&(t=e.src.charCodeAt(s),!ge(t))?-1:s}var be=w.normalizeReference,ve=w.isSpace,Ce=\\\"\u003C[A-Za-z][A-Za-z0-9\\\\\\\\-]*(?:\\\\\\\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\\\\\\\s*=\\\\\\\\s*(?:[^\\\\\\\"'=\u003C>`\\\\\\\\x00-\\\\\\\\x20]+|'[^']*'|\\\\\\\"[^\\\\\\\"]*\\\\\\\"))?)*\\\\\\\\s*\\\\\\\\/?>\\\",ye=\\\"\u003C\\\\\\\\/[A-Za-z][A-Za-z0-9\\\\\\\\-]*\\\\\\\\s*>\\\",Ae={HTML_TAG_RE:new RegExp(\\\"^(?:\\\"+Ce+\\\"|\\\"+ye+\\\"|\\\\x3c!----\\\\x3e|\\\\x3c!--(?:-?[^>-])(?:-?[^-])*--\\\\x3e|\u003C[?][\\\\\\\\s\\\\\\\\S]*?[?]>|\u003C![A-Z]+\\\\\\\\s+[^>]*>|\u003C!\\\\\\\\[CDATA\\\\\\\\[[\\\\\\\\s\\\\\\\\S]*?\\\\\\\\]\\\\\\\\]>)\\\"),HTML_OPEN_CLOSE_TAG_RE:new RegExp(\\\"^(?:\\\"+Ce+\\\"|\\\"+ye+\\\")\\\")},xe=Ae.HTML_OPEN_CLOSE_TAG_RE,De=[[/^\u003C(script|pre|style|textarea)(?=(\\\\s|>|$))/i,/\u003C\\\\/(script|pre|style|textarea)>/i,!0],[/^\u003C!--/,/-->/,!0],[/^\u003C\\\\?/,/\\\\?>/,!0],[/^\u003C![A-Z]/,/>/,!0],[/^\u003C!\\\\[CDATA\\\\[/,/\\\\]\\\\]>/,!0],[new RegExp(\\\"^\u003C/?(\\\"+[\\\"address\\\",\\\"article\\\",\\\"aside\\\",\\\"base\\\",\\\"basefont\\\",\\\"blockquote\\\",\\\"body\\\",\\\"caption\\\",\\\"center\\\",\\\"col\\\",\\\"colgroup\\\",\\\"dd\\\",\\\"details\\\",\\\"dialog\\\",\\\"dir\\\",\\\"div\\\",\\\"dl\\\",\\\"dt\\\",\\\"fieldset\\\",\\\"figcaption\\\",\\\"figure\\\",\\\"footer\\\",\\\"form\\\",\\\"frame\\\",\\\"frameset\\\",\\\"h1\\\",\\\"h2\\\",\\\"h3\\\",\\\"h4\\\",\\\"h5\\\",\\\"h6\\\",\\\"head\\\",\\\"header\\\",\\\"hr\\\",\\\"html\\\",\\\"iframe\\\",\\\"legend\\\",\\\"li\\\",\\\"link\\\",\\\"main\\\",\\\"menu\\\",\\\"menuitem\\\",\\\"nav\\\",\\\"noframes\\\",\\\"ol\\\",\\\"optgroup\\\",\\\"option\\\",\\\"p\\\",\\\"param\\\",\\\"section\\\",\\\"source\\\",\\\"summary\\\",\\\"table\\\",\\\"tbody\\\",\\\"td\\\",\\\"tfoot\\\",\\\"th\\\",\\\"thead\\\",\\\"title\\\",\\\"tr\\\",\\\"track\\\",\\\"ul\\\"].join(\\\"|\\\")+\\\")(?=(\\\\\\\\s|/?>|$))\\\",\\\"i\\\"),/^$/,!0],[new RegExp(xe.source+\\\"\\\\\\\\s*$\\\"),/^$/,!1]],we=w.isSpace,Ee=w.isSpace;function qe(e,r,t,n){var s,o,i,a,c,l,u,p;for(this.src=e,this.md=r,this.env=t,this.tokens=n,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType=\\\"root\\\",this.level=0,this.result=\\\"\\\",p=!1,i=a=l=u=0,c=(o=this.src).length;a\u003Cc;a++){if(s=o.charCodeAt(a),!p){if(Ee(s)){l++,9===s?u+=4-u%4:u++;continue}p=!0}10!==s&&a!==c-1||(10!==s&&a++,this.bMarks.push(i),this.eMarks.push(a),this.tShift.push(l),this.sCount.push(u),this.bsCount.push(0),p=!1,l=0,u=0,i=a+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}qe.prototype.push=function(e,r,t){var n=new oe(e,r,t);return n.block=!0,t\u003C0&&this.level--,n.level=this.level,t>0&&this.level++,this.tokens.push(n),n},qe.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},qe.prototype.skipEmptyLines=function(e){for(var r=this.lineMax;e\u003Cr&&!(this.bMarks[e]+this.tShift[e]\u003Cthis.eMarks[e]);e++);return e},qe.prototype.skipSpaces=function(e){for(var r,t=this.src.length;e\u003Ct&&(r=this.src.charCodeAt(e),Ee(r));e++);return e},qe.prototype.skipSpacesBack=function(e,r){if(e\u003C=r)return e;for(;e>r;)if(!Ee(this.src.charCodeAt(--e)))return e+1;return e},qe.prototype.skipChars=function(e,r){for(var t=this.src.length;e\u003Ct&&this.src.charCodeAt(e)===r;e++);return e},qe.prototype.skipCharsBack=function(e,r,t){if(e\u003C=t)return e;for(;e>t;)if(r!==this.src.charCodeAt(--e))return e+1;return e},qe.prototype.getLines=function(e,r,t,n){var s,o,i,a,c,l,u,p=e;if(e>=r)return\\\"\\\";for(l=new Array(r-e),s=0;p\u003Cr;p++,s++){for(o=0,u=a=this.bMarks[p],c=p+1\u003Cr||n?this.eMarks[p]+1:this.eMarks[p];a\u003Cc&&o\u003Ct;){if(i=this.src.charCodeAt(a),Ee(i))9===i?o+=4-(o+this.bsCount[p])%4:o++;else{if(!(a-u\u003Cthis.tShift[p]))break;o++}a++}l[s]=o>t?new Array(o-t+1).join(\\\" \\\")+this.src.slice(a,c):this.src.slice(a,c)}return l.join(\\\"\\\")},qe.prototype.Token=oe;var Se=qe,Fe=[[\\\"table\\\",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C;if(r+2>t)return!1;if(l=r+1,e.sCount[l]\u003Ce.blkIndent)return!1;if(e.sCount[l]-e.blkIndent>=4)return!1;if((i=e.bMarks[l]+e.tShift[l])>=e.eMarks[l])return!1;if(124!==(v=e.src.charCodeAt(i++))&&45!==v&&58!==v)return!1;if(i>=e.eMarks[l])return!1;if(124!==(C=e.src.charCodeAt(i++))&&45!==C&&58!==C&&!pe(C))return!1;if(45===v&&pe(C))return!1;for(;i\u003Ce.eMarks[l];){if(124!==(s=e.src.charCodeAt(i))&&45!==s&&58!==s&&!pe(s))return!1;i++}for(u=(o=he(e,r+1)).split(\\\"|\\\"),f=[],a=0;a\u003Cu.length;a++){if(!(d=u[a].trim())){if(0===a||a===u.length-1)continue;return!1}if(!/^:?-+:?$/.test(d))return!1;58===d.charCodeAt(d.length-1)?f.push(58===d.charCodeAt(0)?\\\"center\\\":\\\"right\\\"):58===d.charCodeAt(0)?f.push(\\\"left\\\"):f.push(\\\"\\\")}if(-1===(o=he(e,r).trim()).indexOf(\\\"|\\\"))return!1;if(e.sCount[r]-e.blkIndent>=4)return!1;if((u=fe(o)).length&&\\\"\\\"===u[0]&&u.shift(),u.length&&\\\"\\\"===u[u.length-1]&&u.pop(),0===(p=u.length)||p!==f.length)return!1;if(n)return!0;for(_=e.parentType,e.parentType=\\\"table\\\",b=e.md.block.ruler.getRules(\\\"blockquote\\\"),(h=e.push(\\\"table_open\\\",\\\"table\\\",1)).map=m=[r,0],(h=e.push(\\\"thead_open\\\",\\\"thead\\\",1)).map=[r,r+1],(h=e.push(\\\"tr_open\\\",\\\"tr\\\",1)).map=[r,r+1],a=0;a\u003Cu.length;a++)h=e.push(\\\"th_open\\\",\\\"th\\\",1),f[a]&&(h.attrs=[[\\\"style\\\",\\\"text-align:\\\"+f[a]]]),(h=e.push(\\\"inline\\\",\\\"\\\",0)).content=u[a].trim(),h.children=[],h=e.push(\\\"th_close\\\",\\\"th\\\",-1);for(h=e.push(\\\"tr_close\\\",\\\"tr\\\",-1),h=e.push(\\\"thead_close\\\",\\\"thead\\\",-1),l=r+2;l\u003Ct&&!(e.sCount[l]\u003Ce.blkIndent);l++){for(k=!1,a=0,c=b.length;a\u003Cc;a++)if(b[a](e,l,t,!0)){k=!0;break}if(k)break;if(!(o=he(e,l).trim()))break;if(e.sCount[l]-e.blkIndent>=4)break;for((u=fe(o)).length&&\\\"\\\"===u[0]&&u.shift(),u.length&&\\\"\\\"===u[u.length-1]&&u.pop(),l===r+2&&((h=e.push(\\\"tbody_open\\\",\\\"tbody\\\",1)).map=g=[r+2,0]),(h=e.push(\\\"tr_open\\\",\\\"tr\\\",1)).map=[l,l+1],a=0;a\u003Cp;a++)h=e.push(\\\"td_open\\\",\\\"td\\\",1),f[a]&&(h.attrs=[[\\\"style\\\",\\\"text-align:\\\"+f[a]]]),(h=e.push(\\\"inline\\\",\\\"\\\",0)).content=u[a]?u[a].trim():\\\"\\\",h.children=[],h=e.push(\\\"td_close\\\",\\\"td\\\",-1);h=e.push(\\\"tr_close\\\",\\\"tr\\\",-1)}return g&&(h=e.push(\\\"tbody_close\\\",\\\"tbody\\\",-1),g[1]=l),h=e.push(\\\"table_close\\\",\\\"table\\\",-1),m[1]=l,e.parentType=_,e.line=l,!0},[\\\"paragraph\\\",\\\"reference\\\"]],[\\\"code\\\",function(e,r,t){var n,s,o;if(e.sCount[r]-e.blkIndent\u003C4)return!1;for(s=n=r+1;n\u003Ct;)if(e.isEmpty(n))n++;else{if(!(e.sCount[n]-e.blkIndent>=4))break;s=++n}return e.line=s,(o=e.push(\\\"code_block\\\",\\\"code\\\",0)).content=e.getLines(r,s,4+e.blkIndent,!1)+\\\"\\\\n\\\",o.map=[r,e.line],!0}],[\\\"fence\\\",function(e,r,t,n){var s,o,i,a,c,l,u,p=!1,h=e.bMarks[r]+e.tShift[r],f=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(h+3>f)return!1;if(126!==(s=e.src.charCodeAt(h))&&96!==s)return!1;if(c=h,(o=(h=e.skipChars(h,s))-c)\u003C3)return!1;if(u=e.src.slice(c,h),i=e.src.slice(h,f),96===s&&i.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;for(a=r;!(++a>=t)&&!((h=c=e.bMarks[a]+e.tShift[a])\u003C(f=e.eMarks[a])&&e.sCount[a]\u003Ce.blkIndent);)if(e.src.charCodeAt(h)===s&&!(e.sCount[a]-e.blkIndent>=4||(h=e.skipChars(h,s))-c\u003Co||(h=e.skipSpaces(h))\u003Cf)){p=!0;break}return o=e.sCount[r],e.line=a+(p?1:0),(l=e.push(\\\"fence\\\",\\\"code\\\",0)).info=i,l.content=e.getLines(r+1,a,o,!0),l.markup=u,l.map=[r,e.line],!0},[\\\"paragraph\\\",\\\"reference\\\",\\\"blockquote\\\",\\\"list\\\"]],[\\\"blockquote\\\",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y,A,x=e.lineMax,D=e.bMarks[r]+e.tShift[r],w=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(D++))return!1;if(n)return!0;for(a=h=e.sCount[r]+1,32===e.src.charCodeAt(D)?(D++,a++,h++,s=!1,b=!0):9===e.src.charCodeAt(D)?(b=!0,(e.bsCount[r]+h)%4==3?(D++,a++,h++,s=!1):s=!0):b=!1,f=[e.bMarks[r]],e.bMarks[r]=D;D\u003Cw&&(o=e.src.charCodeAt(D),de(o));)9===o?h+=4-(h+e.bsCount[r]+(s?1:0))%4:h++,D++;for(d=[e.bsCount[r]],e.bsCount[r]=e.sCount[r]+1+(b?1:0),l=D>=w,_=[e.sCount[r]],e.sCount[r]=h-a,k=[e.tShift[r]],e.tShift[r]=D-e.bMarks[r],C=e.md.block.ruler.getRules(\\\"blockquote\\\"),g=e.parentType,e.parentType=\\\"blockquote\\\",p=r+1;p\u003Ct&&(A=e.sCount[p]\u003Ce.blkIndent,!((D=e.bMarks[p]+e.tShift[p])>=(w=e.eMarks[p])));p++)if(62!==e.src.charCodeAt(D++)||A){if(l)break;for(v=!1,i=0,c=C.length;i\u003Cc;i++)if(C[i](e,p,t,!0)){v=!0;break}if(v){e.lineMax=p,0!==e.blkIndent&&(f.push(e.bMarks[p]),d.push(e.bsCount[p]),k.push(e.tShift[p]),_.push(e.sCount[p]),e.sCount[p]-=e.blkIndent);break}f.push(e.bMarks[p]),d.push(e.bsCount[p]),k.push(e.tShift[p]),_.push(e.sCount[p]),e.sCount[p]=-1}else{for(a=h=e.sCount[p]+1,32===e.src.charCodeAt(D)?(D++,a++,h++,s=!1,b=!0):9===e.src.charCodeAt(D)?(b=!0,(e.bsCount[p]+h)%4==3?(D++,a++,h++,s=!1):s=!0):b=!1,f.push(e.bMarks[p]),e.bMarks[p]=D;D\u003Cw&&(o=e.src.charCodeAt(D),de(o));)9===o?h+=4-(h+e.bsCount[p]+(s?1:0))%4:h++,D++;l=D>=w,d.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(b?1:0),_.push(e.sCount[p]),e.sCount[p]=h-a,k.push(e.tShift[p]),e.tShift[p]=D-e.bMarks[p]}for(m=e.blkIndent,e.blkIndent=0,(y=e.push(\\\"blockquote_open\\\",\\\"blockquote\\\",1)).markup=\\\">\\\",y.map=u=[r,0],e.md.block.tokenize(e,r,p),(y=e.push(\\\"blockquote_close\\\",\\\"blockquote\\\",-1)).markup=\\\">\\\",e.lineMax=x,e.parentType=g,u[1]=e.line,i=0;i\u003Ck.length;i++)e.bMarks[i+r]=f[i],e.tShift[i+r]=k[i],e.sCount[i+r]=_[i],e.bsCount[i+r]=d[i];return e.blkIndent=m,!0},[\\\"paragraph\\\",\\\"reference\\\",\\\"blockquote\\\",\\\"list\\\"]],[\\\"hr\\\",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(42!==(s=e.src.charCodeAt(c++))&&45!==s&&95!==s)return!1;for(o=1;c\u003Cl;){if((i=e.src.charCodeAt(c++))!==s&&!me(i))return!1;i===s&&o++}return!(o\u003C3)&&(n||(e.line=r+1,(a=e.push(\\\"hr\\\",\\\"hr\\\",0)).map=[r,e.line],a.markup=Array(o+1).join(String.fromCharCode(s))),!0)},[\\\"paragraph\\\",\\\"reference\\\",\\\"blockquote\\\",\\\"list\\\"]],[\\\"list\\\",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v,C,y,A,x,D,w,E,q,S,F,L,z=!1,T=!0;if(e.sCount[r]-e.blkIndent>=4)return!1;if(e.listIndent>=0&&e.sCount[r]-e.listIndent>=4&&e.sCount[r]\u003Ce.blkIndent)return!1;if(n&&\\\"paragraph\\\"===e.parentType&&e.sCount[r]>=e.blkIndent&&(z=!0),(w=ke(e,r))>=0){if(u=!0,q=e.bMarks[r]+e.tShift[r],g=Number(e.src.slice(q,w-1)),z&&1!==g)return!1}else{if(!((w=_e(e,r))>=0))return!1;u=!1}if(z&&e.skipSpaces(w)>=e.eMarks[r])return!1;if(m=e.src.charCodeAt(w-1),n)return!0;for(d=e.tokens.length,u?(L=e.push(\\\"ordered_list_open\\\",\\\"ol\\\",1),1!==g&&(L.attrs=[[\\\"start\\\",g]])):L=e.push(\\\"bullet_list_open\\\",\\\"ul\\\",1),L.map=f=[r,0],L.markup=String.fromCharCode(m),k=r,E=!1,F=e.md.block.ruler.getRules(\\\"list\\\"),C=e.parentType,e.parentType=\\\"list\\\";k\u003Ct;){for(D=w,_=e.eMarks[k],l=b=e.sCount[k]+w-(e.bMarks[r]+e.tShift[r]);D\u003C_;){if(9===(s=e.src.charCodeAt(D)))b+=4-(b+e.bsCount[k])%4;else{if(32!==s)break;b++}D++}if((c=(o=D)>=_?1:b-l)>4&&(c=1),a=l+c,(L=e.push(\\\"list_item_open\\\",\\\"li\\\",1)).markup=String.fromCharCode(m),L.map=p=[r,0],u&&(L.info=e.src.slice(q,w-1)),x=e.tight,A=e.tShift[r],y=e.sCount[r],v=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=a,e.tight=!0,e.tShift[r]=o-e.bMarks[r],e.sCount[r]=b,o>=_&&e.isEmpty(r+1)?e.line=Math.min(e.line+2,t):e.md.block.tokenize(e,r,t,!0),e.tight&&!E||(T=!1),E=e.line-r>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=v,e.tShift[r]=A,e.sCount[r]=y,e.tight=x,(L=e.push(\\\"list_item_close\\\",\\\"li\\\",-1)).markup=String.fromCharCode(m),k=r=e.line,p[1]=k,o=e.bMarks[r],k>=t)break;if(e.sCount[k]\u003Ce.blkIndent)break;if(e.sCount[r]-e.blkIndent>=4)break;for(S=!1,i=0,h=F.length;i\u003Ch;i++)if(F[i](e,k,t,!0)){S=!0;break}if(S)break;if(u){if((w=ke(e,k))\u003C0)break;q=e.bMarks[k]+e.tShift[k]}else if((w=_e(e,k))\u003C0)break;if(m!==e.src.charCodeAt(w-1))break}return(L=u?e.push(\\\"ordered_list_close\\\",\\\"ol\\\",-1):e.push(\\\"bullet_list_close\\\",\\\"ul\\\",-1)).markup=String.fromCharCode(m),f[1]=k,e.line=k,e.parentType=C,T&&function(e,r){var t,n,s=e.level+2;for(t=r+2,n=e.tokens.length-2;t\u003Cn;t++)e.tokens[t].level===s&&\\\"paragraph_open\\\"===e.tokens[t].type&&(e.tokens[t+2].hidden=!0,e.tokens[t].hidden=!0,t+=2)}(e,d),!0},[\\\"paragraph\\\",\\\"reference\\\",\\\"blockquote\\\"]],[\\\"reference\\\",function(e,r,t,n){var s,o,i,a,c,l,u,p,h,f,d,m,g,_,k,b,v=0,C=e.bMarks[r]+e.tShift[r],y=e.eMarks[r],A=r+1;if(e.sCount[r]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(C))return!1;for(;++C\u003Cy;)if(93===e.src.charCodeAt(C)&&92!==e.src.charCodeAt(C-1)){if(C+1===y)return!1;if(58!==e.src.charCodeAt(C+1))return!1;break}for(a=e.lineMax,k=e.md.block.ruler.getRules(\\\"reference\\\"),f=e.parentType,e.parentType=\\\"reference\\\";A\u003Ca&&!e.isEmpty(A);A++)if(!(e.sCount[A]-e.blkIndent>3||e.sCount[A]\u003C0)){for(_=!1,l=0,u=k.length;l\u003Cu;l++)if(k[l](e,A,a,!0)){_=!0;break}if(_)break}for(y=(g=e.getLines(r,A,e.blkIndent,!1).trim()).length,C=1;C\u003Cy;C++){if(91===(s=g.charCodeAt(C)))return!1;if(93===s){h=C;break}(10===s||92===s&&++C\u003Cy&&10===g.charCodeAt(C))&&v++}if(h\u003C0||58!==g.charCodeAt(h+1))return!1;for(C=h+2;C\u003Cy;C++)if(10===(s=g.charCodeAt(C)))v++;else if(!ve(s))break;if(!(d=e.md.helpers.parseLinkDestination(g,C,y)).ok)return!1;if(c=e.md.normalizeLink(d.str),!e.md.validateLink(c))return!1;for(o=C=d.pos,i=v+=d.lines,m=C;C\u003Cy;C++)if(10===(s=g.charCodeAt(C)))v++;else if(!ve(s))break;for(d=e.md.helpers.parseLinkTitle(g,C,y),C\u003Cy&&m!==C&&d.ok?(b=d.str,C=d.pos,v+=d.lines):(b=\\\"\\\",C=o,v=i);C\u003Cy&&(s=g.charCodeAt(C),ve(s));)C++;if(C\u003Cy&&10!==g.charCodeAt(C)&&b)for(b=\\\"\\\",C=o,v=i;C\u003Cy&&(s=g.charCodeAt(C),ve(s));)C++;return!(C\u003Cy&&10!==g.charCodeAt(C))&&(!!(p=be(g.slice(1,h)))&&(n||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[p]&&(e.env.references[p]={title:b,href:c}),e.parentType=f,e.line=r+v+1),!0))}],[\\\"html_block\\\",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(a=e.src.slice(c,l),s=0;s\u003CDe.length&&!De[s][0].test(a);s++);if(s===De.length)return!1;if(n)return De[s][2];if(o=r+1,!De[s][1].test(a))for(;o\u003Ct&&!(e.sCount[o]\u003Ce.blkIndent);o++)if(c=e.bMarks[o]+e.tShift[o],l=e.eMarks[o],a=e.src.slice(c,l),De[s][1].test(a)){0!==a.length&&o++;break}return e.line=o,(i=e.push(\\\"html_block\\\",\\\"\\\",0)).map=[r,o],i.content=e.getLines(r,o,e.blkIndent,!0),!0},[\\\"paragraph\\\",\\\"reference\\\",\\\"blockquote\\\"]],[\\\"heading\\\",function(e,r,t,n){var s,o,i,a,c=e.bMarks[r]+e.tShift[r],l=e.eMarks[r];if(e.sCount[r]-e.blkIndent>=4)return!1;if(35!==(s=e.src.charCodeAt(c))||c>=l)return!1;for(o=1,s=e.src.charCodeAt(++c);35===s&&c\u003Cl&&o\u003C=6;)o++,s=e.src.charCodeAt(++c);return!(o>6||c\u003Cl&&!we(s))&&(n||(l=e.skipSpacesBack(l,c),(i=e.skipCharsBack(l,35,c))>c&&we(e.src.charCodeAt(i-1))&&(l=i),e.line=r+1,(a=e.push(\\\"heading_open\\\",\\\"h\\\"+String(o),1)).markup=\\\"########\\\".slice(0,o),a.map=[r,e.line],(a=e.push(\\\"inline\\\",\\\"\\\",0)).content=e.src.slice(c,l).trim(),a.map=[r,e.line],a.children=[],(a=e.push(\\\"heading_close\\\",\\\"h\\\"+String(o),-1)).markup=\\\"########\\\".slice(0,o)),!0)},[\\\"paragraph\\\",\\\"reference\\\",\\\"blockquote\\\"]],[\\\"lheading\\\",function(e,r,t){var n,s,o,i,a,c,l,u,p,h,f=r+1,d=e.md.block.ruler.getRules(\\\"paragraph\\\");if(e.sCount[r]-e.blkIndent>=4)return!1;for(h=e.parentType,e.parentType=\\\"paragraph\\\";f\u003Ct&&!e.isEmpty(f);f++)if(!(e.sCount[f]-e.blkIndent>3)){if(e.sCount[f]>=e.blkIndent&&(c=e.bMarks[f]+e.tShift[f])\u003C(l=e.eMarks[f])&&(45===(p=e.src.charCodeAt(c))||61===p)&&(c=e.skipChars(c,p),(c=e.skipSpaces(c))>=l)){u=61===p?1:2;break}if(!(e.sCount[f]\u003C0)){for(s=!1,o=0,i=d.length;o\u003Ci;o++)if(d[o](e,f,t,!0)){s=!0;break}if(s)break}}return!!u&&(n=e.getLines(r,f,e.blkIndent,!1).trim(),e.line=f+1,(a=e.push(\\\"heading_open\\\",\\\"h\\\"+String(u),1)).markup=String.fromCharCode(p),a.map=[r,e.line],(a=e.push(\\\"inline\\\",\\\"\\\",0)).content=n,a.map=[r,e.line-1],a.children=[],(a=e.push(\\\"heading_close\\\",\\\"h\\\"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=h,!0)}],[\\\"paragraph\\\",function(e,r){var t,n,s,o,i,a,c=r+1,l=e.md.block.ruler.getRules(\\\"paragraph\\\"),u=e.lineMax;for(a=e.parentType,e.parentType=\\\"paragraph\\\";c\u003Cu&&!e.isEmpty(c);c++)if(!(e.sCount[c]-e.blkIndent>3||e.sCount[c]\u003C0)){for(n=!1,s=0,o=l.length;s\u003Co;s++)if(l[s](e,c,u,!0)){n=!0;break}if(n)break}return t=e.getLines(r,c,e.blkIndent,!1).trim(),e.line=c,(i=e.push(\\\"paragraph_open\\\",\\\"p\\\",1)).map=[r,e.line],(i=e.push(\\\"inline\\\",\\\"\\\",0)).content=t,i.map=[r,e.line],i.children=[],i=e.push(\\\"paragraph_close\\\",\\\"p\\\",-1),e.parentType=a,!0}]];function Le(){this.ruler=new O;for(var e=0;e\u003CFe.length;e++)this.ruler.push(Fe[e][0],Fe[e][1],{alt:(Fe[e][2]||[]).slice()})}Le.prototype.tokenize=function(e,r,t){for(var n,s=this.ruler.getRules(\\\"\\\"),o=s.length,i=r,a=!1,c=e.md.options.maxNesting;i\u003Ct&&(e.line=i=e.skipEmptyLines(i),!(i>=t))&&!(e.sCount[i]\u003Ce.blkIndent);){if(e.level>=c){e.line=t;break}for(n=0;n\u003Co&&!s[n](e,i,t,!1);n++);e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(i=e.line)\u003Ct&&e.isEmpty(i)&&(a=!0,i++,e.line=i)}},Le.prototype.parse=function(e,r,t,n){var s;e&&(s=new this.State(e,r,t,n),this.tokenize(s,s.line,s.lineMax))},Le.prototype.State=Se;var ze=Le;function Te(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}for(var Ie=/(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i,Me=w.isSpace,Re=w.isSpace,Be=[],Ne=0;Ne\u003C256;Ne++)Be.push(0);\\\"\\\\\\\\!\\\\\\\"#$%&'()*+,./:;\u003C=>?@[]^_`{|}~-\\\".split(\\\"\\\").forEach((function(e){Be[e.charCodeAt(0)]=1}));function Oe(e,r){var t,n,s,o,i,a=[],c=r.length;for(t=0;t\u003Cc;t++)126===(s=r[t]).marker&&-1!==s.end&&(o=r[s.end],(i=e.tokens[s.token]).type=\\\"s_open\\\",i.tag=\\\"s\\\",i.nesting=1,i.markup=\\\"~~\\\",i.content=\\\"\\\",(i=e.tokens[o.token]).type=\\\"s_close\\\",i.tag=\\\"s\\\",i.nesting=-1,i.markup=\\\"~~\\\",i.content=\\\"\\\",\\\"text\\\"===e.tokens[o.token-1].type&&\\\"~\\\"===e.tokens[o.token-1].content&&a.push(o.token-1));for(;a.length;){for(n=(t=a.pop())+1;n\u003Ce.tokens.length&&\\\"s_close\\\"===e.tokens[n].type;)n++;t!==--n&&(i=e.tokens[n],e.tokens[n]=e.tokens[t],e.tokens[t]=i)}}var Pe={tokenize:function(e,r){var t,n,s,o,i=e.pos,a=e.src.charCodeAt(i);if(r)return!1;if(126!==a)return!1;if(s=(n=e.scanDelims(e.pos,!0)).length,o=String.fromCharCode(a),s\u003C2)return!1;for(s%2&&(e.push(\\\"text\\\",\\\"\\\",0).content=o,s--),t=0;t\u003Cs;t+=2)e.push(\\\"text\\\",\\\"\\\",0).content=o+o,e.delimiters.push({marker:a,length:0,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},postProcess:function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(Oe(e,e.delimiters),r=0;r\u003Cn;r++)t[r]&&t[r].delimiters&&Oe(e,t[r].delimiters)}};function je(e,r){var t,n,s,o,i,a;for(t=r.length-1;t>=0;t--)95!==(n=r[t]).marker&&42!==n.marker||-1!==n.end&&(s=r[n.end],a=t>0&&r[t-1].end===n.end+1&&r[t-1].marker===n.marker&&r[t-1].token===n.token-1&&r[n.end+1].token===s.token+1,i=String.fromCharCode(n.marker),(o=e.tokens[n.token]).type=a?\\\"strong_open\\\":\\\"em_open\\\",o.tag=a?\\\"strong\\\":\\\"em\\\",o.nesting=1,o.markup=a?i+i:i,o.content=\\\"\\\",(o=e.tokens[s.token]).type=a?\\\"strong_close\\\":\\\"em_close\\\",o.tag=a?\\\"strong\\\":\\\"em\\\",o.nesting=-1,o.markup=a?i+i:i,o.content=\\\"\\\",a&&(e.tokens[r[t-1].token].content=\\\"\\\",e.tokens[r[n.end+1].token].content=\\\"\\\",t--))}var Ue={tokenize:function(e,r){var t,n,s=e.pos,o=e.src.charCodeAt(s);if(r)return!1;if(95!==o&&42!==o)return!1;for(n=e.scanDelims(e.pos,42===o),t=0;t\u003Cn.length;t++)e.push(\\\"text\\\",\\\"\\\",0).content=String.fromCharCode(o),e.delimiters.push({marker:o,length:n.length,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},postProcess:function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(je(e,e.delimiters),r=0;r\u003Cn;r++)t[r]&&t[r].delimiters&&je(e,t[r].delimiters)}},Ve=w.normalizeReference,Ze=w.isSpace,$e=w.normalizeReference,Ge=w.isSpace,He=/^([a-zA-Z0-9.!#$%&'*+\\\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Je=/^([a-zA-Z][a-zA-Z0-9+.\\\\-]{1,31}):([^\u003C>\\\\x00-\\\\x20]*)$/,We=Ae.HTML_TAG_RE;var Ye=w.has,Ke=w.isValidEntityCode,Qe=w.fromCodePoint,Xe=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,er=/^&([a-z][a-z0-9]{1,31});/i;function rr(e,r){var t,n,s,o,i,a,c,l,u={},p=r.length;if(p){var h=0,f=-2,d=[];for(t=0;t\u003Cp;t++)if(s=r[t],d.push(0),r[h].marker===s.marker&&f===s.token-1||(h=t),f=s.token,s.length=s.length||0,s.close){for(u.hasOwnProperty(s.marker)||(u[s.marker]=[-1,-1,-1,-1,-1,-1]),i=u[s.marker][(s.open?3:0)+s.length%3],a=n=h-d[h]-1;n>i;n-=d[n]+1)if((o=r[n]).marker===s.marker&&o.open&&o.end\u003C0&&(c=!1,(o.close||s.open)&&(o.length+s.length)%3==0&&(o.length%3==0&&s.length%3==0||(c=!0)),!c)){l=n>0&&!r[n-1].open?d[n-1]+1:0,d[t]=t-n+l,d[n]=l,s.open=!1,o.end=t,o.close=!1,a=-1,f=-2;break}-1!==a&&(u[s.marker][(s.open?3:0)+(s.length||0)%3]=a)}}}var tr=w.isWhiteSpace,nr=w.isPunctChar,sr=w.isMdAsciiPunct;function or(e,r,t,n){this.src=e,this.env=t,this.md=r,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=\\\"\\\",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0}or.prototype.pushPending=function(){var e=new oe(\\\"text\\\",\\\"\\\",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending=\\\"\\\",e},or.prototype.push=function(e,r,t){this.pending&&this.pushPending();var n=new oe(e,r,t),s=null;return t\u003C0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),n.level=this.level,t>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],s={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(s),n},or.prototype.scanDelims=function(e,r){var t,n,s,o,i,a,c,l,u,p=e,h=!0,f=!0,d=this.posMax,m=this.src.charCodeAt(e);for(t=e>0?this.src.charCodeAt(e-1):32;p\u003Cd&&this.src.charCodeAt(p)===m;)p++;return s=p-e,n=p\u003Cd?this.src.charCodeAt(p):32,c=sr(t)||nr(String.fromCharCode(t)),u=sr(n)||nr(String.fromCharCode(n)),a=tr(t),(l=tr(n))?h=!1:u&&(a||c||(h=!1)),a?f=!1:c&&(l||u||(f=!1)),r?(o=h,i=f):(o=h&&(!f||c),i=f&&(!h||u)),{can_open:o,can_close:i,length:s}},or.prototype.Token=oe;var ir=or,ar=[[\\\"text\\\",function(e,r){for(var t=e.pos;t\u003Ce.posMax&&!Te(e.src.charCodeAt(t));)t++;return t!==e.pos&&(r||(e.pending+=e.src.slice(e.pos,t)),e.pos=t,!0)}],[\\\"linkify\\\",function(e,r){var t,n,s,o,i,a,c;return!!e.md.options.linkify&&(!(e.linkLevel>0)&&(!((t=e.pos)+3>e.posMax)&&(58===e.src.charCodeAt(t)&&(47===e.src.charCodeAt(t+1)&&(47===e.src.charCodeAt(t+2)&&(!!(n=e.pending.match(Ie))&&(s=n[1],!!(o=e.md.linkify.matchAtStart(e.src.slice(t-s.length)))&&(i=(i=o.url).replace(/\\\\*+$/,\\\"\\\"),a=e.md.normalizeLink(i),!!e.md.validateLink(a)&&(r||(e.pending=e.pending.slice(0,-s.length),(c=e.push(\\\"link_open\\\",\\\"a\\\",1)).attrs=[[\\\"href\\\",a]],c.markup=\\\"linkify\\\",c.info=\\\"auto\\\",(c=e.push(\\\"text\\\",\\\"\\\",0)).content=e.md.normalizeLinkText(i),(c=e.push(\\\"link_close\\\",\\\"a\\\",-1)).markup=\\\"linkify\\\",c.info=\\\"auto\\\"),e.pos+=i.length-s.length,!0)))))))))}],[\\\"newline\\\",function(e,r){var t,n,s,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(t=e.pending.length-1,n=e.posMax,!r)if(t>=0&&32===e.pending.charCodeAt(t))if(t>=1&&32===e.pending.charCodeAt(t-1)){for(s=t-1;s>=1&&32===e.pending.charCodeAt(s-1);)s--;e.pending=e.pending.slice(0,s),e.push(\\\"hardbreak\\\",\\\"br\\\",0)}else e.pending=e.pending.slice(0,-1),e.push(\\\"softbreak\\\",\\\"br\\\",0);else e.push(\\\"softbreak\\\",\\\"br\\\",0);for(o++;o\u003Cn&&Me(e.src.charCodeAt(o));)o++;return e.pos=o,!0}],[\\\"escape\\\",function(e,r){var t,n,s,o,i,a=e.pos,c=e.posMax;if(92!==e.src.charCodeAt(a))return!1;if(++a>=c)return!1;if(10===(t=e.src.charCodeAt(a))){for(r||e.push(\\\"hardbreak\\\",\\\"br\\\",0),a++;a\u003Cc&&(t=e.src.charCodeAt(a),Re(t));)a++;return e.pos=a,!0}return o=e.src[a],t>=55296&&t\u003C=56319&&a+1\u003Cc&&(n=e.src.charCodeAt(a+1))>=56320&&n\u003C=57343&&(o+=e.src[a+1],a++),s=\\\"\\\\\\\\\\\"+o,r||(i=e.push(\\\"text_special\\\",\\\"\\\",0),t\u003C256&&0!==Be[t]?i.content=o:i.content=s,i.markup=s,i.info=\\\"escape\\\"),e.pos=a+1,!0}],[\\\"backticks\\\",function(e,r){var t,n,s,o,i,a,c,l,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(t=u,u++,n=e.posMax;u\u003Cn&&96===e.src.charCodeAt(u);)u++;if(c=(s=e.src.slice(t,u)).length,e.backticksScanned&&(e.backticks[c]||0)\u003C=t)return r||(e.pending+=s),e.pos+=c,!0;for(i=a=u;-1!==(i=e.src.indexOf(\\\"`\\\",a));){for(a=i+1;a\u003Cn&&96===e.src.charCodeAt(a);)a++;if((l=a-i)===c)return r||((o=e.push(\\\"code_inline\\\",\\\"code\\\",0)).markup=s,o.content=e.src.slice(u,i).replace(/\\\\n/g,\\\" \\\").replace(/^ (.+) $/,\\\"$1\\\")),e.pos=a,!0;e.backticks[l]=i}return e.backticksScanned=!0,r||(e.pending+=s),e.pos+=c,!0}],[\\\"strikethrough\\\",Pe.tokenize],[\\\"emphasis\\\",Ue.tokenize],[\\\"link\\\",function(e,r){var t,n,s,o,i,a,c,l,u=\\\"\\\",p=\\\"\\\",h=e.pos,f=e.posMax,d=e.pos,m=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(i=e.pos+1,(o=e.md.helpers.parseLinkLabel(e,e.pos,!0))\u003C0)return!1;if((a=o+1)\u003Cf&&40===e.src.charCodeAt(a)){for(m=!1,a++;a\u003Cf&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);if(a>=f)return!1;if(d=a,(c=e.md.helpers.parseLinkDestination(e.src,a,e.posMax)).ok){for(u=e.md.normalizeLink(c.str),e.md.validateLink(u)?a=c.pos:u=\\\"\\\",d=a;a\u003Cf&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);if(c=e.md.helpers.parseLinkTitle(e.src,a,e.posMax),a\u003Cf&&d!==a&&c.ok)for(p=c.str,a=c.pos;a\u003Cf&&(n=e.src.charCodeAt(a),Ze(n)||10===n);a++);}(a>=f||41!==e.src.charCodeAt(a))&&(m=!0),a++}if(m){if(void 0===e.env.references)return!1;if(a\u003Cf&&91===e.src.charCodeAt(a)?(d=a+1,(a=e.md.helpers.parseLinkLabel(e,a))>=0?s=e.src.slice(d,a++):a=o+1):a=o+1,s||(s=e.src.slice(i,o)),!(l=e.env.references[Ve(s)]))return e.pos=h,!1;u=l.href,p=l.title}return r||(e.pos=i,e.posMax=o,e.push(\\\"link_open\\\",\\\"a\\\",1).attrs=t=[[\\\"href\\\",u]],p&&t.push([\\\"title\\\",p]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push(\\\"link_close\\\",\\\"a\\\",-1)),e.pos=a,e.posMax=f,!0}],[\\\"image\\\",function(e,r){var t,n,s,o,i,a,c,l,u,p,h,f,d,m=\\\"\\\",g=e.pos,_=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(a=e.pos+2,(i=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))\u003C0)return!1;if((c=i+1)\u003C_&&40===e.src.charCodeAt(c)){for(c++;c\u003C_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);if(c>=_)return!1;for(d=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok&&(m=e.md.normalizeLink(u.str),e.md.validateLink(m)?c=u.pos:m=\\\"\\\"),d=c;c\u003C_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c\u003C_&&d!==c&&u.ok)for(p=u.str,c=u.pos;c\u003C_&&(n=e.src.charCodeAt(c),Ge(n)||10===n);c++);else p=\\\"\\\";if(c>=_||41!==e.src.charCodeAt(c))return e.pos=g,!1;c++}else{if(void 0===e.env.references)return!1;if(c\u003C_&&91===e.src.charCodeAt(c)?(d=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?o=e.src.slice(d,c++):c=i+1):c=i+1,o||(o=e.src.slice(a,i)),!(l=e.env.references[$e(o)]))return e.pos=g,!1;m=l.href,p=l.title}return r||(s=e.src.slice(a,i),e.md.inline.parse(s,e.md,e.env,f=[]),(h=e.push(\\\"image\\\",\\\"img\\\",0)).attrs=t=[[\\\"src\\\",m],[\\\"alt\\\",\\\"\\\"]],h.children=f,h.content=s,p&&t.push([\\\"title\\\",p])),e.pos=c,e.posMax=_,!0}],[\\\"autolink\\\",function(e,r){var t,n,s,o,i,a,c=e.pos;if(60!==e.src.charCodeAt(c))return!1;for(i=e.pos,a=e.posMax;;){if(++c>=a)return!1;if(60===(o=e.src.charCodeAt(c)))return!1;if(62===o)break}return t=e.src.slice(i+1,c),Je.test(t)?(n=e.md.normalizeLink(t),!!e.md.validateLink(n)&&(r||((s=e.push(\\\"link_open\\\",\\\"a\\\",1)).attrs=[[\\\"href\\\",n]],s.markup=\\\"autolink\\\",s.info=\\\"auto\\\",(s=e.push(\\\"text\\\",\\\"\\\",0)).content=e.md.normalizeLinkText(t),(s=e.push(\\\"link_close\\\",\\\"a\\\",-1)).markup=\\\"autolink\\\",s.info=\\\"auto\\\"),e.pos+=t.length+2,!0)):!!He.test(t)&&(n=e.md.normalizeLink(\\\"mailto:\\\"+t),!!e.md.validateLink(n)&&(r||((s=e.push(\\\"link_open\\\",\\\"a\\\",1)).attrs=[[\\\"href\\\",n]],s.markup=\\\"autolink\\\",s.info=\\\"auto\\\",(s=e.push(\\\"text\\\",\\\"\\\",0)).content=e.md.normalizeLinkText(t),(s=e.push(\\\"link_close\\\",\\\"a\\\",-1)).markup=\\\"autolink\\\",s.info=\\\"auto\\\"),e.pos+=t.length+2,!0))}],[\\\"html_inline\\\",function(e,r){var t,n,s,o,i,a=e.pos;return!!e.md.options.html&&(s=e.posMax,!(60!==e.src.charCodeAt(a)||a+2>=s)&&(!(33!==(t=e.src.charCodeAt(a+1))&&63!==t&&47!==t&&!function(e){var r=32|e;return r>=97&&r\u003C=122}(t))&&(!!(n=e.src.slice(a).match(We))&&(r||((o=e.push(\\\"html_inline\\\",\\\"\\\",0)).content=e.src.slice(a,a+n[0].length),i=o.content,/^\u003Ca[>\\\\s]/i.test(i)&&e.linkLevel++,function(e){return/^\u003C\\\\/a\\\\s*>/i.test(e)}(o.content)&&e.linkLevel--),e.pos+=n[0].length,!0))))}],[\\\"entity\\\",function(e,t){var n,s,o,i=e.pos,a=e.posMax;if(38!==e.src.charCodeAt(i))return!1;if(i+1>=a)return!1;if(35===e.src.charCodeAt(i+1)){if(s=e.src.slice(i).match(Xe))return t||(n=\\\"x\\\"===s[1][0].toLowerCase()?parseInt(s[1].slice(1),16):parseInt(s[1],10),(o=e.push(\\\"text_special\\\",\\\"\\\",0)).content=Ke(n)?Qe(n):Qe(65533),o.markup=s[0],o.info=\\\"entity\\\"),e.pos+=s[0].length,!0}else if((s=e.src.slice(i).match(er))&&Ye(r,s[1]))return t||((o=e.push(\\\"text_special\\\",\\\"\\\",0)).content=r[s[1]],o.markup=s[0],o.info=\\\"entity\\\"),e.pos+=s[0].length,!0;return!1}]],cr=[[\\\"balance_pairs\\\",function(e){var r,t=e.tokens_meta,n=e.tokens_meta.length;for(rr(0,e.delimiters),r=0;r\u003Cn;r++)t[r]&&t[r].delimiters&&rr(0,t[r].delimiters)}],[\\\"strikethrough\\\",Pe.postProcess],[\\\"emphasis\\\",Ue.postProcess],[\\\"fragments_join\\\",function(e){var r,t,n=0,s=e.tokens,o=e.tokens.length;for(r=t=0;r\u003Co;r++)s[r].nesting\u003C0&&n--,s[r].level=n,s[r].nesting>0&&n++,\\\"text\\\"===s[r].type&&r+1\u003Co&&\\\"text\\\"===s[r+1].type?s[r+1].content=s[r].content+s[r+1].content:(r!==t&&(s[t]=s[r]),t++);r!==t&&(s.length=t)}]];function lr(){var e;for(this.ruler=new O,e=0;e\u003Car.length;e++)this.ruler.push(ar[e][0],ar[e][1]);for(this.ruler2=new O,e=0;e\u003Ccr.length;e++)this.ruler2.push(cr[e][0],cr[e][1])}lr.prototype.skipToken=function(e){var r,t,n=e.pos,s=this.ruler.getRules(\\\"\\\"),o=s.length,i=e.md.options.maxNesting,a=e.cache;if(void 0===a[n]){if(e.level\u003Ci)for(t=0;t\u003Co&&(e.level++,r=s[t](e,!0),e.level--,!r);t++);else e.pos=e.posMax;r||e.pos++,a[n]=e.pos}else e.pos=a[n]},lr.prototype.tokenize=function(e){for(var r,t,n=this.ruler.getRules(\\\"\\\"),s=n.length,o=e.posMax,i=e.md.options.maxNesting;e.pos\u003Co;){if(e.level\u003Ci)for(t=0;t\u003Cs&&!(r=n[t](e,!1));t++);if(r){if(e.pos>=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},lr.prototype.parse=function(e,r,t,n){var s,o,i,a=new this.State(e,r,t,n);for(this.tokenize(a),i=(o=this.ruler2.getRules(\\\"\\\")).length,s=0;s\u003Ci;s++)o[s](a)},lr.prototype.State=ir;var ur=lr;function pr(e){var r=Array.prototype.slice.call(arguments,1);return r.forEach((function(r){r&&Object.keys(r).forEach((function(t){e[t]=r[t]}))})),e}function hr(e){return Object.prototype.toString.call(e)}function fr(e){return\\\"[object Function]\\\"===hr(e)}function dr(e){return e.replace(/[.?*+^$[\\\\]\\\\\\\\(){}|-]/g,\\\"\\\\\\\\$&\\\")}var mr={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var gr={\\\"http:\\\":{validate:function(e,r,t){var n=e.slice(r);return t.re.http||(t.re.http=new RegExp(\\\"^\\\\\\\\/\\\\\\\\/\\\"+t.re.src_auth+t.re.src_host_port_strict+t.re.src_path,\\\"i\\\")),t.re.http.test(n)?n.match(t.re.http)[0].length:0}},\\\"https:\\\":\\\"http:\\\",\\\"ftp:\\\":\\\"http:\\\",\\\"//\\\":{validate:function(e,r,t){var n=e.slice(r);return t.re.no_http||(t.re.no_http=new RegExp(\\\"^\\\"+t.re.src_auth+\\\"(?:localhost|(?:(?:\\\"+t.re.src_domain+\\\")\\\\\\\\.)+\\\"+t.re.src_domain_root+\\\")\\\"+t.re.src_port+t.re.src_host_terminator+t.re.src_path,\\\"i\\\")),t.re.no_http.test(n)?r>=3&&\\\":\\\"===e[r-3]||r>=3&&\\\"/\\\"===e[r-3]?0:n.match(t.re.no_http)[0].length:0}},\\\"mailto:\\\":{validate:function(e,r,t){var n=e.slice(r);return t.re.mailto||(t.re.mailto=new RegExp(\\\"^\\\"+t.re.src_email_name+\\\"@\\\"+t.re.src_host_strict,\\\"i\\\")),t.re.mailto.test(n)?n.match(t.re.mailto)[0].length:0}}},_r=\\\"biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\\\\u0440\\\\u0444\\\".split(\\\"|\\\");function kr(e){var r=e.re=function(e){var r={};return e=e||{},r.src_Any=y.source,r.src_Cc=A.source,r.src_Z=x.source,r.src_P=t.source,r.src_ZPCc=[r.src_Z,r.src_P,r.src_Cc].join(\\\"|\\\"),r.src_ZCc=[r.src_Z,r.src_Cc].join(\\\"|\\\"),r.src_pseudo_letter=\\\"(?:(?![>\u003C\\\\uff5c]|\\\"+r.src_ZPCc+\\\")\\\"+r.src_Any+\\\")\\\",r.src_ip4=\\\"(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\",r.src_auth=\\\"(?:(?:(?!\\\"+r.src_ZCc+\\\"|[@/\\\\\\\\[\\\\\\\\]()]).)+@)?\\\",r.src_port=\\\"(?::(?:6(?:[0-4]\\\\\\\\d{3}|5(?:[0-4]\\\\\\\\d{2}|5(?:[0-2]\\\\\\\\d|3[0-5])))|[1-5]?\\\\\\\\d{1,4}))?\\\",r.src_host_terminator=\\\"(?=$|[>\u003C\\\\uff5c]|\\\"+r.src_ZPCc+\\\")(?!\\\"+(e[\\\"---\\\"]?\\\"-(?!--)|\\\":\\\"-|\\\")+\\\"_|:\\\\\\\\d|\\\\\\\\.-|\\\\\\\\.(?!$|\\\"+r.src_ZPCc+\\\"))\\\",r.src_path=\\\"(?:[/?#](?:(?!\\\"+r.src_ZCc+\\\"|[>\u003C\\\\uff5c]|[()[\\\\\\\\]{}.,\\\\\\\"'?!\\\\\\\\-;]).|\\\\\\\\[(?:(?!\\\"+r.src_ZCc+\\\"|\\\\\\\\]).)*\\\\\\\\]|\\\\\\\\((?:(?!\\\"+r.src_ZCc+\\\"|[)]).)*\\\\\\\\)|\\\\\\\\{(?:(?!\\\"+r.src_ZCc+'|[}]).)*\\\\\\\\}|\\\\\\\\\\\"(?:(?!'+r.src_ZCc+'|[\\\"]).)+\\\\\\\\\\\"|\\\\\\\\\\\\'(?:(?!'+r.src_ZCc+\\\"|[']).)+\\\\\\\\'|\\\\\\\\'(?=\\\"+r.src_pseudo_letter+\\\"|[-])|\\\\\\\\.{2,}[a-zA-Z0-9%/&]|\\\\\\\\.(?!\\\"+r.src_ZCc+\\\"|[.]|$)|\\\"+(e[\\\"---\\\"]?\\\"\\\\\\\\-(?!--(?:[^-]|$))(?:-*)|\\\":\\\"\\\\\\\\-+|\\\")+\\\",(?!\\\"+r.src_ZCc+\\\"|$)|;(?!\\\"+r.src_ZCc+\\\"|$)|\\\\\\\\!+(?!\\\"+r.src_ZCc+\\\"|[!]|$)|\\\\\\\\?(?!\\\"+r.src_ZCc+\\\"|[?]|$))+|\\\\\\\\/)?\\\",r.src_email_name='[\\\\\\\\-;:&=\\\\\\\\+\\\\\\\\$,\\\\\\\\.a-zA-Z0-9_][\\\\\\\\-;:&=\\\\\\\\+\\\\\\\\$,\\\\\\\\\\\"\\\\\\\\.a-zA-Z0-9_]*',r.src_xn=\\\"xn--[a-z0-9\\\\\\\\-]{1,59}\\\",r.src_domain_root=\\\"(?:\\\"+r.src_xn+\\\"|\\\"+r.src_pseudo_letter+\\\"{1,63})\\\",r.src_domain=\\\"(?:\\\"+r.src_xn+\\\"|(?:\\\"+r.src_pseudo_letter+\\\")|(?:\\\"+r.src_pseudo_letter+\\\"(?:-|\\\"+r.src_pseudo_letter+\\\"){0,61}\\\"+r.src_pseudo_letter+\\\"))\\\",r.src_host=\\\"(?:(?:(?:(?:\\\"+r.src_domain+\\\")\\\\\\\\.)*\\\"+r.src_domain+\\\"))\\\",r.tpl_host_fuzzy=\\\"(?:\\\"+r.src_ip4+\\\"|(?:(?:(?:\\\"+r.src_domain+\\\")\\\\\\\\.)+(?:%TLDS%)))\\\",r.tpl_host_no_ip_fuzzy=\\\"(?:(?:(?:\\\"+r.src_domain+\\\")\\\\\\\\.)+(?:%TLDS%))\\\",r.src_host_strict=r.src_host+r.src_host_terminator,r.tpl_host_fuzzy_strict=r.tpl_host_fuzzy+r.src_host_terminator,r.src_host_port_strict=r.src_host+r.src_port+r.src_host_terminator,r.tpl_host_port_fuzzy_strict=r.tpl_host_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_port_no_ip_fuzzy_strict=r.tpl_host_no_ip_fuzzy+r.src_port+r.src_host_terminator,r.tpl_host_fuzzy_test=\\\"localhost|www\\\\\\\\.|\\\\\\\\.\\\\\\\\d{1,3}\\\\\\\\.|(?:\\\\\\\\.(?:%TLDS%)(?:\\\"+r.src_ZPCc+\\\"|>|$))\\\",r.tpl_email_fuzzy='(^|[>\u003C\\\\uff5c]|\\\"|\\\\\\\\(|'+r.src_ZCc+\\\")(\\\"+r.src_email_name+\\\"@\\\"+r.tpl_host_fuzzy_strict+\\\")\\\",r.tpl_link_fuzzy=\\\"(^|(?![.:/\\\\\\\\-_@])(?:[$+\u003C=>^`|\\\\uff5c]|\\\"+r.src_ZPCc+\\\"))((?![$+\u003C=>^`|\\\\uff5c])\\\"+r.tpl_host_port_fuzzy_strict+r.src_path+\\\")\\\",r.tpl_link_no_ip_fuzzy=\\\"(^|(?![.:/\\\\\\\\-_@])(?:[$+\u003C=>^`|\\\\uff5c]|\\\"+r.src_ZPCc+\\\"))((?![$+\u003C=>^`|\\\\uff5c])\\\"+r.tpl_host_port_no_ip_fuzzy_strict+r.src_path+\\\")\\\",r}(e.__opts__),n=e.__tlds__.slice();function s(e){return e.replace(\\\"%TLDS%\\\",r.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push(\\\"a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]\\\"),n.push(r.src_xn),r.src_tlds=n.join(\\\"|\\\"),r.email_fuzzy=RegExp(s(r.tpl_email_fuzzy),\\\"i\\\"),r.link_fuzzy=RegExp(s(r.tpl_link_fuzzy),\\\"i\\\"),r.link_no_ip_fuzzy=RegExp(s(r.tpl_link_no_ip_fuzzy),\\\"i\\\"),r.host_fuzzy_test=RegExp(s(r.tpl_host_fuzzy_test),\\\"i\\\");var o=[];function i(e,r){throw new Error('(LinkifyIt) Invalid schema \\\"'+e+'\\\": '+r)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(r){var t=e.__schemas__[r];if(null!==t){var n={validate:null,link:null};if(e.__compiled__[r]=n,\\\"[object Object]\\\"===hr(t))return!function(e){return\\\"[object RegExp]\\\"===hr(e)}(t.validate)?fr(t.validate)?n.validate=t.validate:i(r,t):n.validate=function(e){return function(r,t){var n=r.slice(t);return e.test(n)?n.match(e)[0].length:0}}(t.validate),void(fr(t.normalize)?n.normalize=t.normalize:t.normalize?i(r,t):n.normalize=function(e,r){r.normalize(e)});!function(e){return\\\"[object String]\\\"===hr(e)}(t)?i(r,t):o.push(r)}})),o.forEach((function(r){e.__compiled__[e.__schemas__[r]]&&(e.__compiled__[r].validate=e.__compiled__[e.__schemas__[r]].validate,e.__compiled__[r].normalize=e.__compiled__[e.__schemas__[r]].normalize)})),e.__compiled__[\\\"\\\"]={validate:null,normalize:function(e,r){r.normalize(e)}};var a=Object.keys(e.__compiled__).filter((function(r){return r.length>0&&e.__compiled__[r]})).map(dr).join(\\\"|\\\");e.re.schema_test=RegExp(\\\"(^|(?!_)(?:[>\u003C\\\\uff5c]|\\\"+r.src_ZPCc+\\\"))(\\\"+a+\\\")\\\",\\\"i\\\"),e.re.schema_search=RegExp(\\\"(^|(?!_)(?:[>\u003C\\\\uff5c]|\\\"+r.src_ZPCc+\\\"))(\\\"+a+\\\")\\\",\\\"ig\\\"),e.re.schema_at_start=RegExp(\\\"^\\\"+e.re.schema_search.source,\\\"i\\\"),e.re.pretest=RegExp(\\\"(\\\"+e.re.schema_test.source+\\\")|(\\\"+e.re.host_fuzzy_test.source+\\\")|@\\\",\\\"i\\\"),function(e){e.__index__=-1,e.__text_cache__=\\\"\\\"}(e)}function br(e,r){var t=e.__index__,n=e.__last_index__,s=e.__text_cache__.slice(t,n);this.schema=e.__schema__.toLowerCase(),this.index=t+r,this.lastIndex=n+r,this.raw=s,this.text=s,this.url=s}function vr(e,r){var t=new br(e,r);return e.__compiled__[t.schema].normalize(t,e),t}function Cr(e,r){if(!(this instanceof Cr))return new Cr(e,r);var t;r||(t=e,Object.keys(t||{}).reduce((function(e,r){return e||mr.hasOwnProperty(r)}),!1)&&(r=e,e={})),this.__opts__=pr({},mr,r),this.__index__=-1,this.__last_index__=-1,this.__schema__=\\\"\\\",this.__text_cache__=\\\"\\\",this.__schemas__=pr({},gr,e),this.__compiled__={},this.__tlds__=_r,this.__tlds_replaced__=!1,this.re={},kr(this)}Cr.prototype.add=function(e,r){return this.__schemas__[e]=r,kr(this),this},Cr.prototype.set=function(e){return this.__opts__=pr(this.__opts__,e),this},Cr.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var r,t,n,s,o,i,a,c;if(this.re.schema_test.test(e))for((a=this.re.schema_search).lastIndex=0;null!==(r=a.exec(e));)if(s=this.testSchemaAt(e,r[2],a.lastIndex)){this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__[\\\"http:\\\"]&&(c=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__\u003C0||c\u003Cthis.__index__)&&null!==(t=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(o=t.index+t[1].length,(this.__index__\u003C0||o\u003Cthis.__index__)&&(this.__schema__=\\\"\\\",this.__index__=o,this.__last_index__=t.index+t[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__[\\\"mailto:\\\"]&&e.indexOf(\\\"@\\\")>=0&&null!==(n=e.match(this.re.email_fuzzy))&&(o=n.index+n[1].length,i=n.index+n[0].length,(this.__index__\u003C0||o\u003Cthis.__index__||o===this.__index__&&i>this.__last_index__)&&(this.__schema__=\\\"mailto:\\\",this.__index__=o,this.__last_index__=i)),this.__index__>=0},Cr.prototype.pretest=function(e){return this.re.pretest.test(e)},Cr.prototype.testSchemaAt=function(e,r,t){return this.__compiled__[r.toLowerCase()]?this.__compiled__[r.toLowerCase()].validate(e,t,this):0},Cr.prototype.match=function(e){var r=0,t=[];this.__index__>=0&&this.__text_cache__===e&&(t.push(vr(this,r)),r=this.__last_index__);for(var n=r?e.slice(r):e;this.test(n);)t.push(vr(this,r)),n=n.slice(this.__last_index__),r+=this.__last_index__;return t.length?t:null},Cr.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;var r=this.re.schema_at_start.exec(e);if(!r)return null;var t=this.testSchemaAt(e,r[2],r[0].length);return t?(this.__schema__=r[2],this.__index__=r.index+r[1].length,this.__last_index__=r.index+r[0].length+t,vr(this,0)):null},Cr.prototype.tlds=function(e,r){return e=Array.isArray(e)?e:[e],r?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,r,t){return e!==t[r-1]})).reverse(),kr(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,kr(this),this)},Cr.prototype.normalize=function(e){e.schema||(e.url=\\\"http://\\\"+e.url),\\\"mailto:\\\"!==e.schema||/^mailto:/i.test(e.url)||(e.url=\\\"mailto:\\\"+e.url)},Cr.prototype.onCompile=function(){};var yr=Cr,Ar=2147483647,xr=36,Dr=/^xn--/,wr=/[^\\\\x20-\\\\x7E]/,Er=/[\\\\x2E\\\\u3002\\\\uFF0E\\\\uFF61]/g,qr={overflow:\\\"Overflow: input needs wider integers to process\\\",\\\"not-basic\\\":\\\"Illegal input >= 0x80 (not a basic code point)\\\",\\\"invalid-input\\\":\\\"Invalid input\\\"},Sr=Math.floor,Fr=String.fromCharCode;\\n/*! https://mths.be/punycode v1.4.1 by @mathias */function Lr(e){throw new RangeError(qr[e])}function zr(e,r){for(var t=e.length,n=[];t--;)n[t]=r(e[t]);return n}function Tr(e,r){var t=e.split(\\\"@\\\"),n=\\\"\\\";return t.length>1&&(n=t[0]+\\\"@\\\",e=t[1]),n+zr((e=e.replace(Er,\\\".\\\")).split(\\\".\\\"),r).join(\\\".\\\")}function Ir(e){for(var r,t,n=[],s=0,o=e.length;s\u003Co;)(r=e.charCodeAt(s++))>=55296&&r\u003C=56319&&s\u003Co?56320==(64512&(t=e.charCodeAt(s++)))?n.push(((1023&r)\u003C\u003C10)+(1023&t)+65536):(n.push(r),s--):n.push(r);return n}function Mr(e){return zr(e,(function(e){var r=\\\"\\\";return e>65535&&(r+=Fr((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=Fr(e)})).join(\\\"\\\")}function Rr(e,r){return e+22+75*(e\u003C26)-((0!=r)\u003C\u003C5)}function Br(e,r,t){var n=0;for(e=t?Sr(e/700):e>>1,e+=Sr(e/r);e>455;n+=xr)e=Sr(e/35);return Sr(n+36*e/(e+38))}function Nr(e){var r,t,n,s,o,i,a,c,l,u,p,h=[],f=e.length,d=0,m=128,g=72;for((t=e.lastIndexOf(\\\"-\\\"))\u003C0&&(t=0),n=0;n\u003Ct;++n)e.charCodeAt(n)>=128&&Lr(\\\"not-basic\\\"),h.push(e.charCodeAt(n));for(s=t>0?t+1:0;s\u003Cf;){for(o=d,i=1,a=xr;s>=f&&Lr(\\\"invalid-input\\\"),((c=(p=e.charCodeAt(s++))-48\u003C10?p-22:p-65\u003C26?p-65:p-97\u003C26?p-97:xr)>=xr||c>Sr((Ar-d)/i))&&Lr(\\\"overflow\\\"),d+=c*i,!(c\u003C(l=a\u003C=g?1:a>=g+26?26:a-g));a+=xr)i>Sr(Ar/(u=xr-l))&&Lr(\\\"overflow\\\"),i*=u;g=Br(d-o,r=h.length+1,0==o),Sr(d/r)>Ar-m&&Lr(\\\"overflow\\\"),m+=Sr(d/r),d%=r,h.splice(d++,0,m)}return Mr(h)}function Or(e){var r,t,n,s,o,i,a,c,l,u,p,h,f,d,m,g=[];for(h=(e=Ir(e)).length,r=128,t=0,o=72,i=0;i\u003Ch;++i)(p=e[i])\u003C128&&g.push(Fr(p));for(n=s=g.length,s&&g.push(\\\"-\\\");n\u003Ch;){for(a=Ar,i=0;i\u003Ch;++i)(p=e[i])>=r&&p\u003Ca&&(a=p);for(a-r>Sr((Ar-t)/(f=n+1))&&Lr(\\\"overflow\\\"),t+=(a-r)*f,r=a,i=0;i\u003Ch;++i)if((p=e[i])\u003Cr&&++t>Ar&&Lr(\\\"overflow\\\"),p==r){for(c=t,l=xr;!(c\u003C(u=l\u003C=o?1:l>=o+26?26:l-o));l+=xr)m=c-u,d=xr-u,g.push(Fr(Rr(u+m%d,0))),c=Sr(m/d);g.push(Fr(Rr(c,0))),o=Br(t,f,n==s),t=0,++n}++t,++r}return g.join(\\\"\\\")}function Pr(e){return Tr(e,(function(e){return Dr.test(e)?Nr(e.slice(4).toLowerCase()):e}))}function jr(e){return Tr(e,(function(e){return wr.test(e)?\\\"xn--\\\"+Or(e):e}))}var Ur=\\\"1.4.1\\\",Vr={decode:Ir,encode:Mr},Zr={version:Ur,ucs2:Vr,toASCII:jr,toUnicode:Pr,encode:Or,decode:Nr},$r=e(Object.freeze({__proto__:null,decode:Nr,encode:Or,toUnicode:Pr,toASCII:jr,version:Ur,ucs2:Vr,default:Zr})),Gr={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\\\"language-\\\",linkify:!1,typographer:!1,quotes:\\\"\\\\u201c\\\\u201d\\\\u2018\\\\u2019\\\",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\\\"language-\\\",linkify:!1,typographer:!1,quotes:\\\"\\\\u201c\\\\u201d\\\\u2018\\\\u2019\\\",highlight:null,maxNesting:20},components:{core:{rules:[\\\"normalize\\\",\\\"block\\\",\\\"inline\\\",\\\"text_join\\\"]},block:{rules:[\\\"paragraph\\\"]},inline:{rules:[\\\"text\\\"],rules2:[\\\"balance_pairs\\\",\\\"fragments_join\\\"]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:\\\"language-\\\",linkify:!1,typographer:!1,quotes:\\\"\\\\u201c\\\\u201d\\\\u2018\\\\u2019\\\",highlight:null,maxNesting:20},components:{core:{rules:[\\\"normalize\\\",\\\"block\\\",\\\"inline\\\",\\\"text_join\\\"]},block:{rules:[\\\"blockquote\\\",\\\"code\\\",\\\"fence\\\",\\\"heading\\\",\\\"hr\\\",\\\"html_block\\\",\\\"lheading\\\",\\\"list\\\",\\\"reference\\\",\\\"paragraph\\\"]},inline:{rules:[\\\"autolink\\\",\\\"backticks\\\",\\\"emphasis\\\",\\\"entity\\\",\\\"escape\\\",\\\"html_inline\\\",\\\"image\\\",\\\"link\\\",\\\"newline\\\",\\\"text\\\"],rules2:[\\\"balance_pairs\\\",\\\"emphasis\\\",\\\"fragments_join\\\"]}}}},Hr=/^(vbscript|javascript|file|data):/,Jr=/^data:image\\\\/(gif|png|jpeg|webp);/;function Wr(e){var r=e.trim().toLowerCase();return!Hr.test(r)||!!Jr.test(r)}var Yr=[\\\"http:\\\",\\\"https:\\\",\\\"mailto:\\\"];function Kr(e){var r=C.parse(e,!0);if(r.hostname&&(!r.protocol||Yr.indexOf(r.protocol)>=0))try{r.hostname=$r.toASCII(r.hostname)}catch(e){}return C.encode(C.format(r))}function Qr(e){var r=C.parse(e,!0);if(r.hostname&&(!r.protocol||Yr.indexOf(r.protocol)>=0))try{r.hostname=$r.toUnicode(r.hostname)}catch(e){}return C.decode(C.format(r),C.decode.defaultChars+\\\"%\\\")}function Xr(e,r){if(!(this instanceof Xr))return new Xr(e,r);r||w.isString(e)||(r=e||{},e=\\\"default\\\"),this.inline=new ur,this.block=new ze,this.core=new ue,this.renderer=new B,this.linkify=new yr,this.validateLink=Wr,this.normalizeLink=Kr,this.normalizeLinkText=Qr,this.utils=w,this.helpers=w.assign({},L),this.options={},this.configure(e),r&&this.set(r)}return Xr.prototype.set=function(e){return w.assign(this.options,e),this},Xr.prototype.configure=function(e){var r,t=this;if(w.isString(e)&&!(e=Gr[r=e]))throw new Error('Wrong `markdown-it` preset \\\"'+r+'\\\", check name');if(!e)throw new Error(\\\"Wrong `markdown-it` preset, can't be empty\\\");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach((function(r){e.components[r].rules&&t[r].ruler.enableOnly(e.components[r].rules),e.components[r].rules2&&t[r].ruler2.enableOnly(e.components[r].rules2)})),this},Xr.prototype.enable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),[\\\"core\\\",\\\"block\\\",\\\"inline\\\"].forEach((function(r){t=t.concat(this[r].ruler.enable(e,!0))}),this),t=t.concat(this.inline.ruler2.enable(e,!0));var n=e.filter((function(e){return t.indexOf(e)\u003C0}));if(n.length&&!r)throw new Error(\\\"MarkdownIt. Failed to enable unknown rule(s): \\\"+n);return this},Xr.prototype.disable=function(e,r){var t=[];Array.isArray(e)||(e=[e]),[\\\"core\\\",\\\"block\\\",\\\"inline\\\"].forEach((function(r){t=t.concat(this[r].ruler.disable(e,!0))}),this),t=t.concat(this.inline.ruler2.disable(e,!0));var n=e.filter((function(e){return t.indexOf(e)\u003C0}));if(n.length&&!r)throw new Error(\\\"MarkdownIt. Failed to disable unknown rule(s): \\\"+n);return this},Xr.prototype.use=function(e){var r=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,r),this},Xr.prototype.parse=function(e,r){if(\\\"string\\\"!=typeof e)throw new Error(\\\"Input data should be a String\\\");var t=new this.core.State(e,this,r);return this.core.process(t),t.tokens},Xr.prototype.render=function(e,r){return r=r||{},this.renderer.render(this.parse(e,r),this.options,r)},Xr.prototype.parseInline=function(e,r){var t=new this.core.State(e,this,r);return t.inlineMode=!0,this.core.process(t),t.tokens},Xr.prototype.renderInline=function(e,r){return r=r||{},this.renderer.render(this.parseInline(e,r),this.options,r)},Xr}));\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it.js\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/markdown-it-deflist.js\":{\"text\":\"/*!\\n\\nmarkdown-it-deflist\\nhttps://github.com/markdown-it/markdown-it-deflist\\n\\n*/\\n!function(e){if(\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module)module.exports=e();else if(\\\"function\\\"==typeof define&&define.amd)define([],e);else{(\\\"undefined\\\"!=typeof window?window:\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:this).markdownitDeflist=e()}}((function(){return function e(t,n,r){function i(f,d){if(!n[f]){if(!t[f]){var s=\\\"function\\\"==typeof require&&require;if(!d&&s)return s(f,!0);if(o)return o(f,!0);var u=new Error(\\\"Cannot find module '\\\"+f+\\\"'\\\");throw u.code=\\\"MODULE_NOT_FOUND\\\",u}var a=n[f]={exports:{}};t[f][0].call(a.exports,(function(e){return i(t[f][1][e]||e)}),a,a.exports,e,t,n,r)}return n[f].exports}for(var o=\\\"function\\\"==typeof require&&require,f=0;f\u003Cr.length;f++)i(r[f]);return i}({\\\"/\\\":[function(e,t,n){\\\"use strict\\\";t.exports=function(e){var t=e.utils.isSpace;function n(e,t){var n,r,i=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];return i>=o||126!==(r=e.src.charCodeAt(i++))&&58!==r||i===(n=e.skipSpaces(i))||n>=o?-1:i}e.block.ruler.before(\\\"paragraph\\\",\\\"deflist\\\",(function(e,r,i,o){var f,d,s,u,a,l,p,k,c,h,b,y,m,g,C,I,v,_,w,x;if(o)return!(e.ddIndent\u003C0)&&n(e,r)>=0;if((c=r+1)>=i)return!1;if(e.isEmpty(c)&&++c>=i)return!1;if(e.sCount[c]\u003Ce.blkIndent)return!1;if((d=n(e,c))\u003C0)return!1;p=e.tokens.length,w=!0,(x=e.push(\\\"dl_open\\\",\\\"dl\\\",1)).map=l=[r,0],u=r,s=c;e:for(;;){for(_=!1,(x=e.push(\\\"dt_open\\\",\\\"dt\\\",1)).map=[u,u],(x=e.push(\\\"inline\\\",\\\"\\\",0)).map=[u,u],x.content=e.getLines(u,u+1,e.blkIndent,!1).trim(),x.children=[],x=e.push(\\\"dt_close\\\",\\\"dt\\\",-1);;){for((x=e.push(\\\"dd_open\\\",\\\"dd\\\",1)).map=a=[c,0],v=d,k=e.eMarks[s],h=e.sCount[s]+d-(e.bMarks[s]+e.tShift[s]);v\u003Ck&&(f=e.src.charCodeAt(v),t(f));)9===f?h+=4-h%4:h++,v++;if(d=v,I=e.tight,b=e.ddIndent,y=e.blkIndent,C=e.tShift[s],g=e.sCount[s],m=e.parentType,e.blkIndent=e.ddIndent=e.sCount[s]+2,e.tShift[s]=d-e.bMarks[s],e.sCount[s]=h,e.tight=!0,e.parentType=\\\"deflist\\\",e.md.block.tokenize(e,s,i,!0),e.tight&&!_||(w=!1),_=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=C,e.sCount[s]=g,e.tight=I,e.parentType=m,e.blkIndent=y,e.ddIndent=b,x=e.push(\\\"dd_close\\\",\\\"dd\\\",-1),a[1]=c=e.line,c>=i)break e;if(e.sCount[c]\u003Ce.blkIndent)break e;if((d=n(e,c))\u003C0)break;s=c}if(c>=i)break;if(u=c,e.isEmpty(u))break;if(e.sCount[u]\u003Ce.blkIndent)break;if((s=u+1)>=i)break;if(e.isEmpty(s)&&s++,s>=i)break;if(e.sCount[s]\u003Ce.blkIndent)break;if((d=n(e,s))\u003C0)break}return x=e.push(\\\"dl_close\\\",\\\"dl\\\",-1),l[1]=c,e.line=c,w&&function(e,t){var n,r,i=e.level+2;for(n=t+2,r=e.tokens.length-2;n\u003Cr;n++)e.tokens[n].level===i&&\\\"paragraph_open\\\"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,p),!0}),{alt:[\\\"paragraph\\\",\\\"reference\\\",\\\"blockquote\\\"]})}},{}]},{},[])(\\\"/\\\")}));\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it-deflist.js\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/markdown-it-footnote.js\":{\"text\":\"!function(e){if(\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module)module.exports=e();else if(\\\"function\\\"==typeof define&&define.amd)define([],e);else{(\\\"undefined\\\"!=typeof window?window:\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:this).markdownitFootnote=e()}}(function(){return function(){return function e(o,t,n){function r(f,l){if(!t[f]){if(!o[f]){var i=\\\"function\\\"==typeof require&&require;if(!l&&i)return i(f,!0);if(s)return s(f,!0);var u=new Error(\\\"Cannot find module '\\\"+f+\\\"'\\\");throw u.code=\\\"MODULE_NOT_FOUND\\\",u}var a=t[f]={exports:{}};o[f][0].call(a.exports,function(e){return r(o[f][1][e]||e)},a,a.exports,e,o,t,n)}return t[f].exports}for(var s=\\\"function\\\"==typeof require&&require,f=0;f\u003Cn.length;f++)r(n[f]);return r}}()({1:[function(e,o,t){\\\"use strict\\\";function n(e,o,t,n){var r=Number(e[o].meta.id+1).toString(),s=\\\"\\\";return\\\"string\\\"==typeof n.docId&&(s=\\\"-\\\"+n.docId+\\\"-\\\"),s+r}function r(e,o){var t=Number(e[o].meta.id+1).toString();return e[o].meta.subId>0&&(t+=\\\":\\\"+e[o].meta.subId),\\\"[\\\"+t+\\\"]\\\"}function s(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r),f=r.rules.footnote_caption(e,o,t,n,r),l=s;return e[o].meta.subId>0&&(l+=\\\":\\\"+e[o].meta.subId),'\u003Csup class=\\\"footnote-ref\\\">\u003Ca href=\\\"#fn'+s+'\\\" id=\\\"fnref'+l+'\\\">'+f+\\\"\u003C/a>\u003C/sup>\\\"}function f(e,o,t){return(t.xhtmlOut?'\u003Chr class=\\\"footnotes-sep\\\" />\\\\n':'\u003Chr class=\\\"footnotes-sep\\\">\\\\n')+'\u003Csection class=\\\"footnotes\\\">\\\\n\u003Col class=\\\"footnotes-list\\\">\\\\n'}function l(){return\\\"\u003C/ol>\\\\n\u003C/section>\\\\n\\\"}function i(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r);return e[o].meta.subId>0&&(s+=\\\":\\\"+e[o].meta.subId),'\u003Cli id=\\\"fn'+s+'\\\" class=\\\"footnote-item\\\">'}function u(){return\\\"\u003C/li>\\\\n\\\"}function a(e,o,t,n,r){var s=r.rules.footnote_anchor_name(e,o,t,n,r);return e[o].meta.subId>0&&(s+=\\\":\\\"+e[o].meta.subId),' \u003Ca href=\\\"#fnref'+s+'\\\" class=\\\"footnote-backref\\\">\\\\u21a9\\\\ufe0e\u003C/a>'}o.exports=function(e){var o=e.helpers.parseLinkLabel,t=e.utils.isSpace;e.renderer.rules.footnote_ref=s,e.renderer.rules.footnote_block_open=f,e.renderer.rules.footnote_block_close=l,e.renderer.rules.footnote_open=i,e.renderer.rules.footnote_close=u,e.renderer.rules.footnote_anchor=a,e.renderer.rules.footnote_caption=r,e.renderer.rules.footnote_anchor_name=n,e.block.ruler.before(\\\"reference\\\",\\\"footnote_def\\\",function(e,o,n,r){var s,f,l,i,u,a,c,p,d,h,k,b=e.bMarks[o]+e.tShift[o],v=e.eMarks[o];if(b+4>v)return!1;if(91!==e.src.charCodeAt(b))return!1;if(94!==e.src.charCodeAt(b+1))return!1;for(u=b+2;u\u003Cv;u++){if(32===e.src.charCodeAt(u))return!1;if(93===e.src.charCodeAt(u))break}if(u===b+2)return!1;if(u+1>=v||58!==e.src.charCodeAt(++u))return!1;if(r)return!0;for(u++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),a=e.src.slice(b+2,u-2),e.env.footnotes.refs[\\\":\\\"+a]=-1,(c=new e.Token(\\\"footnote_reference_open\\\",\\\"\\\",1)).meta={label:a},c.level=e.level++,e.tokens.push(c),s=e.bMarks[o],f=e.tShift[o],l=e.sCount[o],i=e.parentType,k=u,p=d=e.sCount[o]+u-(e.bMarks[o]+e.tShift[o]);u\u003Cv&&(h=e.src.charCodeAt(u),t(h));)9===h?d+=4-d%4:d++,u++;return e.tShift[o]=u-k,e.sCount[o]=d-p,e.bMarks[o]=k,e.blkIndent+=4,e.parentType=\\\"footnote\\\",e.sCount[o]\u003Ce.blkIndent&&(e.sCount[o]+=e.blkIndent),e.md.block.tokenize(e,o,n,!0),e.parentType=i,e.blkIndent-=4,e.tShift[o]=f,e.sCount[o]=l,e.bMarks[o]=s,(c=new e.Token(\\\"footnote_reference_close\\\",\\\"\\\",-1)).level=--e.level,e.tokens.push(c),!0},{alt:[\\\"paragraph\\\",\\\"reference\\\"]}),e.inline.ruler.after(\\\"image\\\",\\\"footnote_inline\\\",function(e,t){var n,r,s,f,l=e.posMax,i=e.pos;return!(i+2>=l||94!==e.src.charCodeAt(i)||91!==e.src.charCodeAt(i+1)||(n=i+2,(r=o(e,i+1))\u003C0||(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),s=e.env.footnotes.list.length,e.md.inline.parse(e.src.slice(n,r),e.md,e.env,f=[]),e.push(\\\"footnote_ref\\\",\\\"\\\",0).meta={id:s},e.env.footnotes.list[s]={content:e.src.slice(n,r),tokens:f}),e.pos=r+1,e.posMax=l,0)))}),e.inline.ruler.after(\\\"footnote_inline\\\",\\\"footnote_ref\\\",function(e,o){var t,n,r,s,f=e.posMax,l=e.pos;if(l+3>f)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;for(n=l+2;n\u003Cf;n++){if(32===e.src.charCodeAt(n))return!1;if(10===e.src.charCodeAt(n))return!1;if(93===e.src.charCodeAt(n))break}return!(n===l+2||n>=f||(n++,t=e.src.slice(l+2,n-1),void 0===e.env.footnotes.refs[\\\":\\\"+t]||(o||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[\\\":\\\"+t]\u003C0?(r=e.env.footnotes.list.length,e.env.footnotes.list[r]={label:t,count:0},e.env.footnotes.refs[\\\":\\\"+t]=r):r=e.env.footnotes.refs[\\\":\\\"+t],s=e.env.footnotes.list[r].count,e.env.footnotes.list[r].count++,e.push(\\\"footnote_ref\\\",\\\"\\\",0).meta={id:r,subId:s,label:t}),e.pos=n,e.posMax=f,0)))}),e.core.ruler.after(\\\"inline\\\",\\\"footnote_tail\\\",function(e){var o,t,n,r,s,f,l,i,u,a,c=!1,p={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return\\\"footnote_reference_open\\\"===e.type?(c=!0,u=[],a=e.meta.label,!1):\\\"footnote_reference_close\\\"===e.type?(c=!1,p[\\\":\\\"+a]=u,!1):(c&&u.push(e),!c)}),e.env.footnotes.list)){for(f=e.env.footnotes.list,l=new e.Token(\\\"footnote_block_open\\\",\\\"\\\",1),e.tokens.push(l),o=0,t=f.length;o\u003Ct;o++){for((l=new e.Token(\\\"footnote_open\\\",\\\"\\\",1)).meta={id:o,label:f[o].label},e.tokens.push(l),f[o].tokens?(i=[],(l=new e.Token(\\\"paragraph_open\\\",\\\"p\\\",1)).block=!0,i.push(l),(l=new e.Token(\\\"inline\\\",\\\"\\\",0)).children=f[o].tokens,l.content=f[o].content,i.push(l),(l=new e.Token(\\\"paragraph_close\\\",\\\"p\\\",-1)).block=!0,i.push(l)):f[o].label&&(i=p[\\\":\\\"+f[o].label]),i&&(e.tokens=e.tokens.concat(i)),s=\\\"paragraph_close\\\"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,r=f[o].count>0?f[o].count:1,n=0;n\u003Cr;n++)(l=new e.Token(\\\"footnote_anchor\\\",\\\"\\\",0)).meta={id:o,subId:n,label:f[o].label},e.tokens.push(l);s&&e.tokens.push(s),l=new e.Token(\\\"footnote_close\\\",\\\"\\\",-1),e.tokens.push(l)}l=new e.Token(\\\"footnote_block_close\\\",\\\"\\\",-1),e.tokens.push(l)}})}},{}]},{},[1])(1)});\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it-footnote.js\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/markdown-it-ins.js\":{\"text\":\"/*! markdown-it-ins 3.0.1 https://github.com/markdown-it/markdown-it-mark @license MIT */\\n!function(e,n){\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module?module.exports=n():\\\"function\\\"==typeof define&&define.amd?define(n):(e=\\\"undefined\\\"!=typeof globalThis?globalThis:e||self).markdownitIns=n()}(this,(function(){\\\"use strict\\\";return function(e){function n(e,n){var t,o,s,i,r,l=[],f=n.length;for(t=0;t\u003Cf;t++)43===(s=n[t]).marker&&-1!==s.end&&(i=n[s.end],(r=e.tokens[s.token]).type=\\\"ins_open\\\",r.tag=\\\"ins\\\",r.nesting=1,r.markup=\\\"++\\\",r.content=\\\"\\\",(r=e.tokens[i.token]).type=\\\"ins_close\\\",r.tag=\\\"ins\\\",r.nesting=-1,r.markup=\\\"++\\\",r.content=\\\"\\\",\\\"text\\\"===e.tokens[i.token-1].type&&\\\"+\\\"===e.tokens[i.token-1].content&&l.push(i.token-1));for(;l.length;){for(o=(t=l.pop())+1;o\u003Ce.tokens.length&&\\\"ins_close\\\"===e.tokens[o].type;)o++;t!==--o&&(r=e.tokens[o],e.tokens[o]=e.tokens[t],e.tokens[t]=r)}}e.inline.ruler.before(\\\"emphasis\\\",\\\"ins\\\",(function(e,n){var t,o,s,i,r=e.pos,l=e.src.charCodeAt(r);if(n)return!1;if(43!==l)return!1;if(s=(o=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(l),s\u003C2)return!1;for(s%2&&(e.push(\\\"text\\\",\\\"\\\",0).content=i,s--),t=0;t\u003Cs;t+=2)e.push(\\\"text\\\",\\\"\\\",0).content=i+i,(o.can_open||o.can_close)&&e.delimiters.push({marker:l,length:0,jump:t/2,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});return e.pos+=o.length,!0})),e.inline.ruler2.before(\\\"emphasis\\\",\\\"ins\\\",(function(e){var t,o=e.tokens_meta,s=(e.tokens_meta||[]).length;for(n(e,e.delimiters),t=0;t\u003Cs;t++)o[t]&&o[t].delimiters&&n(e,o[t].delimiters)}))}}));\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it-ins.js\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/markdown-it-mark.js\":{\"text\":\"/*! markdown-it-mark 3.0.1 https://github.com/markdown-it/markdown-it-mark @license MIT */\\n!function(e,n){\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module?module.exports=n():\\\"function\\\"==typeof define&&define.amd?define(n):(e=\\\"undefined\\\"!=typeof globalThis?globalThis:e||self).markdownitMark=n()}(this,(function(){\\\"use strict\\\";return function(e){function n(e,n){var t,o,r,s,i,a=[],k=n.length;for(t=0;t\u003Ck;t++)61===(r=n[t]).marker&&-1!==r.end&&(s=n[r.end],(i=e.tokens[r.token]).type=\\\"mark_open\\\",i.tag=\\\"mark\\\",i.nesting=1,i.markup=\\\"==\\\",i.content=\\\"\\\",(i=e.tokens[s.token]).type=\\\"mark_close\\\",i.tag=\\\"mark\\\",i.nesting=-1,i.markup=\\\"==\\\",i.content=\\\"\\\",\\\"text\\\"===e.tokens[s.token-1].type&&\\\"=\\\"===e.tokens[s.token-1].content&&a.push(s.token-1));for(;a.length;){for(o=(t=a.pop())+1;o\u003Ce.tokens.length&&\\\"mark_close\\\"===e.tokens[o].type;)o++;t!==--o&&(i=e.tokens[o],e.tokens[o]=e.tokens[t],e.tokens[t]=i)}}e.inline.ruler.before(\\\"emphasis\\\",\\\"mark\\\",(function(e,n){var t,o,r,s,i=e.pos,a=e.src.charCodeAt(i);if(n)return!1;if(61!==a)return!1;if(r=(o=e.scanDelims(e.pos,!0)).length,s=String.fromCharCode(a),r\u003C2)return!1;for(r%2&&(e.push(\\\"text\\\",\\\"\\\",0).content=s,r--),t=0;t\u003Cr;t+=2)e.push(\\\"text\\\",\\\"\\\",0).content=s+s,(o.can_open||o.can_close)&&e.delimiters.push({marker:a,length:0,jump:t/2,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});return e.pos+=o.length,!0})),e.inline.ruler2.before(\\\"emphasis\\\",\\\"mark\\\",(function(e){var t,o=e.tokens_meta,r=(e.tokens_meta||[]).length;for(n(e,e.delimiters),t=0;t\u003Cr;t++)o[t]&&o[t].delimiters&&n(e,o[t].delimiters)}))}}));\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it-mark.js\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/markdown-it-sub.js\":{\"text\":\"/*! markdown-it-sub 1.0.0 https://github.com//markdown-it/markdown-it-sub @license MIT */\\n!function(e){if(\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module)module.exports=e();else if(\\\"function\\\"==typeof define&&define.amd)define([],e);else{var r;r=\\\"undefined\\\"!=typeof window?window:\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:this,r.markdownitSub=e()}}(function(){return function e(r,o,n){function t(i,u){if(!o[i]){if(!r[i]){var f=\\\"function\\\"==typeof require&&require;if(!u&&f)return f(i,!0);if(s)return s(i,!0);var p=new Error(\\\"Cannot find module '\\\"+i+\\\"'\\\");throw p.code=\\\"MODULE_NOT_FOUND\\\",p}var a=o[i]={exports:{}};r[i][0].call(a.exports,function(e){var o=r[i][1][e];return t(o?o:e)},a,a.exports,e,r,o,n)}return o[i].exports}for(var s=\\\"function\\\"==typeof require&&require,i=0;i\u003Cn.length;i++)t(n[i]);return t}({1:[function(e,r){\\\"use strict\\\";function o(e,r){var o,t,s,i=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(r)return!1;if(u+2>=i)return!1;for(e.pos=u+1;e.pos\u003Ci;){if(126===e.src.charCodeAt(e.pos)){o=!0;break}e.md.inline.skipToken(e)}return o&&u+1!==e.pos?(t=e.src.slice(u+1,e.pos),t.match(/(^|[^\\\\\\\\])(\\\\\\\\\\\\\\\\)*\\\\s/)?(e.pos=u,!1):(e.posMax=e.pos,e.pos=u+1,s=e.push(\\\"sub_open\\\",\\\"sub\\\",1),s.markup=\\\"~\\\",s=e.push(\\\"text\\\",\\\"\\\",0),s.content=t.replace(n,\\\"$1\\\"),s=e.push(\\\"sub_close\\\",\\\"sub\\\",-1),s.markup=\\\"~\\\",e.pos=e.posMax+1,e.posMax=i,!0)):(e.pos=u,!1)}var n=/\\\\\\\\([ \\\\\\\\!\\\"#$%&'()*+,.\\\\/:;\u003C=>?@[\\\\]^_`{|}~-])/g;r.exports=function(e){e.inline.ruler.after(\\\"emphasis\\\",\\\"sub\\\",o)}},{}]},{},[1])(1)});\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it-sub.js\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/markdown-it-sup.js\":{\"text\":\"/*! markdown-it-sup 1.0.0 https://github.com//markdown-it/markdown-it-sup @license MIT */\\n!function(e){if(\\\"object\\\"==typeof exports&&\\\"undefined\\\"!=typeof module)module.exports=e();else if(\\\"function\\\"==typeof define&&define.amd)define([],e);else{var r;r=\\\"undefined\\\"!=typeof window?window:\\\"undefined\\\"!=typeof global?global:\\\"undefined\\\"!=typeof self?self:this,r.markdownitSup=e()}}(function(){return function e(r,o,n){function t(i,p){if(!o[i]){if(!r[i]){var u=\\\"function\\\"==typeof require&&require;if(!p&&u)return u(i,!0);if(s)return s(i,!0);var f=new Error(\\\"Cannot find module '\\\"+i+\\\"'\\\");throw f.code=\\\"MODULE_NOT_FOUND\\\",f}var a=o[i]={exports:{}};r[i][0].call(a.exports,function(e){var o=r[i][1][e];return t(o?o:e)},a,a.exports,e,r,o,n)}return o[i].exports}for(var s=\\\"function\\\"==typeof require&&require,i=0;i\u003Cn.length;i++)t(n[i]);return t}({1:[function(e,r){\\\"use strict\\\";function o(e,r){var o,t,s,i=e.posMax,p=e.pos;if(94!==e.src.charCodeAt(p))return!1;if(r)return!1;if(p+2>=i)return!1;for(e.pos=p+1;e.pos\u003Ci;){if(94===e.src.charCodeAt(e.pos)){o=!0;break}e.md.inline.skipToken(e)}return o&&p+1!==e.pos?(t=e.src.slice(p+1,e.pos),t.match(/(^|[^\\\\\\\\])(\\\\\\\\\\\\\\\\)*\\\\s/)?(e.pos=p,!1):(e.posMax=e.pos,e.pos=p+1,s=e.push(\\\"sup_open\\\",\\\"sup\\\",1),s.markup=\\\"^\\\",s=e.push(\\\"text\\\",\\\"\\\",0),s.content=t.replace(n,\\\"$1\\\"),s=e.push(\\\"sup_close\\\",\\\"sup\\\",-1),s.markup=\\\"^\\\",e.pos=e.posMax+1,e.posMax=i,!0)):(e.pos=p,!1)}var n=/\\\\\\\\([ \\\\\\\\!\\\"#$%&'()*+,.\\\\/:;\u003C=>?@[\\\\]^_`{|}~-])/g;r.exports=function(e){e.inline.ruler.after(\\\"emphasis\\\",\\\"sup\\\",o)}},{}]},{},[1])(1)});\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it-sup.js\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/license\":{\"text\":\"Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.\\n\\nPermission is hereby granted, free of charge, to any person\\nobtaining a copy of this software and associated documentation\\nfiles (the \\\"Software\\\"), to deal in the Software without\\nrestriction, including without limitation the rights to use,\\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the\\nSoftware is furnished to do so, subject to the following\\nconditions:\\n\\nThe above copyright notice and this permission notice shall be\\nincluded in all copies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND,\\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\\nOTHER DEALINGS IN THE SOFTWARE.\\n\",\"type\":\"text/plain\",\"title\":\"$:/plugins/tiddlywiki/markdown/license\"},\"$:/plugins/tiddlywiki/markdown/images/markdown-linkify\":{\"title\":\"$:/plugins/tiddlywiki/markdown/images/markdown-linkify\",\"tags\":\"$:/tags/Image\",\"text\":\"\u003Csvg width=\\\"22pt\\\" height=\\\"22pt\\\" class=\\\"tc-markdown-linkify-button tc-image-button\\\" viewBox=\\\"0 0 128 128\\\">\\n\u003Cpath d=\\\"M17.031185,32.1989189 L9.04781705,32.1989189 L9.04781705,97.1303119 L17.031185,97.1303119 L17.031185,104.049231 L0,104.049231 L0,25.28 L17.031185,25.28 L17.031185,32.1989189 Z M93.6716009,24.75 C90.4007675,30.8326023 88.0193713,37.1590826 86.5274123,43.7294408 C85.0354532,50.299799 84.2894737,56.9705775 84.2894737,63.7417763 C84.2894737,70.6277412 85.0211075,77.3702485 86.484375,83.9692982 C87.9476425,90.568348 90.314693,96.9952485 93.5855263,103.25 L93.5855263,103.25 L83.4287281,103.25 C79.8135965,97.3395468 77.0161732,91.1134868 75.0364583,84.5718202 C73.0567434,78.0301535 72.066886,71.3737208 72.066886,64.6025219 C72.066886,61.3890716 72.3107639,58.017818 72.7985197,54.488761 C73.2862756,50.9597039 74.0035636,47.4449927 74.9503838,43.9446272 C75.8972039,40.4442617 77.0735563,37.0586623 78.4794408,33.7878289 C79.8853253,30.5169956 81.5350877,27.504386 83.4287281,24.75 L83.4287281,24.75 Z M116.638158,24.75 C120.253289,30.6604532 123.050713,36.9152047 125.030428,43.5142544 C127.010143,50.1133041 128,56.7984284 128,63.5696272 C128,66.7830775 127.770468,70.1543311 127.311404,73.6833882 C126.852339,77.2124452 126.149397,80.7128107 125.202577,84.1844846 C124.255757,87.6561586 123.065058,91.0274123 121.630482,94.2982456 C120.195906,97.5690789 118.531798,100.552997 116.638158,103.25 L116.638158,103.25 L106.48136,103.25 C109.637427,97.1673977 111.975786,90.8696089 113.496436,84.3566338 C115.017087,77.8436586 115.777412,71.2015716 115.777412,64.4303728 C115.777412,57.5444079 115.031433,50.7732091 113.539474,44.1167763 C112.047515,37.4603436 109.723501,31.0047515 106.567434,24.75 L106.567434,24.75 Z M37.1101871,44.1061384 L37.1101871,56.702119 L49.0852391,52.799139 L51.3915454,59.8954661 L39.3277893,63.798446 L46.956341,74.1768244 L40.8357588,78.6120289 L33.2072072,68.1449464 L25.7560638,78.3459166 L19.8128898,73.8220081 L27.4414414,63.798446 L15.2889813,59.6293539 L17.5952876,52.5330268 L29.6590437,56.702119 L29.6590437,44.1061384 L37.1101871,44.1061384 Z M49.6493416,97.1303119 L57.6327096,97.1303119 L57.6327096,32.1989189 L49.6493416,32.1989189 L49.6493416,25.28 L66.6805267,25.28 L66.6805267,104.049231 L49.6493416,104.049231 L49.6493416,97.1303119 Z\\\">\u003C/path>\\n\u003C/svg>\\n\"},\"$:/plugins/tiddlywiki/markdown/images/new-markdown-button\":{\"title\":\"$:/plugins/tiddlywiki/markdown/images/new-markdown-button\",\"tags\":\"$:/tags/Image\",\"text\":\"\u003Csvg class=\\\"tc-image-new-markdown-button tc-image-button\\\" viewBox=\\\"0 0 128 128\\\" width=\\\"22pt\\\" height=\\\"22pt\\\">\\n \u003Cg fill-rule=\\\"evenodd\\\">\\n \u003Crect x=\\\"80\\\" y=\\\"96\\\" width=\\\"48\\\" height=\\\"16\\\" rx=\\\"8\\\">\u003C/rect>\\n \u003Crect x=\\\"96\\\" y=\\\"80\\\" width=\\\"16\\\" height=\\\"48\\\" rx=\\\"8\\\">\u003C/rect>\\n \u003Cpath d=\\\"M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z\\\"transform=\\\"translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) \\\">\u003C/path>\\n \u003C/g>\\n\u003C/svg>\"},\"$:/plugins/tiddlywiki/markdown/markdown-it-katex.js\":{\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it-katex.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/markdown/markdown-it-katex.js\\ntype: application/javascript\\nmodule-type: library\\n\\nBased on markdown-it-katex v2.0.0 by @waylonflinn https://github.com/waylonflinn/markdown-it-katex | MIT License\\n\\\\*/\\n(function(){\\n/* Process inline math */\\n/*\\nLike markdown-it-simplemath, this is a stripped down, simplified version of:\\nhttps://github.com/runarberg/markdown-it-math\\n\\nIt differs in that it takes (a subset of) LaTeX as input and relies on KaTeX\\nfor rendering output.\\n*/\\n\\n/*jslint node: true */\\n'use strict';\\n\\n// Test if potential opening or closing delimieter\\n// Assumes that there is a \\\"$\\\" at state.src[pos]\\nfunction isValidDelim(state, pos) {\\n var prevChar, nextChar,\\n max = state.posMax,\\n can_open = true,\\n can_close = true;\\n\\n prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;\\n nextChar = pos + 1 \u003C= max ? state.src.charCodeAt(pos + 1) : -1;\\n\\n // Check non-whitespace conditions for opening and closing, and\\n // check that closing delimeter isn't followed by a number\\n if (prevChar === 0x20/* \\\" \\\" */ || prevChar === 0x09/* \\\\t */ ||\\n prevChar === 0x0d/* \\\"\\\\r\\\" */ || prevChar === 0x0a/* \\\\n */ ||\\n (nextChar >= 0x30/* \\\"0\\\" */ && nextChar \u003C= 0x39/* \\\"9\\\" */)) {\\n can_close = false;\\n }\\n if (nextChar === 0x20/* \\\" \\\" */ || nextChar === 0x09/* \\\\t */ ||\\n nextChar === 0x0d/* \\\"\\\\r\\\" */ || nextChar === 0x0a/* \\\\ns */) {\\n can_open = false;\\n }\\n\\n if (state.src.substring(pos,pos+3) === \\\"$:/\\\") {\\n can_open = false;\\n can_close = false;\\n }\\n\\n return {\\n can_open: can_open,\\n can_close: can_close\\n };\\n}\\n\\nfunction math_inline(state, silent) {\\n var start, match, token, res, pos, esc_count;\\n\\n if (state.src[state.pos] !== \\\"$\\\") { return false; }\\n\\n res = isValidDelim(state, state.pos);\\n if (!res.can_open) {\\n if (!silent) { state.pending += \\\"$\\\"; }\\n state.pos += 1;\\n return true;\\n }\\n\\n // First check for and bypass all properly escaped delimieters\\n // This loop will assume that the first leading backtick can not\\n // be the first character in state.src, which is known since\\n // we have found an opening delimieter already.\\n start = state.pos + 1;\\n match = start;\\n while ( (match = state.src.indexOf(\\\"$\\\", match)) !== -1) {\\n // Found potential $, look for escapes, pos will point to\\n // first non escape when complete\\n pos = match - 1;\\n while (state.src[pos] === \\\"\\\\\\\\\\\") { pos -= 1; }\\n\\n // Even number of escapes, potential closing delimiter found\\n if ( ((match - pos) % 2) == 1 ) { break; }\\n match += 1;\\n }\\n\\n // No closing delimter found. Consume $ and continue.\\n if (match === -1) {\\n if (!silent) { state.pending += \\\"$\\\"; }\\n state.pos = start;\\n return true;\\n }\\n\\n // Check if we have empty content, ie: $$. Do not parse.\\n if (match - start === 0) {\\n if (!silent) { state.pending += \\\"$$\\\"; }\\n state.pos = start + 1;\\n return true;\\n }\\n\\n // Check for valid closing delimiter\\n res = isValidDelim(state, match);\\n if (!res.can_close) {\\n if (!silent) { state.pending += \\\"$\\\"; }\\n state.pos = start;\\n return true;\\n }\\n\\n if (!silent) {\\n token = state.push('math_inline', '$latex', 0);\\n token.markup = \\\"$\\\";\\n token.content = state.src.slice(start, match);\\n token.attrs = [[\\\"displayMode\\\", \\\"false\\\"], [\\\"text\\\", token.content]];\\n }\\n\\n state.pos = match + 1;\\n return true;\\n}\\n\\n/*! https://github.com/iktakahiro/markdown-it-katex/pull/2 by @shinhermit */\\nfunction math_inline_block(state, silent) {\\n var start, match, token, res, pos, esc_count;\\n\\n if(state.src.slice(state.pos, state.pos+2) !== \\\"$$\\\") { return false; }\\n\\n // First check for and bypass all properly escaped delimieters\\n // This loop will assume that the first leading backtick can not\\n // be the first character in state.src, which is known since\\n // we have found an opening delimieter already.\\n start = state.pos + 2;\\n match = start;\\n while ( (match = state.src.indexOf(\\\"$$\\\", match)) !== -1) {\\n // Found potential $$, look for escapes, pos will point to\\n // first non escape when complete\\n pos = match - 1;\\n while (state.src[pos] === \\\"\\\\\\\\\\\") { pos -= 1; }\\n\\n // Even number of escapes, potential closing delimiter found\\n if ( ((match - pos) % 2) == 1 ) { break; }\\n match += 2;\\n }\\n\\n // No closing delimter found. Consume $$ and continue.\\n if (match === -1) {\\n if (!silent) { state.pending += \\\"$$\\\"; }\\n state.pos = start;\\n return true;\\n }\\n\\n // Check if we have empty content, ie: $$$$. Do not parse.\\n if (match - start === 0) {\\n if (!silent) { state.pending += \\\"$$$$\\\"; }\\n state.pos = start + 2;\\n return true;\\n }\\n\\n if (!silent) {\\n token = state.push('math_inline_block', '$latex', 0);\\n token.block = true;\\n token.markup = \\\"$$\\\";\\n token.content = state.src.slice(start, match);\\n token.attrs = [[\\\"displayMode\\\", \\\"true\\\"], [\\\"text\\\", token.content]];\\n }\\n\\n state.pos = match + 2;\\n return true;\\n}\\n\\nmodule.exports = function math_plugin(md, options) {\\n md.inline.ruler.after('escape', 'math_inline', math_inline);\\n md.inline.ruler.after('escape', 'math_inline_block', math_inline_block);\\n};\\n})();\",\"type\":\"application/javascript\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js\":{\"title\":\"$:/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/markdown/markdown-it-tiddlywiki.js\\ntype: application/javascript\\nmodule-type: library\\n\\nWraps up the markdown-it parser for use as a Parser in TiddlyWiki\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar md;\\nvar pluginOpts;\\n\\nvar TWMarkReplacements = {\\n\\t\\\"{\\\" : \\\"{\\\",\\n\\t\\\"[\\\" : \\\"[\\\",\\n\\t\\\"$\\\" : \\\"$\\\"\\n};\\n\\nvar TWMarkRegEx = /[{[$]/g;\\nfunction encodeTWMark(match) {\\n\\treturn TWMarkReplacements[match];\\n}\\n\\n// escpae {, [ and $ in string s\\nfunction escapeTWMarks(s) {\\n\\ts = String(s);\\n\\tTWMarkRegEx.lastIndex = 0;\\n\\treturn s.replace(TWMarkRegEx,encodeTWMark);\\n}\\n\\n// escape anything that could be interpreted as transclusion or syslink\\nfunction render_code_inline(tokens,idx,options,env,slf) {\\n\\ttokens[idx].attrJoin('class','_codified_');\\n\\treturn '\u003Ccode' + slf.renderAttrs(tokens[idx]) + '>'\\n\\t\\t+ escapeTWMarks(md.utils.escapeHtml(tokens[idx].content))\\n\\t\\t+ '\u003C/code>';\\n}\\n\\nfunction render_code_block(tokens,idx) {\\n\\treturn '\u003C$codeblock code=e\\\"' + md.utils.escapeHtml(tokens[idx].content) + '\\\" language=\\\"\\\"/>\\\\n';\\n}\\n\\nfunction render_fence(tokens,idx) {\\n\\tvar info = tokens[idx].info ? md.utils.unescapeAll(tokens[idx].info).trim() : '';\\n\\treturn '\u003C$codeblock code=e\\\"' + md.utils.escapeHtml(tokens[idx].content) + '\\\" language=\\\"' + info.split(/(\\\\s+)/g)[0] + '\\\"/>\\\\n';\\n}\\n\\n// add a blank line after opening tag to activate TW block parsing\\nfunction render_paragraph_open(tokens,idx) {\\n\\treturn tokens[idx].hidden ? '' : '\u003Cp>\\\\n\\\\n';\\n}\\n\\nfunction render_paragraph_close(tokens,idx) {\\n\\treturn tokens[idx].hidden ? '' : '\\\\n\u003C/p>\\\\n';\\n}\\n\\n// Replace footnote links with \\\"qualified\\\" internal links\\nfunction render_footnote_ref(tokens,idx,options,env,slf) {\\n\\tvar id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf);\\n\\tvar caption = slf.rules.footnote_caption(tokens,idx,options,env,slf);\\n\\tvar refid = id;\\n\\n\\tif(tokens[idx].meta.subId > 0) {\\n\\t\\trefid += ':' + tokens[idx].meta.subId;\\n\\t}\\n\\treturn '\u003Ca class=\\\"footnote-ref\\\" href=\u003C\u003Cqualify \\\"##fn' + id + '\\\">> id=\u003C\u003Cqualify \\\"#fnref' + refid + '\\\">>>' + caption + '\u003C/a>';\\n}\\n\\nfunction render_footnote_open(tokens,idx,options,env,slf) {\\n\\tvar id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf);\\n\\n\\tif(tokens[idx].meta.subId > 0) {\\n\\t\\tid += ':' + tokens[idx].meta.subId;\\n\\t}\\n\\treturn '\u003Cli id=\u003C\u003Cqualify \\\"#fn' + id + '\\\">> class=\\\"footnote-item\\\">';\\n}\\n\\nfunction render_footnote_anchor(tokens,idx,options,env,slf) {\\n\\tvar id = slf.rules.footnote_anchor_name(tokens,idx,options,env,slf);\\n\\n\\tif(tokens[idx].meta.subId > 0) {\\n\\t\\tid += ':' + tokens[idx].meta.subId;\\n\\t}\\n\\n\\t// append variation selector to prevent display as Apple Emoji on iOS\\n\\treturn '\u003Ca href=\u003C\u003Cqualify \\\"##fnref' + id + '\\\">> class=\\\"footnote-backref\\\">\\\\u21A5\\\\uFE0E\u003C/a>';\\n}\\n\\n// do not un-escape html entities and escape characters\\nfunction render_text_special(tokens,idx) {\\n\\tif(tokens[idx].info === 'entity') {\\n\\t\\treturn tokens[idx].markup;\\n\\t}\\n\\treturn escapeTWMarks(md.utils.escapeHtml(tokens[idx].content));\\n}\\n\\nfunction render_tw_expr(tokens,idx) {\\n\\treturn tokens[idx].content;\\n}\\n\\n// Overwrite default: attribute values can be either a string or {type;, value:}.\\n// 1) string attr val: render in e\\\"...\\\" format so HTML entities can be decoded.\\n// 2) object attr val: render value as is.\\nfunction render_token_attrs(token) {\\n\\tvar i, l, result;\\n\\n\\tif(!token.attrs) { return ''; }\\n\\n\\tresult = '';\\n\\n\\tfor(i=0, l=token.attrs.length; i\u003Cl; i++) {\\n\\t\\tif(typeof token.attrs[i][1] === \\\"object\\\" && token.attrs[i][1] !== null) {\\n\\t\\t\\tresult += ' ' + md.utils.escapeHtml(token.attrs[i][0]) + '=' + token.attrs[i][1].value;\\n\\t\\t} else {\\n\\t\\t\\tresult += ' ' + md.utils.escapeHtml(token.attrs[i][0]) + '=e\\\"' + md.utils.escapeHtml(token.attrs[i][1]) + '\\\"';\\n\\t\\t}\\n\\t}\\n\\n\\treturn result;\\n}\\n\\n// given tw parsing rule and starting pos, returns match index or undefined\\n// assumes pos >= 0\\nfunction findNextMatch(ruleinfo,pos) {\\n\\t// ruleinfo.matchIndex needs to be -1 at the start of inline state\\n\\tif(ruleinfo.matchIndex \u003C pos) {\\n\\t\\truleinfo.matchIndex = ruleinfo.rule.findNextMatch(pos);\\n\\t}\\n\\n\\treturn ruleinfo.matchIndex;\\n}\\n\\n// Add inline rule \\\"macrocall\\\" to parse \u003C\u003Cmacroname ...>>\\nvar MacroCallRegEx = /\u003C\u003C([^\\\\s>\\\"'=]+)[^>]*>>/g;\\nfunction tw_macrocallinline(state,silent) {\\n\\tvar match, max, pos = state.pos;\\n\\n\\t// Check start\\n\\tmax = state.posMax;\\n\\tif(state.src.charCodeAt(pos) !== 0x3C || state.src.charCodeAt(pos+1) !== 0x3C /* \u003C\u003C */|| pos + 3 >= max) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tMacroCallRegEx.lastIndex = pos;\\n\\tmatch = MacroCallRegEx.exec(state.src);\\n\\tif(!match || match.index !== pos) { return false; }\\n\\n\\tif(!silent) {\\n\\t\\tvar token = state.push('tw_expr','',0);\\n\\t\\ttoken.content = state.src.slice(pos,pos+match[0].length);\\n\\t}\\n\\tstate.pos = MacroCallRegEx.lastIndex;\\n\\treturn true;\\n}\\n\\n// parse transclusion elements\\nfunction tw_transcludeinline(state,silent) {\\n\\tvar ruleinfo = pluginOpts.inlineRules.transcludeinline;\\n\\n\\tvar pos = state.pos;\\n\\tvar matchIndex = findNextMatch(ruleinfo,pos);\\n\\tif(matchIndex === undefined || matchIndex !== pos) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif(!silent) {\\n\\t\\tvar token = state.push('tw_expr','',0);\\n\\t\\ttoken.content = state.src.slice(pos,pos+ruleinfo.rule.match[0].length);\\n\\t}\\n\\tstate.pos += ruleinfo.rule.match[0].length;\\n\\treturn true;\\n}\\n\\n// parse filtered transclusion elements\\nfunction tw_filteredtranscludeinline(state,silent) {\\n\\tvar ruleinfo = pluginOpts.inlineRules.filteredtranscludeinline;\\n\\n\\tvar pos = state.pos;\\n\\tvar matchIndex = findNextMatch(ruleinfo,pos);\\n\\tif(matchIndex === undefined || matchIndex !== pos) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif(!silent) {\\n\\t\\tvar token = state.push('tw_expr','',0);\\n\\t\\tif(state.linkLevel > 0) {\\n\\t\\t\\tvar filter = ruleinfo.rule.match[1];\\n\\t\\t\\ttoken.content = '\u003C$text text={{{' + filter + '}}}/>';\\n\\t\\t} else {\\n\\t\\t\\ttoken.content = state.src.slice(pos,pos+ruleinfo.rule.match[0].length);\\n\\t\\t}\\n\\t}\\n\\tstate.pos += ruleinfo.rule.match[0].length;\\n\\treturn true;\\n}\\n\\n// based on markdown-it html_block()\\nvar WidgetTagRegEx = [/^\u003C\\\\/?\\\\$[a-zA-Z0-9\\\\-\\\\$]+(?=(\\\\s|\\\\/?>|$))/, /^$/];\\nfunction tw_block(state,startLine,endLine,silent) {\\n\\tvar i, nextLine, token, lineText,\\n\\t\\tpos = state.bMarks[startLine] + state.tShift[startLine],\\n\\t\\tmax = state.eMarks[startLine];\\n\\n\\t// if it's indented more than 3 spaces, it should be a code block\\n\\tif(state.sCount[startLine] - state.blkIndent >= 4) { return false; }\\n\\n\\tif(!state.md.options.html) { return false; }\\n\\n\\tif(state.src.charCodeAt(pos) !== 0x3C/* \u003C */) { return false; }\\n\\n\\tlineText = state.src.slice(pos,max);\\n\\n\\tif(!WidgetTagRegEx[0].test(lineText)) { return false; }\\n\\n\\tif(silent) {\\n\\t\\t// don't let widgets interrupt a paragrpah\\n\\t\\treturn false;\\n\\t}\\n\\n\\tnextLine = startLine + 1;\\n\\n\\t// If we are here - we detected HTML block.\\n\\t// Let's roll down till block end.\\n\\tif(!WidgetTagRegEx[1].test(lineText)) {\\n\\t\\tfor(; nextLine \u003C endLine; nextLine++) {\\n\\t\\t\\tif(state.sCount[nextLine] \u003C state.blkIndent) { break; }\\n\\n\\t\\t\\tpos = state.bMarks[nextLine] + state.tShift[nextLine];\\n\\t\\t\\tmax = state.eMarks[nextLine];\\n\\t\\t\\tlineText = state.src.slice(pos,max);\\n\\n\\t\\t\\tif(WidgetTagRegEx[1].test(lineText)) {\\n\\t\\t\\t\\tif(lineText.length !== 0) { nextLine++; }\\n\\t\\t\\t\\tbreak;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\tstate.line = nextLine;\\n\\n\\ttoken = state.push('html_block','',0);\\n\\ttoken.map = [ startLine, nextLine ];\\n\\ttoken.content = state.getLines(startLine,nextLine,state.blkIndent,true);\\n\\n\\treturn true;\\n}\\n\\n// parse [img[...]] elements\\nfunction tw_image(state,silent) {\\n\\tvar ruleinfo = pluginOpts.inlineRules.image;\\n\\n\\t// ignore at parseLinkLabel stage; will be recognized in tokenize()\\n\\tif(state.parsingLinkLabel > 0) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tvar pos = state.pos;\\n\\tvar matchIndex = findNextMatch(ruleinfo,pos);\\n\\tif(matchIndex === undefined || matchIndex !== pos) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif(!silent) {\\n\\t\\tvar twNode = ruleinfo.rule.parse()[0];\\n\\t\\tvar token = state.push('$image','$image',0);\\n\\t\\t$tw.utils.each(twNode.attributes,function(attr,id) {\\n\\t\\t\\tswitch(attr.type) {\\n\\t\\t\\t\\tcase \\\"filtered\\\":\\n\\t\\t\\t\\t\\ttoken.attrSet(id,{ type: \\\"filtered\\\", value: \\\"{{{\\\" + attr.filter + \\\"}}}\\\" });\\n\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t\\tcase \\\"indirect\\\":\\n\\t\\t\\t\\t\\ttoken.attrSet(id,{ type: \\\"indirect\\\", value: \\\"{{\\\" + attr.textReference + \\\"}}\\\" });\\n\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t\\tcase \\\"macro\\\":\\n\\t\\t\\t\\t\\ttoken.attrSet(id,{ type: \\\"macro\\\", value: ruleinfo.rule.parser.source.substring(attr.value.start,attr.value.end) });\\n\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t\\tdefault:\\n\\t\\t\\t\\t\\ttoken.attrSet(id,attr.value);\\n\\t\\t\\t}\\n\\t\\t});\\n\\t\\ttoken.markup = 'tw_image';\\n\\t}\\n\\tstate.pos = ruleinfo.rule.parser.pos;\\n\\treturn true;\\n}\\n\\n// parse [[link]] elements\\nfunction tw_prettylink(state,silent) {\\n\\tvar ruleinfo = pluginOpts.inlineRules.prettylink;\\n\\n\\t// skip if in link label\\n\\tif(state.linkLevel > 0 || state.parsingLinkLabel > 0) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tvar pos = state.pos;\\n\\tvar matchIndex = findNextMatch(ruleinfo,pos);\\n\\tif(matchIndex === undefined || matchIndex !== pos) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif(!silent) {\\n\\t\\tvar twNode = ruleinfo.rule.parse()[0];\\n\\t\\tvar tag = (twNode.type==='link' ? '$link' : 'a');\\n\\t\\t// push a link_open token so markdown's core.linkify will ignore\\n\\t\\tvar token = state.push('link_open',tag,1);\\n\\n\\t\\t$tw.utils.each(twNode.attributes,function(attr,id) {\\n\\t\\t\\ttoken.attrSet(id,attr.value);\\n\\t\\t});\\n\\t\\ttoken.attrJoin('class','_codified_');\\n\\t\\ttoken.markup = 'tw_prettylink';\\n\\n\\t\\tstate.linkLevel++;\\n\\t\\ttoken = state.push('text','',0);\\n\\t\\ttoken.content = twNode.children[0].text;\\n\\t\\tstate.linkLevel--;\\n\\n\\t\\ttoken = state.push('link_close',tag,-1);\\n\\t\\ttoken.markup = 'tw_prettylink';\\n\\t}\\n\\tstate.pos = ruleinfo.rule.parser.pos;\\n\\treturn true;\\n}\\n\\nfunction tw_prettyextlink(state,silent) {\\n\\tvar ruleinfo = pluginOpts.inlineRules.prettyextlink;\\n\\n\\t// skip if in link label\\n\\tif(state.linkLevel > 0 || state.parsingLinkLabel > 0) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tvar pos = state.pos;\\n\\tvar matchIndex = findNextMatch(ruleinfo,pos);\\n\\tif(matchIndex === undefined || matchIndex !== pos) {\\n\\t\\treturn false;\\n\\t}\\n\\n\\tif(!silent) {\\n\\t\\tvar twNode = ruleinfo.rule.parse()[0];\\n\\t\\tvar token = state.push('link_open','a',1);\\n\\n\\t\\t$tw.utils.each(twNode.attributes,function(attr,id) {\\n\\t\\t\\ttoken.attrSet(id,attr.value);\\n\\t\\t});\\n\\t\\ttoken.attrJoin('class','_codified_');\\n\\t\\ttoken.markup = 'tw_prettyextlink';\\n\\n\\t\\tstate.linkLevel++;\\n\\t\\ttoken = state.push('text','',0);\\n\\t\\ttoken.content = twNode.children[0].text;\\n\\t\\tstate.linkLevel--;\\n\\n\\t\\ttoken = state.push('link_close','a',-1);\\n\\t\\ttoken.markup = 'tw_prettyextlink';\\n\\t}\\n\\tstate.pos = ruleinfo.rule.parser.pos;\\n\\treturn true;\\n}\\n\\nvar TWCloseTagRegEx = /\u003C\\\\/\\\\$[A-Za-z0-9\\\\-\\\\$]+\\\\s*>/gm;\\nfunction extendHtmlInline(origRule) {\\n\\treturn function(state,silent) {\\n\\t\\tif(origRule(state,silent)) {\\n\\t\\t\\treturn true;\\n\\t\\t}\\n\\n\\t\\tvar token, pos = state.pos;\\n\\t\\tvar parseTag = $tw.Wiki.parsers['text/vnd.tiddlywiki'].prototype.inlineRuleClasses.html.prototype.parseTag;\\n\\t\\tvar tag = parseTag(state.src,pos,{});\\n\\t\\tif(tag) {\\n\\t\\t\\tif(!silent) {\\n\\t\\t\\t\\ttoken = state.push('html_inline','',0);\\n\\t\\t\\t\\ttoken.content = state.src.slice(pos,tag.end);\\n\\t\\t\\t}\\n\\t\\t\\tstate.pos = tag.end;\\n\\t\\t\\treturn true;\\n\\t\\t}\\n\\n\\t\\tTWCloseTagRegEx.lastIndex = pos;\\n\\t\\tvar match = TWCloseTagRegEx.exec(state.src);\\n\\t\\tif(!match || match.index !== pos) {\\n\\t\\t\\treturn false;\\n\\t\\t}\\n\\n\\t\\tif(!silent) {\\n\\t\\t\\ttoken = state.push('html_inline','',0);\\n\\t\\t\\ttoken.content = state.src.slice(pos,pos + match[0].length);\\n\\t\\t}\\n\\t\\tstate.pos = TWCloseTagRegEx.lastIndex;\\n\\t\\treturn true;\\n\\t};\\n}\\n\\nfunction extendParseLinkLabel(origFunc) {\\n\\treturn function(state,start,disableNested) {\\n\\t\\tif(state.parsingLinkLabel === undefined) {\\n\\t\\t\\tstate.parsingLinkLabel = 0;\\n\\t\\t}\\n\\t\\tstate.parsingLinkLabel++;\\n\\t\\tvar labelEnd = origFunc(state,start,disableNested);\\n\\t\\tstate.parsingLinkLabel--;\\n\\t\\treturn labelEnd;\\n\\t};\\n}\\n\\n// reset each tw inline rule to initial inline state\\nfunction extendInlineParse(thisArg,origFunc,twInlineRules) {\\n\\treturn function(str,md,env,outTokens) {\\n\\t\\tvar i, ruleinfo, key;\\n\\t\\tfor(key in twInlineRules) {\\n\\t\\t\\truleinfo = twInlineRules[key];\\n\\t\\t\\truleinfo.rule.parser.source = str;\\n\\t\\t\\truleinfo.rule.parser.sourceLength = str.length;\\n\\t\\t\\truleinfo.rule.parser.pos = 0; // not used\\n\\t\\t\\truleinfo.matchIndex = -1;\\n\\t\\t}\\n\\t\\torigFunc.call(thisArg,str,md,env,outTokens);\\n\\t}\\n}\\n\\n/// post processing ///\\n\\nfunction wikify(state) {\\n\\tvar href, title, src, alt;\\n\\tvar tagStack = [];\\n\\n\\tstate.tokens.forEach(function(blockToken) {\\n\\t\\tif(blockToken.type === 'inline' && blockToken.children) {\\n\\t\\t\\tblockToken.children.forEach(function(token) {\\n\\t\\t\\t\\tswitch(token.type) {\\n\\t\\t\\t\\tcase 'link_open':\\n\\t\\t\\t\\t\\tif(token.markup === 'tw_prettylink' || token.markup === 'tw_prettyextlink') {\\n\\t\\t\\t\\t\\t\\treturn;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\thref = token.attrGet('href');\\n\\t\\t\\t\\t\\tif(href[0] === '#') {\\n\\t\\t\\t\\t\\t\\ttoken.tag = '$link';\\n\\t\\t\\t\\t\\t\\thref = $tw.utils.decodeURIComponentSafe(href.substring(1));\\n\\t\\t\\t\\t\\t\\ttitle = token.attrGet('title');\\n\\t\\t\\t\\t\\t\\ttoken.attrs = [['to', href], ['class', '_codified_']];\\n\\t\\t\\t\\t\\t\\tif(title) {\\n\\t\\t\\t\\t\\t\\t\\ttoken.attrSet('tooltip',title);\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\t\\ttoken.attrSet('target','_blank');\\n\\t\\t\\t\\t\\t\\ttoken.attrJoin('class','tc-tiddlylink-external');\\n\\t\\t\\t\\t\\t\\ttoken.attrJoin('class','_codified_');\\n\\t\\t\\t\\t\\t\\ttoken.attrSet('rel','noopener noreferrer');\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\ttagStack.push(token.tag);\\n\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t\\tcase 'link_close':\\n\\t\\t\\t\\t\\tif(token.markup === 'tw_prettylink' || token.markup === 'tw_prettyextlink') {\\n\\t\\t\\t\\t\\t\\treturn;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\ttoken.tag = tagStack.pop();\\n\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t\\tcase 'image':\\n\\t\\t\\t\\t\\ttoken.tag = '$image';\\n\\t\\t\\t\\t\\tsrc = token.attrGet('src');\\n\\t\\t\\t\\t\\talt = token.attrGet('alt');\\n\\t\\t\\t\\t\\ttitle = token.attrGet('title');\\n\\n\\t\\t\\t\\t\\ttoken.attrs[token.attrIndex('src')][0] = 'source';\\n\\t\\t\\t\\t\\tif(src[0] === '#') {\\n\\t\\t\\t\\t\\t\\tsrc = $tw.utils.decodeURIComponentSafe(src.substring(1));\\n\\t\\t\\t\\t\\t\\ttoken.attrSet('source',src);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tif(title) {\\n\\t\\t\\t\\t\\t\\ttoken.attrs[token.attrIndex('title')][0] = 'tooltip';\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t\\t}\\n\\t\\t\\t});\\n\\t\\t}\\n\\t});\\n}\\n\\nmodule.exports = function tiddlyWikiPlugin(markdown,options) {\\n\\tvar defaults = {\\n\\t\\trenderWikiText: false,\\n\\t\\tblockRules: {},\\n\\t\\tinlineRules: {}\\n\\t};\\n\\n\\tmd = markdown;\\n\\tpluginOpts = md.utils.assign({},defaults,options||{});\\n\\n\\tmd.renderer.rules.code_inline = render_code_inline;\\n\\tmd.renderer.rules.code_block = render_code_block;\\n\\tmd.renderer.rules.fence = render_fence;\\n\\tmd.renderer.rules.paragraph_open = render_paragraph_open;\\n\\tmd.renderer.rules.paragraph_close = render_paragraph_close;\\n\\tmd.renderer.rules.footnote_ref = render_footnote_ref;\\n\\tmd.renderer.rules.footnote_open = render_footnote_open;\\n\\tmd.renderer.rules.footnote_anchor = render_footnote_anchor;\\n\\tmd.renderer.rules.text_special = render_text_special;\\n\\tmd.renderer.rules.tw_expr = render_tw_expr;\\n\\tmd.renderer.renderAttrs = render_token_attrs;\\n\\n\\tif(pluginOpts.renderWikiText) {\\n\\t\\tmd.helpers.parseLinkLabel = extendParseLinkLabel(md.helpers.parseLinkLabel);\\n\\n\\t\\tif(pluginOpts.inlineRules.image) {\\n\\t\\t\\tmd.inline.ruler.after('link','tw_image',tw_image);\\n\\t\\t}\\n\\t\\tif(pluginOpts.inlineRules.prettyextlink) {\\n\\t\\t\\tmd.inline.ruler.after('link','tw_prettyextlink',tw_prettyextlink);\\n\\t\\t}\\n\\t\\tif(pluginOpts.inlineRules.prettylink) {\\n\\t\\t\\tmd.inline.ruler.after('link','tw_prettylink',tw_prettylink);\\n\\t\\t}\\n\\t\\tif(pluginOpts.inlineRules.filteredtranscludeinline) {\\n\\t\\t\\tmd.inline.ruler.before('html_inline','tw_filteredtranscludeinline',tw_filteredtranscludeinline);\\n\\t\\t}\\n\\t\\tif(pluginOpts.inlineRules.transcludeinline) {\\n\\t\\t\\tmd.inline.ruler.before('html_inline','tw_transcludeinline',tw_transcludeinline);\\n\\t\\t}\\n\\n\\t\\tmd.inline.ruler.before('html_inline','tw_macrocallinline',tw_macrocallinline);\\n\\t\\tmd.inline.ruler.at('html_inline',extendHtmlInline(md.inline.ruler.__rules__[md.inline.ruler.__find__('html_inline')].fn));\\n\\t\\tmd.block.ruler.after('html_block','tw_block',tw_block,{\\n\\t\\t\\talt: [ 'paragraph', 'reference', 'blockquote' ]\\n\\t\\t});\\n\\t\\tmd.inline.parse = extendInlineParse(md.inline,md.inline.parse,options.inlineRules);\\n\\t}\\n\\n\\tmd.core.ruler.disable('text_join');\\n\\tmd.core.ruler.push('wikify',wikify);\\n};\\n\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/markdown/new-markdown-button\":{\"title\":\"$:/plugins/tiddlywiki/markdown/new-markdown-button\",\"tags\":\"$:/tags/PageControls\",\"caption\":\"{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}}\",\"description\":\"{{$:/language/Buttons/NewMarkdown/Hint}}\",\"list-after\":\"$:/core/ui/Buttons/new-tiddler\",\"text\":\"\\\\whitespace trim\\n\u003C$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=\u003C\u003Ctv-config-toolbar-class>>>\\n\u003C$action-sendmessage $message=\\\"tm-new-tiddler\\\" type=\\\"text/markdown\\\"/>\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">\\n{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}\\n\u003C/$list>\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\\n\u003Cspan class=\\\"tc-btn-text\\\">\u003C$text text={{$:/language/Buttons/NewMarkdown/Caption}}/>\u003C/span>\\n\u003C/$list>\\n\u003C/$button>\\n\"},\"$:/plugins/tiddlywiki/markdown/readme\":{\"title\":\"$:/plugins/tiddlywiki/markdown/readme\",\"text\":\"This plugin provides Markdown support via the [[markdown-it|https://github.com/markdown-it/markdown-it]] parser and its associated plugins:\\n\\n* markdown-it-deflist\\n* markdown-it-footnote\\n* markdown-it-ins\\n* markdown-it-mark\\n* markdown-it-sub\\n* markdown-it-sup\\n\\n!! Compatibility Notes\\n\\n* \u003Cp>A tab character in Markdown has a size of four spaces. Configure the tab size of your code editor accordingly. For example, if you use \u003C$text text=\\\"CodeMirror\\\"/>, it is recommended that you set $:/config/codemirror/indentUnit and $:/config/codemirror/tabSize to `4` to avoid inconsistent indentations.\u003C/p>\\n* \u003Cp>HTML blocks are ultimately parsed by the \u003C$text text=WikiText/> parser: //an opening tag followed by a blank line will activate block-level parsing for its content//. When working with tags designed to contain literal content, such as `\u003Cpre>` and `\u003Cstyle>` tags, refrain from adding blank lines after the opening tags.\u003C/p>\\n* \u003Cp>You must terminate a table with either a blank line or another block-level structure.\u003C/p>\\n* \u003Cp>`latex-parser` in $:/config/markdown/renderWikiTextPragma is no longer required and will be ignored.\u003C/p>\\n* \u003Cp>Config option `linkNewWindow` is removed.\u003C/p>\\n\\n!! Extending the Parser\\n\\nYou can extend the parser by loading additional markdown-it plugins this way:\\n\\n```js\\nvar plugin1 = require(...);\\nvar plugin2 = require(...);\\n\\nvar md = $tw.Wiki.parsers[\\\"text/markdown\\\"].prototype.md;\\n\\nmd.use(plugin1)\\n .use(plugin2, opts, ...);\\n```\"},\"$:/plugins/tiddlywiki/markdown/styles\":{\"title\":\"$:/plugins/tiddlywiki/markdown/styles\",\"tags\":\"[[$:/tags/Stylesheet]]\",\"code-body\":\"yes\",\"text\":\".markdown {\\n\\tdisplay: block;\\n\\tmargin: 0px;\\n}\\n.markdown hr {\\n margin-top: 20px;\\n margin-bottom: 20px;\\n border: 0;\\n border-top: 1px solid \u003C\u003Ccolour muted-foreground>>;\\n}\\n.markdown .footnotes {\\n\\tfont-size: 0.9em;\\n\\tline-height: 1.32;\\n}\\n.markdown a.footnote-ref {\\n\\tcolor: \u003C\u003Ccolour tiddler-link-foreground>>;\\n\\tfont-size: 0.75em;\\n\\ttext-decoration: none;\\n\\tvertical-align: super;\\n\\tpadding:0px 1px;\\n}\\n.markdown ol.footnotes-list {\\n\\tpadding-left: 2em;\\n}\\n.markdown .footnote-item p {\\n\\tmargin: 0.7em 0px;\\n}\\n.markdown a.footnote-backref {\\n\\tcolor: \u003C\u003Ccolour tiddler-link-foreground>>;\\n\\tfont-size: 0.8em;\\n\\ttext-decoration: none;\\n\\tmargin-left: 0.25em;\\n}\\n.markdown a.footnote-ref:target, .markdown .footnote-item:target {\\n\\tbackground-color: \u003C\u003Ccolour message-background>>;\\n\\tscroll-margin-top: {{{ [{$:/themes/tiddlywiki/vanilla/options/stickytitles}match[yes]then[120px]else[60px]] }}};\\n}\\n.markdown li > p:first-child {\\n\\tmargin-top: 0px;\\n}\\n.markdown li + li {\\n\\tmargin-top: 2px;\\n}\\n.markdown mark {\\n\\tpadding: 1px 3px;\\n}\\n\"},\"$:/plugins/tiddlywiki/markdown/syntax\":{\"title\":\"$:/plugins/tiddlywiki/markdown/syntax\",\"text\":\"To review standard Markdown syntax, see: [ext[CommonMark quick reference|https://commonmark.org/help/]]. For formal specification, consult the [ext[CommonMark Spec|https://spec.commonmark.org/current/]].\\n\\n! Linking to Tiddlers\\n\\nPrepend `#` to tiddler titles to form link addresses. If a tiddler title contains spaces or other special characters, you must either (1) URI-encode the title, or (2) surround the #title with `\u003C` `>` and backslash-escape any `\u003C` or `>` in the title.\\n\\n!! Links\\n\\n\u003Cpre>\u003Ccode>[link text](\u003Cstrong>#\u003C/strong>\u003C$text text=\\\"TiddlerTitle\\\"/> \\\"optional tooltip\\\")\\n\\n[link text](\u003Cstrong>#\u003C/strong>New\u003Cstrong>%20\u003C/strong>Tiddler)\\n\\n[link text](\u003Cstrong><#\u003C/strong>New Tiddler\u003Cstrong>>\u003C/strong>)\\n\\n[](\u003Cstrong><#\u003C/strong>How to use \u003Cstrong>\\\\\u003C/strong><$list\u003Cstrong>\\\\\u003C/strong>> widget?\u003Cstrong>>\u003C/strong>)\\n\u003C/code>\u003C/pre>\\n\\nYou can also use the `\u003C$link>` widget to generate links to tiddlers:\\n\\n```\\n\u003C$link to=\\\"Tiddler Title\\\">Displayed Link Title\u003C/$link>\\n```\\n\\n!! Reference Style Links\\n\\n```\\n[link text][1]\\n[link text][2]\\n\\n[1]: #New%20Tiddler \\\"optional tooltip\\\"\\n\\n[2]: \u003C#Another Tiddler>\\n```\\n\\n!! Images\\n\\n```\\n![alt text](#Motovun%20Jack.jpg \\\"optional tooltip\\\")\\n\\n![alt text](\u003C#Motovun Jack.jpg>)\\n```\\n\\n! Escaping Special Characters\\n\\nMarkdown allows you to escape ASCII punctuation characters with `\\\\`.\\n\\n! HTML Blocks\\n\\nAn [[HTML block|https://spec.commonmark.org/0.30/#html-blocks]] is a group of lines that starts with an HTML tag and is treated as raw HTML. Block-level tags such as `\u003Cdiv>` and `\u003Cp>` can interrupt a paragraph. Inline elements such as `\u003Cstrong>` and `\u003Cem>` can start an HTML block if the //complete// tag begins on a new paragraph by itself. In most cases, an HTML block continues until a blank line is reached.\\n\\nA widget tag that begins on a new paragraph will also be treated as an HTML block. Markdown elements are not recognized inside the HTML block. For example:\\n\\n```\\nsee\\n\\n\u003C$link to=\\\"New Tiddler\\\">\\n_New_ Tiddler\\n\u003C/$link>\\n```\\n\\nrendered as:\\n\\n```\\n\u003Cp>see\u003C/p>\\n\u003C$link to=\\\"New Tiddler\\\">\\n_New_ Tiddler\\n\u003C/$link>\\n```\\n\\nA widget tag not preceded by a blank line is an inline element.\\n\\n```\\nsee\\n\u003C$link to=\\\"New Tiddler\\\">\\n_New_ Tiddler\\n\u003C/$link>\\n```\\n\\nrendered as:\\n\\n```\\n\u003Cp>see \u003C$link to=\\\"New Tiddler\\\">\u003Cem>New\u003C/em> Tiddler\u003C/$link>\u003C/p>\\n```\\n\\n! Syntax Extensions\\n\\n!! \u003C$text text=KaTeX/>\\n\\nYou need to install the \u003C$text text=KaTeX/> plugin to activate this syntax extension.\\n\\nSurround your math expression with `$` for inline rendering. Whitespace characters cannot immediately follow the opening `$` or precede the closing `$`, and the closing delimiter must not immediately precede a digit. Furthermore, `$` followed by `:/` will not be recognized as a valid opening or closing delimiter either.\\n\\nHere's an example of an inline math expression:\\n\\n```\\n$c = \\\\pm\\\\sqrt{a^2 + b^2}$\\n```\\n\\nUse `$$` to center the math in display mode:\\n\\n```\\n$$c = \\\\pm\\\\sqrt{a^2 + b^2}$$\\n```\\n\\n!! Superscript and Subscript\\n\\n```\\nX^2^\\n```\\nx\u003Csup>2\u003C/sup>\\n\\n```\\nH~2~O\\n```\\nH\u003Csub>2\u003C/sub>O\\n\\n!! Marked Text\\n\\n```\\n==marked text==\\n```\\n\\n\u003Cmark>marked text\u003C/mark>\\n\\n!! Strikethrough\\n\\n```\\n~~striked through text~~\\n```\\n\\n\u003Cs>striked through text\u003C/s>\\n\\n!! Inserted Text\\n\\n```\\n++inserted text++\\n```\\n\\n\u003Cins>inserted text\u003C/ins>\\n\\n!! Tables\\n\\nmarkdown-it supports \u003C$text text=\\\"GitHub Flavored Markdown\\\"/> (GFM) [ext[table syntax|https://github.github.com/gfm/#tables-extension-]].\\n\\n```\\n|Left Aligned |Centered |Right Aligned |\\n|:--- | :---: | ---:|\\n|apple |bat |candle |\\n```\\n\\n\u003Ctable>\\n\u003Cthead>\\n\u003Ctr>\u003Cth style=\\\"text-align:left\\\">Left Aligned\u003C/th>\u003Cth style=\\\"text-align:center\\\">Centered\u003C/th>\u003Cth style=\\\"text-align:right\\\">Right Aligned\u003C/th>\u003C/tr>\\n\u003C/thead>\\n\u003Ctbody>\\n\u003Ctr>\u003Ctd style=\\\"text-align:left\\\">apple\u003C/td>\u003Ctd style=\\\"text-align:center\\\">bat\u003C/td>\u003Ctd style=\\\"text-align:right\\\">candle\u003C/td>\u003C/tr>\\n\u003C/tbody>\\n\u003C/table>\\n\\n!! Definition Lists\\n\\n```\\nTerm One\\n: Definition with\\nlazy continuation.\\n\\nTerm Two\\n: Here is the first defintion.\\n\\n: Here is the second definition.\\n\\n As you can see. A definition can have\\n more than one paragrpah. It can also have\\n\\n And indended code block...\\n```\\n\\n\u003Cdl>\\n\u003Cdt>Term One\u003C/dt>\\n\u003Cdd>\u003Cp>Definition with\\nlazy continuation.\\n\u003C/p>\u003C/dd>\\n\u003Cdt>Term Two\u003C/dt>\\n\u003Cdd>\u003Cp>Here is the first defintion.\\n\u003C/p>\u003C/dd>\\n\u003Cdd>\u003Cp>Here is the second definition.\u003C/p>\u003Cp>As you can see. A definition can have\\nmore than one paragrpah. It can also have\\n\u003Cpre>\u003Ccode>And indended code block...\\n\u003C/code>\u003C/pre>\\n\u003C/p>\u003C/dd>\\n\u003C/dl>\\n\\n!! Footnotes\\n\\nFor detailed explanation, see [[Creating Footnotes|https://www.markdownguide.org/extended-syntax/#footnotes]].\\n\\n```\\nHere's a simple footnote,[^1] and here's a longer one.[^bignote]\\n\\n[^1]: This is the first footnote.\\n\\n[^bignote]: Here's one with multiple paragraphs and code.\\n\\n Indent paragraphs to include them in the footnote.\\n\\n `{ my code }`\\n\\n Add as many paragraphs as you like.\\n```\\n\\n\u003Cdiv class=\\\"markdown\\\">\u003Cp>Here’s a simple footnote,\u003Ca class=\\\"footnote-ref\\\" href=\\\"##fn1--doc639182\\\" id=\\\"#fnref1--doc639182\\\">[1]\u003C/a> and here’s a longer one.\u003Ca class=\\\"footnote-ref\\\" href=\\\"##fn2--doc639182\\\" id=\\\"#fnref2--doc639182\\\">[2]\u003C/a>\\n\u003Chr class=\\\"footnotes-sep\\\">\\n\u003Csection class=\\\"footnotes\\\">\\n\u003Col class=\\\"footnotes-list\\\">\\n\u003Cli id=\\\"#fn1--doc639182\\\" class=\\\"footnote-item\\\">\u003Cp>This is the first footnote. \u003Ca href=\\\"##fnref1--doc639182\\\" class=\\\"footnote-backref\\\">↥︎\u003C/a>\\n\u003C/p>\u003C/li>\\n\u003Cli id=\\\"#fn2--doc639182\\\" class=\\\"footnote-item\\\">\u003Cp>Here’s one with multiple paragraphs and code.\u003C/p>\u003Cp>Indent paragraphs to include them in the footnote.\u003C/p>\u003Cp>\u003Ccode class=\\\"codified\\\">{ my code }\u003C/code>\u003C/p>\u003Cp>Add as many paragraphs as you like. \u003Ca href=\\\"##fnref2--doc639182\\\" class=\\\"footnote-backref\\\">↥︎\u003C/a>\\n\u003C/p>\u003C/li>\\n\u003C/ol>\\n\u003C/section>\\n\u003C/p>\u003C/div>\"},\"$:/plugins/tiddlywiki/markdown/wrapper.js\":{\"title\":\"$:/plugins/tiddlywiki/markdown/wrapper.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/markdown/wrapper.js\\ntype: application/javascript\\nmodule-type: parser\\n\\nWraps up the markdown-it parser for use as a Parser in TiddlyWiki\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar MarkdownIt = require(\\\"./markdown-it\\\");\\n\\nfunction parseAsBoolean(tiddlerName) {\\n\\treturn $tw.wiki.getTiddlerText(tiddlerName,\\\"false\\\").trim().toLowerCase() === \\\"true\\\";\\n}\\n\\nvar pluginOpts = {\\n\\trenderWikiText: parseAsBoolean(\\\"$:/config/markdown/renderWikiText\\\"),\\n\\trenderWikiTextPragma: $tw.wiki.getTiddlerText(\\\"$:/config/markdown/renderWikiTextPragma\\\").trim()\\n};\\n\\nvar markdownOpts = {\\n\\thtml: true,\\n\\txhtmlOut: true,\\n\\tbreaks: parseAsBoolean(\\\"$:/config/markdown/breaks\\\"),\\n\\tquotes: $tw.wiki.getTiddlerText(\\\"$:/config/markdown/quotes\\\").trim(),\\n\\ttypographer: parseAsBoolean(\\\"$:/config/markdown/typographer\\\"),\\n\\tlinkify: parseAsBoolean(\\\"$:/config/markdown/linkify\\\")\\n};\\n\\n// Retrieve needed TW rule classes and instantiated rules\\nfunction setupWikiRules(pluginOptions) {\\n\\tvar results = {};\\n\\n\\tfunction collectAllRules(classes,type) {\\n\\t\\tvar rulesInfo = [], key,\\n\\t\\t\\tself = wikiParser;\\n\\t\\tfor(key in classes) {\\n\\t\\t\\t// instantiate the rule\\n\\t\\t\\tvar RuleClass = classes[key];\\n\\t\\t\\tvar rule = new RuleClass(self);\\n\\t\\t\\trule.name = key;\\n\\t\\t\\trule.class = RuleClass;\\n\\t\\t\\trule.is = {};\\n\\t\\t\\trule.is[type] = true;\\n\\t\\t\\trule.init(self);\\n\\n\\t\\t\\trulesInfo.push({\\n\\t\\t\\t\\trule: rule,\\n\\t\\t\\t\\tmatchIndex: -1\\n\\t\\t\\t});\\n\\t\\t};\\n\\t\\treturn rulesInfo;\\n\\t}\\n\\n\\tvar WikiParser = require(\\\"$:/core/modules/parsers/wikiparser/wikiparser.js\\\")[\\\"text/vnd.tiddlywiki\\\"];\\n\\n\\t// first pass: get all rule classes\\n\\tvar wikiParser = new WikiParser(null, '', {parseAsInline: true, wiki: $tw.wiki});\\n\\n\\t// restore all possible rules from each rule class\\n\\twikiParser.pragmaRules = collectAllRules(wikiParser.pragmaRuleClasses,'pragma');\\n\\twikiParser.blockRules = collectAllRules(wikiParser.blockRuleClasses,'block');\\n\\twikiParser.inlineRules = collectAllRules(wikiParser.inlineRuleClasses,'inline');\\n\\n\\tvar pragma = pluginOptions.renderWikiText\\n\\t\\t\\t? \\\"\\\\\\\\rules except latex-parser extlink\\\\n\\\" + pluginOptions.renderWikiTextPragma\\n\\t\\t\\t: \\\"\\\\\\\\rules only html entity commentinline commentblock\\\";\\n\\n\\twikiParser.pos = 0;\\n\\twikiParser.source = pragma;\\n\\twikiParser.sourceLength = pragma.length;\\n\\n\\t// second pass: remove uninterested rules based on \\\\rules pragma\\n\\twikiParser.parsePragmas();\\n\\n\\tresults.blockRules = {};\\n\\tresults.inlineRules = {}\\n\\tresults.blockRuleClasses = {};\\n\\tresults.inlineRuleClasses = {};\\n\\n\\t// save the rule sets for future markdown parsing\\n\\twikiParser.blockRules.forEach(function(ruleinfo) {\\n\\t\\tresults.blockRules[ruleinfo.rule.name] = ruleinfo;\\n\\t\\tresults.blockRuleClasses[ruleinfo.rule.name] = ruleinfo.rule.class;\\n\\t});\\n\\twikiParser.inlineRules.forEach(function(ruleinfo) {\\n\\t\\tresults.inlineRules[ruleinfo.rule.name] = ruleinfo;\\n\\t\\tresults.inlineRuleClasses[ruleinfo.rule.name] = ruleinfo.rule.class;\\n\\t});\\n\\treturn results;\\n}\\n\\n// Creates markdown-it parser\\nfunction createMarkdownEngine(markdownItOptions, pluginOptions) {\\n\\tvar md = new MarkdownIt(markdownItOptions)\\n\\t\\t\\t\\t.use(require(\\\"./markdown-it-sub\\\"))\\n\\t\\t\\t\\t.use(require(\\\"./markdown-it-sup\\\"))\\n\\t\\t\\t\\t.use(require(\\\"./markdown-it-ins\\\"))\\n\\t\\t\\t\\t.use(require(\\\"./markdown-it-mark\\\"))\\n\\t\\t\\t\\t.use(require(\\\"./markdown-it-footnote\\\"))\\n\\t\\t\\t\\t.use(require(\\\"./markdown-it-deflist\\\"));\\n\\n\\tvar results = setupWikiRules(pluginOptions);\\n\\n\\tMarkdownParser.prototype.blockRuleClasses = results.blockRuleClasses;\\n\\tMarkdownParser.prototype.blockRules = results.blockRules;\\n\\n\\tMarkdownParser.prototype.inlineRuleClasses = results.inlineRuleClasses;\\n\\tMarkdownParser.prototype.inlineRules = results.inlineRules;\\n\\n\\tif(pluginOptions.renderWikiText && $tw.modules.titles[\\\"$:/plugins/tiddlywiki/katex/katex.min.js\\\"]) {\\n\\t\\tmd.use(require(\\\"./markdown-it-katex\\\"));\\n\\t}\\n\\n\\tmd.use(require(\\\"./markdown-it-tiddlywiki\\\"),{\\n\\t\\t\\trenderWikiText: pluginOptions.renderWikiText,\\n\\t\\t\\tblockRules: results.blockRules,\\n\\t\\t\\tinlineRules: results.inlineRules\\n\\t\\t});\\n\\n\\t$tw.utils.each(['image','prettylink','prettyextlink'], function(rule) {\\n\\t\\tif(MarkdownParser.prototype.inlineRules[rule]) {\\n\\t\\t\\t// delegate to md; ignore the rule class in WikiParser\\n\\t\\t\\tdelete MarkdownParser.prototype.inlineRuleClasses[rule];\\n\\t\\t}\\n\\t});\\n\\treturn md;\\n}\\n\\n/// Parse tree post processing ///\\n\\nfunction deactivateLinks(tree) {\\n\\t$tw.utils.each(tree,function(node) {\\n\\t\\tif(node.type === \\\"link\\\") {\\n\\t\\t\\tnode.type = \\\"text\\\";\\n\\t\\t\\tnode.text = node.children[0].text;\\n\\t\\t\\tdelete node.attributes;\\n\\t\\t\\tdelete node.children;\\n\\t\\t\\tdelete node.attributes;\\n\\t\\t} else {\\n\\t\\t\\tdeactivateLinks(node.children);\\n\\t\\t}\\n\\t});\\n}\\n\\n// true if the node contains \\\"_codified_\\\" class attribute\\nfunction isCodified(node) {\\n\\treturn node.attributes\\n\\t\\t&& node.attributes.class\\n\\t\\t&& node.attributes.class.type === \\\"string\\\"\\n\\t\\t&& (node.attributes.class.value.split(\\\" \\\").indexOf(\\\"_codified_\\\") !== -1);\\n}\\n\\nfunction decodeEntities(s) {\\n\\treturn s.replace(/(&#?[a-zA-Z0-9]{2,8};)/g,$tw.utils.entityDecode);\\n}\\n\\n// Add e\\\"...\\\" and e'....' syntax to enable decoding of HTML entities\\n// in string literals.\\nfunction parseStringLiteralExtended(source,pos) {\\n\\tvar node = {\\n\\t\\ttype: \\\"string\\\",\\n\\t\\tstart: pos\\n\\t};\\n\\tvar reString = /(?:\\\"\\\"\\\"([\\\\s\\\\S]*?)\\\"\\\"\\\"|e?\\\"([^\\\"]*)\\\")|(?:e?'([^']*)')/g;\\n\\treString.lastIndex = pos;\\n\\tvar match = reString.exec(source);\\n\\tif(match && match.index === pos) {\\n\\t\\tnode.value = match[1] !== undefined ? match[1] :\\n\\t\\t\\t(match[2] !== undefined ? match[2] : match[3]);\\n\\t\\tnode.end = pos + match[0].length;\\n\\t\\tif(match[0].charAt(0) === \\\"e\\\") {\\n\\t\\t\\tnode.value = decodeEntities(node.value);\\n\\t\\t}\\n\\t\\treturn node;\\n\\t} else {\\n\\t\\treturn null;\\n\\t}\\n}\\n\\nfunction processWikiTree(tree,hasWikiLinkRule) {\\n\\tvar stack = [].concat(tree);\\n\\n\\tvar mergeable = function(node) {\\n\\t\\treturn node.type === \\\"element\\\" && node.tag === \\\"p\\\" && (!node.attributes || Object.keys(node.attributes).length === 0);\\n\\t};\\n\\n\\twhile(stack.length) {\\n\\t\\tvar node = stack.pop();\\n\\t\\tif(node.type === \\\"element\\\" && node.tag === \\\"p\\\") {\\n\\t\\t\\t// reduce nested \u003Cp> nodes\\n\\t\\t\\twhile(node.children && node.children.length === 1 && mergeable(node.children[0])) {\\n\\t\\t\\t\\tnode.children = node.children[0].children;\\n\\t\\t\\t}\\n\\t\\t} else if(hasWikiLinkRule && isCodified(node)) {\\n\\t\\t\\tdeactivateLinks(node.children);\\n\\t\\t\\tcontinue;\\n\\t\\t}\\n\\t\\tif(node.children && node.children.length > 0) {\\n\\t\\t\\tstack.push.apply(stack,node.children);\\n\\t\\t}\\n\\t}\\n}\\n\\n// to extend MarkdownIt outside of this module, do:\\n//\\n// md = $tw.Wiki.parsers[\\\"text/markdown\\\"].prototype.md;\\n// md.use(plugin[, options]);\\nMarkdownParser.prototype.md = createMarkdownEngine(markdownOpts,pluginOpts);\\n\\nfunction MarkdownParser(type,text,options) {\\n\\tvar env = {}\\n\\tvar md = this.md;\\n\\tvar mdTree = md.parse(text,env);\\n\\tvar textToParse = '\u003Cdiv class=\\\"markdown\\\">\\\\n' + md.renderer.render(mdTree,md.options,env) + '\u003C/div>';\\n\\n\\t//console.log(JSON.stringify(mdTree,null,2));\\n\\t//console.log(\\\"\\\\n----------------\\\\n\\\" + textToParse);\\n\\n\\tvar wikiParser;\\n\\n\\tvar origParseStringLiteral = $tw.utils.parseStringLiteral;\\n\\t$tw.utils.parseStringLiteral = parseStringLiteralExtended;\\n\\n\\ttry {\\n\\t\\twikiParser = new $tw.Wiki.parsers[\\\"text/vnd.tiddlywiki\\\"](null,textToParse,{\\n\\t\\t\\tparseAsInline: true,\\n\\t\\t\\twiki: options.wiki,\\n\\t\\t\\trules: { pragma: {}, block: this.blockRuleClasses, inline: this.inlineRuleClasses }\\n\\t\\t});\\n\\t}\\n\\tcatch (err) {\\n\\t\\twikiParser = $tw.wiki.parseText(\\\"text/vnd.tiddlywiki\\\",\\n\\t\\t\\t\\\"\u003Cstrong>Error encountered while parsing the tiddler:\u003C/strong>\u003Cp>\\\" + err.message + \\\"\u003C/p>\\\",\\n\\t\\t\\t{parseAsInline: false, wiki: options.wiki});\\n\\t}\\n\\tfinally {\\n\\t\\t$tw.utils.parseStringLiteral = origParseStringLiteral;\\n\\t}\\n\\tif(wikiParser.tree.length > 0) {\\n\\t\\tvar hasWikiLinkRule = false;\\n\\t\\t// see if wikilink rule has been invoked\\n\\t\\t$tw.utils.each(wikiParser.inlineRules,function(ruleInfo) {\\n\\t\\t\\tif(ruleInfo.rule.name === \\\"wikilink\\\") {\\n\\t\\t\\t\\thasWikiLinkRule = true;\\n\\t\\t\\t\\treturn false;\\n\\t\\t\\t}\\n\\t\\t});\\n\\t\\tprocessWikiTree(wikiParser.tree,hasWikiLinkRule);\\n\\t}\\n\\tthis.tree = wikiParser.tree;\\n\\tthis.source = text;\\n\\tthis.type = type || \\\"text/markdown\\\";\\n\\tthis.wiki = options.wiki;\\n}\\n\\nexports[\\\"text/markdown\\\"] = MarkdownParser;\\nexports[\\\"text/x-markdown\\\"] = MarkdownParser;\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"parser\"}}}"}, -{"created":"20250926180118298","text":"\u003Clink rel=\"me\" href=\"index.glb\"/>","tags":"$:/tags/RawMarkup","title":"$:/rel-me microformat","modified":"20250926180243098"}, +{"created":"20250926180118298","text":"\n\u003C!-- XR Fragments microformat (https://xrfragment.org) -->\n\u003Clink rel=\"me\" href=\"index.glb\"/>\n\n","tags":"$:/tags/RawMarkup","title":"$:/rel-me microformat","modified":"20250926181550664"}, {"created":"20230423163535033","text":"[img width=260 [logo.svg]]\n\u003Cbr>\nA cute standard for (deep)linking 3D files via URI's.\n{{$:/xrfragment/topmenu}}\n\u003C$action-setfield $tiddler=\"$:/state/sidebar\" text=“no” />","title":"$:/SiteSubtitle","modified":"20250926172746176","tags":"$:/tags/StartupAction"}, {"created":"20230423163524355","title":"$:/SiteTitle","text":"XR Fragments","modified":"20230428121135697"}, {"created":"20230425164931250","title":"$:/state/folded/AFRAME template","text":"show","modified":"20230425164935940"}, {"created":"20230425164931250","title":"$:/state/folded/GLSL shader template","text":"show","modified":"20230425164939576"}, {"created":"20230424142403302","text":"checked","title":"$:/state/import/select-all","modified":"20230424142404392"}, {"created":"20230423163640468","title":"$:/state/notebook-sidebar","text":"yes","modified":"20250926172231942"}, -{"created":"20230423163641722","title":"$:/state/notebook-sidebar-section","text":"Home","modified":"20250926180629556"}, +{"created":"20230423163641722","title":"$:/state/notebook-sidebar-section","text":"Home","modified":"20250926181646243"}, {"created":"20230427102758222","title":"$:/state/plugin-info--1887569658-$:/plugins/ihm/tidgraph--50210113","text":"documentation","modified":"20230427102759911"}, {"created":"20230427092525294","title":"$:/state/plugin-info--391242618-$:/plugins/tiddlywiki/browser-storage","text":"yes","modified":"20230427092525375"}, {"created":"20230427093219686","title":"$:/state/plugin-info--391242618-$:/plugins/tiddlywiki/browser-storage--605768392","text":"settings","modified":"20230427094141558"}, @@ -1189,7 +1193,7 @@ button.sidebar-toggle{ {"created":"20230622104329622","title":"$:/state/toc/Reference/js/AFRAME-THREE.js--403145756","text":"open","modified":"20230622104329622"}, {"created":"20230622111759784","title":"$:/state/toc/Reference/The parser-THREE.js--403145756","text":"open","modified":"20230622111759784"}, {"title":"$:/status/RequireReloadDueToPluginChange","text":"no"}, -{"title":"$:/StoryList","created":"20250926172328293","text":"","list":"[[XR Fragments]]","modified":"20250926180520279"}, +{"title":"$:/StoryList","created":"20250926172328293","text":"","list":"[[XR Fragments]]","modified":"20250926181626224"}, {"created":"20230423163445948","title":"$:/theme","text":"$:/themes/nico/notebook","modified":"20240718191943667"}, {"created":"20240627122947980","text":"{\n \"tiddlers\": {\n \"$:/themes/nico/notebook/LICENSE\": {\n \"title\": \"$:/themes/nico/notebook/LICENSE\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210118213330307\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\nMIT License Copyright (c) 2020 [[Nicolas Petton|https://nicolas.petton.fr]] nicolas@petton.fr\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is furnished\\nto do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice (including the next\\nparagraph) shall be included in all copies or substantial portions of the\\nSoftware.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\\nOR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF\\nOR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\"\n },\n \"$:/themes/nico/notebook/themetweaks\": {\n \"title\": \"$:/themes/nico/notebook/themetweaks\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20210123211851680\",\n \"tags\": \"$:/tags/ControlPanel/Appearance\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"text\": \"\\\\define lingo-base() $:/language/ThemeTweaks/\\n\\nYou can tweak certain aspects of the ''Notebook'' theme.\\n\\n! \u003C\u003Clingo Options>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003C\u003Clingo Options/StickyTitles>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Options/StickyTitles/Hint>>// |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003C\u003Clingo Options/CodeWrapping>>\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003Coption value=\\\"pre\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"pre-wrap\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">Reveal tiddler controls on mouseover\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n\\n! \u003C\u003Clingo Settings>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/fontfamily\\\">\u003C\u003Clingo Settings/FontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/fontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\">\u003C\u003Clingo Settings/CodeFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\">\u003C\u003Clingo Settings/EditorFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n\\n! \u003C\u003Clingo Metrics>>\\n\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\\\">\u003C\u003Clingo Metrics/FontSize>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\\\">\u003C\u003Clingo Metrics/LineHeight>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\\\">\u003C\u003Clingo Metrics/BodyFontSize>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/bodyfontsize\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\\\">\u003C\u003Clingo Metrics/BodyLineHeight>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/bodylineheight\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\\\">\u003C\u003Clingo Metrics/SidebarBreakpoint>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/SidebarBreakpoint/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/metrics/sidebar-width\\\">\u003C\u003Clingo Metrics/SidebarWidth>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/SidebarWidth/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/sidebar-width\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/metrics/story-width\\\">\u003C\u003Clingo Metrics/StoryWidth>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Metrics/StoryWidth/Hint>>// |^\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/metrics/story-width\\\" default=\\\"\\\" tag=\\\"input\\\"/> |\\n\\n\"\n },\n \"$:/themes/nico/notebook/base\": {\n \"title\": \"$:/themes/nico/notebook/base\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210120224227503\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\\n\\n\\\\define if-sidebar(text)\\n \u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n $text$\\n \u003C/$reveal>\\n\\\\end\\n\\n\\\\define if-reveal-tiddler-controls-on-hover(text)\\n \u003C$reveal state=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n $text$\\n \u003C/$reveal>\\n\\\\end\\n \\n/* Top and bottom bars */\\n\\n/* Hide the top-right bar */\\n.tc-topbar.tc-topbar-right {\\n display: none;\\n}\\n\\ndiv.tc-sidebar-header {\\n padding: 0;\\n min-height: 0;\\n}\\n\\n.tc-story-river {\\n padding: 6px 0 !important;\\n width: 100% !important;\\n max-width: {{$:/themes/nico/notebook/metrics/story-width}} !important;\\n margin: 0 auto !important;\\n margin-top: 34px !important;\\n}\\n\\ndiv.tc-tiddler-frame {\\n width: 100%;\\n margin: 20px 0;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n box-shadow: 0 5px 20px rgba(0,0,0, 0.12);\\n border-radius: 6px;\\n padding: 42px 60px 60px 60px;\\n}\\n\\nh1.tc-site-title {\\n margin-top: 14px;\\n font-size: 1.5em !important;\\n}\\n\\n.nc-bar {\\n padding: 10px;\\n height: {{$:/themes/nico/notebook/metrics/topbar-height}};\\n background: \u003C\u003Ccolour page-background>>;\\n display: flex;\\n justify-content: space-between;\\n}\\n\\n.nc-topbar-wrapper {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n /* The z-index needs to be above the z-index used in tiddlers in zoomin view */\\n z-index: 501;\\n}\\n\\n.nc-bar.nc-topbar {\\n top: 0;\\n background: \u003C\u003Ccolour page-background>>ee;\\n max-width: calc({{$:/themes/nico/notebook/metrics/story-width}} + 40px);\\n padding: 10px 20px;\\n margin: 0 auto;\\n}\\n\\n.nc-bar.nc-bottombar {\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n /* The z-index needs to be above the z-index used in tiddlers in zoomin view */\\n z-index: 501;\\n}\\n\\n.nc-bar .left svg {\\n fill: \u003C\u003Ccolour sidebar-controls-foreground>>;\\n}\\n\\n.nc-bar input[type=\\\"search\\\"] {\\n width: 200px;\\n padding: .6em 1em;\\n margin-top: -.2em;\\n background: \u003C\u003Ccolour sidebar-button-foreground>>44;\\n color: \u003C\u003Ccolour foreground>>cc;\\n transition: all ease-in .2s;\\n border: 1px solid transparent;\\n outline: 0;\\n}\\n\\n.nc-bar input[type=\\\"search\\\"]:focus {\\n width: 300px;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n border: 1px solid \u003C\u003Ccolour primary>>;\\n box-shadow: 0 0 .2rem 0 \u003C\u003Ccolour primary>>;\\n}\\n\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button {\\n -webkit-appearance: auto;\\n}\\n\\n.nc-bar .tc-block-dropdown.tc-search-drop-down {\\n margin-left: 0;\\n width: 400px;\\n border: 0;\\n box-shadow: 0 0 6px 0 rgba(0,0,0,.2);\\n border-radius: 6px;\\n padding: 20px 0;\\n}\\n\\n.nc-bar p {\\n margin: 0;\\n}\\n\\n.nc-bar .tc-page-controls {\\n margin-top: 0;\\n}\\n\\n.nc-bar .tc-page-controls button {\\n margin-right: .8em;\\n}\\n\\n.nc-bar .tc-page-controls button .tc-btn-text {\\n font-size: 14px;\\n}\\n\\n.nc-bar .tc-block-dropdown {\\n max-height: 70vh;\\n overflow: auto;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-topbar {\\n display: none;\\n }\\n\\n .tc-story-river {\\n padding: 0 !important;\\n margin-top: 0 !important;\\n margin-bottom: 60px !important;\\n }\\n\\n div.tc-tiddler-frame {\\n margin: 0;\\n box-shadow: none;\\n border-radius: 0;\\n border-top: 0;\\n }\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-bottombar {\\n display: none;\\n }\\n}\\n\\n@media(max-width: 1100px) {\\n .nc-bar input[type=\\\"search\\\"] {\\n width: 200px;\\n }\\n}\\n\\n/* Sidebar */\\n\\n@keyframes sidebar-appear {\\n 0% {\\n left: -{{$:/themes/nico/notebook/metrics/sidebar-width}};\\n }\\n 100% {\\n left: 0;\\n }\\n}\\n\\n\u003C\u003Cif-sidebar \\\"\\\"\\\"\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-sidebar {\\n animation: sidebar-appear .14s;\\n padding-top: 10px;\\n }\\n}\\n\\\"\\\"\\\">>\\n\\n.nc-sidebar {\\n background: \u003C\u003Ccolour tiddler-background>>;\\n border-right: 1px solid \u003C\u003Ccolour tiddler-border>>;\\n width: {{$:/themes/nico/notebook/metrics/sidebar-width}};\\n overflow-y: auto;\\n overflow-x: hidden;\\n z-index: 100;\\n}\\n\\n.nc-sidebar .segment {\\n border-bottom: 1px solid rgba(0,0,0,.1);\\n}\\n\\n.nc-sidebar ol {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n line-height: 1.8em;\\n}\\n\\n.nc-sidebar ol ol {\\n padding-left: 18px;\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .mobile-only {\\n display: none;\\n }\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .desktop-only {\\n display: none;\\n }\\n}\\n\\n.nc-sidebar h1.tc-site-title {\\n margin: 0;\\n}\\n\\n.nc-sidebar p {\\n margin: 6px 0;\\n}\\n\\n.nc-sidebar .tc-site-subtitle {\\n color: \u003C\u003Ccolour site-title-foreground>>;\\n}\\n\\n.nc-sidebar .section .label {\\n padding: 2px 0;\\n color: \u003C\u003Ccolour site-title-foreground>>;\\n fill: \u003C\u003Ccolour site-title-foreground>>;\\n font-weight: bold;\\n line-height: 1.6em;\\n display: block;\\n width: 100%;\\n text-align: left;\\n padding: 8px 15px;\\n border-radius: 0;\\n}\\n\\n.nc-sidebar .section:not(.open) .label:hover {\\n background: rgba(0,0,0,.06);\\n}\\n\\n.nc-sidebar .section.open .label {\\n color: \u003C\u003Ccolour tiddler-background>>;\\n fill: \u003C\u003Ccolour tiddler-background>>;\\n background: \u003C\u003Ccolour primary>>;\\n border-bottom: 1px solid rgba(0,0,0,.1);\\n}\\n\\n.nc-sidebar .section .label .caret {\\n display: inline-block;\\n width: 15px;\\n float: right;\\n}\\n\\n.nc-sidebar .content {\\n padding: 6px 15px;\\n font-size: 1em;\\n}\\n\\n.nc-sidebar .tc-tiddlylink {\\n color: \u003C\u003Ccolour primary>>;\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .nc-sidebar {\\n position: fixed;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n }\\n}\\n\\n\u003C\u003Cif-sidebar \\\"\\\"\\\"\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n @keyframes sidebar-slide {\\n 0% {\\n left: -100vw;\\n }\\n 100% {\\n left: 0;\\n }\\n }\\n .nc-sidebar {\\n overflow: auto;\\n position: fixed;\\n width: 100%;\\n left: 0;\\n top: 0;\\n bottom: 48px;\\n z-index: 3000;\\n animation: sidebar-slide ease-in .2s;\\n animation-fill-mode: forwards;\\n }\\n}\\n\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-page-container {\\n margin-left: {{$:/themes/nico/notebook/metrics/sidebar-width}} !important;\\n }\\n\\n .nc-topbar-wrapper {\\n left: {{$:/themes/nico/notebook/metrics/sidebar-width}};\\n }\\n}\\n\\\"\\\"\\\">>\\n\\n/* Animate the hamburger button */\\n\\n@keyframes menu-bars-1 {\\n 0% {}\\n 100% {\\n transform: rotate(-45deg) translateY(-10px) translateX(-6px);\\n fill: \u003C\u003Ccolour foreground>>;\\n }\\n}\\n\\n@keyframes menu-bars-2 {\\n 0% {}\\n 100% { opacity: 0; }\\n}\\n\\n@keyframes menu-bars-3 {\\n 0% {}\\n 100% {\\n transform: rotate(45deg) translateY(6px) translateX(2px);\\n fill: \u003C\u003Ccolour foreground>>;\\n }\\n}\\n\\n.sidebar-toggle {\\n /* position: fixed; */\\n /* top: 6px; */\\n /* left: 6px; */\\n /* z-index: 600; */\\n /* padding: 4px; */\\n /* border-radius: 8px; */\\n margin-right: 10px;\\n transition: all ease-in-out .2s;\\n fill: \u003C\u003Ccolour sidebar-controls-foreground>>;\\n}\\n\\n.sidebar-toggle:hover,\\n.sidebar-toggle.open {\\n fill: \u003C\u003Ccolour sidebar-controls-foreground-hover>>;\\n}\\n\\n/* @media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { */\\n/* .sidebar-toggle { */\\n/* top: auto; */\\n/* bottom: 10px; */\\n/* left: 10px; */\\n/* } */\\n/* } */\\n\\n.sidebar-toggle .bars .bar {\\n transform: rotate(0) translateY(0) translateX(0);\\n opacity: 1;\\n transform-origin: 20px 10px;\\n transition: transform 0.4s ease-in-out, opacity 0.2s ease-in-out, fill .4s ease-in-out;\\n}\\n\\n.sidebar-toggle .bars .bar:nth-of-type(3) {\\n transform-origin: 20px 20px;\\n}\\n\\n.sidebar-toggle.open .bars .bar:nth-of-type(1) {\\n animation: menu-bars-1 .6s;\\n animation-fill-mode: forwards;\\n}\\n.sidebar-toggle.open .bars .bar:nth-of-type(2) {\\n animation: menu-bars-2 .6s;\\n animation-fill-mode: forwards;\\n}\\n.sidebar-toggle.open .bars .bar:nth-of-type(3) {\\n animation: menu-bars-3 .6s;\\n animation-fill-mode: forwards;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n div.tc-tiddler-frame {\\n padding: 14px;\\n }\\n}\\n\\n/* Inputs */\\n\\ninput, textarea {\\n transition: border .14s ease-in-out;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n padding: .5em;\\n border-radius: 4px;\\n}\\n\\ninput:focus, textarea:focus {\\n box-shadow: 0 0 0.2rem 0 \u003C\u003Ccolour primary>>;\\n outline: 0;\\n border-color: \u003C\u003Ccolour primary>>;\\n}\\n\\nbutton {\\n border-radius: 1.5em;\\n border: 1px solid #ccc;\\n background: \u003C\u003Ccolour tiddler-background>>;\\n padding: .3em 1em;\\n cursor: pointer;\\n transition: box-shadow ease-in .1s;\\n color: \u003C\u003Ccolor foreground>>;\\n}\\n\\nbutton:focus, button:active {\\n outline: 0 none;\\n}\\n\\nbutton.tc-btn-invisible {\\n border-radius: 0;\\n}\\n\\n.tc-editor-toolbar button,\\n.tc-editor-toolbar button.tc-btn-invisible {\\n border-radius: 3px;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n color: \u003C\u003Ccolour foreground>>;\\n fill: \u003C\u003Ccolour foreground>>;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n}\\n\\n.tc-editor-toolbar button:hover,\\n.tc-editor-toolbar button:active {\\n border-color: \u003C\u003Ccolour primary>>;\\n background: \u003C\u003Ccolour primary>>;\\n color: \u003C\u003Ccolour background>>;\\n fill: \u003C\u003Ccolour background>>;\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor,\\n.tc-tiddler-frame textarea.tc-edit-texteditor,\\n.tc-tiddler-frame iframe.tc-edit-texteditor {\\n transition: border .14s ease-in-out;\\n border: 1px solid \u003C\u003Ccolour tiddler-editor-border>>;\\n background: \u003C\u003Ccolour tiddler-editor-background>>;\\n padding: 4px;\\n border-radius: 4px;\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor:focus,\\n.tc-tiddler-frame textarea.tc-edit-texteditor:focus,\\n.tc-tiddler-frame iframe.tc-edit-texteditor:focus {\\n box-shadow: 0 0 0.2rem 0 \u003C\u003Ccolour primary>>;\\n outline: 0;\\n border-color: \u003C\u003Ccolour primary>>;\\n}\\n\\n.tc-tiddler-controls .tc-btn-text {\\n font-size: 16px;\\n}\\n\\n\u003C\u003Cif-reveal-tiddler-controls-on-hover \\\"\\\"\\\"\\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-tiddler-frame .tc-tiddler-controls svg {\\n opacity: 0;\\n transition: all .2s ease-in;\\n }\\n\\n .tc-tiddler-controls svg.tc-image-close-button,\\n .tc-tiddler-controls .py-toggle-todo-button svg,\\n .tc-tiddler-controls svg.tc-image-done-button,\\n .tc-tiddler-frame .tc-tiddler-controls:hover svg {\\n opacity: 1;\\n }\\n\\n .tc-tiddler-controls .py-toggle-todo-button .done svg {\\n fill: #2da562;\\n }\\n}\\n\\\"\\\"\\\">>\\n\\nbutton.tc-tag-label, span.tc-tag-label {\\n padding: 0.3em 1em !important;\\n}\\n\\n/* Fonts */\\n\\nhtml, body {\\n font-family: {{$:/themes/nico/notebook/settings/fontfamily}};\\n}\\n\\n.tc-tiddler-frame input.tc-edit-texteditor,\\n.tc-tiddler-frame textarea.tc-edit-texteditor,\\n.tc-tiddler-frame iframe.tc-edit-texteditor {\\n font-family: {{$:/themes/nico/notebook/settings/editorfontfamily}};\\n}\\n\\npre, code {\\n font-family: {{$:/themes/nico/notebook/settings/codefontfamily}};\\n}\\n\\n.tc-titlebar, .tc-site-title {\\n font-size: 28px !important;\\n line-height: 34px !important;\\n font-weight: 600 !important;\\n letter-spacing: -0.5px !important;\\n}\\n\\nh1, h2, h3, h4, h5, h6 {\\n font-weight: 600;\\n}\\n\\n.tc-tiddler-body h1,\\n.tc-tiddler-body h2,\\n.tc-tiddler-preview-preview h1,\\n.tc-tiddler-preview-preview h2 {\\n font-weight: bold;\\n}\\n\\ndiv.tc-tiddler-frame .tc-tiddler-body {\\n font-size: {{$:/themes/nico/notebook/metrics/bodyfontsize}};\\n line-height: {{$:/themes/nico/notebook/metrics/bodylineheight}};\\n}\\n\\n/* Tabs */\\n\\ndiv.tc-tab-buttons {\\n margin-bottom: -4px;\\n}\\n\\ndiv.tc-tab-buttons button {\\n font-weight: bold;\\n font-size: 1.2em;\\n line-height: 1em;\\n padding: .6em .8em .4em .8em;\\n border: 0;\\n border-radius: 0;\\n background: transparent;\\n cursor: pointer;\\n transition: background ease-in .2s;\\n}\\n\\ndiv.tc-tab-buttons button:hover {\\n background: rgba(0,0,0,.03);\\n}\\n\\ndiv.tc-tab-buttons button.tc-tab-selected {\\n border: 0;\\n background: transparent;\\n border-bottom: 4px solid \u003C\u003Ccolour primary>>;\\n}\\n\\n/* Dropdowns */\\n\\n@keyframes pop {\\n 0% {\\n transform: scale(0.8);\\n opacity: 0;\\n }\\n\\n 80% {\\n transform: scale(1.03);\\n opacity: 1;\\n }\\n\\n 100% {\\n transform: scale(1);\\n opacity: 1;\\n }\\n}\\n\\n.tc-drop-down {\\n box-shadow: 0 0 10px rgba(0,0,0,.2);\\n border-radius: 6px;\\n padding: 10px 0 !important;\\n animation: pop .15s ease-in forwards;\\n}\\n\\n.tc-drop-down a, .tc-drop-down button {\\n padding: 3px 15px !important;\\n}\\n\\n.tc-search-results {\\n line-height: 2em;\\n}\\n\\n.tc-search-results em {\\n font-weight: bold;\\n font-style: normal;\\n}\\n\\n/* Draft list */\\n\\n.tc-drafts-list {\\n font-size: .9em;\\n left: auto;\\n right: 0;\\n}\\n\\n.tc-drafts-list a {\\n padding: 6px 12px;\\n font-weight: bold;\\n border-top-left-radius: 6px;\\n border-top-right-radius: 6px;\\n display: inline-block;\\n}\\n\\n.nc-refs {\\n color: #888;\\n font-size: .9em;\\n}\\n\\n.nc-refs h4 {\\n margin-bottom: 4px;\\n}\\n\\n.nc-post-created {\\n color: #acacac;\\n font-size: .8em;\\n}\\n\"\n },\n \"$:/themes/nico/notebook/changelog\": {\n \"title\": \"$:/themes/nico/notebook/changelog\",\n \"caption\": \"ChangeLog\",\n \"created\": \"20201217180707912\",\n \"modified\": \"20210202214001915\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"! 1.4.1\\n\\n!! Fixes\\n\\n* Fix the transclusion mode of sidebar sections\\n* Fix section title rendering for tiddlers without a caption field\\n* Fix the colour of links in the sidebar when using Notebook palettes with Vanilla\\n\\n! 1.4.0\\n\\n!! Features\\n\\n* New redesigned topbar layout\\n* Add a configuration setting for the story width\\n* Add support for keyboard navigation in the search dropdown\\n\\n! 1.3.6\\n\\n!! Improvements\\n\\n* Improve the style of tabs\\n* New animation for drop-downs\\n* Use a lighter page background colour in the beige palette\\n\\n!! Fixes\\n\\n* Fix the default ctrl+shift+F shortcut for focusing the search input\\n\\n! 1.3.5\\n\\n!! Features\\n\\n* Add an option to reveal tiddler controls on mouseover\\n\\n! 1.3.4\\n\\n!! Improvements\\n\\n* Add a keyboard shortcut (alt+shift+s) to toggle Notebook sidebar\\n* Add missing colours to tiddler editor fields in the dark palette\\n\\n!! Fixes\\n\\n* Fix the size of toolbar button labels when the $:/config/Toolbar/Text is set to yes\\n\\n! 1.3.3\\n\\n!! Improvements\\n\\n* Make the sidebar more generic by using the default sidebar sections\\n\\n! 1.3.2\\n\\n!! Improvements\\n\\n* Add colours for messages in the dark palette\\n* Add colours for notification in the dark palette\\n* Set colours for messages in the beige palette\\n\\n! 1.3.1\\n\\n!! Features\\n\\n* New font family settings distinct from the Vanilla theme\\n\\n!! Improvements\\n\\n* Use a slightly lighter colour as the search input background\\n* Improve contrast of sidebar buttons in the dark palette\\n\\n!! Fixes\\n\\n* Fix tiddler control button colours in all three palettes\\n* Fix tab colours in palette-dark\\n\\n! 1.3.0\\n\\n!! Improvements\\n\\n* New dark colour palette\\n* Use a darker color for tiddler subtitles\\n* Add back the WebKit search cancel button in search inputs\\n\\n!! Fixes\\n\\n* Fix the z-index of the topbar for the zoomin story view\\n* Fix the font weight of tiddler titles in edit mode\\n\\n! 1.2.0\\n\\n!! Improvements\\n\\n* Better support for dark colour palettes\\n\\n!! Fixes\\n\\n* Fix rendering of overflowing/wrapping text in the sidebar\\n\\n! 1.1.0\\n\\n!! Features\\n\\n* New theme tweaks tab dedicated to Notebook in the control panel\\n* Inputs in the edit template are now styled consistently with other inputs\\n\\n!! Fixes\\n\\n* Fixes the position of sticky tiddler titles when the option is turned on\\n\"\n },\n \"$:/config/ShortcutInfo/notebook-focus-search\": {\n \"title\": \"$:/config/ShortcutInfo/notebook-focus-search\",\n \"text\": \"Focus on the topbar search field\"\n },\n \"$:/config/shortcuts/notebook-focus-search\": {\n \"title\": \"$:/config/shortcuts/notebook-focus-search\",\n \"text\": \"ctrl+shift+F\"\n },\n \"$:/config/Search/AutoFocus\": {\n \"title\": \"$:/config/Search/AutoFocus\",\n \"text\": \"false\"\n },\n \"$:/config/shortcuts/sidebar-search\": {\n \"title\": \"$:/config/shortcuts/sidebar-search\",\n \"text\": \"\"\n },\n \"$:/themes/nico/notebook/images/bars\": {\n \"title\": \"$:/themes/nico/notebook/images/bars\",\n \"created\": \"20200428212322206\",\n \"modified\": \"20201210210231235\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg class=\\\"bars\\\" height=\\\"21pt\\\" viewBox=\\\"0 0 42 42\\\" enable-background=\\\"new 0 0 32 22.5\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n \u003Cg class=\\\"svg-menu-toggle\\\" sketch:type=\\\"MSLayerGroup\\\">\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"28\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"19\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003Crect class=\\\"bar\\\" x=\\\"8\\\" y=\\\"10\\\" width=\\\"26\\\" height=\\\"4\\\">\u003C/rect>\\n \u003C/g>\\n\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/caret-down\": {\n \"title\": \"$:/themes/nico/notebook/images/caret-down\",\n \"created\": \"20200429194348688\",\n \"modified\": \"20201210210230919\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"6pt\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\">\u003Cpath d=\\\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\\"/>\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/caret-right\": {\n \"title\": \"$:/themes/nico/notebook/images/caret-right\",\n \"created\": \"20200429194305719\",\n \"modified\": \"20201210210230909\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"4pt\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\">\u003Cpath d=\\\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\\\"/>\u003C/svg>\\n\"\n },\n \"$:/themes/nico/notebook/images/color-switch\": {\n \"title\": \"$:/themes/nico/notebook/images/color-switch\",\n \"created\": \"20201210170859810\",\n \"creator\": \"nico\",\n \"modified\": \"20201210205606403\",\n \"modifier\": \"nico\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Csvg width=\\\"20px\\\" height=\\\"20px\\\" viewBox=\\\"0 0 16 16\\\" class=\\\"bi bi-circle-half\\\" fill=\\\"currentColor\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n \u003Cpath fill-rule=\\\"evenodd\\\" d=\\\"M8 15V1a7 7 0 1 1 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z\\\"/>\\n\u003C/svg\\n\"\n },\n \"$:/themes/nico/notebook/metrics/bodyfontsize\": {\n \"title\": \"$:/themes/nico/notebook/metrics/bodyfontsize\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"15px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/bodylineheight\": {\n \"title\": \"$:/themes/nico/notebook/metrics/bodylineheight\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"22px\"\n },\n \"$:/themes/nico/notebook/metrics/sidebar-width\": {\n \"title\": \"$:/themes/nico/notebook/metrics/sidebar-width\",\n \"created\": \"20200429144554294\",\n \"modified\": \"20201210210231246\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"350px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/story-width\": {\n \"title\": \"$:/themes/nico/notebook/metrics/story-width\",\n \"created\": \"20210123210054185\",\n \"modified\": \"20210123211911688\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"800px\\n\"\n },\n \"$:/themes/nico/notebook/metrics/topbar-height\": {\n \"title\": \"$:/themes/nico/notebook/metrics/topbar-height\",\n \"created\": \"20200428203454207\",\n \"modified\": \"20201210205606363\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"52px\\n\"\n },\n \"$:/themes/nico/notebook/options/stickytitles\": {\n \"title\": \"$:/themes/nico/notebook/options/stickytitles\",\n \"text\": \"no\"\n },\n \"$:/themes/nico/notebook/options/codewrapping\": {\n \"title\": \"$:/themes/nico/notebook/options/codewrapping\",\n \"text\": \"pre-wrap\"\n },\n \"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\": {\n \"title\": \"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\",\n \"text\": \"no\"\n },\n \"$:/core/ui/PageTemplate/sidebar\": {\n \"title\": \"$:/core/ui/PageTemplate/sidebar\",\n \"created\": \"20200430072116835\",\n \"modified\": \"20201217174129501\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\nOverwritten by $:/themes/nico/notebook so that the default sidebar does not get rendered.\\n\"\n },\n \"$:/themes/tiddlywiki/vanilla/themetweaks\": {\n \"title\": \"$:/themes/tiddlywiki/vanilla/themetweaks\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"created\": \"20201217163834291\",\n \"modified\": \"20201217163914434\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"Overwritten by $:/themes/nico/notebook so that the Vanilla theme tweaks do not appear in the control panel. \"\n },\n \"$:/themes/nico/notebook/palettes/palette-beige\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-beige\",\n \"text\": \"alert-background: #ffe476\\nalert-border: #b99e2f\\nalert-highlight: #881122\\nalert-muted-foreground: #b99e2f\\nbackground: #ffffff\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-foreground:\\nbutton-border:\\ncode-background: #f7f7f9\\ncode-border: #e1e1e8\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #66cccc\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #ddd\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #0000aa\\nexternal-link-foreground: #0000ee\\nforeground: #3F3B3B\\nmessage-background: #e6f5e8\\nmessage-border: #2b5532\\nmessage-foreground: #2b5532\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #ffffdd\\nnotification-border: #999999\\npage-background: #f5f5ee\\npre-background: #f6f6f6\\npre-border: #cccccc\\nprimary: #7f4bca\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #a6a69c\\nsidebar-controls-foreground-hover: #000000\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #acacac\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: #ffffff\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: #353748\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: #ffffff\\ntab-background: #eeeeee\\ntab-border-selected: #cccccc\\ntab-border: #cccccc\\ntab-divider: #d8d8d8\\ntab-foreground-selected: \u003C\u003Ccolour foreground>>\\ntab-foreground: #888888\\ntable-border: #dddddd\\ntable-footer-background: #a8a8a8\\ntable-header-background: #f0f0f0\\ntag-background: #ffeedd\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #dbdbc7;\\ntiddler-controls-foreground-hover: #888888;\\ntiddler-controls-foreground-selected: #888888;\\ntiddler-controls-foreground: #cccccc\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(0,0,0,.2)\\ntiddler-editor-fields-even: #e0e8e0\\ntiddler-editor-fields-odd: #f0f4f0\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: #333\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\ntoolbar-info-button:\\ntoolbar-edit-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-cancel-button:\\ntoolbar-done-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A beige colour palette for Notebook\",\n \"name\": \"Notebook Beige\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/palettes/palette-dark\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-dark\",\n \"text\": \"alert-background: #643b43\\nalert-border: #3f181f\\nalert-highlight: #881122\\nalert-muted-foreground: #bc8b94\\nbackground: #383e49\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-border:\\nbutton-foreground:\\ncode-background: #2c323b\\ncode-border: #111\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #98be65\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #111\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #61afef\\nexternal-link-foreground: #c678dd\\nforeground: #c8ced8\\nmessage-background: #2c323e\\nmessage-border: #111\\nmessage-foreground: #d5e2f1\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #3a5e39\\nnotification-border: #192c19\\npage-background: #262b33\\npre-background: \u003C\u003Ccolour page-background>>\\npre-border: \u003C\u003Ccolour tiddler-border>>\\nprimary: #bf93ff\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #5e646f\\nsidebar-controls-foreground-hover: #cad2e5\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #cad2e5\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: \u003C\u003Ccolour tab-background-selected>>\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: \u003C\u003Ccolour foreground>>\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: \u003C\u003Ccolour background>>\\ntab-background: \u003C\u003Ccolour page-background>>\\ntab-border-selected: \u003C\u003Ccolour foreground>>\\ntab-border: #cad2e5\\ntab-divider: #cad2e5\\ntab-foreground-selected: #ecf2ff\\ntab-foreground: #cad2e5\\ntable-border: #aaaaaa\\ntable-footer-background: #a8a8a8\\ntable-header-background: #262b33\\ntag-background: #fcb671\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #111\\ntiddler-controls-foreground-hover: #cad2e5\\ntiddler-controls-foreground-selected: #cad2e5\\ntiddler-controls-foreground: #5e646f\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(255, 255, 255, 0.3)\\ntiddler-editor-fields-even: \u003C\u003Ccolour background>>\\ntiddler-editor-fields-odd: #2c323b\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: \u003C\u003Ccolour foreground>>\\ntoolbar-cancel-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-done-button:\\ntoolbar-edit-button:\\ntoolbar-info-button:\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A dark colour palette for Notebook\",\n \"name\": \"Notebook Dark\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/palettes/palette-grey\": {\n \"title\": \"$:/themes/nico/notebook/palettes/palette-grey\",\n \"text\": \"alert-background: #ffe476\\nalert-border: #b99e2f\\nalert-highlight: #881122\\nalert-muted-foreground: #b99e2f\\nbackground: #ffffff\\nblockquote-bar: \u003C\u003Ccolour muted-foreground>>\\nbutton-background:\\nbutton-foreground:\\nbutton-border:\\ncode-background: #f7f7f9\\ncode-border: #e1e1e8\\ncode-foreground: #dd1144\\ndirty-indicator: #c63636\\ndownload-background: #66cccc\\ndownload-foreground: \u003C\u003Ccolour background>>\\ndragger-background: \u003C\u003Ccolour foreground>>\\ndragger-foreground: \u003C\u003Ccolour background>>\\ndropdown-background: \u003C\u003Ccolour background>>\\ndropdown-border: #ddd\\ndropdown-tab-background-selected: #fff\\ndropdown-tab-background: #ececec\\ndropzone-background: #da8548\\nexternal-link-background-hover: inherit\\nexternal-link-background-visited: inherit\\nexternal-link-background: inherit\\nexternal-link-foreground-hover: inherit\\nexternal-link-foreground-visited: #0000aa\\nexternal-link-foreground: #0000ee\\nforeground: #283c46\\nmessage-background: #ecf2ff\\nmessage-border: #cfd6e6\\nmessage-foreground: #547599\\nmodal-backdrop: \u003C\u003Ccolour foreground>>\\nmodal-background: \u003C\u003Ccolour background>>\\nmodal-border: #999999\\nmodal-footer-background: #f5f5f5\\nmodal-footer-border: #dddddd\\nmodal-header-border: #eeeeee\\nmuted-foreground: #999999\\nnotification-background: #ffffdd\\nnotification-border: #999999\\npage-background: #f4f4f4\\npre-background: #f6f6f6\\npre-border: #cccccc\\nprimary: #127edd\\nselect-tag-background:\\nselect-tag-foreground:\\nsidebar-button-foreground: #a6a69c\\nsidebar-controls-foreground-hover: #000000\\nsidebar-controls-foreground: \u003C\u003Ccolour sidebar-button-foreground>>\\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\\nsidebar-foreground: #acacac\\nsidebar-muted-foreground-hover: #444444\\nsidebar-muted-foreground: #c0c0c0\\nsidebar-tab-background-selected: #ffffff\\nsidebar-tab-background: \u003C\u003Ccolour tab-background>>\\nsidebar-tab-border-selected: \u003C\u003Ccolour tab-border-selected>>\\nsidebar-tab-border: \u003C\u003Ccolour tab-border>>\\nsidebar-tab-divider: \u003C\u003Ccolour tab-divider>>\\nsidebar-tab-foreground-selected: \u003C\u003Ccolour tab-foreground-selected>>\\nsidebar-tab-foreground: \u003C\u003Ccolour tab-foreground>>\\nsidebar-tiddler-link-foreground-hover: \u003C\u003Ccolour primary>>\\nsidebar-tiddler-link-foreground: \u003C\u003Ccolour tab-foreground>>\\nsite-title-foreground: #353748\\nstatic-alert-foreground: #aaaaaa\\ntab-background-selected: #ffffff\\ntab-background: #eeeeee\\ntab-border-selected: #cccccc\\ntab-border: #cccccc\\ntab-divider: #d8d8d8\\ntab-foreground-selected: \u003C\u003Ccolour foreground>>\\ntab-foreground: #888888\\ntable-border: #dddddd\\ntable-footer-background: #a8a8a8\\ntable-header-background: #f0f0f0\\ntag-background: #ffeedd\\ntag-foreground: #000\\ntiddler-background: \u003C\u003Ccolour background>>\\ntiddler-border: #ddd\\ntiddler-controls-foreground-hover: #888888;\\ntiddler-controls-foreground-selected: #888888;\\ntiddler-controls-foreground: #cccccc\\ntiddler-editor-background: \u003C\u003Ccolour background>>\\ntiddler-editor-border-image: #ffffff\\ntiddler-editor-border: rgba(0,0,0,.2)\\ntiddler-editor-fields-even: #e0e8e0\\ntiddler-editor-fields-odd: #f0f4f0\\ntiddler-info-background: #f8f8f8\\ntiddler-info-border: #dddddd\\ntiddler-info-tab-background: #f8f8f8\\ntiddler-link-background: \u003C\u003Ccolour background>>\\ntiddler-link-foreground: \u003C\u003Ccolour primary>>\\ntiddler-subtitle-foreground: #aaaaaa\\ntiddler-title-foreground: #333\\ntoolbar-new-button:\\ntoolbar-options-button:\\ntoolbar-save-button:\\ntoolbar-info-button:\\ntoolbar-edit-button:\\ntoolbar-close-button:\\ntoolbar-delete-button:\\ntoolbar-cancel-button:\\ntoolbar-done-button:\\nuntagged-background: #999999\\nvery-muted-foreground: #888888\\n\",\n \"type\": \"application/x-tiddler-dictionary\",\n \"description\": \"A grey color palette for Notebook\",\n \"name\": \"Notebook Grey\",\n \"tags\": \"$:/tags/Palette $:/tags/notebook/Palette\"\n },\n \"$:/themes/nico/notebook/settings/codefontfamily\": {\n \"title\": \"$:/themes/nico/notebook/settings/codefontfamily\",\n \"created\": \"20210101213404232\",\n \"modified\": \"20210101214210227\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\"Fira Mono\\\",\\\"Liberation Mono\\\",Menlo,Courier,monospace\\n\"\n },\n \"$:/themes/nico/notebook/settings/fontfamily\": {\n \"title\": \"$:/themes/nico/notebook/settings/fontfamily\",\n \"created\": \"20210101213404232\",\n \"modified\": \"20210101213411800\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\"Segoe UI\\\",Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\"\\n\"\n },\n \"$:/themes/nico/notebook/shortcuts/notebook-focus-search\": {\n \"title\": \"$:/themes/nico/notebook/shortcuts/notebook-focus-search\",\n \"created\": \"20201210122048919\",\n \"key\": \"((notebook-focus-search))\",\n \"modified\": \"20210115130024907\",\n \"tags\": \"$:/tags/KeyboardShortcut\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$action-sendmessage $message=\\\"tm-focus-selector\\\" $param=\\\".nc-topbar input\\\"/>\\n\"\n },\n \"$:/themes/nico/notebook/shortcuts/toggle-sidebar\": {\n \"title\": \"$:/themes/nico/notebook/shortcuts/toggle-sidebar\",\n \"created\": \"20210115130000707\",\n \"key\": \"((toggle-sidebar))\",\n \"modified\": \"20210115130021883\",\n \"tags\": \"$:/tags/KeyboardShortcut\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$list\\n filter=\\\"[[$:/state/notebook-sidebar]is[missing]] [{$:/state/notebook-sidebar}removeprefix[yes]]\\\"\\n emptyMessage=\\\"\\\"\\\"\u003C$action-setfield $tiddler=\\\"$:/state/notebook-sidebar\\\" text=\\\"yes\\\"/>\\\"\\\"\\\"\\n>\\n \u003C$action-setfield $tiddler=\\\"$:/state/notebook-sidebar\\\" text=\\\"no\\\"/>\\n\u003C/$list>\\n\"\n },\n \"$:/themes/nico/notebook/stickytitles\": {\n \"title\": \"$:/themes/nico/notebook/stickytitles\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20201217180034682\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"text\": \"\u003C$reveal state=\\\"$:/themes/nico/notebook/options/stickytitles\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n\\n.tc-tiddler-title {\\n position: -webkit-sticky;\\n position: -moz-sticky;\\n position: -o-sticky;\\n position: -ms-sticky;\\n position: sticky;\\n top: {{$:/themes/nico/notebook/metrics/topbar-height}};\\n background: \u003C\u003Ccolour tiddler-background>>;\\n z-index: 500;\\n}\\n\\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\\n .tc-tiddler-title {\\n top: 0;\\n }\\n}\\n\\n\u003C$list filter=\\\"[range[100]]\\\">\\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`\u003C$text text=\u003C\u003CcurrentTiddler>>/>`) {\\nz-index: `\u003C$text text={{{ [[200]subtract\u003CcurrentTiddler>] }}}/>`;\\n}\\n`\\n\u003C/$list>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/tags/Sidebar\": {\n \"title\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"created\": \"20200429164516951\",\n \"list\": \"$:/themes/nico/notebook/ui/Buttons/menu $:/themes/nico/notebook/ui/Sidebar/Headings $:/themes/nico/notebook/ui/Sidebar/Search $:/themes/nico/notebook/Sidebar/Sections\",\n \"modified\": \"20201210205606504\",\n \"type\": \"text/vnd.tiddlywiki\"\n },\n \"$:/themes/nico/notebook/tags/SidebarSection\": {\n \"title\": \"$:/themes/nico/notebook/tags/SidebarSection\",\n \"created\": \"20200429201017275\",\n \"list\": \"$:/themes/nico/notebook/ui/Sidebar/Open $:/themes/nico/notebook/ui/Sidebar/Recent $:/themes/nico/notebook/ui/Sidebar/Tools $:/themes/nico/notebook/ui/Sidebar/More\",\n \"modified\": \"20201210215658901\",\n \"type\": \"text/vnd.tiddlywiki\"\n },\n \"$:/themes/nico/notebook/ui/Bottombar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Bottombar\",\n \"created\": \"20200429113453340\",\n \"modified\": \"20201210210230886\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-bottombar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n \u003Cdiv class=\\\"nc-bar nc-bottombar\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/NotebookTopbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003Cdiv class=\\\"left\\\">\\n {{$:/themes/nico/notebook/ui/Buttons/menu}}\\n \u003C/div>\\n \u003Cdiv class=\\\"right\\\">\\n {{$:/core/ui/SideBarSegments/page-controls}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\\n\"\n },\n \"$:/themes/nico/notebook/ui/Buttons/SwitchPalette\": {\n \"title\": \"$:/themes/nico/notebook/ui/Buttons/SwitchPalette\",\n \"created\": \"20201210171047824\",\n \"description\": \"Toggle between grey/beige colour palette\",\n \"modified\": \"20210118213335643\",\n \"tags\": \"$:/tags/PageControls\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cspan class=\\\"desktop-only\\\">\\n \u003C$vars\\n palettes=\\\"[all[tiddlers+shadows]tag[$:/tags/notebook/Palette]]\\\"\\n popupTiddler=\u003C\u003Cqualify \\\"$:/state/notebook/palette-dropdown\\\">>\\n >\\n \u003C$button\\n popup=\u003C\u003CpopupTiddler>>\\n tooltip=\\\"Switch colours\\\"\\n aria-label=\\\"Switch colours\\\"\\n class=\u003C\u003Ctv-config-toolbar-class>>\\n >\\n \u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">\\n\\t{{$:/themes/nico/notebook/images/color-switch}}\\n \u003C/$list>\\n\\n \u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\\n\\t\u003Cspan class=\\\"tc-btn-text\\\">Switch colours\u003C/span>\\n \u003C/$list>\\n\\n \u003C$reveal state=\u003C\u003CpopupTiddler>> type=\\\"popup\\\" position=\\\"belowleft\\\" class=\\\"tc-drop-down\\\">\\n\\t\u003C$list filter=\u003C\u003Cpalettes>>>\\n\\t \u003C$button class=\\\"tc-btn-invisible\\\">\\n\\t {{!!name}}\\n\\t \u003C$action-setfield $tiddler=\\\"$:/palette\\\" text={{!!title}}/>\\n\\t \u003C/$button>\\n\\t\u003C/$list>\\n \u003C/$reveal>\\n\\n \u003C/$button>\\n \u003C/$vars>\\n\u003C/span>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Buttons/menu\": {\n \"title\": \"$:/themes/nico/notebook/ui/Buttons/menu\",\n \"created\": \"20200429115248943\",\n \"modified\": \"20210124211756417\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"no\\\" retain=\\\"yes\\\" animate=\\\"no\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar\\\" setTo=\\\"no\\\" tooltip=\\\"Toggle menu\\\" class=\\\"tc-btn-invisible sidebar-toggle open\\\">\\n {{$:/themes/nico/notebook/images/bars}}\\n \u003C/$button>\\n\u003C/$reveal>\\n\\n\u003C$reveal type=\\\"nomatch\\\" state=\\\"$:/state/notebook-sidebar\\\" text=\\\"yes\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar\\\" setTo=\\\"yes\\\" tooltip=\\\"Toggle menu\\\" class=\\\"tc-btn-invisible sidebar-toggle\\\">\\n {{$:/themes/nico/notebook/images/bars}}\\n \u003C/$button>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Search\": {\n \"title\": \"$:/themes/nico/notebook/ui/Search\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210126170723413\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define advanced-search-actions()\\n\u003C$action-setfield $tiddler=\\\"$:/temp/advancedsearch/input\\\" text={{$:/temp/notebook-search}}/>\\n\u003C$action-setfield $tiddler=\\\"$:/temp/advancedsearch/refresh\\\" text=\\\"yes\\\"/>\\n\u003C$action-navigate $to=\\\"$:/AdvancedSearch\\\"/>\\n\\\\end\\n\\n\\\\define input-accept-actions()\\n\u003C$list filter=\\\"[\u003C__tiddler__>get[text]!is[missing]] ~[\u003C__tiddler__>get[text]is[shadow]]\\\">\\n \u003C$action-navigate $to={{{ [\u003C__tiddler__>get[text]] }}}/>\\n \u003C$action-deletetiddler $filter=\\\"[[$:/temp/search]] [\u003CsearchTiddler>] [\u003CsearchListState>]\\\"/>\\n\u003C/$list>\\n\\\\end\\n\\n\\\\define cancel-search-actions()\\n\u003C$list filter=\\\"[\u003CsearchTiddler>get[text]!match{$:/temp/search}]\\\" emptyMessage=\\\"\\\"\\\"\u003C$action-deletetiddler $filter=\\\"[[$:/temp/search]] [\u003CsearchTiddler>] [\u003CsearchListState>]\\\"/>\\\"\\\"\\\">\\n \u003C$action-setfield $tiddler=\\\"$:/temp/search\\\" text={{{ [\u003CsearchTiddler>get[text]] }}}/>\\n \u003C$action-setfield $tiddler=\\\"$:/temp/search/refresh\\\" text=\\\"yes\\\"/>\u003C/$list>\\n\\\\end\\n\\n\u003C$vars editTiddler=\\\"$:/temp/search\\\"\\n searchTiddler=\\\"$:/temp/search/input\\\"\\n searchListState=\u003C\u003Cqualify \\\"$:/state/search-list/selected-item\\\">>>\\n \u003C$macrocall $name=\\\"keyboard-driven-input\\\"\\n\\t tiddler=\u003C\u003CeditTiddler>>\\n\\t storeTitle=\u003C\u003CsearchTiddler>>\\n\\t selectionStateTitle=\u003C\u003CsearchListState>>\\n\\t refreshTitle=\\\"$:/temp/search/refresh\\\"\\n\\t type=\\\"search\\\"\\n\\t tag=\\\"input\\\"\\n\\t focus={{$:/config/Search/AutoFocus}}\\n\\t focusPopup=\\\"$:/state/popup/notebook-search\\\"\\n\\t class=\\\"tc-popup-handle\\\"\\n\\t filterMinLength={{$:/config/Search/MinLength}}\\n\\t placeholder=\\\"Search...\\\"\\n\\t inputAcceptActions=\u003C\u003Cinput-accept-actions>>\\n\\t inputCancelActions=\u003C\u003Ccancel-search-actions>>\\n\\t cancelPopups=\\\"yes\\\"\\n\\t configTiddlerFilter=\\\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\\\"\\n\\t />\\n \u003C$button\\n tooltip={{$:/language/Buttons/AdvancedSearch/Hint}}\\n aria-label={{$:/language/Buttons/AdvancedSearch/Caption}}\\n class=\\\"tc-btn-invisible tc-page-controls\\\"\\n >\\n {{$:/core/images/advanced-search-button}}\\n \u003C\u003Cadvanced-search-actions>>\\n \u003C/$button>\\n \u003C$reveal tag=\\\"div\\\" class=\\\"tc-block-dropdown-wrapper\\\" state=\\\"$:/state/popup/notebook-search\\\" type=\\\"nomatch\\\" text=\\\"\\\" default=\\\"\\\">\\n \u003C$list filter=\\\"[\u003CsearchTiddler>get[text]minlength{$:/config/Search/MinLength}limit[1]]\\\" emptyMessage=\\\"\\\" variable=\\\"listItem\\\">\\n \u003Cdiv class=\\\"tc-block-dropdown tc-search-drop-down\\\">\\n \u003C$tiddler tiddler=\u003C\u003CconfigTiddler>>>\\n {{$:/themes/nico/notebook/ui/Sidebar/SearchResults}}\\n \u003C/$tiddler>\\n \u003C/div>\\n \u003C/$list>\\n \u003C/$reveal>\\n\u003C/$vars>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Headings\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Headings\",\n \"created\": \"20200429160014174\",\n \"modified\": \"20201210210231267\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cdiv class=\\\"segment\\\">\\n \u003Cdiv class=\\\"content\\\">\\n \u003Ch1 class=\\\"tc-site-title\\\">\\n {{$:/SiteTitle}}\\n \u003C/h1>\\n \u003Cdiv class=\\\"tc-site-subtitle\\\">\\n {{$:/SiteSubtitle}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Search\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Search\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210124220152702\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003Cdiv class=\\\"mobile-only\\\">\\n \u003Cdiv class=\\\"segment\\\">\\n \u003Cdiv class=\\\"content search\\\">\\n {{$:/themes/nico/notebook/ui/Search}}\\n \u003C/div>\\n \u003C/div>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/SearchResults\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/SearchResults\",\n \"created\": \"20200429191943257\",\n \"modified\": \"20210126164631418\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define searchResultList()\\n \u003Csmall>{{$:/language/Search/Matches/Title}}\u003C/small>\\n\\n \u003C$list filter=\\\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\\\">\\n \u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-primaryList]] -[\u003CsearchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\\n \u003C$transclude tiddler=\\\"$:/core/ui/ListItemTemplate\\\"/>\\n \u003C/span>\\n \u003C/$list>\\n\\n \u003Csmall>{{$:/language/Search/Matches/All}}\u003C/small>\\n\\n \u003C$list filter=\\\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\\\">\\n \u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-secondaryList]] -[\u003CsearchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\\n \u003C$transclude tiddler=\\\"$:/core/ui/ListItemTemplate\\\"/>\\n \u003C/span>\\n \u003C/$list>\\n\\\\end\\n\\n\u003Cdiv class=\\\"tc-search-results\\\">\\n \u003C\u003CsearchResultList>>\\n\u003C/div>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/SectionTemplate\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/SectionTemplate\",\n \"created\": \"20200429161226897\",\n \"modified\": \"20210202213859460\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\define sidebarHeading()\\n\u003C$vars tv-wikilinks=\\\"no\\\">\\n \u003C$transclude field=\\\"caption\\\">\\n \u003C$view field=\\\"title\\\"/>\\n \u003C/$transclude>\\n\u003C/$vars>\\n\\\\end\\n\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar-section\\\" type=\\\"match\\\" text=\u003C\u003CcurrentTiddler>> default=\\\"no\\\" animate=\\\"no\\\">\\n \u003Cdiv class=\\\"segment section open\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar-section\\\" setTo=\\\"\\\" class=\\\"tc-btn-invisible label\\\">\\n \u003C\u003CsidebarHeading>>\\n \u003Cspan class=\\\"caret\\\">{{$:/themes/nico/notebook/images/caret-down}}\u003C/span>\\n \u003C/$button>\\n \u003Cdiv class=\\\"content\\\">\\n \u003C$transclude $tiddler=\u003C\u003CcurrentTiddler>> mode=\\\"block\\\"/>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar-section\\\" type=\\\"nomatch\\\" text=\u003C\u003CcurrentTiddler>> default=\\\"yes\\\" animate=\\\"no\\\">\\n \u003Cdiv class=\\\"segment section\\\">\\n \u003C$button set=\\\"$:/state/notebook-sidebar-section\\\" setTo=\u003C\u003CcurrentTiddler>> class=\\\"tc-btn-invisible label\\\">\\n \u003C\u003CsidebarHeading>>\\n \u003Cspan class=\\\"caret\\\">{{$:/themes/nico/notebook/images/caret-right}}\u003C/span>\\n \u003C/$button>\\n \u003C/div>\\n\u003C/$reveal>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar/Sections\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar/Sections\",\n \"created\": \"20200429163239707\",\n \"modified\": \"20210112213620486\",\n \"tags\": \"$:/themes/nico/notebook/tags/Sidebar\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$list filter=\\\"[all[shadows+tiddlers]!has[draft.of]tag[$:/tags/SideBar]]\\\">\\n {{||$:/themes/nico/notebook/ui/Sidebar/SectionTemplate}}\\n\u003C/$list>\\n\"\n },\n \"$:/themes/nico/notebook/ui/Sidebar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Sidebar\",\n \"created\": \"20200428201218885\",\n \"modified\": \"20210112213605486\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\\\whitespace trim\\n\\\\define config-title()\\n$:/config/SideBarSegments/Visibility/$(listItem)$\\n\\\\end\\n\\n\u003C$reveal state=\\\"$:/state/notebook-sidebar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"no\\\" retain=\\\"yes\\\" animate=\\\"no\\\">\\n \u003C$scrollable fallthrough=\\\"no\\\">\\n \u003Cdiv class=\\\"nc-sidebar\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/themes/nico/notebook/tags/Sidebar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"inline\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003C/div>\\n \u003C/$scrollable>\\n\u003C/$reveal>\\n\\n\"\n },\n \"$:/themes/nico/notebook/ui/Topbar\": {\n \"title\": \"$:/themes/nico/notebook/ui/Topbar\",\n \"created\": \"20200428203101797\",\n \"modified\": \"20210124213834458\",\n \"tags\": \"$:/tags/PageTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$reveal state=\\\"$:/state/notebook-topbar\\\" type=\\\"match\\\" text=\\\"yes\\\" default=\\\"yes\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n \u003Cdiv class=\\\"nc-topbar-wrapper\\\">\\n \u003Cdiv class=\\\"nc-bar nc-topbar tc-adjust-top-of-scroll\\\">\\n \u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/NotebookTopbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n \u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-title>> text=\\\"hide\\\" tag=\\\"div\\\">\\n \u003C$transclude tiddler=\u003C\u003ClistItem>> mode=\\\"block\\\"/>\\n \u003C/$reveal>\\n \u003C/$list>\\n \u003Cdiv class=\\\"left\\\">\\n\\t{{$:/themes/nico/notebook/ui/Buttons/menu}}\\n {{$:/themes/nico/notebook/ui/Search}}\\n \u003C/div>\\n \u003Cdiv class=\\\"right\\\">\\n {{$:/core/ui/SideBarSegments/page-controls}}\\n \u003C/div>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$reveal>\\n\\n\"\n }\n }\n}","bag":"default","revision":"0","version":"1.4.1","type":"application/json","title":"$:/themes/nico/notebook","source":"https://github.com/NicolasPetton/Notebook","plugin-type":"theme","name":"Notebook theme","list":"LICENSE changelog","description":"A clean, uncluttered TiddlyWiki theme","dependents":"$:/themes/tiddlywiki/vanilla $:/plugins/nico/notebook-mobile","core-version":">=5.1.22","author":"NicolasPetton","modified":"20240627123010609"}, {"created":"20200429144554294","title":"$:/themes/nico/notebook/metrics/sidebar-width","modified":"20230423163514560","tags":"","type":"text/vnd.tiddlywiki","text":"300px"}, @@ -1204,7 +1208,7 @@ button.sidebar-toggle{ {"created":"20230427081708927","text":"\u003C!-- sandboxify textareas with class 'sandboxify' -->\n\u003Cscript>\n\nfunction sandboxify() { \n let run = (t) => {\n let $res = t.parentElement.children[1]\n function log(res){\n\t\t if( !$res ) return\n $res.innerHTML = typeof res == 'string' ? res : JSON.stringify(res,null,2)\n }\n let _log = console.log\n console.log = log\n try{\n eval(t.value); \n }catch(e){ log(e) }finally{ console.log = _log }\n } \n const textareas = document.querySelectorAll(\"textarea.sandboxify\");\n textareas.forEach(t => {\n t.addEventListener(\"input\", function (event) {\n\t\t if( String(t.className).match(/noresult/) ) return\n try {\n run(t)\n } catch (error) {\n console.error(error);\n }\n });\n run(t)\n }); \n}\n\n// call sandboxify once on page load\nsandboxify();\n\n// set up a MutationObserver to call sandboxify on any new textareas added to the DOM\nconst observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.addedNodes && mutation.addedNodes.length > 0) {\n const addedNodes = mutation.addedNodes;\n addedNodes.forEach(addedNode => {\n if (addedNode.tagName === \"TEXTAREA\" && addedNode.classList.contains(\"sandboxify\")) {\n sandboxify();\n }\n });\n }\n });\n});\n\nobserver.observe(document, { childList: true, subtree: true });\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/sandboxify.js","modified":"20230627100108337"}, {"created":"20230427072514129","text":"\u003C!-- scriptie-talkie-embed.js -->\n\u003Cscript>\n\n(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=\"function\"==typeof require&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw Error(\"Cannot find module '\"+n+\"'\")}var u=t[n]={exports:{}};e[n][0](function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}for(var r=\"function\"==typeof require&&require,s=0;n.length>s;s++)i(n[s]);return i})({1:[function(require){\"use strict\";var scriptieTalkieEmbed=require(\"../../\");scriptieTalkieEmbed()},{\"../../\":2}],3:[function(require,module,exports){\"use strict\";module.exports=function(textarea){var opts={},data=textarea.getAttribute(\"data-scriptie-talkie\");if(!data)return opts;try{opts=eval(\"(\"+data+\")\")}catch(e){console.error(e)}finally{return opts}}},{}],4:[function(require,module){\"use strict\";function trimEmpty(lines){for(;lines.length&&!lines[0].trim().length;)lines.shift();for(;lines.length&&!lines[lines.length-1].trim().length;)lines.length--}function leftAlign(lines){var indent=-1;if(lines.filter(function(line){return line.trim().length}).forEach(function(line){for(var lineIndent=0,col=0;\" \"===line.charAt(col++);)lineIndent++;indent=-1===indent?lineIndent:Math.min(indent,lineIndent)}),!indent)return lines;for(var i=0;lines.length>i;i++)lines[i]=lines[i].slice(indent)}module.exports=function(textarea,addRows){addRows=addRows||0;var lines=textarea.textContent.split(\"\\n\");return trimEmpty(lines),leftAlign(lines),textarea.rows=Math.max(lines.length+addRows,1),textarea.textContent=lines.join(\"\\n\"),lines}},{}],5:[function(require,module){\"use strict\";function replaceElement(replaceEl,withEl){replaceEl.parentNode.replaceChild(withEl,replaceEl)}var format=require(\"util\").format;module.exports=function(textarea,opts){opts=opts||{};var minHeight=opts.minHeight||150,maxHeight=opts.maxHeight||600,minWidth=opts.minWidth||600,textareaWidth=textarea.clientWidth,width=Math.max(minWidth,textareaWidth),height=textarea.clientHeight+50;height=Math.max(minHeight,height),height=Math.min(maxHeight,height);var container=document.createElement(\"div\");return container.setAttribute(\"class\",\"scriptie-talkie-container\"),container.setAttribute(\"style\",format(\"width: %spx; height: %spx\",width,height)),replaceElement(textarea,container),container}},{util:6}],7:[function(require,module){\"use strict\";module.exports=function(container){var link=document.createElement(\"a\");return link.setAttribute(\"class\",\"scriptie-talkie-link\"),window.link=link,container.appendChild(link),link.textContent=\"full view\",link}},{}],8:[function(require,module){\"use script\";module.exports=function(){var head=document.getElementsByTagName(\"head\")[0],style=document.createElement(\"style\");style.type=\"text/css\",style.styleSheet?style.styleSheet.cssText=css:style.appendChild(document.createTextNode(css)),head.appendChild(style)};var css=[\"textarea.scriptie-talkie {\",\" visibility: hidden;\",\" display : block;\",\"}\",\".scriptie-talkie-container {\",\" position: relative; \",\" margin: 10px 0px;\",\"}\",\".scriptie-talkie-editor,\",\".scriptie-talkie-terminal {\",\" position: absolute;\",\" top: 0;\",\" bottom: 0;\",\" height: 100%;\",\" width: 50%;\",\"}\",\".scriptie-talkie-editor {\",\" left: 0;\",\" right: 50%;\",\"}\",\".scriptie-talkie-link {\",\" position : absolute;\",\" bottom : 1px;\",\" right : 4px;\",\" font-size : 14px;\",\" color : yellowgreen;\",\" z-index : 1;\",\"}\",\"textarea.scriptie-talkie, \",\".scriptie-talkie-terminal,\",\".scriptie-talkie-editor {\",\" /* text area needs same font to determine editor size correctly */\",\" font-size : 14px;\",\" font-family : Terminus,Consolas,Profont,Monaco,Inconsolata,Inconsolata-g,\",' Unifont,Lime,\"ClearlyU PUA\",Clean,\"DejaVu Sans Mono\",\"Lucida Console\",',' \"Bitstream Vera Sans Mono\",Freemono,\"Liberation Mono\",Dina,Anka,Droid Sans Mono,',' Anonymous Pro,Proggy fonts,Envy Code R,Gamow,Courier,\"Courier New\",Terminal,monospace;',\"}\",\".scriptie-talkie-terminal {\",\" background : black;\",\" right: 0;\",\" left: 50%;\",\" overflow: auto\",\"}\",\"/* tweak the ace editor a bit since we will never have >99 lines and need to save space */\",\".scriptie-talkie-editor .ace_gutter-cell ,\",\".scriptie-talkie-editor .ace_folding-enabled > .ace_gutter-cell { \",\" padding-left: 20px;\",\" padding-right: 5px;\",\"}\"].join(\"\\n\")},{}],9:[function(require,module){\"use strict\";var qs=require(\"querystring\"),scriptieTalkieUrl=\"http://thlorenz.github.io/scriptie-talkie\";module.exports=function(code){return scriptieTalkieUrl+\"?\"+qs.stringify({code:code})}},{querystring:10}],2:[function(require,module){\"use strict\";function harvest(scripties){for(var textarea,res=[],len=scripties.length,i=0;len>i;i++)textarea=scripties.item(i),res.push(textarea);return res}function sizeTerminalToRowsAndAdjust(container,lines){var evaluatedLines=evaluateScript(lines.join(\"\\n\")),term=createTerminal(container,{lines:evaluatedLines});return container.style.height=term.height+\"px\",term}function talkify(textareas){loadStyles(),textareas.forEach(function(textarea){function evaluate(){var code=editor.getValue();terminal.reset(),link.setAttribute(\"href\",linkTo(code)),evaluateScript(code,terminal.writeln.bind(terminal))}var term,lines=prepareTextarea(textarea,-3),config=getTextareaConfig(textarea),container=createContainer(textarea),link=createLink(container);term=config.sizeToEditor?createTerminal(container):sizeTerminalToRowsAndAdjust(container,lines);var edit=createEditor(container,textarea.textContent,config),terminal=term.terminal,editor=edit.editor;editor.on(\"change\",debounce(evaluate,400,!1)),editor.clearSelection(),evaluate()})}var debounce=require(\"debounce\"),getTextareaConfig=require(\"./lib/get-textarea-config\"),prepareTextarea=require(\"./lib/prepare-textarea\"),createContainer=require(\"./lib/create-container\"),createEditor=require(\"./lib/create-editor\"),createTerminal=require(\"./lib/create-terminal\"),createLink=require(\"./lib/create-link\"),evaluateScript=require(\"./lib/evaluate-script\"),loadStyles=require(\"./lib/load-styles\"),linkTo=require(\"./lib/link-to\");module.exports=function(){var wantScripties=document.getElementsByClassName(\"scriptie-talkie\"),textareas=harvest(wantScripties);textareas.length&&talkify(textareas)},window.scriptieTalkieEmbed=module.exports},{\"./lib/get-textarea-config\":3,\"./lib/prepare-textarea\":4,\"./lib/create-container\":5,\"./lib/create-editor\":11,\"./lib/create-terminal\":12,\"./lib/create-link\":7,\"./lib/evaluate-script\":13,\"./lib/load-styles\":8,\"./lib/link-to\":9,debounce:14}],6:[function(require,module,exports){function isArray(ar){return ar instanceof Array||Array.isArray(ar)||ar&&ar!==Object.prototype&&isArray(ar.__proto__)}function isRegExp(re){return re instanceof RegExp||\"object\"==typeof re&&\"[object RegExp]\"===Object.prototype.toString.call(re)}function isDate(d){if(d instanceof Date)return!0;if(\"object\"!=typeof d)return!1;var properties=Date.prototype&&Object_getOwnPropertyNames(Date.prototype),proto=d.__proto__&&Object_getOwnPropertyNames(d.__proto__);return JSON.stringify(proto)===JSON.stringify(properties)}require(\"events\"),exports.isArray=isArray,exports.isDate=function(obj){return\"[object Date]\"===Object.prototype.toString.call(obj)},exports.isRegExp=function(obj){return\"[object RegExp]\"===Object.prototype.toString.call(obj)},exports.print=function(){},exports.puts=function(){},exports.debug=function(){},exports.inspect=function(obj,showHidden,depth,colors){function format(value,recurseTimes){if(value&&\"function\"==typeof value.inspect&&value!==exports&&(!value.constructor||value.constructor.prototype!==value))return value.inspect(recurseTimes);switch(typeof value){case\"undefined\":return stylize(\"undefined\",\"undefined\");case\"string\":var simple=\"'\"+JSON.stringify(value).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return stylize(simple,\"string\");case\"number\":return stylize(\"\"+value,\"number\");case\"boolean\":return stylize(\"\"+value,\"boolean\")}if(null===value)return stylize(\"null\",\"null\");var visible_keys=Object_keys(value),keys=showHidden?Object_getOwnPropertyNames(value):visible_keys;if(\"function\"==typeof value&&0===keys.length){if(isRegExp(value))return stylize(\"\"+value,\"regexp\");var name=value.name?\": \"+value.name:\"\";return stylize(\"[Function\"+name+\"]\",\"special\")}if(isDate(value)&&0===keys.length)return stylize(value.toUTCString(),\"date\");var base,type,braces;if(isArray(value)?(type=\"Array\",braces=[\"[\",\"]\"]):(type=\"Object\",braces=[\"{\",\"}\"]),\"function\"==typeof value){var n=value.name?\": \"+value.name:\"\";base=isRegExp(value)?\" \"+value:\" [Function\"+n+\"]\"}else base=\"\";if(isDate(value)&&(base=\" \"+value.toUTCString()),0===keys.length)return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?stylize(\"\"+value,\"regexp\"):stylize(\"[Object]\",\"special\");seen.push(value);var output=keys.map(function(key){var name,str;if(value.__lookupGetter__&&(value.__lookupGetter__(key)?str=value.__lookupSetter__(key)?stylize(\"[Getter/Setter]\",\"special\"):stylize(\"[Getter]\",\"special\"):value.__lookupSetter__(key)&&(str=stylize(\"[Setter]\",\"special\"))),0>visible_keys.indexOf(key)&&(name=\"[\"+key+\"]\"),str||(0>seen.indexOf(value[key])?(str=null===recurseTimes?format(value[key]):format(value[key],recurseTimes-1),str.indexOf(\"\\n\")>-1&&(str=isArray(value)?str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\").substr(2):\"\\n\"+str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\"))):str=stylize(\"[Circular]\",\"special\")),name===void 0){if(\"Array\"===type&&key.match(/^\\d+$/))return str;name=JSON.stringify(\"\"+key),name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(name=name.substr(1,name.length-2),name=stylize(name,\"name\")):(name=name.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),name=stylize(name,\"string\"))}return name+\": \"+str});seen.pop();var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf(\"\\n\")>=0&&numLinesEst++,prev+cur.length+1},0);return output=length>50?braces[0]+(\"\"===base?\"\":base+\"\\n \")+\" \"+output.join(\",\\n \")+\" \"+braces[1]:braces[0]+base+\" \"+output.join(\", \")+\" \"+braces[1]}var seen=[],stylize=function(str,styleType){var styles={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},style={special:\"cyan\",number:\"blue\",\"boolean\":\"yellow\",undefined:\"grey\",\"null\":\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"}[styleType];return style?\"\u001b[\"+styles[style][0]+\"m\"+str+\"\u001b[\"+styles[style][1]+\"m\":str};return colors||(stylize=function(str){return str}),format(obj,depth===void 0?2:depth)},exports.log=function(){},exports.pump=null;var Object_keys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},Object_getOwnPropertyNames=Object.getOwnPropertyNames||function(obj){var res=[];for(var key in obj)Object.hasOwnProperty.call(obj,key)&&res.push(key);return res},Object_create=Object.create||function(prototype,properties){var object;if(null===prototype)object={__proto__:null};else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return properties!==void 0&&Object.defineProperties&&Object.defineProperties(object,properties),object};exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object_create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})};var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(\"string\"!=typeof f){for(var objects=[],i=0;arguments.length>i;i++)objects.push(exports.inspect(arguments[i]));return objects.join(\" \")}for(var i=1,args=arguments,len=args.length,str=(f+\"\").replace(formatRegExp,function(x){if(\"%%\"===x)return\"%\";if(i>=len)return x;switch(x){case\"%s\":return args[i++]+\"\";case\"%d\":return Number(args[i++]);case\"%j\":return JSON.stringify(args[i++]);default:return x}}),x=args[i];len>i;x=args[++i])str+=null===x||\"object\"!=typeof x?\" \"+x:\" \"+exports.inspect(x);return str}},{events:15}],10:[function(require,module,exports){function stringifyString(str,prefix){if(!prefix)throw new TypeError(\"stringify expects an object\");return prefix+\"=\"+encodeURIComponent(str)}function stringifyArray(arr,prefix){var ret=[];if(!prefix)throw new TypeError(\"stringify expects an object\");for(var i=0;arr.length>i;i++)ret.push(stringify(arr[i],prefix+\"[]\"));return ret.join(\"&\")}function stringifyObject(obj,prefix){for(var key,ret=[],keys=objectKeys(obj),i=0,len=keys.length;len>i;++i)key=keys[i],ret.push(stringify(obj[key],prefix?prefix+\"[\"+encodeURIComponent(key)+\"]\":encodeURIComponent(key)));return ret.join(\"&\")}function set(obj,key,val){var v=obj[key];void 0===v?obj[key]=val:isArray(v)?v.push(val):obj[key]=[v,val]}function lastBraceInKey(str){for(var brace,c,len=str.length,i=0;len>i;++i)if(c=str[i],\"]\"==c&&(brace=!1),\"[\"==c&&(brace=!0),\"=\"==c&&!brace)return i}var isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},objectKeys=Object.keys||function objectKeys(object){if(object!==Object(object))throw new TypeError(\"Invalid object\");var keys=[];for(var key in object)object.hasOwnProperty(key)&&(keys[keys.length]=key);return keys};exports.version=\"0.3.1\";var toString=Object.prototype.toString,notint=/[^0-9]/;exports.parse=function(str){function promote(parent,key){if(0==parent[key].length)return parent[key]={};var t={};for(var i in parent[key])t[i]=parent[key][i];return parent[key]=t,t}return null==str||\"\"==str?{}:(str+\"\").split(\"&\").reduce(function(ret,pair){function parse(parts,parent,key){var part=parts.shift();part?(obj=parent[key]=parent[key]||[],\"]\"==part?isArray(obj)?\"\"!=val&&obj.push(val):\"object\"==typeof obj?obj[objectKeys(obj).length]=val:obj=parent[key]=[parent[key],val]:~part.indexOf(\"]\")?(part=part.substr(0,part.length-1),notint.test(part)&&isArray(obj)&&(obj=promote(parent,key)),parse(parts,obj,part)):(notint.test(part)&&isArray(obj)&&(obj=promote(parent,key)),parse(parts,obj,part))):isArray(parent[key])?parent[key].push(val):parent[key]=\"object\"==typeof parent[key]?val:parent[key]===void 0?val:[parent[key],val]}try{pair=decodeURIComponent(pair.replace(/\\+/g,\" \"))}catch(e){}var eql=pair.indexOf(\"=\"),brace=lastBraceInKey(pair),key=pair.substr(0,brace||eql),val=pair.substr(brace||eql,pair.length),val=val.substr(val.indexOf(\"=\")+1,val.length),parent=ret;if(\"\"==key&&(key=pair,val=\"\"),~key.indexOf(\"]\")){var parts=key.split(\"[\");parts.length,parse(parts,parent,\"base\")}else{if(notint.test(key)&&isArray(parent.base)){var t={};for(var k in parent.base)t[k]=parent.base[k];parent.base=t}set(parent.base,key,val)}return ret},{base:{}}).base};var stringify=exports.stringify=function(obj,prefix){return isArray(obj)?stringifyArray(obj,prefix):\"[object Object]\"==toString.call(obj)?stringifyObject(obj,prefix):\"string\"==typeof obj?stringifyString(obj,prefix):prefix}},{}],14:[function(require,module){module.exports=function(func,threshold,execAsap){var timeout;return!1!==execAsap&&(execAsap=!0),function(){function delayed(){execAsap||func.apply(obj,args),timeout=null}var obj=this,args=arguments;timeout?clearTimeout(timeout):execAsap&&func.apply(obj,args),timeout=setTimeout(delayed,threshold||100)}}},{}],16:[function(require,module){var process=module.exports={};process.nextTick=function(){var canSetImmediate=\"undefined\"!=typeof window&&window.setImmediate,canPost=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener(\"message\",function(ev){if(ev.source===window&&\"process-tick\"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage(\"process-tick\",\"*\")}}return function(fn){setTimeout(fn,0)}}(),process.title=\"browser\",process.browser=!0,process.env={},process.argv=[],process.binding=function(){throw Error(\"process.binding is not supported\")},process.cwd=function(){return\"/\"},process.chdir=function(){throw Error(\"process.chdir is not supported\")}},{}],15:[function(require,module,exports){(function(process){function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;xs.length>i;i++)if(x===xs[i])return i;return-1}process.EventEmitter||(process.EventEmitter=function(){});var EventEmitter=exports.EventEmitter=process.EventEmitter,isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){this._events||(this._events={}),this._events.maxListeners=n},EventEmitter.prototype.emit=function(type){if(\"error\"===type&&(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length))throw arguments[1]instanceof Error?arguments[1]:Error(\"Uncaught, unspecified 'error' event.\");if(!this._events)return!1;var handler=this._events[type];if(!handler)return!1;if(\"function\"==typeof handler){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return!0}if(isArray(handler)){for(var args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),i=0,l=listeners.length;l>i;i++)listeners[i].apply(this,args);return!0}return!1},EventEmitter.prototype.addListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"addListener only takes instances of Function\");if(this._events||(this._events={}),this.emit(\"newListener\",type,listener),this._events[type])if(isArray(this._events[type])){if(!this._events[type].warned){var m;m=void 0!==this._events.maxListeners?this._events.maxListeners:defaultMaxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[type].length),console.trace())}this._events[type].push(listener)}else this._events[type]=[this._events[type],listener];else this._events[type]=listener;return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){var self=this;return self.on(type,function g(){self.removeListener(type,g),listener.apply(this,arguments)}),this},EventEmitter.prototype.removeListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"removeListener only takes instances of Function\");if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(0>i)return this;list.splice(i,1),0==list.length&&delete this._events[type]}else this._events[type]===listener&&delete this._events[type];return this},EventEmitter.prototype.removeAllListeners=function(type){return 0===arguments.length?(this._events={},this):(type&&this._events&&this._events[type]&&(this._events[type]=null),this)},EventEmitter.prototype.listeners=function(type){return this._events||(this._events={}),this._events[type]||(this._events[type]=[]),isArray(this._events[type])||(this._events[type]=[this._events[type]]),this._events[type]}})(require(\"__browserify_process\"))},{__browserify_process:16}],17:[function(){ace.define(\"ace/theme/monokai\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){exports.isDark=!0,exports.cssClass=\"ace-monokai\",exports.cssText=\".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai .ace_scroller {background-color: #272822}.ace-monokai .ace_text-layer {color: #F8F8F2}.ace-monokai .ace_cursor {border-left: 2px solid #F8F8F0}.ace-monokai .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;border-radius: 2px}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_markup.ace_underline {text-decoration: underline}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ11D6z7Bq1ar/ABCKBG6g04U2AAAAAElFTkSuQmCC) right repeat-y}\";var dom=acequire(\"../lib/dom\");dom.importCssString(exports.cssText,exports.cssClass)})},{}],18:[function(require){(function(){ace.define(\"ace/mode/javascript\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/tokenizer\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/range\",\"ace/worker/worker_client\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),TextMode=acequire(\"./text\").Mode,Tokenizer=acequire(\"../tokenizer\").Tokenizer,JavaScriptHighlightRules=acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules,MatchingBraceOutdent=acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;acequire(\"../range\").Range;var WorkerClient=acequire(\"../worker/worker_client\").WorkerClient,CstyleBehaviour=acequire(\"./behaviour/cstyle\").CstyleBehaviour,CStyleFoldMode=acequire(\"./folding/cstyle\").FoldMode,Mode=function(){this.$tokenizer=new Tokenizer((new JavaScriptHighlightRules).getRules()),this.$outdent=new MatchingBraceOutdent,this.$behaviour=new CstyleBehaviour,this.foldingRules=new CStyleFoldMode};oop.inherits(Mode,TextMode),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(state,line,tab){var indent=this.$getIndent(line),tokenizedLine=this.$tokenizer.getLineTokens(line,state),tokens=tokenizedLine.tokens,endState=tokenizedLine.state;if(tokens.length&&\"comment\"==tokens[tokens.length-1].type)return indent;if(\"start\"==state||\"no_regex\"==state){var match=line.match(/^.*(?:\\bcase\\b.*\\:|[\\{\\(\\[])\\s*$/);match&&(indent+=tab)}else if(\"doc-start\"==state){if(\"start\"==endState||\"no_regex\"==endState)return\"\";var match=line.match(/^\\s*(\\/?)\\*/);match&&(match[1]&&(indent+=\" \"),indent+=\"* \")}return indent},this.checkOutdent=function(state,line,input){return this.$outdent.checkOutdent(line,input)},this.autoOutdent=function(state,doc,row){this.$outdent.autoOutdent(doc,row)},this.createWorker=function(session){var worker=new WorkerClient([\"ace\"],require(\"../worker/javascript\"),\"JavaScriptWorker\");return worker.attachToDocument(session.getDocument()),worker.on(\"jslint\",function(results){session.setAnnotations(results.data)}),worker.on(\"terminate\",function(){session.clearAnnotations()}),worker}}.call(Mode.prototype),exports.Mode=Mode}),ace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),DocCommentHighlightRules=acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules,TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,JavaScriptHighlightRules=function(){var keywordMapper=this.createKeywordMapper({\"variable.language\":\"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document\",keyword:\"const|yield|import|get|set|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\"storage.type\":\"const|let|var|function\",\"constant.language\":\"null|Infinity|NaN|undefined\",\"support.function\":\"alert\",\"constant.language.boolean\":\"true|false\"},\"identifier\"),kwBeforeRe=\"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\",identifierRe=\"[a-zA-Z\\\\$_¡-￿][a-zA-Z\\\\d\\\\$_¡-￿]*\\\\b\",escapedRe=\"\\\\\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\";this.$rules={no_regex:[{token:\"comment\",regex:/\\/\\/.*$/},DocCommentHighlightRules.getStartRule(\"doc-start\"),{token:\"comment\",regex:/\\/\\*/,next:\"comment\"},{token:\"string\",regex:\"'(?=.)\",next:\"qstring\"},{token:\"string\",regex:'\"(?=.)',next:\"qqstring\"},{token:\"constant.numeric\",regex:/0[xX][0-9a-fA-F]+\\b/},{token:\"constant.numeric\",regex:/[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\"],regex:\"(\"+identifierRe+\")(\\\\.)(prototype)(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"punctuation.operator\",\"entity.name.function\",\"text\",\"keyword.operator\",\"text\",\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\.)(\"+identifierRe+\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"storage.type\",\"text\",\"entity.name.function\",\"text\",\"paren.lparen\"],regex:\"(function)(\\\\s+)(\"+identifierRe+\")(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"entity.name.function\",\"text\",\"punctuation.operator\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(\"+identifierRe+\")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:[\"text\",\"text\",\"storage.type\",\"text\",\"paren.lparen\"],regex:\"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",next:\"function_arguments\"},{token:\"keyword\",regex:\"(?:\"+kwBeforeRe+\")\\\\b\",next:\"start\"},{token:[\"punctuation.operator\",\"support.function\"],regex:/(\\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\\b(?=\\()/},{token:[\"punctuation.operator\",\"support.function.dom\"],regex:/(\\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\\b(?=\\()/},{token:[\"punctuation.operator\",\"support.constant\"],regex:/(\\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\\b/},{token:[\"storage.type\",\"punctuation.operator\",\"support.function.firebug\"],regex:/(console)(\\.)(warn|info|log|error|time|timeEnd|assert)\\b/},{token:keywordMapper,regex:identifierRe},{token:\"keyword.operator\",regex:/--|\\+\\+|[!$%&*+\\-~]|===|==|=|!=|!==|\u003C=|>=|\u003C\u003C=|>>=|>>>=|\u003C>|\u003C|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=/,next:\"start\"},{token:\"punctuation.operator\",regex:/\\?|\\:|\\,|\\;|\\./,next:\"start\"},{token:\"paren.lparen\",regex:/[\\[({]/,next:\"start\"},{token:\"paren.rparen\",regex:/[\\])}]/},{token:\"keyword.operator\",regex:/\\/=?/,next:\"start\"},{token:\"comment\",regex:/^#!.*$/}],start:[DocCommentHighlightRules.getStartRule(\"doc-start\"),{token:\"comment\",regex:\"\\\\/\\\\*\",next:\"comment_regex_allowed\"},{token:\"comment\",regex:\"\\\\/\\\\/.*$\",next:\"start\"},{token:\"string.regexp\",regex:\"\\\\/\",next:\"regex\"},{token:\"text\",regex:\"\\\\s+|^$\",next:\"start\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],regex:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"string.regexp\",regex:\"/\\\\w*\",next:\"no_regex\"},{token:\"invalid\",regex:/\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/},{token:\"constant.language.escape\",regex:/\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?]/},{token:\"constant.language.delimiter\",regex:/\\|/},{token:\"constant.language.escape\",regex:/\\[\\^?/,next:\"regex_character_class\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp\"}],regex_character_class:[{token:\"regexp.keyword.operator\",regex:\"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"},{token:\"constant.language.escape\",regex:\"]\",next:\"regex\"},{token:\"constant.language.escape\",regex:\"-\"},{token:\"empty\",regex:\"$\",next:\"no_regex\"},{defaultToken:\"string.regexp.charachterclass\"}],function_arguments:[{token:\"variable.parameter\",regex:identifierRe},{token:\"punctuation.operator\",regex:\"[, ]+\"},{token:\"punctuation.operator\",regex:\"$\"},{token:\"empty\",regex:\"\",next:\"no_regex\"}],comment_regex_allowed:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}],comment:[{token:\"comment\",regex:\"\\\\*\\\\/\",next:\"no_regex\"},{defaultToken:\"comment\"}],qqstring:[{token:\"constant.language.escape\",regex:escapedRe},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qqstring\"},{token:\"string\",regex:'\"|$',next:\"no_regex\"},{defaultToken:\"string\"}],qstring:[{token:\"constant.language.escape\",regex:escapedRe},{token:\"string\",regex:\"\\\\\\\\$\",next:\"qstring\"},{token:\"string\",regex:\"'|$\",next:\"no_regex\"},{defaultToken:\"string\"}]},this.embedRules(DocCommentHighlightRules,\"doc-\",[DocCommentHighlightRules.getEndRule(\"no_regex\")])\n};oop.inherits(JavaScriptHighlightRules,TextHighlightRules),exports.JavaScriptHighlightRules=JavaScriptHighlightRules}),ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,DocCommentHighlightRules=function(){this.$rules={start:[{token:\"comment.doc.tag\",regex:\"@[\\\\w\\\\d_]+\"},{token:\"comment.doc.tag\",regex:\"\\\\bTODO\\\\b\"},{defaultToken:\"comment.doc\"}]}};oop.inherits(DocCommentHighlightRules,TextHighlightRules),DocCommentHighlightRules.getStartRule=function(start){return{token:\"comment.doc\",regex:\"\\\\/\\\\*(?=\\\\*)\",next:start}},DocCommentHighlightRules.getEndRule=function(start){return{token:\"comment.doc\",regex:\"\\\\*\\\\/\",next:start}},exports.DocCommentHighlightRules=DocCommentHighlightRules}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"../range\").Range,MatchingBraceOutdent=function(){};(function(){this.checkOutdent=function(line,input){return/^\\s+$/.test(line)?/^\\s*\\}/.test(input):!1},this.autoOutdent=function(doc,row){var line=doc.getLine(row),match=line.match(/^(\\s*\\})/);if(!match)return 0;var column=match[1].length,openBracePos=doc.findMatchingBracket({row:row,column:column});if(!openBracePos||openBracePos.row==row)return 0;var indent=this.$getIndent(doc.getLine(openBracePos.row));doc.replace(new Range(row,0,row,column-1),indent)},this.$getIndent=function(line){return line.match(/^\\s*/)[0]}}).call(MatchingBraceOutdent.prototype),exports.MatchingBraceOutdent=MatchingBraceOutdent}),ace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"],function(acequire,exports){var oop=acequire(\"../../lib/oop\"),Behaviour=acequire(\"../behaviour\").Behaviour,TokenIterator=acequire(\"../../token_iterator\").TokenIterator,lang=acequire(\"../../lib/lang\"),SAFE_INSERT_IN_TOKENS=[\"text\",\"paren.rparen\",\"punctuation.operator\"],SAFE_INSERT_BEFORE_TOKENS=[\"text\",\"paren.rparen\",\"punctuation.operator\",\"comment\"],autoInsertedBrackets=0,autoInsertedRow=-1,autoInsertedLineEnd=\"\",maybeInsertedBrackets=0,maybeInsertedRow=-1,maybeInsertedLineStart=\"\",maybeInsertedLineEnd=\"\",CstyleBehaviour=function(){CstyleBehaviour.isSaneInsertion=function(editor,session){var cursor=editor.getCursorPosition(),iterator=new TokenIterator(session,cursor.row,cursor.column);if(!this.$matchTokenType(iterator.getCurrentToken()||\"text\",SAFE_INSERT_IN_TOKENS)){var iterator2=new TokenIterator(session,cursor.row,cursor.column+1);if(!this.$matchTokenType(iterator2.getCurrentToken()||\"text\",SAFE_INSERT_IN_TOKENS))return!1}return iterator.stepForward(),iterator.getCurrentTokenRow()!==cursor.row||this.$matchTokenType(iterator.getCurrentToken()||\"text\",SAFE_INSERT_BEFORE_TOKENS)},CstyleBehaviour.$matchTokenType=function(token,types){return types.indexOf(token.type||token)>-1},CstyleBehaviour.recordAutoInsert=function(editor,session,bracket){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);this.isAutoInsertedClosing(cursor,line,autoInsertedLineEnd[0])||(autoInsertedBrackets=0),autoInsertedRow=cursor.row,autoInsertedLineEnd=bracket+line.substr(cursor.column),autoInsertedBrackets++},CstyleBehaviour.recordMaybeInsert=function(editor,session,bracket){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);this.isMaybeInsertedClosing(cursor,line)||(maybeInsertedBrackets=0),maybeInsertedRow=cursor.row,maybeInsertedLineStart=line.substr(0,cursor.column)+bracket,maybeInsertedLineEnd=line.substr(cursor.column),maybeInsertedBrackets++},CstyleBehaviour.isAutoInsertedClosing=function(cursor,line,bracket){return autoInsertedBrackets>0&&cursor.row===autoInsertedRow&&bracket===autoInsertedLineEnd[0]&&line.substr(cursor.column)===autoInsertedLineEnd},CstyleBehaviour.isMaybeInsertedClosing=function(cursor,line){return maybeInsertedBrackets>0&&cursor.row===maybeInsertedRow&&line.substr(cursor.column)===maybeInsertedLineEnd&&line.substr(0,cursor.column)==maybeInsertedLineStart},CstyleBehaviour.popAutoInsertedClosing=function(){autoInsertedLineEnd=autoInsertedLineEnd.substr(1),autoInsertedBrackets--},CstyleBehaviour.clearMaybeInsertedClosing=function(){maybeInsertedBrackets=0,maybeInsertedRow=-1},this.add(\"braces\",\"insertion\",function(state,action,editor,session,text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row);if(\"{\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&\"{\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"{\"+selected+\"}\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return/[\\]\\}\\)]/.test(line[cursor.column])?(CstyleBehaviour.recordAutoInsert(editor,session,\"}\"),{text:\"{}\",selection:[1,1]}):(CstyleBehaviour.recordMaybeInsert(editor,session,\"{\"),{text:\"{\",selection:[1,1]})}else if(\"}\"==text){var rightChar=line.substring(cursor.column,cursor.column+1);if(\"}\"==rightChar){var matching=session.$findOpeningBracket(\"}\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}else if(\"\\n\"==text||\"\\r\\n\"==text){var closing=\"\";CstyleBehaviour.isMaybeInsertedClosing(cursor,line)&&(closing=lang.stringRepeat(\"}\",maybeInsertedBrackets),CstyleBehaviour.clearMaybeInsertedClosing());var rightChar=line.substring(cursor.column,cursor.column+1);if(\"}\"==rightChar||\"\"!==closing){var openBracePos=session.findMatchingBracket({row:cursor.row,column:cursor.column},\"}\");if(!openBracePos)return null;var indent=this.getNextLineIndent(state,line.substring(0,cursor.column),session.getTabString()),next_indent=this.$getIndent(line);return{text:\"\\n\"+indent+\"\\n\"+next_indent+closing,selection:[1,indent.length,1,indent.length]}}}}),this.add(\"braces\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"{\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.end.column,range.end.column+1);if(\"}\"==rightChar)return range.end.column++,range;maybeInsertedBrackets--}}),this.add(\"parens\",\"insertion\",function(state,action,editor,session,text){if(\"(\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"(\"+selected+\")\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return CstyleBehaviour.recordAutoInsert(editor,session,\")\"),{text:\"()\",selection:[1,1]}}else if(\")\"==text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),rightChar=line.substring(cursor.column,cursor.column+1);if(\")\"==rightChar){var matching=session.$findOpeningBracket(\")\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"parens\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"(\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(\")\"==rightChar)return range.end.column++,range}}),this.add(\"brackets\",\"insertion\",function(state,action,editor,session,text){if(\"[\"==text){var selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&editor.getWrapBehavioursEnabled())return{text:\"[\"+selected+\"]\",selection:!1};if(CstyleBehaviour.isSaneInsertion(editor,session))return CstyleBehaviour.recordAutoInsert(editor,session,\"]\"),{text:\"[]\",selection:[1,1]}}else if(\"]\"==text){var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),rightChar=line.substring(cursor.column,cursor.column+1);if(\"]\"==rightChar){var matching=session.$findOpeningBracket(\"]\",{column:cursor.column+1,row:cursor.row});if(null!==matching&&CstyleBehaviour.isAutoInsertedClosing(cursor,line,text))return CstyleBehaviour.popAutoInsertedClosing(),{text:\"\",selection:[1,1]}}}}),this.add(\"brackets\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&\"[\"==selected){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(\"]\"==rightChar)return range.end.column++,range}}),this.add(\"string_dquotes\",\"insertion\",function(state,action,editor,session,text){if('\"'==text||\"'\"==text){var quote=text,selection=editor.getSelectionRange(),selected=session.doc.getTextRange(selection);if(\"\"!==selected&&\"'\"!==selected&&'\"'!=selected&&editor.getWrapBehavioursEnabled())return{text:quote+selected+quote,selection:!1};var cursor=editor.getCursorPosition(),line=session.doc.getLine(cursor.row),leftChar=line.substring(cursor.column-1,cursor.column);if(\"\\\\\"==leftChar)return null;for(var token,tokens=session.getTokens(selection.start.row),col=0,quotepos=-1,x=0;tokens.length>x&&(token=tokens[x],\"string\"==token.type?quotepos=-1:0>quotepos&&(quotepos=token.value.indexOf(quote)),!(token.value.length+col>selection.start.column));x++)col+=tokens[x].value.length;if(!token||0>quotepos&&\"comment\"!==token.type&&(\"string\"!==token.type||selection.start.column!==token.value.length+col-1&&token.value.lastIndexOf(quote)===token.value.length-1)){if(!CstyleBehaviour.isSaneInsertion(editor,session))return;return{text:quote+quote,selection:[1,1]}}if(token&&\"string\"===token.type){var rightChar=line.substring(cursor.column,cursor.column+1);if(rightChar==quote)return{text:\"\",selection:[1,1]}}}}),this.add(\"string_dquotes\",\"deletion\",function(state,action,editor,session,range){var selected=session.doc.getTextRange(range);if(!range.isMultiLine()&&('\"'==selected||\"'\"==selected)){var line=session.doc.getLine(range.start.row),rightChar=line.substring(range.start.column+1,range.start.column+2);if(rightChar==selected)return range.end.column++,range}})};oop.inherits(CstyleBehaviour,Behaviour),exports.CstyleBehaviour=CstyleBehaviour}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(acequire,exports){var oop=acequire(\"../../lib/oop\");acequire(\"../../range\").Range;var BaseFoldMode=acequire(\"./fold_mode\").FoldMode,FoldMode=exports.FoldMode=function(commentRegex){commentRegex&&(this.foldingStartMarker=RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+commentRegex.start)),this.foldingStopMarker=RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+commentRegex.end)))};oop.inherits(FoldMode,BaseFoldMode),function(){this.foldingStartMarker=/(\\{|\\[)[^\\}\\]]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{]*(\\}|\\])|^[\\s\\*]*(\\*\\/)/,this.getFoldWidgetRange=function(session,foldStyle,row){var line=session.getLine(row),match=line.match(this.foldingStartMarker);if(match){var i=match.index;return match[1]?this.openingBracketBlock(session,match[1],row,i):session.getCommentFoldRange(row,i+match[0].length,1)}if(\"markbeginend\"===foldStyle){var match=line.match(this.foldingStopMarker);if(match){var i=match.index+match[0].length;return match[1]?this.closingBracketBlock(session,match[1],row,i):session.getCommentFoldRange(row,i,-1)}}}}.call(FoldMode.prototype)})})()},{\"../worker/javascript\":19}],11:[function(require,module){\"use strict\";var ace=require(\"brace\");require(\"brace/mode/javascript\"),require(\"brace/theme/monokai\"),module.exports=function(container,src){var editorContainer=document.createElement(\"div\");editorContainer.setAttribute(\"class\",\"scriptie-talkie-editor\"),container.appendChild(editorContainer);var editor=ace.edit(editorContainer),session=editor.getSession();return editor.setTheme(\"ace/theme/monokai\"),session.setMode(\"ace/mode/javascript\"),session.$tabSize=2,editor.$highlightActiveLine=!1,editor.setValue(src),{container:editorContainer,editor:editor}}},{\"brace/mode/javascript\":18,\"brace/theme/monokai\":17,brace:20}],12:[function(require,module){\"use strict\";function appendTerminal(terminalContainer,lines){var terminal=hypernal();return lines&&lines.forEach(function(line){terminal.writeln(line)}),terminal.appendTo(terminalContainer),terminal}function appendTerminalAndGetHeight(terminalContainer,lines){var terminal=appendTerminal(terminalContainer,lines),height=terminal.element.clientHeight;return{terminal:terminal,height:height}}var hypernal=require(\"hypernal\");module.exports=function(container,opts){opts=opts||{};var height,terminal,terminalContainer=document.createElement(\"div\");if(terminalContainer.setAttribute(\"class\",\"scriptie-talkie-terminal\"),container.appendChild(terminalContainer),opts.lines){var appended=appendTerminalAndGetHeight(terminalContainer,opts.lines);terminal=appended.terminal,height=appended.height}else terminal=appendTerminal(terminalContainer);return{container:terminalContainer,terminal:terminal,height:height}}},{hypernal:21}],13:[function(require,module){\"use strict\";var scriptieTalkie=require(\"scriptie-talkie\");module.exports=function(script,writeln){var lines=[];if(writeln=writeln||function(){},!script.trim().length)return lines;try{lines=scriptieTalkie(script),lines.forEach(function(line){writeln(line)})}catch(e){if(console.log(e.stack),console.error(\"\"+e),e instanceof ReferenceError&&/Trying to access object from destroyed plug-in/.test(e.message)){var msg=\"Looks like your iPad Safari browser doesn't like what scriptie talkie is doing.\\nPlease try another device and/or browser, i.e. chrome works everywhere, even on iPad.\";writeln(msg)}else e.inner?(writeln(\"unable to parse the current code, looks like you have an error on: \"),writeln(\"line: \"+e.inner.lineNumber+\" column: \"+e.inner.column)):(writeln(\"\"+e),writeln(e.stack))}return lines}},{\"scriptie-talkie\":22}],19:[function(require,module){(function(){module.exports.id=\"ace/mode/javascript_worker\",module.exports.src='\"no use strict\";(function(window){void 0!==window.window&&window.document||(window.console={log:function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})},error:function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:msgs})}},window.window=window,window.ace=window,window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return normalizeModule(parentId,chunks[0])+\"!\"+normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=base+\"/\"+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/\\\\/\\\\.\\\\//,\"/\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\"\")}}return moduleName},window.acequire=function(parentId,id){if(!id.charAt)throw Error(\"worker.js acequire() accepts only (parentId, id) as arguments\");id=normalizeModule(parentId,id);var module=acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;var chunks=id.split(\"/\");chunks[0]=acequire.tlns[chunks[0]]||chunks[0];var path=chunks.join(\"/\")+\".js\";return acequire.id=id,importScripts(path),acequire(parentId,id)},acequire.modules={},acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\"string\"!=typeof id&&(deps=id,id=acequire.id)):1==arguments.length&&(factory=id,id=acequire.id),0!==id.indexOf(\"text!\")){var req=function(deps,factory){return acequire(id,deps,factory)};acequire.modules[id]={factory:function(){var module={exports:{}},returnExports=factory(req,module.exports,module);return returnExports&&(module.exports=returnExports),module}}}},window.initBaseUrls=function initBaseUrls(topLevelNamespaces){acequire.tlns=topLevelNamespaces},window.initSender=function initSender(){var EventEmitter=acequire(null,\"ace/lib/event_emitter\").EventEmitter,oop=acequire(null,\"ace/lib/oop\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\"call\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\"event\",name:name,data:data})}}.call(Sender.prototype),new Sender},window.main=null,window.sender=null,window.onmessage=function(e){var msg=e.data;if(msg.command){if(!main[msg.command])throw Error(\"Unknown command:\"+msg.command);main[msg.command].apply(main,msg.args)}else if(msg.init){initBaseUrls(msg.tlns),acequire(null,\"ace/lib/fixoldbrowsers\"),sender=initSender();var clazz=acequire(null,msg.module)[msg.classname];main=new clazz(sender)}else msg.event&&sender&&sender._emit(msg.event,msg.data)})})(this),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(acequire){acequire(\"./regexp\"),acequire(\"./es5-shim\")}),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(){function getNativeFlags(regex){return(regex.global?\"g\":\"\")+(regex.ignoreCase?\"i\":\"\")+(regex.multiline?\"m\":\"\")+(regex.extended?\"x\":\"\")+(regex.sticky?\"y\":\"\")}function indexOf(array,item,from){if(Array.prototype.indexOf)return array.indexOf(item,from);for(var i=from||0;array.length>i;i++)if(array[i]===item)return i;return-1}var real={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},compliantExecNpcg=void 0===real.exec.call(/()??/,\"\")[1],compliantLastIndexIncrement=function(){var x=/^/g;return real.test.call(x,\"\"),!x.lastIndex}();compliantLastIndexIncrement&&compliantExecNpcg||(RegExp.prototype.exec=function(str){var name,r2,match=real.exec.apply(this,arguments);if(\"string\"==typeof str&&match){if(!compliantExecNpcg&&match.length>1&&indexOf(match,\"\")>-1&&(r2=RegExp(this.source,real.replace.call(getNativeFlags(this),\"g\",\"\")),real.replace.call(str.slice(match.index),r2,function(){for(var i=1;arguments.length-2>i;i++)void 0===arguments[i]&&(match[i]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var i=1;match.length>i;i++)name=this._xregexp.captureNames[i-1],name&&(match[name]=match[i]);!compliantLastIndexIncrement&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--}return match},compliantLastIndexIncrement||(RegExp.prototype.test=function(str){var match=real.exec.call(this,str);return match&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--,!!match}))}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != \\'object\\'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\\\n\u000b\\\\f\\\\r  ᠎              \\\\u2028\\\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can\\'t convert \"+o+\" to object\");return Object(o)}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault);for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners)for(var i=0;listeners.length>i;i++)listeners[i](e,this)},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){if(this._defaultHandlers=this._defaultHandlers||{},this._defaultHandlers[eventName])throw Error(\"The default handler for \\'\"+eventName+\"\\' is already set\");this._defaultHandlers[eventName]=callback},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.inherits=function(){var tempCtor=function(){};return function(ctor,superCtor){tempCtor.prototype=superCtor.prototype,ctor.super_=superCtor.prototype,ctor.prototype=new tempCtor,ctor.prototype.constructor=ctor}}(),exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/mode/javascript_worker\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/worker/mirror\",\"ace/mode/javascript/jshint\"],function(acequire,exports,module){function startRegex(arr){return RegExp(\"^(\"+arr.join(\"|\")+\")\")}var oop=acequire(\"../lib/oop\"),Mirror=acequire(\"../worker/mirror\").Mirror,lint=acequire(\"./javascript/jshint\").JSHINT,disabledWarningsRe=startRegex([\"Bad for in variable \\'(.+)\\'.\",\\'Missing \"use strict\"\\']),errorsRe=startRegex([\"Unexpected\",\"Expected \",\"Confusing (plus|minus)\",\"\\\\\\\\{a\\\\\\\\} unterminated regular expression\",\"Unclosed \",\"Unmatched \",\"Unbegun comment\",\"Bad invocation\",\"Missing space after\",\"Missing operator at\"]),infoRe=startRegex([\"Expected an assignment\",\"Bad escapement of EOL\",\"Unexpected comma\",\"Unexpected space\",\"Missing radix parameter.\",\"A leading decimal point can\",\"\\\\\\\\[\\'{a}\\'\\\\\\\\] is better written in dot notation.\",\"\\'{a}\\' used out of scope\"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{es5:!0,esnext:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval(\"throw 0;\"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\\\n/,\"\\\\n\"),!value)return this.sender.emit(\"jslint\",[]),void 0;var errors=[],maxErrorLevel=this.isValidJS(value)?\"warning\":\"error\";lint(value,this.options);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type=\"warning\";if(\"Missing semicolon.\"==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\\\S/)),\"error\"==maxErrorLevel&&str&&/[\\\\w\\\\d{([\\'\"]/.test(str)?(error.reason=\\'Missing \";\" before statement\\',type=\"error\"):type=\"info\"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type=\"info\":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):\"\\'{a}\\' is not defined.\"==raw?type=\"warning\":\"\\'{a}\\' is defined but never used.\"==raw&&(type=\"info\")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit(\"jslint\",errors)}}.call(JavaScriptWorker.prototype)}),ace.define(\"ace/worker/mirror\",[\"require\",\"exports\",\"module\",\"ace/document\",\"ace/lib/lang\"],function(acequire,exports){var Document=acequire(\"../document\").Document,lang=acequire(\"../lib/lang\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\"\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\"change\",function(e){doc.applyDeltas([e.data]),deferredUpdate.schedule(_self.$timeout)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){}}).call(Mirror.prototype)}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(text){this.$lines=[],0==text.length?this.$lines=[\"\"]:Array.isArray(text)?this.insertLines(0,text):this.insert({row:0,column:0},text)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength();this.remove(new Range(0,0,len,this.getLine(len-1).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==\"aaa\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\"\\\\n\").split(\"\\\\n\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\"\\\\n\"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\\\r\\\\n\";case\"unix\":return\"\\\\n\";default:return this.$autoNewLine}},this.$autoNewLine=\"\\\\n\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode)},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\\\r\\\\n\"==text||\"\\\\r\"==text||\"\\\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){if(range.start.row==range.end.row)return this.$lines[range.start.row].substring(range.start.column,range.end.column);var lines=this.getLines(range.start.row+1,range.end.row-1);return lines.unshift((this.$lines[range.start.row]||\"\").substring(range.start.column)),lines.push((this.$lines[range.end.row]||\"\").substring(0,range.end.column)),lines.join(this.getNewLineCharacter())},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):0>position.row&&(position.row=0),position},this.insert=function(position,text){if(!text||0===text.length)return position;position=this.$clipPosition(position),1>=this.getLength()&&this.$detectNewLine(text);var lines=this.$split(text),firstLine=lines.splice(0,1)[0],lastLine=0==lines.length?null:lines.splice(lines.length-1,1)[0];return position=this.insertInLine(position,firstLine),null!==lastLine&&(position=this.insertNewLine(position),position=this.insertLines(position.row,lines),position=this.insertInLine(position,lastLine||\"\")),position},this.insertLines=function(row,lines){if(0==lines.length)return{row:row,column:0};if(lines.length>65535){var end=this.insertLines(row,lines.slice(65535));lines=lines.slice(0,65535)}var args=[row,0];args.push.apply(args,lines),this.$lines.splice.apply(this.$lines,args);var range=new Range(row,0,row+lines.length,0),delta={action:\"insertLines\",range:range,lines:lines};return this._emit(\"change\",{data:delta}),end||range.end},this.insertNewLine=function(position){position=this.$clipPosition(position);var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column),this.$lines.splice(position.row+1,0,line.substring(position.column,line.length));var end={row:position.row+1,column:0},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:this.getNewLineCharacter()};return this._emit(\"change\",{data:delta}),end},this.insertInLine=function(position,text){if(0==text.length)return position;var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column)+text+line.substring(position.column);var end={row:position.row,column:position.column+text.length},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:text};return this._emit(\"change\",{data:delta}),end},this.remove=function(range){if(range.start=this.$clipPosition(range.start),range.end=this.$clipPosition(range.end),range.isEmpty())return range.start;var firstRow=range.start.row,lastRow=range.end.row;if(range.isMultiLine()){var firstFullRow=0==range.start.column?firstRow:firstRow+1,lastFullRow=lastRow-1;range.end.column>0&&this.removeInLine(lastRow,0,range.end.column),lastFullRow>=firstFullRow&&this.removeLines(firstFullRow,lastFullRow),firstFullRow!=firstRow&&(this.removeInLine(firstRow,range.start.column,this.getLine(firstRow).length),this.removeNewLine(range.start.row))}else this.removeInLine(firstRow,range.start.column,range.end.column);return range.start},this.removeInLine=function(row,startColumn,endColumn){if(startColumn!=endColumn){var range=new Range(row,startColumn,row,endColumn),line=this.getLine(row),removed=line.substring(startColumn,endColumn),newLine=line.substring(0,startColumn)+line.substring(endColumn,line.length);this.$lines.splice(row,1,newLine);var delta={action:\"removeText\",range:range,text:removed};return this._emit(\"change\",{data:delta}),range.start}},this.removeLines=function(firstRow,lastRow){var range=new Range(firstRow,0,lastRow+1,0),removed=this.$lines.splice(firstRow,lastRow-firstRow+1),delta={action:\"removeLines\",range:range,nl:this.getNewLineCharacter(),lines:removed};return this._emit(\"change\",{data:delta}),removed},this.removeNewLine=function(row){var firstLine=this.getLine(row),secondLine=this.getLine(row+1),range=new Range(row,firstLine.length,row+1,0),line=firstLine+secondLine;this.$lines.splice(row,2,line);var delta={action:\"removeText\",range:range,text:this.getNewLineCharacter()};this._emit(\"change\",{data:delta})},this.replace=function(range,text){if(0==text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;if(this.remove(range),text)var end=this.insert(range.start,text);else end=range.start;return end},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"insertText\"==delta.action?this.insert(range.start,delta.text):\"removeLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"removeText\"==delta.action&&this.remove(range)}},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"insertText\"==delta.action?this.remove(range):\"removeLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"removeText\"==delta.action&&this.insert(range.start,delta.text)}},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length;return index+newlineLength*i+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)\\n},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.document=doc,column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column),this.$onChange=this.onChange.bind(this),doc.on(\"change\",this.$onChange)};(function(){oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(e){var delta=e.data,range=delta.range;if(!(range.start.row==range.end.row&&range.start.row!=this.row||range.start.row>this.row||range.start.row==this.row&&range.start.column>this.column)){var row=this.row,column=this.column,start=range.start,end=range.end;\"insertText\"===delta.action?start.row===row&&column>=start.column?start.row===end.row?column+=end.column-start.column:(column-=start.column,row+=end.row-start.row):start.row!==end.row&&row>start.row&&(row+=end.row-start.row):\"insertLines\"===delta.action?row>=start.row&&(row+=end.row-start.row):\"removeText\"===delta.action?start.row===row&&column>start.column?column=end.column>=column?start.column:Math.max(0,column-(end.column-start.column)):start.row!==end.row&&row>start.row?(end.row===row&&(column=Math.max(0,column-end.column)+start.column),row-=end.row-start.row):end.row===row&&(row-=end.row-start.row,column=Math.max(0,column-end.column)+start.column):\"removeLines\"==delta.action&&row>=start.row&&(row>=end.row?row-=end.row-start.row:(row=start.row,column=0)),this.setPosition(row,column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._emit(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function(obj){if(\"object\"!=typeof obj)return obj;var copy=obj.constructor();for(var key in obj)copy[key]=\"object\"==typeof obj[key]?this.deepCopy(obj[key]):obj[key];return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\"\\\\\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/\\'/g,\"'\").replace(/\u003C/g,\"<\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)};return _self.delay=_self,_self.schedule=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||0))},_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\"ace/mode/javascript/jshint\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var JSHINT=function(){function F(){}function is_own(object,name){return Object.prototype.hasOwnProperty.call(object,name)}function checkOption(name,t){void 0===valOptions[name]&&void 0===boolOptions[name]&&warning(\"Bad option: \\'\"+name+\"\\'.\",t)}function isString(obj){return\"[object String]\"===Object.prototype.toString.call(obj)}function isAlpha(str){return str>=\"a\"&&\"z￿\">=str||str>=\"A\"&&\"Z￿\">=str}function isDigit(str){return str>=\"0\"&&\"9\">=str}function isIdentifier(token,value){return token?token.identifier&&token.value===value?!0:!1:!1}function supplant(str,data){return str.replace(/\\\\{([^{}]*)\\\\}/g,function(a,b){var r=data[b];return\"string\"==typeof r||\"number\"==typeof r?r:a})}function combine(t,o){var n;for(n in o)is_own(o,n)&&!is_own(JSHINT.blacklist,n)&&(t[n]=o[n])}function updatePredefined(){Object.keys(JSHINT.blacklist).forEach(function(key){delete predefined[key]})}function assume(){option.couch&&combine(predefined,couch),option.rhino&&combine(predefined,rhino),option.prototypejs&&combine(predefined,prototypejs),option.node&&(combine(predefined,node),option.globalstrict=!0),option.devel&&combine(predefined,devel),option.dojo&&combine(predefined,dojo),option.browser&&combine(predefined,browser),option.nonstandard&&combine(predefined,nonstandard),option.jquery&&combine(predefined,jquery),option.mootools&&combine(predefined,mootools),option.worker&&combine(predefined,worker),option.wsh&&combine(predefined,wsh),option.esnext&&useESNextSyntax(),option.globalstrict&&option.strict!==!1&&(option.strict=!0),option.yui&&combine(predefined,yui)}function quit(message,line,chr){var percentage=Math.floor(100*(line/lines.length));throw{name:\"JSHintError\",line:line,character:chr,message:message+\" (\"+percentage+\"% scanned).\",raw:message}}function isundef(scope,m,t,a){return JSHINT.undefs.push([scope,m,t,a])}function warning(m,t,a,b,c,d){var ch,l,w;return t=t||nexttoken,\"(end)\"===t.id&&(t=token),l=t.line||0,ch=t.from||0,w={id:\"(error)\",raw:m,evidence:lines[l-1]||\"\",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(m,w),JSHINT.errors.push(w),option.passfail&&quit(\"Stopping. \",l,ch),warnings+=1,warnings>=option.maxerr&&quit(\"Too many errors.\",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:\"(internal)\",elem:elem,value:src},JSHINT.internals.push(i),i}function addlabel(t,type,token){\"hasOwnProperty\"===t&&warning(\"\\'hasOwnProperty\\' is a really bad name.\"),\"exception\"===type&&is_own(funct[\"(context)\"],t)&&(funct[t]===!0||option.node||warning(\"Value of \\'{a}\\' may be overwritten in IE.\",nexttoken,t)),is_own(funct,t)&&!funct[\"(global)\"]&&(funct[t]===!0?option.latedef&&warning(\"\\'{a}\\' was used before it was defined.\",nexttoken,t):option.shadow||\"exception\"===type||warning(\"\\'{a}\\' is already defined.\",nexttoken,t)),funct[t]=type,token&&(funct[\"(tokens)\"][t]=token),funct[\"(global)\"]?(global[t]=funct,is_own(implied,t)&&(option.latedef&&warning(\"\\'{a}\\' was used before it was defined.\",nexttoken,t),delete implied[t])):scope[t]=funct}function doOption(){var b,obj,filter,t,tn,v,minus,nt=nexttoken,o=nt.value,quotmarkValue=option.quotmark,predef={};switch(o){case\"*/\":error(\"Unbegun comment.\");break;case\"/*members\":case\"/*member\":o=\"/*members\",membersOnly||(membersOnly={}),obj=membersOnly,option.quotmark=!1;break;case\"/*jshint\":case\"/*jslint\":obj=option,filter=boolOptions;break;case\"/*global\":obj=predef;break;default:error(\"What?\")}for(t=lex.token();;){minus=!1;for(var breakOuterLoop;;){if(\"special\"===t.type&&\"*/\"===t.value){breakOuterLoop=!0;break}if(\"(endline)\"!==t.id&&\",\"!==t.id)break;t=lex.token()}if(breakOuterLoop)break;if(\"/*global\"===o&&\"-\"===t.value&&(minus=!0,t=lex.token()),\"(string)\"!==t.type&&\"(identifier)\"!==t.type&&\"/*members\"!==o&&error(\"Bad option.\",t),v=lex.token(),\":\"===v.id){v=lex.token(),obj===membersOnly&&error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",t,\"*/\",\":\"),\"/*jshint\"===o&&checkOption(t.value,t);var numericVals=[\"maxstatements\",\"maxparams\",\"maxdepth\",\"maxcomplexity\",\"maxerr\",\"maxlen\",\"indent\"];if(numericVals.indexOf(t.value)>-1&&(\"/*jshint\"===o||\"/*jslint\"===o))b=+v.value,(\"number\"!=typeof b||!isFinite(b)||0>=b||Math.floor(b)!==b)&&error(\"Expected a small integer and instead saw \\'{a}\\'.\",v,v.value),\"indent\"===t.value&&(obj.white=!0),obj[t.value]=b;else if(\"validthis\"===t.value)funct[\"(global)\"]?error(\"Option \\'validthis\\' can\\'t be used in a global scope.\"):\"true\"===v.value||\"false\"===v.value?obj[t.value]=\"true\"===v.value:error(\"Bad option value.\",v);else if(\"quotmark\"===t.value&&\"/*jshint\"===o)switch(v.value){case\"true\":obj.quotmark=!0;break;case\"false\":obj.quotmark=!1;break;case\"double\":case\"single\":obj.quotmark=v.value;break;default:error(\"Bad option value.\",v)}else\"true\"===v.value||\"false\"===v.value?(\"/*jslint\"===o?(tn=renamedOptions[t.value]||t.value,obj[tn]=\"true\"===v.value,void 0!==invertedOptions[tn]&&(obj[tn]=!obj[tn])):obj[t.value]=\"true\"===v.value,\"newcap\"===t.value&&(obj[\"(explicitNewcap)\"]=!0)):error(\"Bad option value.\",v);t=lex.token()}else(\"/*jshint\"===o||\"/*jslint\"===o)&&error(\"Missing option value.\",t),obj[t.value]=!1,\"/*global\"===o&&minus===!0&&(JSHINT.blacklist[t.value]=t.value,updatePredefined()),t=v}\"/*members\"===o&&(option.quotmark=quotmarkValue),combine(predefined,predef);for(var key in predef)is_own(predef,key)&&(declared[key]=nt);filter&&assume()}function peek(p){for(var t,i=p||0,j=0;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t}function advance(id,t){switch(token.id){case\"(number)\":\".\"===nexttoken.id&&warning(\"A dot following a number can be confused with a decimal point.\",token);break;case\"-\":(\"-\"===nexttoken.id||\"--\"===nexttoken.id)&&warning(\"Confusing minusses.\");break;case\"+\":(\"+\"===nexttoken.id||\"++\"===nexttoken.id)&&warning(\"Confusing plusses.\")}for((\"(string)\"===token.type||token.identifier)&&(anonname=token.value),id&&nexttoken.id!==id&&(t?\"(end)\"===nexttoken.id?warning(\"Unmatched \\'{a}\\'.\",t,t.id):warning(\"Expected \\'{a}\\' to match \\'{b}\\' from line {c} and instead saw \\'{d}\\'.\",nexttoken,id,t.id,t.line,nexttoken.value):(\"(identifier)\"!==nexttoken.type||nexttoken.value!==id)&&warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,id,nexttoken.value)),prevtoken=token,token=nexttoken;;){if(nexttoken=lookahead.shift()||lex.token(),\"(end)\"===nexttoken.id||\"(error)\"===nexttoken.id)return;if(\"special\"===nexttoken.type)doOption();else if(\"(endline)\"!==nexttoken.id)break}}function expression(rbp,initial){var left,isArray=!1,isObject=!1;if(\"(end)\"===nexttoken.id&&error(\"Unexpected early end of program.\",token),advance(),initial&&(anonname=\"anonymous\",funct[\"(verb)\"]=token.value),initial===!0&&token.fud)left=token.fud();else{if(token.nud)left=token.nud();else{if(\"(number)\"===nexttoken.type&&\".\"===token.id)return warning(\"A leading decimal point can be confused with a dot: \\'.{a}\\'.\",token,nexttoken.value),advance(),token;error(\"Expected an identifier and instead saw \\'{a}\\'.\",token,token.id)}for(;nexttoken.lbp>rbp;)isArray=\"Array\"===token.value,isObject=\"Object\"===token.value,left&&(left.value||left.first&&left.first.value)&&(\"new\"!==left.value||left.first&&left.first.value&&\".\"===left.first.value)&&(isArray=!1,left.value!==token.value&&(isObject=!1)),advance(),isArray&&\"(\"===token.id&&\")\"===nexttoken.id&&warning(\"Use the array literal notation [].\",token),isObject&&\"(\"===token.id&&\")\"===nexttoken.id&&warning(\"Use the object literal notation {}.\",token),token.led?left=token.led(left):error(\"Expected an operator and instead saw \\'{a}\\'.\",token,token.id)}return left}function adjacent(left,right){left=left||token,right=right||nexttoken,option.white&&left.character!==right.from&&left.line===right.line&&(left.from+=left.character-left.from,warning(\"Unexpected space after \\'{a}\\'.\",left,left.value))}function nobreak(left,right){left=left||token,right=right||nexttoken,!option.white||left.character===right.from&&left.line===right.line||warning(\"Unexpected space before \\'{a}\\'.\",right,right.value)}function nospace(left,right){left=left||token,right=right||nexttoken,option.white&&!left.comment&&left.line===right.line&&adjacent(left,right)}function nonadjacent(left,right){if(option.white){if(left=left||token,right=right||nexttoken,\";\"===left.value&&\";\"===right.value)return;left.line===right.line&&left.character===right.from&&(left.from+=left.character-left.from,warning(\"Missing space after \\'{a}\\'.\",left,left.value))}}function nobreaknonadjacent(left,right){left=left||token,right=right||nexttoken,option.laxbreak||left.line===right.line?option.white&&(left=left||token,right=right||nexttoken,left.character===right.from&&(left.from+=left.character-left.from,warning(\"Missing space after \\'{a}\\'.\",left,left.value))):warning(\"Bad line breaking before \\'{a}\\'.\",right,right.id)}function indentation(bias){var i;option.white&&\"(end)\"!==nexttoken.id&&(i=indent+(bias||0),nexttoken.from!==i&&warning(\"Expected \\'{a}\\' to have an indentation at {b} instead at {c}.\",nexttoken,nexttoken.value,i,nexttoken.from))}function nolinebreak(t){t=t||token,t.line!==nexttoken.line&&warning(\"Line breaking error \\'{a}\\'.\",t,t.value)}function comma(){token.line!==nexttoken.line?option.laxcomma||(comma.first&&(warning(\"Comma warnings can be turned off with \\'laxcomma\\'\"),comma.first=!1),warning(\"Bad line breaking before \\'{a}\\'.\",token,nexttoken.id)):!token.comment&&token.character!==nexttoken.from&&option.white&&(token.from+=token.character-token.from,warning(\"Unexpected space after \\'{a}\\'.\",token,token.value)),advance(\",\"),nonadjacent(token,nexttoken)}function symbol(s,p){var x=syntax[s];return x&&\"object\"==typeof x||(syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){return symbol(s,0)}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>=\"a\"&&\"z\">=c||c>=\"A\"&&\"Z\">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud=\"function\"==typeof f?f:function(){return this.right=expression(150),this.arity=\"unary\",(\"++\"===this.id||\"--\"===this.id)&&(option.plusplus?warning(\"Unexpected use of \\'{a}\\'.\",this,this.id):this.right.identifier&&!this.right.reserved||\".\"===this.right.id||\"[\"===this.right.id||warning(\"Bad operand.\",this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(s,f){var x=type(s,f);return x.identifier=x.reserved=!0,x}function reservevar(s,v){return reserve(s,function(){return\"function\"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.led=function(left){return w||(nobreaknonadjacent(prevtoken,token),nonadjacent(token,nexttoken)),\"in\"===s&&\"!\"===left.id&&warning(\"Confusing use of \\'{a}\\'.\",left,\"!\"),\"function\"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(prevtoken,token),nonadjacent(token,nexttoken);var right=expression(100);return isIdentifier(left,\"NaN\")||isIdentifier(right,\"NaN\")?warning(\"Use the isNaN function to compare with NaN.\",this):f&&f.apply(this,[left,right]),\"!\"===left.id&&warning(\"Confusing use of \\'{a}\\'.\",left,\"!\"),\"!\"===right.id&&warning(\"Confusing use of \\'{a}\\'.\",right,\"!\"),this.left=left,this.right=right,this},x}function isPoorRelation(node){return node&&(\"(number)\"===node.type&&0===+node.value||\"(string)\"===node.type&&\"\"===node.value||\"null\"===node.type&&!option.eqnull||\"true\"===node.type||\"false\"===node.type||\"undefined\"===node.type)}function assignop(s){return symbol(s,20).exps=!0,infix(s,function(left,that){if(that.left=left,predefined[left.value]===!1&&scope[left.value][\"(global)\"]===!0?warning(\"Read only.\",left):left[\"function\"]&&warning(\"\\'{a}\\' is a function.\",left,left.value),left){if(option.esnext&&\"const\"===funct[left.value]&&warning(\"Attempting to override \\'{a}\\' which is a constant\",left,left.value),\".\"===left.id||\"[\"===left.id)return left.left&&\"arguments\"!==left.left.value||warning(\"Bad assignment.\",that),that.right=expression(19),that;if(left.identifier&&!left.reserved)return\"exception\"===funct[left.value]&&warning(\"Do not assign to the exception parameter.\",left),that.right=expression(19),that;left===syntax[\"function\"]&&warning(\"Expected an identifier in an assignment and instead saw a function invocation.\",token)}error(\"Bad assignment.\",that)},20)}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led=\"function\"==typeof f?f:function(left){return option.bitwise&&warning(\"Unexpected use of \\'{a}\\'.\",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return symbol(s,20).exps=!0,infix(s,function(left,that){return option.bitwise&&warning(\"Unexpected use of \\'{a}\\'.\",that,that.id),nonadjacent(prevtoken,token),nonadjacent(token,nexttoken),left?\".\"===left.id||\"[\"===left.id||left.identifier&&!left.reserved?(expression(19),that):(left===syntax[\"function\"]&&warning(\"Expected an identifier in an assignment, and instead saw a function invocation.\",token),that):(error(\"Bad assignment.\",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return option.plusplus?warning(\"Unexpected use of \\'{a}\\'.\",this,this.id):left.identifier&&!left.reserved||\".\"===left.id||\"[\"===left.id||warning(\"Bad operand.\",this),this.left=left,this},x}function optionalidentifier(fnparam){return nexttoken.identifier?(advance(),token.reserved&&!option.es5&&(fnparam&&\"undefined\"===token.value||warning(\"Expected an identifier and instead saw \\'{a}\\' (a reserved word).\",token,token.id)),token.value):void 0}function identifier(fnparam){var i=optionalidentifier(fnparam);return i?i:(\"function\"===token.id&&\"(\"===nexttoken.id?warning(\"Missing name in function declaration.\"):error(\"Expected an identifier and instead saw \\'{a}\\'.\",nexttoken,nexttoken.value),void 0)}function reachable(s){var t,i=0;if(\";\"===nexttoken.id&&!noreach)for(;;){if(t=peek(i),t.reach)return;if(\"(endline)\"!==t.id){if(\"function\"===t.id){if(!option.latedef)break;warning(\"Inner functions should be listed at the top of the outer function.\",t);break}warning(\"Unreachable \\'{a}\\' after \\'{b}\\'.\",t,t.value,s);break}i+=1}}function statement(noindent){var r,i=indent,s=scope,t=nexttoken;if(\";\"===t.id)return advance(\";\"),void 0;if(t.identifier&&!t.reserved&&\":\"===peek().id&&(advance(),advance(\":\"),scope=Object.create(s),addlabel(t.value,\"label\"),nexttoken.labelled||\"{\"===nexttoken.value||warning(\"Label \\'{a}\\' on {b} statement.\",nexttoken,t.value,nexttoken.value),jx.test(t.value+\":\")&&warning(\"Label \\'{a}\\' looks like a javascript url.\",t,t.value),nexttoken.label=t.value,t=nexttoken),\"{\"===t.id)return block(!0,!0),void 0;if(noindent||indentation(),r=expression(0,!0),!t.block){if(option.expr||r&&r.exps?option.nonew&&\"(\"===r.id&&\"new\"===r.left.id&&warning(\"Do not use \\'new\\' for side effects.\",t):warning(\"Expected an assignment or function call and instead saw an expression.\",token),\",\"===nexttoken.id)return comma();\";\"!==nexttoken.id?option.asi||option.lastsemic&&\"}\"===nexttoken.id&&nexttoken.line===token.line||warningAt(\"Missing semicolon.\",token.line,token.character):(adjacent(token,nexttoken),advance(\";\"),nonadjacent(token,nexttoken))}return indent=i,scope=s,r}function statements(startLine){for(var p,a=[];!nexttoken.reach&&\"(end)\"!==nexttoken.id;)\";\"===nexttoken.id?(p=peek(),p&&\"(\"===p.id||warning(\"Unnecessary semicolon.\"),advance(\";\")):a.push(statement(startLine===nexttoken.line));return a}function directives(){for(var i,p,pn;\"(string)\"===nexttoken.id;){if(p=peek(0),\"(endline)\"===p.id){i=1;do pn=peek(i),i+=1;while(\"(endline)\"===pn.id);if(\";\"!==pn.id){if(\"(string)\"!==pn.id&&\"(number)\"!==pn.id&&\"(regexp)\"!==pn.id&&pn.identifier!==!0&&\"}\"!==pn.id)break;warning(\"Missing semicolon.\",nexttoken)}else p=pn}else if(\"}\"===p.id)warning(\"Missing semicolon.\",p);else if(\";\"!==p.id)break;indentation(),advance(),directive[token.value]&&warning(\\'Unnecessary directive \"{a}\".\\',token,token.value),\"use strict\"===token.value&&(option[\"(explicitNewcap)\"]||(option.newcap=!0),option.undef=!0),directive[token.value]=!0,\";\"===p.id&&advance(\";\")}}function block(ordinary,stmt,isfunc){var a,m,t,line,d,b=inblock,old_indent=indent,s=scope;inblock=ordinary,ordinary&&option.funcscope||(scope=Object.create(scope)),nonadjacent(token,nexttoken),t=nexttoken;var metrics=funct[\"(metrics)\"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),\"{\"===nexttoken.id){if(advance(\"{\"),line=token.line,\"}\"!==nexttoken.id){for(indent+=option.indent;!ordinary&&nexttoken.from>indent;)indent+=option.indent;if(isfunc){m={};for(d in directive)is_own(directive,d)&&(m[d]=directive[d]);directives(),option.strict&&funct[\"(context)\"][\"(global)\"]&&(m[\"use strict\"]||directive[\"use strict\"]||warning(\\'Missing \"use strict\" statement.\\'))}a=statements(line),metrics.statementCount+=a.length,isfunc&&(directive=m),indent-=option.indent,line!==nexttoken.line&&indentation()}else line!==nexttoken.line&&indentation();advance(\"}\",t),indent=old_indent}else ordinary?((!stmt||option.curly)&&warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"{\",nexttoken.value),noreach=!0,indent+=option.indent,a=[statement(nexttoken.line===token.line)],indent-=option.indent,noreach=!1):error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"{\",nexttoken.value);return funct[\"(verb)\"]=null,ordinary&&option.funcscope||(scope=s),inblock=b,!ordinary||!option.noempty||a&&0!==a.length||warning(\"Empty block.\"),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&\"boolean\"!=typeof membersOnly[m]&&warning(\"Unexpected /*member \\'{a}\\'.\",token,m),\"number\"==typeof member[m]?member[m]+=1:member[m]=1}function note_implied(token){var name=token.value,line=token.line,a=implied[name];\"function\"==typeof a&&(a=!1),a?a[a.length-1]!==line&&a.push(line):(a=[line],implied[name]=a)}function property_name(){var id=optionalidentifier(!0);return id||(\"(string)\"===nexttoken.id?(id=nexttoken.value,advance()):\"(number)\"===nexttoken.id&&(id=\"\"+nexttoken.value,advance())),id}function functionparams(){var ident,next=nexttoken,params=[];if(advance(\"(\"),nospace(),\")\"===nexttoken.id)return advance(\")\"),void 0;for(;;){if(ident=identifier(!0),params.push(ident),addlabel(ident,\"unused\",token),\",\"!==nexttoken.id)return advance(\")\",next),nospace(prevtoken,token),params;comma()}}function doFunction(name,statement){var f,oldOption=option,oldScope=scope;return option=Object.create(option),scope=Object.create(scope),funct={\"(name)\":name||\\'\"\\'+anonname+\\'\"\\',\"(line)\":nexttoken.line,\"(character)\":nexttoken.character,\"(context)\":funct,\"(breakage)\":0,\"(loopage)\":0,\"(metrics)\":createMetrics(nexttoken),\"(scope)\":scope,\"(statement)\":statement,\"(tokens)\":{}},f=funct,token.funct=funct,functions.push(funct),name&&addlabel(name,\"function\"),funct[\"(params)\"]=functionparams(),funct[\"(metrics)\"].verifyMaxParametersPerFunction(funct[\"(params)\"]),block(!1,!1,!0),funct[\"(metrics)\"].verifyMaxStatementsPerFunction(),funct[\"(metrics)\"].verifyMaxComplexityPerFunction(),scope=oldScope,option=oldOption,funct[\"(last)\"]=token.line,funct[\"(lastcharacter)\"]=token.character,funct=funct[\"(context)\"],f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,verifyMaxStatementsPerFunction:function(){if(option.maxstatements&&this.statementCount>option.maxstatements){var message=\"Too many statements per function (\"+this.statementCount+\").\";warning(message,functionStartToken)}},verifyMaxParametersPerFunction:function(params){if(params=params||[],option.maxparams&¶ms.length>option.maxparams){var message=\"Too many parameters per function (\"+params.length+\").\";warning(message,functionStartToken)}},verifyMaxNestedBlockDepthPerFunction:function(){if(option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===option.maxdepth+1){var message=\"Blocks are nested too deeply (\"+this.nestedBlockDepth+\").\";warning(message)}},verifyMaxComplexityPerFunction:function(){var max=option.maxcomplexity,cc=this.ComplexityCount;if(max&&cc>max){var message=\"Cyclomatic complexity is too high per function (\"+cc+\").\";warning(message,functionStartToken)}}}}function increaseComplexityCount(){funct[\"(metrics)\"].ComplexityCount+=1}function jsonValue(){function jsonObject(){var o={},t=nexttoken;if(advance(\"{\"),\"}\"!==nexttoken.id)for(;;){if(\"(end)\"===nexttoken.id)error(\"Missing \\'}\\' to match \\'{\\' from line {a}.\",nexttoken,t.line);else{if(\"}\"===nexttoken.id){warning(\"Unexpected comma.\",token);break}\",\"===nexttoken.id?error(\"Unexpected comma.\",nexttoken):\"(string)\"!==nexttoken.id&&warning(\"Expected a string and instead saw {a}.\",nexttoken,nexttoken.value)}if(o[nexttoken.value]===!0?warning(\"Duplicate key \\'{a}\\'.\",nexttoken,nexttoken.value):\"__proto__\"===nexttoken.value&&!option.proto||\"__iterator__\"===nexttoken.value&&!option.iterator?warning(\"The \\'{a}\\' key may produce unexpected results.\",nexttoken,nexttoken.value):o[nexttoken.value]=!0,advance(),advance(\":\"),jsonValue(),\",\"!==nexttoken.id)break;advance(\",\")}advance(\"}\")}function jsonArray(){var t=nexttoken;if(advance(\"[\"),\"]\"!==nexttoken.id)for(;;){if(\"(end)\"===nexttoken.id)error(\"Missing \\']\\' to match \\'[\\' from line {a}.\",nexttoken,t.line);else{if(\"]\"===nexttoken.id){warning(\"Unexpected comma.\",token);break}\",\"===nexttoken.id&&error(\"Unexpected comma.\",nexttoken)}if(jsonValue(),\",\"!==nexttoken.id)break;advance(\",\")}advance(\"]\")}switch(nexttoken.id){case\"{\":jsonObject();break;case\"[\":jsonArray();break;case\"true\":case\"false\":case\"null\":case\"(number)\":case\"(string)\":advance();break;case\"-\":advance(\"-\"),token.character!==nexttoken.from&&warning(\"Unexpected space after \\'-\\'.\",token),adjacent(token,nexttoken),advance(\"(number)\");break;default:error(\"Expected a JSON value.\",nexttoken)}}var anonname,declared,funct,functions,global,implied,inblock,indent,jsonmode,lines,lookahead,member,membersOnly,nexttoken,noreach,option,predefined,prereg,prevtoken,quotmark,scope,stack,directive,tab,token,unuseds,urls,useESNextSyntax,warnings,ax,cx,tx,nx,nxg,lx,ix,jx,ft,bang={\"\u003C\":!0,\"\u003C=\":!0,\"==\":!0,\"===\":!0,\"!==\":!0,\"!=\":!0,\">\":!0,\">=\":!0,\"+\":!0,\"-\":!0,\"*\":!0,\"/\":!0,\"%\":!0},boolOptions={asi:!0,bitwise:!0,boss:!0,browser:!0,camelcase:!0,couch:!0,curly:!0,debug:!0,devel:!0,dojo:!0,eqeqeq:!0,eqnull:!0,es5:!0,esnext:!0,evil:!0,expr:!0,forin:!0,funcscope:!0,globalstrict:!0,immed:!0,iterator:!0,jquery:!0,lastsemic:!0,latedef:!0,laxbreak:!0,laxcomma:!0,loopfunc:!0,mootools:!0,multistr:!0,newcap:!0,noarg:!0,node:!0,noempty:!0,nonew:!0,nonstandard:!0,nomen:!0,onevar:!0,onecase:!0,passfail:!0,plusplus:!0,proto:!0,prototypejs:!0,regexdash:!0,regexp:!0,rhino:!0,undef:!0,unused:!0,scripturl:!0,shadow:!0,smarttabs:!0,strict:!0,sub:!0,supernew:!0,trailing:!0,validthis:!0,withstmt:!0,white:!0,worker:!0,wsh:!0,yui:!0},valOptions={maxlen:!1,indent:!1,maxerr:!1,predef:!1,quotmark:!1,scope:!1,maxstatements:!1,maxdepth:!1,maxparams:!1,maxcomplexity:!1},invertedOptions={bitwise:!0,forin:!0,newcap:!0,nomen:!0,plusplus:!0,regexp:!0,undef:!0,white:!0,eqeqeq:!0,onevar:!0},renamedOptions={eqeq:\"eqeqeq\",vars:\"onevar\",windows:\"wsh\"},browser={ArrayBuffer:!1,ArrayBufferView:!1,Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,DOMParser:!1,defaultStatus:!1,document:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},functionicity=[\"closure\",\"exception\",\"global\",\"label\",\"outer\",\"unused\",\"var\"],jquery={$:!1,jQuery:!1},mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},node={__filename:!1,__dirname:!1,Buffer:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,module:!1,process:!1,acequire:!1,setTimeout:!1,clearTimeout:!1,setInterval:!1,clearInterval:!1},prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},standard={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,Set:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1,WeakMap:!1},nonstandard={escape:!1,unescape:!1},syntax={},worker={importScripts:!0,postMessage:!0,self:!0},wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},yui={YUI:!1,Y:!1,YUI_config:!1};\\n(function(){ax=/@cc|\u003C\\\\/?|script|\\\\]\\\\s*\\\\]|\u003C\\\\s*!|</i,cx=/[\\\\u0000-\\\\u001f\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/,tx=/^\\\\s*([(){}\\\\[.,:;\\'\"~\\\\?\\\\]#@]|==?=?|\\\\/=(?!(\\\\S*\\\\/[gim]?))|\\\\/(\\\\*(jshint|jslint|members?|global)?|\\\\/)?|\\\\*[\\\\/=]?|\\\\+(?:=|\\\\++)?|-(?:=|-+)?|%=?|&[&=]?|\\\\|[|=]?|>>?>?=?|\u003C([\\\\/=!]|\\\\!(\\\\[|--)?|\u003C=?)?|\\\\^=?|\\\\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\\\\.[0-9]*)?([eE][+\\\\-]?[0-9]+)?)/,nx=/[\\\\u0000-\\\\u001f&\u003C\"\\\\/\\\\\\\\\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/,nxg=/[\\\\u0000-\\\\u001f&\u003C\"\\\\/\\\\\\\\\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0604\\\\u070f\\\\u17b4\\\\u17b5\\\\u200c-\\\\u200f\\\\u2028-\\\\u202f\\\\u2060-\\\\u206f\\\\ufeff\\\\ufff0-\\\\uffff]/g,lx=/\\\\*\\\\//,ix=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,jx=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\\\\s*:/i,ft=/^\\\\s*\\\\/\\\\*\\\\s*falls\\\\sthrough\\\\s*\\\\*\\\\/\\\\s*$/})(),\"function\"!=typeof Array.isArray&&(Array.isArray=function(o){return\"[object Array]\"===Object.prototype.toString.apply(o)}),Array.prototype.forEach||(Array.prototype.forEach=function(fn,scope){for(var len=this.length,i=0;len>i;i++)fn.call(scope||this,this[i],i,this)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(searchElement){if(null===this||void 0===this)throw new TypeError;var t=Object(this),len=t.length>>>0;if(0===len)return-1;var n=0;if(arguments.length>0&&(n=Number(arguments[1]),n!=n?n=0:0!==n&&1/0!=n&&n!=-1/0&&(n=(n>0||-1)*Math.floor(Math.abs(n)))),n>=len)return-1;for(var k=n>=0?n:Math.max(len-Math.abs(n),0);len>k;k++)if(k in t&&t[k]===searchElement)return k;return-1}),\"function\"!=typeof Object.create&&(Object.create=function(o){return F.prototype=o,new F}),\"function\"!=typeof Object.keys&&(Object.keys=function(o){var k,a=[];for(k in o)is_own(o,k)&&a.push(k);return a});var lex=function lex(){function nextLine(){var at,match,tw;return line>=lines.length?!1:(character=1,s=lines[line],line+=1,option.smarttabs?(match=s.match(/(\\\\/\\\\/)? \\\\t/),at=match&&!match[1]?0:-1):at=s.search(/ \\\\t|\\\\t [^\\\\*]/),at>=0&&warningAt(\"Mixed spaces and tabs.\",line,at+1),s=s.replace(/\\\\t/g,tab),at=s.search(cx),at>=0&&warningAt(\"Unsafe character.\",line,at),option.maxlen&&option.maxlen\u003Cs.length&&warningAt(\"Line too long.\",line,s.length),tw=option.trailing&&s.match(/^(.*?)\\\\s+$/),tw&&!/^\\\\s+$/.test(s)&&warningAt(\"Trailing whitespace.\",line,tw[1].length+1),!0)}function it(type,value){function checkName(name){if(!option.proto&&\"__proto__\"===name)return warningAt(\"The \\'{a}\\' property is deprecated.\",line,from,name),void 0;if(!option.iterator&&\"__iterator__\"===name)return warningAt(\"\\'{a}\\' is only available in JavaScript 1.7.\",line,from,name),void 0;var hasDangling=/^(_+.*|.*_+)$/.test(name);if(option.nomen&&hasDangling&&\"_\"!==name){if(option.node&&\".\"!==token.id&&/^(__dirname|__filename)$/.test(name))return;return warningAt(\"Unexpected {a} in \\'{b}\\'.\",line,from,\"dangling \\'_\\'\",name),void 0}option.camelcase&&name.replace(/^_+/,\"\").indexOf(\"_\")>-1&&!name.match(/^[A-Z0-9_]*$/)&&warningAt(\"Identifier \\'{a}\\' is not in camel case.\",line,from,value)}var i,t;return t=\"(color)\"===type||\"(range)\"===type?{type:type}:\"(punctuator)\"===type||\"(identifier)\"===type&&is_own(syntax,value)?syntax[value]||syntax[\"(error)\"]:syntax[type],t=Object.create(t),(\"(string)\"===type||\"(range)\"===type)&&!option.scripturl&&jx.test(value)&&warningAt(\"Script URL.\",line,from),\"(identifier)\"===type&&(t.identifier=!0,checkName(value)),t.value=value,t.line=line,t.character=character,t.from=from,i=t.id,\"(endline)\"!==i&&(prereg=i&&(\"(,=:[!&|?{};\".indexOf(i.charAt(i.length-1))>=0||\"return\"===i||\"case\"===i)),t}var character,from,line,s;return{init:function(source){lines=\"string\"==typeof source?source.replace(/\\\\r\\\\n/g,\"\\\\n\").replace(/\\\\r/g,\"\\\\n\").split(\"\\\\n\"):source,lines[0]&&\"#!\"===lines[0].substr(0,2)&&(lines[0]=\"\"),line=0,nextLine(),from=1},range:function(begin,end){var c,value=\"\";for(from=character,s.charAt(0)!==begin&&errorAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,character,begin,s.charAt(0));;){switch(s=s.slice(1),character+=1,c=s.charAt(0)){case\"\":errorAt(\"Missing \\'{a}\\'.\",line,character,c);break;case end:return s=s.slice(1),character+=1,it(\"(range)\",value);case\"\\\\\\\\\":warningAt(\"Unexpected \\'{a}\\'.\",line,character,c)}value+=c}},token:function(){function match(x){var r1,r=x.exec(s);return r?(l=r[0].length,r1=r[1],c=r1.charAt(0),s=s.substr(l),from=character+l-r1.length,character+=l,r1):void 0}function string(x){function esc(n){var i=parseInt(s.substr(j+1,n),16);j+=n,i>=32&&126>=i&&34!==i&&92!==i&&39!==i&&warningAt(\"Unnecessary escapement.\",line,character),character+=n,c=String.fromCharCode(i)}var c,j,r=\"\",allowNewLine=!1;jsonmode&&\\'\"\\'!==x&&warningAt(\"Strings must use doublequote.\",line,character),option.quotmark&&(\"single\"===option.quotmark&&\"\\'\"!==x?warningAt(\"Strings must use singlequote.\",line,character):\"double\"===option.quotmark&&\\'\"\\'!==x?warningAt(\"Strings must use doublequote.\",line,character):option.quotmark===!0&&(quotmark=quotmark||x,quotmark!==x&&warningAt(\"Mixed double and single quotes.\",line,character))),j=0;unclosedString:for(;;){for(;j>=s.length;){j=0;var cl=line,cf=from;if(!nextLine()){errorAt(\"Unclosed string.\",cl,cf);break unclosedString}allowNewLine?allowNewLine=!1:warningAt(\"Unclosed string.\",cl,cf)}if(c=s.charAt(j),c===x)return character+=1,s=s.substr(j+1),it(\"(string)\",r,x);if(\" \">c){if(\"\\\\n\"===c||\"\\\\r\"===c)break;warningAt(\"Control character in string: {a}.\",line,character+j,s.slice(0,j))}else if(\"\\\\\\\\\"===c)switch(j+=1,character+=1,c=s.charAt(j),n=s.charAt(j+1),c){case\"\\\\\\\\\":case\\'\"\\':case\"/\":break;case\"\\'\":jsonmode&&warningAt(\"Avoid \\\\\\\\\\'.\",line,character);break;case\"b\":c=\"\\\\b\";break;case\"f\":c=\"\\\\f\";break;case\"n\":c=\"\\\\n\";break;case\"r\":c=\"\\\\r\";break;case\"t\":c=\"\t\";break;case\"0\":c=\"\\\\0\",n>=0&&7>=n&&directive[\"use strict\"]&&warningAt(\"Octal literals are not allowed in strict mode.\",line,character);break;case\"u\":esc(4);break;case\"v\":jsonmode&&warningAt(\"Avoid \\\\\\\\v.\",line,character),c=\"\u000b\";break;case\"x\":jsonmode&&warningAt(\"Avoid \\\\\\\\x-.\",line,character),esc(2);break;case\"\":if(allowNewLine=!0,option.multistr){jsonmode&&warningAt(\"Avoid EOL escapement.\",line,character),c=\"\",character-=1;break}warningAt(\"Bad escapement of EOL. Use option multistr if needed.\",line,character);break;case\"!\":if(\"\u003C\"===s.charAt(j-2))break;default:warningAt(\"Bad escapement.\",line,character)}r+=c,character+=1,j+=1}}for(var b,c,captures,d,depth,high,i,l,low,q,t,isLiteral,isInRange,n;;){if(!s)return it(nextLine()?\"(endline)\":\"(end)\",\"\");if(t=match(tx)){if(isAlpha(c)||\"_\"===c||\"$\"===c)return it(\"(identifier)\",t);if(isDigit(c))return isFinite(Number(t))||warningAt(\"Bad number \\'{a}\\'.\",line,character,t),isAlpha(s.substr(0,1))&&warningAt(\"Missing space after \\'{a}\\'.\",line,character,t),\"0\"===c&&(d=t.substr(1,1),isDigit(d)?\".\"!==token.id&&warningAt(\"Don\\'t use extra leading zeros \\'{a}\\'.\",line,character,t):!jsonmode||\"x\"!==d&&\"X\"!==d||warningAt(\"Avoid 0x-. \\'{a}\\'.\",line,character,t)),\".\"===t.substr(t.length-1)&&warningAt(\"A trailing decimal point can be confused with a dot \\'{a}\\'.\",line,character,t),it(\"(number)\",t);switch(t){case\\'\"\\':case\"\\'\":return string(t);case\"//\":s=\"\",token.comment=!0;break;case\"/*\":for(;i=s.search(lx),!(i>=0);)nextLine()||errorAt(\"Unclosed comment.\",line,character);s=s.substr(i+2),token.comment=!0;break;case\"/*members\":case\"/*member\":case\"/*jshint\":case\"/*jslint\":case\"/*global\":case\"*/\":return{value:t,type:\"special\",line:line,character:character,from:from};case\"\":break;case\"/\":if(\"=\"===s.charAt(0)&&errorAt(\"A regular expression literal can be confused with \\'/=\\'.\",line,from),prereg){for(depth=0,captures=0,l=0;;){switch(b=!0,c=s.charAt(l),l+=1,c){case\"\":return errorAt(\"Unclosed regular expression.\",line,from),quit(\"Stopping.\",line,from);case\"/\":for(depth>0&&warningAt(\"{a} unterminated regular expression group(s).\",line,from+l,depth),c=s.substr(0,l-1),q={g:!0,i:!0,m:!0};q[s.charAt(l)]===!0;)q[s.charAt(l)]=!1,l+=1;return character+=l,s=s.substr(l),q=s.charAt(0),(\"/\"===q||\"*\"===q)&&errorAt(\"Confusing regular expression.\",line,from),it(\"(regexp)\",c);case\"\\\\\\\\\":c=s.charAt(l),\" \">c?warningAt(\"Unexpected control character in regular expression.\",line,from+l):\"\u003C\"===c&&warningAt(\"Unexpected escaped character \\'{a}\\' in regular expression.\",line,from+l,c),l+=1;break;case\"(\":if(depth+=1,b=!1,\"?\"===s.charAt(l))switch(l+=1,s.charAt(l)){case\":\":case\"=\":case\"!\":l+=1;break;default:warningAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,from+l,\":\",s.charAt(l))}else captures+=1;break;case\"|\":b=!1;break;case\")\":0===depth?warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,\")\"):depth-=1;break;case\" \":for(q=1;\" \"===s.charAt(l);)l+=1,q+=1;q>1&&warningAt(\"Spaces are hard to count. Use {{a}}.\",line,from+l,q);break;case\"[\":c=s.charAt(l),\"^\"===c&&(l+=1,\"]\"===s.charAt(l)&&errorAt(\"Unescaped \\'{a}\\'.\",line,from+l,\"^\")),\"]\"===c&&warningAt(\"Empty class.\",line,from+l-1),isLiteral=!1,isInRange=!1;klass:do switch(c=s.charAt(l),l+=1,c){case\"[\":case\"^\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,c),isInRange?isInRange=!1:isLiteral=!0;break;case\"-\":isLiteral&&!isInRange?(isLiteral=!1,isInRange=!0):isInRange?isInRange=!1:\"]\"===s.charAt(l)?isInRange=!0:(option.regexdash!==(2===l||3===l&&\"^\"===s.charAt(1))&&warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"-\"),isLiteral=!0);break;case\"]\":isInRange&&!option.regexdash&&warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"-\");break klass;case\"\\\\\\\\\":c=s.charAt(l),\" \">c?warningAt(\"Unexpected control character in regular expression.\",line,from+l):\"\u003C\"===c&&warningAt(\"Unexpected escaped character \\'{a}\\' in regular expression.\",line,from+l,c),l+=1,/[wsd]/i.test(c)?(isInRange&&(warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,\"-\"),isInRange=!1),isLiteral=!1):isInRange?isInRange=!1:isLiteral=!0;break;case\"/\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l-1,\"/\"),isInRange?isInRange=!1:isLiteral=!0;break;case\"\u003C\":isInRange?isInRange=!1:isLiteral=!0;break;default:isInRange?isInRange=!1:isLiteral=!0}while(c);break;case\".\":option.regexp&&warningAt(\"Insecure \\'{a}\\'.\",line,from+l,c);break;case\"]\":case\"?\":case\"{\":case\"}\":case\"+\":case\"*\":warningAt(\"Unescaped \\'{a}\\'.\",line,from+l,c)}if(b)switch(s.charAt(l)){case\"?\":case\"+\":case\"*\":l+=1,\"?\"===s.charAt(l)&&(l+=1);break;case\"{\":if(l+=1,c=s.charAt(l),\"0\">c||c>\"9\"){warningAt(\"Expected a number and instead saw \\'{a}\\'.\",line,from+l,c);break}for(l+=1,low=+c;c=s.charAt(l),!(\"0\">c||c>\"9\");)l+=1,low=+c+10*low;if(high=low,\",\"===c&&(l+=1,high=1/0,c=s.charAt(l),c>=\"0\"&&\"9\">=c))for(l+=1,high=+c;c=s.charAt(l),!(\"0\">c||c>\"9\");)l+=1,high=+c+10*high;\"}\"!==s.charAt(l)?warningAt(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",line,from+l,\"}\",c):l+=1,\"?\"===s.charAt(l)&&(l+=1),low>high&&warningAt(\"\\'{a}\\' should not be greater than \\'{b}\\'.\",line,from+l,low,high)}}return c=s.substr(0,l-1),character+=l,s=s.substr(l),it(\"(regexp)\",c)}return it(\"(punctuator)\",t);case\"#\":return it(\"(punctuator)\",t);default:return it(\"(punctuator)\",t)}}else{for(t=\"\",c=\"\";s&&\"!\">s;)s=s.substr(1);s&&(errorAt(\"Unexpected \\'{a}\\'.\",line,character,s.substr(0,1)),s=\"\")}}}}}();type(\"(number)\",function(){return this}),type(\"(string)\",function(){return this}),syntax[\"(identifier)\"]={type:\"(identifier)\",lbp:0,identifier:!0,nud:function(){var f,v=this.value,s=scope[v];if(\"function\"==typeof s?s=void 0:\"boolean\"==typeof s&&(f=funct,funct=functions[0],addlabel(v,\"var\"),s=funct,funct=f),funct===s)switch(funct[v]){case\"unused\":funct[v]=\"var\";break;case\"unction\":funct[v]=\"function\",this[\"function\"]=!0;break;case\"function\":this[\"function\"]=!0;break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v)}else if(funct[\"(global)\"])option.undef&&\"boolean\"!=typeof predefined[v]&&(\"typeof\"!==anonname&&\"delete\"!==anonname||nexttoken&&(\".\"===nexttoken.value||\"[\"===nexttoken.value))&&isundef(funct,\"\\'{a}\\' is not defined.\",token,v),note_implied(token);else switch(funct[v]){case\"closure\":case\"function\":case\"var\":case\"unused\":warning(\"\\'{a}\\' used out of scope.\",token,v);break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v);break;case\"outer\":case\"global\":break;default:if(s===!0)funct[v]=!0;else if(null===s)warning(\"\\'{a}\\' is not allowed.\",token,v),note_implied(token);else if(\"object\"!=typeof s)option.undef&&(\"typeof\"!==anonname&&\"delete\"!==anonname||nexttoken&&(\".\"===nexttoken.value||\"[\"===nexttoken.value))&&isundef(funct,\"\\'{a}\\' is not defined.\",token,v),funct[v]=!0,note_implied(token);else switch(s[v]){case\"function\":case\"unction\":this[\"function\"]=!0,s[v]=\"closure\",funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"var\":case\"unused\":s[v]=\"closure\",funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"closure\":funct[v]=s[\"(global)\"]?\"global\":\"outer\";break;case\"label\":warning(\"\\'{a}\\' is a statement label.\",token,v)}}return this},led:function(){error(\"Expected an operator and instead saw \\'{a}\\'.\",nexttoken,nexttoken.value)}},type(\"(regexp)\",function(){return this}),delim(\"(endline)\"),delim(\"(begin)\"),delim(\"(end)\").reach=!0,delim(\"\u003C/\").reach=!0,delim(\"\u003C!\"),delim(\"\u003C!--\"),delim(\"-->\"),delim(\"(error)\").reach=!0,delim(\"}\").reach=!0,delim(\")\"),delim(\"]\"),delim(\\'\"\\').reach=!0,delim(\"\\'\").reach=!0,delim(\";\"),delim(\":\").reach=!0,delim(\",\"),delim(\"#\"),delim(\"@\"),reserve(\"else\"),reserve(\"case\").reach=!0,reserve(\"catch\"),reserve(\"default\").reach=!0,reserve(\"finally\"),reservevar(\"arguments\",function(x){directive[\"use strict\"]&&funct[\"(global)\"]&&warning(\"Strict violation.\",x)}),reservevar(\"eval\"),reservevar(\"false\"),reservevar(\"Infinity\"),reservevar(\"null\"),reservevar(\"this\",function(x){directive[\"use strict\"]&&!option.validthis&&(funct[\"(statement)\"]&&funct[\"(name)\"].charAt(0)>\"Z\"||funct[\"(global)\"])&&warning(\"Possible strict violation.\",x)}),reservevar(\"true\"),reservevar(\"undefined\"),assignop(\"=\",\"assign\",20),assignop(\"+=\",\"assignadd\",20),assignop(\"-=\",\"assignsub\",20),assignop(\"*=\",\"assignmult\",20),assignop(\"/=\",\"assigndiv\",20).nud=function(){error(\"A regular expression literal can be confused with \\'/=\\'.\")},assignop(\"%=\",\"assignmod\",20),bitwiseassignop(\"&=\",\"assignbitand\",20),bitwiseassignop(\"|=\",\"assignbitor\",20),bitwiseassignop(\"^=\",\"assignbitxor\",20),bitwiseassignop(\"\u003C\u003C=\",\"assignshiftleft\",20),bitwiseassignop(\">>=\",\"assignshiftright\",20),bitwiseassignop(\">>>=\",\"assignshiftrightunsigned\",20),infix(\"?\",function(left,that){return that.left=left,that.right=expression(10),advance(\":\"),that[\"else\"]=expression(10),that},30),infix(\"||\",\"or\",40),infix(\"&&\",\"and\",50),bitwise(\"|\",\"bitor\",70),bitwise(\"^\",\"bitxor\",80),bitwise(\"&\",\"bitand\",90),relation(\"==\",function(left,right){var eqnull=option.eqnull&&(\"null\"===left.value||\"null\"===right.value);return!eqnull&&option.eqeqeq?warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",this,\"===\",\"==\"):isPoorRelation(left)?warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"===\",left.value):isPoorRelation(right)&&warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"===\",right.value),this}),relation(\"===\"),relation(\"!=\",function(left,right){var eqnull=option.eqnull&&(\"null\"===left.value||\"null\"===right.value);return!eqnull&&option.eqeqeq?warning(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",this,\"!==\",\"!=\"):isPoorRelation(left)?warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"!==\",left.value):isPoorRelation(right)&&warning(\"Use \\'{a}\\' to compare with \\'{b}\\'.\",this,\"!==\",right.value),this}),relation(\"!==\"),relation(\"\u003C\"),relation(\">\"),relation(\"\u003C=\"),relation(\">=\"),bitwise(\"\u003C\u003C\",\"shiftleft\",120),bitwise(\">>\",\"shiftright\",120),bitwise(\">>>\",\"shiftrightunsigned\",120),infix(\"in\",\"in\",120),infix(\"instanceof\",\"instanceof\",120),infix(\"+\",function(left,that){var right=expression(130);return left&&right&&\"(string)\"===left.id&&\"(string)\"===right.id?(left.value+=right.value,left.character=right.character,!option.scripturl&&jx.test(left.value)&&warning(\"JavaScript URL.\",left),left):(that.left=left,that.right=right,that)},130),prefix(\"+\",\"num\"),prefix(\"+++\",function(){return warning(\"Confusing pluses.\"),this.right=expression(150),this.arity=\"unary\",this}),infix(\"+++\",function(left){return warning(\"Confusing pluses.\"),this.left=left,this.right=expression(130),this},130),infix(\"-\",\"sub\",130),prefix(\"-\",\"neg\"),prefix(\"---\",function(){return warning(\"Confusing minuses.\"),this.right=expression(150),this.arity=\"unary\",this}),infix(\"---\",function(left){return warning(\"Confusing minuses.\"),this.left=left,this.right=expression(130),this},130),infix(\"*\",\"mult\",140),infix(\"/\",\"div\",140),infix(\"%\",\"mod\",140),suffix(\"++\",\"postinc\"),prefix(\"++\",\"preinc\"),syntax[\"++\"].exps=!0,suffix(\"--\",\"postdec\"),prefix(\"--\",\"predec\"),syntax[\"--\"].exps=!0,prefix(\"delete\",function(){var p=expression(0);return(!p||\".\"!==p.id&&\"[\"!==p.id)&&warning(\"Variables should not be deleted.\"),this.first=p,this}).exps=!0,prefix(\"~\",function(){return option.bitwise&&warning(\"Unexpected \\'{a}\\'.\",this,\"~\"),expression(150),this}),prefix(\"!\",function(){return this.right=expression(150),this.arity=\"unary\",bang[this.right.id]===!0&&warning(\"Confusing use of \\'{a}\\'.\",this,\"!\"),this}),prefix(\"typeof\",\"typeof\"),prefix(\"new\",function(){var i,c=expression(155);if(c&&\"function\"!==c.id)if(c.identifier)switch(c[\"new\"]=!0,c.value){case\"Number\":case\"String\":case\"Boolean\":case\"Math\":case\"JSON\":warning(\"Do not use {a} as a constructor.\",prevtoken,c.value);break;case\"Function\":option.evil||warning(\"The Function constructor is eval.\");break;case\"Date\":case\"RegExp\":break;default:\"function\"!==c.id&&(i=c.value.substr(0,1),option.newcap&&(\"A\">i||i>\"Z\")&&!is_own(global,c.value)&&warning(\"A constructor name should start with an uppercase letter.\",token))}else\".\"!==c.id&&\"[\"!==c.id&&\"(\"!==c.id&&warning(\"Bad constructor.\",token);else option.supernew||warning(\"Weird construction. Delete \\'new\\'.\",this);return adjacent(token,nexttoken),\"(\"===nexttoken.id||option.supernew||warning(\"Missing \\'()\\' invoking a constructor.\",token,token.value),this.first=c,this}),syntax[\"new\"].exps=!0,prefix(\"void\").exps=!0,infix(\".\",function(left,that){adjacent(prevtoken,token),nobreak();var m=identifier();return\"string\"==typeof m&&countMember(m),that.left=left,that.right=m,!left||\"arguments\"!==left.value||\"callee\"!==m&&\"caller\"!==m?option.evil||!left||\"document\"!==left.value||\"write\"!==m&&\"writeln\"!==m||warning(\"document.write can be a form of eval.\",left):option.noarg?warning(\"Avoid arguments.{a}.\",left,m):directive[\"use strict\"]&&error(\"Strict violation.\"),option.evil||\"eval\"!==m&&\"execScript\"!==m||warning(\"eval is evil.\"),that},160,!0),infix(\"(\",function(left,that){\"}\"!==prevtoken.id&&\")\"!==prevtoken.id&&nobreak(prevtoken,token),nospace(),option.immed&&!left.immed&&\"function\"===left.id&&warning(\"Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.\");var n=0,p=[];if(left&&\"(identifier)\"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1===\"Number String Boolean Date Object\".indexOf(left.value)&&(\"Math\"===left.value?warning(\"Math is not a function.\",left):option.newcap&&warning(\"Missing \\'new\\' prefix when invoking a constructor.\",left)),\")\"!==nexttoken.id)for(;p[p.length]=expression(10),n+=1,\",\"===nexttoken.id;)comma();return advance(\")\"),nospace(prevtoken,token),\"object\"==typeof left&&(\"parseInt\"===left.value&&1===n&&warning(\"Missing radix parameter.\",token),option.evil||(\"eval\"===left.value||\"Function\"===left.value||\"execScript\"===left.value?(warning(\"eval is evil.\",left),p[0]&&\"(string)\"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||\"(string)\"!==p[0].id||\"setTimeout\"!==left.value&&\"setInterval\"!==left.value?!p[0]||\"(string)\"!==p[0].id||\".\"!==left.value||\"window\"!==left.left.value||\"setTimeout\"!==left.right&&\"setInterval\"!==left.right||(warning(\"Implied eval is evil. Pass a function instead of a string.\",left),addInternalSrc(left,p[0].value)):(warning(\"Implied eval is evil. Pass a function instead of a string.\",left),addInternalSrc(left,p[0].value))),left.identifier||\".\"===left.id||\"[\"===left.id||\"(\"===left.id||\"&&\"===left.id||\"||\"===left.id||\"?\"===left.id||warning(\"Bad invocation.\",left)),that.left=left,that},155,!0).exps=!0,prefix(\"(\",function(){nospace(),\"function\"===nexttoken.id&&(nexttoken.immed=!0);var v=expression(0);return advance(\")\",this),nospace(prevtoken,token),option.immed&&\"function\"===v.id&&\"(\"!==nexttoken.id&&(\".\"!==nexttoken.id||\"call\"!==peek().value&&\"apply\"!==peek().value)&&warning(\"Do not wrap function literals in parens unless they are to be immediately invoked.\",this),v}),infix(\"[\",function(left,that){nobreak(prevtoken,token),nospace();var s,e=expression(0);return e&&\"(string)\"===e.type&&(option.evil||\"eval\"!==e.value&&\"execScript\"!==e.value||warning(\"eval is evil.\",that),countMember(e.value),!option.sub&&ix.test(e.value)&&(s=syntax[e.value],s&&s.reserved||warning(\"[\\'{a}\\'] is better written in dot notation.\",prevtoken,e.value))),advance(\"]\",that),nospace(prevtoken,token),that.left=left,that.right=e,that},160,!0),prefix(\"[\",function(){var b=token.line!==nexttoken.line;for(this.first=[],b&&(indent+=option.indent,nexttoken.from===indent+option.indent&&(indent+=option.indent));\"(end)\"!==nexttoken.id;){for(;\",\"===nexttoken.id;)option.es5||warning(\"Extra comma.\"),advance(\",\");if(\"]\"===nexttoken.id)break;if(b&&token.line!==nexttoken.line&&indentation(),this.first.push(expression(10)),\",\"!==nexttoken.id)break;if(comma(),\"]\"===nexttoken.id&&!option.es5){warning(\"Extra comma.\",token);break}}return b&&(indent-=option.indent,indentation()),advance(\"]\",this),this},160),function(x){x.nud=function(){function saveProperty(name,token){props[name]&&is_own(props,name)?warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].basic=!0,props[name].basicToken=token}function saveSetter(name,token){props[name]&&is_own(props,name)?(props[name].basic||props[name].setter)&&warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].setter=!0,props[name].setterToken=token}function saveGetter(name){props[name]&&is_own(props,name)?(props[name].basic||props[name].getter)&&warning(\"Duplicate member \\'{a}\\'.\",nexttoken,i):props[name]={},props[name].getter=!0,props[name].getterToken=token}var b,f,i,p,t,props={};for(b=token.line!==nexttoken.line,b&&(indent+=option.indent,nexttoken.from===indent+option.indent&&(indent+=option.indent));\"}\"!==nexttoken.id;){if(b&&indentation(),\"get\"===nexttoken.value&&\":\"!==peek().id)advance(\"get\"),option.es5||error(\"get/set are ES5 features.\"),i=property_name(),i||error(\"Missing property name.\"),saveGetter(i),t=nexttoken,adjacent(token,nexttoken),f=doFunction(),p=f[\"(params)\"],p&&warning(\"Unexpected parameter \\'{a}\\' in get {b} function.\",t,p[0],i),adjacent(token,nexttoken);else if(\"set\"===nexttoken.value&&\":\"!==peek().id)advance(\"set\"),option.es5||error(\"get/set are ES5 features.\"),i=property_name(),i||error(\"Missing property name.\"),saveSetter(i,nexttoken),t=nexttoken,adjacent(token,nexttoken),f=doFunction(),p=f[\"(params)\"],p&&1===p.length||warning(\"Expected a single parameter in set {a} function.\",t,i);else{if(i=property_name(),saveProperty(i,nexttoken),\"string\"!=typeof i)break;advance(\":\"),nonadjacent(token,nexttoken),expression(10)}if(countMember(i),\",\"!==nexttoken.id)break;comma(),\",\"===nexttoken.id?warning(\"Extra comma.\",token):\"}\"!==nexttoken.id||option.es5||warning(\"Extra comma.\",token)}if(b&&(indent-=option.indent,indentation()),advance(\"}\",this),option.es5)for(var name in props)is_own(props,name)&&props[name].setter&&!props[name].getter&&warning(\"Setter is defined without getter.\",props[name].setterToken);return this},x.fud=function(){error(\"Expected to see a statement and instead saw a block.\",token)}}(delim(\"{\")),useESNextSyntax=function(){var conststatement=stmt(\"const\",function(prefix){var id,name,value;for(this.first=[];(nonadjacent(token,nexttoken),id=identifier(),\"const\"===funct[id]&&warning(\"const \\'\"+id+\"\\' has already been declared\"),funct[\"(global)\"]&&predefined[id]===!1&&warning(\"Redefinition of \\'{a}\\'.\",token,id),addlabel(id,\"const\"),!prefix)&&(name=token,this.first.push(token),\"=\"!==nexttoken.id&&warning(\"const \\'{a}\\' is initialized to \\'undefined\\'.\",token,id),\"=\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"=\"),nonadjacent(token,nexttoken),\"undefined\"===nexttoken.id&&warning(\"It is not necessary to initialize \\'{a}\\' to \\'undefined\\'.\",token,id),\"=\"===peek(0).id&&nexttoken.identifier&&error(\"Constant {a} was not declared correctly.\",nexttoken,nexttoken.value),value=expression(0),name.first=value),\",\"===nexttoken.id);)comma();return this});conststatement.exps=!0};var varstatement=stmt(\"var\",function(prefix){var id,name,value;for(funct[\"(onevar)\"]&&option.onevar?warning(\"Too many var statements.\"):funct[\"(global)\"]||(funct[\"(onevar)\"]=!0),this.first=[];(nonadjacent(token,nexttoken),id=identifier(),option.esnext&&\"const\"===funct[id]&&warning(\"const \\'\"+id+\"\\' has already been declared\"),funct[\"(global)\"]&&predefined[id]===!1&&warning(\"Redefinition of \\'{a}\\'.\",token,id),addlabel(id,\"unused\",token),!prefix)&&(name=token,this.first.push(token),\"=\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"=\"),nonadjacent(token,nexttoken),\"undefined\"===nexttoken.id&&warning(\"It is not necessary to initialize \\'{a}\\' to \\'undefined\\'.\",token,id),\"=\"===peek(0).id&&nexttoken.identifier&&error(\"Variable {a} was not declared correctly.\",nexttoken,nexttoken.value),value=expression(0),name.first=value),\",\"===nexttoken.id);)comma();return this});varstatement.exps=!0,blockstmt(\"function\",function(){inblock&&warning(\"Function declarations should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.\",token);var i=identifier();return option.esnext&&\"const\"===funct[i]&&warning(\"const \\'\"+i+\"\\' has already been declared\"),adjacent(token,nexttoken),addlabel(i,\"unction\",token),doFunction(i,{statement:!0}),\"(\"===nexttoken.id&&nexttoken.line===token.line&&error(\"Function declarations are not invocable. Wrap the whole function invocation in parens.\"),this}),prefix(\"function\",function(){var i=optionalidentifier();return i?adjacent(token,nexttoken):nonadjacent(token,nexttoken),doFunction(i),!option.loopfunc&&funct[\"(loopage)\"]&&warning(\"Don\\'t make functions within a loop.\"),this}),blockstmt(\"if\",function(){var t=nexttoken;return increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),\"else\"===nexttoken.id&&(nonadjacent(token,nexttoken),advance(\"else\"),\"if\"===nexttoken.id||\"switch\"===nexttoken.id?statement(!0):block(!0,!0)),this}),blockstmt(\"try\",function(){function doCatch(){var e,oldScope=scope;advance(\"catch\"),nonadjacent(token,nexttoken),advance(\"(\"),scope=Object.create(oldScope),e=nexttoken.value,\"(identifier)\"!==nexttoken.type&&(e=null,warning(\"Expected an identifier and instead saw \\'{a}\\'.\",nexttoken,e)),advance(),advance(\")\"),funct={\"(name)\":\"(catch)\",\"(line)\":nexttoken.line,\"(character)\":nexttoken.character,\"(context)\":funct,\"(breakage)\":funct[\"(breakage)\"],\"(loopage)\":funct[\"(loopage)\"],\"(scope)\":scope,\"(statement)\":!1,\"(metrics)\":createMetrics(nexttoken),\"(catch)\":!0,\"(tokens)\":{}},e&&addlabel(e,\"exception\"),token.funct=funct,functions.push(funct),block(!1),scope=oldScope,funct[\"(last)\"]=token.line,funct[\"(lastcharacter)\"]=token.character,funct=funct[\"(context)\"]}var b;return block(!1),\"catch\"===nexttoken.id&&(increaseComplexityCount(),doCatch(),b=!0),\"finally\"===nexttoken.id?(advance(\"finally\"),block(!1),void 0):(b||error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"catch\",nexttoken.value),this)}),blockstmt(\"while\",function(){var t=nexttoken;return funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}).labelled=!0,blockstmt(\"with\",function(){var t=nexttoken;return directive[\"use strict\"]?error(\"\\'with\\' is not allowed in strict mode.\",token):option.withstmt||warning(\"Don\\'t use \\'with\\'.\",token),advance(\"(\"),nonadjacent(this,t),nospace(),expression(0),advance(\")\",t),nospace(prevtoken,token),block(!0,!0),this}),blockstmt(\"switch\",function(){var t=nexttoken,g=!1;for(funct[\"(breakage)\"]+=1,advance(\"(\"),nonadjacent(this,t),nospace(),this.condition=expression(20),advance(\")\",t),nospace(prevtoken,token),nonadjacent(token,nexttoken),t=nexttoken,advance(\"{\"),nonadjacent(token,nexttoken),indent+=option.indent,this.cases=[];;)switch(nexttoken.id){case\"case\":switch(funct[\"(verb)\"]){case\"break\":case\"case\":case\"continue\":case\"return\":case\"switch\":case\"throw\":break;default:ft.test(lines[nexttoken.line-2])||warning(\"Expected a \\'break\\' statement before \\'case\\'.\",token)}indentation(-option.indent),advance(\"case\"),this.cases.push(expression(20)),increaseComplexityCount(),g=!0,advance(\":\"),funct[\"(verb)\"]=\"case\";break;case\"default\":switch(funct[\"(verb)\"]){case\"break\":case\"continue\":case\"return\":case\"throw\":break;default:ft.test(lines[nexttoken.line-2])||warning(\"Expected a \\'break\\' statement before \\'default\\'.\",token)}indentation(-option.indent),advance(\"default\"),g=!0,advance(\":\");break;case\"}\":return indent-=option.indent,indentation(),advance(\"}\",t),(1===this.cases.length||\"true\"===this.condition.id||\"false\"===this.condition.id)&&(option.onecase||warning(\"This \\'switch\\' should be an \\'if\\'.\",this)),funct[\"(breakage)\"]-=1,funct[\"(verb)\"]=void 0,void 0;case\"(end)\":return error(\"Missing \\'{a}\\'.\",nexttoken,\"}\"),void 0;default:if(g)switch(token.id){case\",\":return error(\"Each value should have its own case label.\"),void 0;case\":\":g=!1,statements();break;default:return error(\"Missing \\':\\' on a case clause.\",token),void 0}else{if(\":\"!==token.id)return error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\"case\",nexttoken.value),void 0;advance(\":\"),error(\"Unexpected \\'{a}\\'.\",token,\":\"),statements()}}}).labelled=!0,stmt(\"debugger\",function(){return option.debug||warning(\"All \\'debugger\\' statements should be removed.\"),this}).exps=!0,function(){var x=stmt(\"do\",function(){funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),this.first=block(!0),advance(\"while\");var t=nexttoken;return nonadjacent(token,t),advance(\"(\"),nospace(),expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20)),advance(\")\",t),nospace(prevtoken,token),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt(\"for\",function(){var s,t=nexttoken;if(funct[\"(breakage)\"]+=1,funct[\"(loopage)\"]+=1,increaseComplexityCount(),advance(\"(\"),nonadjacent(this,t),nospace(),\"in\"===peek(\"var\"===nexttoken.id?1:0).id){if(\"var\"===nexttoken.id)advance(\"var\"),varstatement.fud.call(varstatement,!0);else{switch(funct[nexttoken.value]){case\"unused\":funct[nexttoken.value]=\"var\";break;case\"var\":break;default:warning(\"Bad for in variable \\'{a}\\'.\",nexttoken,nexttoken.value)}advance()}return advance(\"in\"),expression(20),advance(\")\",t),s=block(!0,!0),option.forin&&s&&(s.length>1||\"object\"!=typeof s[0]||\"if\"!==s[0].value)&&warning(\"The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.\",this),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}if(\";\"!==nexttoken.id)if(\"var\"===nexttoken.id)advance(\"var\"),varstatement.fud.call(varstatement);else for(;expression(0,\"for\"),\",\"===nexttoken.id;)comma();if(nolinebreak(token),advance(\";\"),\";\"!==nexttoken.id&&(expression(20),\"=\"===nexttoken.id&&(option.boss||warning(\"Assignment in conditional expression\"),advance(\"=\"),expression(20))),nolinebreak(token),advance(\";\"),\";\"===nexttoken.id&&error(\"Expected \\'{a}\\' and instead saw \\'{b}\\'.\",nexttoken,\")\",\";\"),\")\"!==nexttoken.id)for(;expression(0,\"for\"),\",\"===nexttoken.id;)comma();return advance(\")\",t),nospace(prevtoken,token),block(!0,!0),funct[\"(breakage)\"]-=1,funct[\"(loopage)\"]-=1,this}).labelled=!0,stmt(\"break\",function(){var v=nexttoken.value;return 0===funct[\"(breakage)\"]&&warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),option.asi||nolinebreak(this),\";\"!==nexttoken.id&&token.line===nexttoken.line&&(\"label\"!==funct[v]?warning(\"\\'{a}\\' is not a statement label.\",nexttoken,v):scope[v]!==funct&&warning(\"\\'{a}\\' is out of scope.\",nexttoken,v),this.first=nexttoken,advance()),reachable(\"break\"),this\\n}).exps=!0,stmt(\"continue\",function(){var v=nexttoken.value;return 0===funct[\"(breakage)\"]&&warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),option.asi||nolinebreak(this),\";\"!==nexttoken.id?token.line===nexttoken.line&&(\"label\"!==funct[v]?warning(\"\\'{a}\\' is not a statement label.\",nexttoken,v):scope[v]!==funct&&warning(\"\\'{a}\\' is out of scope.\",nexttoken,v),this.first=nexttoken,advance()):funct[\"(loopage)\"]||warning(\"Unexpected \\'{a}\\'.\",nexttoken,this.value),reachable(\"continue\"),this}).exps=!0,stmt(\"return\",function(){return this.line===nexttoken.line?(\"(regexp)\"===nexttoken.id&&warning(\"Wrap the /regexp/ literal in parens to disambiguate the slash operator.\"),\";\"===nexttoken.id||nexttoken.reach||(nonadjacent(token,nexttoken),\"=\"!==peek().value||option.boss||warningAt(\"Did you mean to return a conditional instead of an assignment?\",token.line,token.character+1),this.first=expression(0))):option.asi||nolinebreak(this),reachable(\"return\"),this}).exps=!0,stmt(\"throw\",function(){return nolinebreak(this),nonadjacent(token,nexttoken),this.first=expression(20),reachable(\"throw\"),this}).exps=!0,reserve(\"class\"),reserve(\"const\"),reserve(\"enum\"),reserve(\"export\"),reserve(\"extends\"),reserve(\"import\"),reserve(\"super\"),reserve(\"let\"),reserve(\"yield\"),reserve(\"implements\"),reserve(\"interface\"),reserve(\"package\"),reserve(\"private\"),reserve(\"protected\"),reserve(\"public\"),reserve(\"static\");var itself=function(s,o,g){var a,i,k,x,optionKeys,newOptionObj={};if(o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope=\"(main)\"),predefined=Object.create(standard),declared=Object.create(null),combine(predefined,g||{}),o)for(a=o.predef,a&&(Array.isArray(a)||\"object\"!=typeof a||(a=Object.keys(a)),a.forEach(function(item){var slice;\"-\"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice):predefined[item]=!0})),optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)newOptionObj[optionKeys[x]]=o[optionKeys[x]],\"newcap\"===optionKeys[x]&&o[optionKeys[x]]===!1&&(newOptionObj[\"(explicitNewcap)\"]=!0),\"indent\"===optionKeys[x]&&(newOptionObj.white=!0);for(option=newOptionObj,option.indent=option.indent||4,option.maxerr=option.maxerr||50,tab=\"\",i=0;option.indent>i;i+=1)tab+=\" \";if(indent=1,global=Object.create(predefined),scope=global,funct={\"(global)\":!0,\"(name)\":\"(global)\",\"(scope)\":scope,\"(breakage)\":0,\"(loopage)\":0,\"(tokens)\":{},\"(metrics)\":createMetrics(nexttoken)},functions=[funct],urls=[],stack=null,member={},membersOnly=null,implied={},inblock=!1,lookahead=[],jsonmode=!1,warnings=0,lines=[],unuseds=[],!isString(s)&&!Array.isArray(s))return errorAt(\"Input is neither a string nor an array of strings.\",0),!1;if(isString(s)&&/^\\\\s*$/g.test(s))return errorAt(\"Input is an empty string.\",0),!1;if(0===s.length)return errorAt(\"Input is an empty array.\",0),!1;lex.init(s),prereg=!0,directive={},prevtoken=token=nexttoken=syntax[\"(begin)\"];for(var name in o)is_own(o,name)&&checkOption(name,token);assume(),combine(predefined,g||{}),comma.first=!0,quotmark=void 0;try{switch(advance(),nexttoken.id){case\"{\":case\"[\":option.laxbreak=!0,jsonmode=!0,jsonValue();break;default:directives(),directive[\"use strict\"]&&!option.globalstrict&&warning(\\'Use the function form of \"use strict\".\\',prevtoken),statements()}advance(nexttoken&&\".\"!==nexttoken.value?\"(end)\":void 0);var markDefined=function(name,context){do{if(\"string\"==typeof context[name])return\"unused\"===context[name]?context[name]=\"var\":\"unction\"===context[name]&&(context[name]=\"closure\"),!0;context=context[\"(context)\"]}while(context);return!1},clearImplied=function(name,line){if(implied[name]){for(var newImplied=[],i=0;implied[name].length>i;i+=1)implied[name][i]!==line&&newImplied.push(implied[name][i]);0===newImplied.length?delete implied[name]:implied[name]=newImplied}},warnUnused=function(name,token){var line=token.line,chr=token.character;option.unused&&warningAt(\"\\'{a}\\' is defined but never used.\",line,chr,name),unuseds.push({name:name,line:line,character:chr})},checkUnused=function(func,key){var type=func[key],token=func[\"(tokens)\"][key];\"(\"!==key.charAt(0)&&(\"unused\"===type||\"unction\"===type)&&(func[\"(params)\"]&&-1!==func[\"(params)\"].indexOf(key)||warnUnused(key,token))};for(i=0;JSHINT.undefs.length>i;i+=1)k=JSHINT.undefs[i].slice(0),markDefined(k[2].value,k[0])?clearImplied(k[2].value,k[2].line):warning.apply(warning,k.slice(1));functions.forEach(function(func){for(var key in func)is_own(func,key)&&checkUnused(func,key);if(func[\"(params)\"])for(var type,params=func[\"(params)\"].slice(),param=params.pop();param;){if(type=func[param],\"undefined\"===param)return;if(\"unused\"!==type&&\"unction\"!==type)return;warnUnused(param,func[\"(tokens)\"][param]),param=params.pop()}});for(var key in declared)is_own(declared,key)&&!is_own(global,key)&&warnUnused(key,declared[key])}catch(e){if(e){var nt=nexttoken||{};JSHINT.errors.push({raw:e.raw,reason:e.message,line:e.line||nt.line,character:e.character||nt.from},null)}}if(\"(main)\"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:option},implieds=[],members=[];itself.errors.length&&(data.errors=itself.errors),jsonmode&&(data.json=!0);for(n in implied)is_own(implied,n)&&implieds.push({name:n,line:implied[n]});for(implieds.length>0&&(data.implieds=implieds),urls.length>0&&(data.urls=urls),globals=Object.keys(scope),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f[\"(name)\"],fu.param=f[\"(params)\"],fu.line=f[\"(line)\"],fu.character=f[\"(character)\"],fu.last=f[\"(last)\"],fu.lastcharacter=f[\"(lastcharacter)\"],data.functions.push(fu)}unuseds.length>0&&(data.unused=unuseds),members=[];for(n in member)if(\"number\"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();\"object\"==typeof exports&&exports&&(exports.JSHINT=JSHINT)});'\n})()},{}],23:[function(){\"use strict\";Function.prototype.bind||(Function.prototype.bind=function(this_){if(\"function\"!=typeof this)throw new TypeError(\"Function.prototype.bind - what is trying to be bound is not callable\");var args=Array.prototype.slice.call(arguments,1),fn=this,Noop=function(){},fnbound=function(){return fn.apply(this instanceof Noop&&this_?this:this_,args.concat(Array.prototype.slice.call(arguments)))};return Noop.prototype=this.prototype,fnbound.prototype=new Noop,fnbound})},{}],21:[function(require,module){\"use strict\";function scroll(elem){elem&&(elem.scrollTop=elem.scrollHeight)}var Terminal=require(\"./term\"),through=require(\"through\");module.exports=function(opts){var term=new Terminal(opts);term.open();var hypernal=through(term.write.bind(term));return hypernal.appendTo=function(elem){\"string\"==typeof elem&&(elem=document.querySelector(elem)),elem.appendChild(term.element),elem.setAttribute(\"style\",\"overflow-y : auto;\"),hypernal.container=elem,term.element.style.position=\"relative\"},hypernal.writeln=function(line){term.writeln(line),hypernal.tail&&scroll(hypernal.container)},hypernal.write=function(data){term.write(data),hypernal.tail&&scroll(hypernal.container)},hypernal.reset=term.reset.bind(term),hypernal.element=term.element,hypernal.term=term,hypernal}},{\"./term\":24,through:25}],22:[function(require,module){(function(process){\"use strict\";function highlightLines(script){return highlight(script,{linenos:!0}).split(\"\\n\")}require(\"./lib/shim-bind\");var highlight=require(\"cardinal\").highlight,snippetify=require(\"snippetify\"),evalSnippets=require(\"./lib/eval-snippets\"),resolveTales=require(\"./lib/resolve-tales\");process.browser,module.exports=function(script,scriptPath,opts){opts=opts||{};var toLines=opts.toLines||highlightLines,writeln=opts.writeln||(process.browser===!0?function(){}:console.log.bind(console)),snippets=snippetify(script,{nonstrict:!0});evalSnippets(snippets,scriptPath,opts.diff);var tales=resolveTales(snippets,opts),lines=toLines(script),offset=0;return tales.forEach(function(x){x.tale.length&&lines.splice(x.insertAfter+offset++,0,x.tale)}),lines=lines.filter(function(x){return x.length}),lines.forEach(function(line){writeln(line)}),lines}})(require(\"__browserify_process\"))},{\"./lib/shim-bind\":23,\"./lib/eval-snippets\":26,\"./lib/resolve-tales\":27,cardinal:28,snippetify:29,__browserify_process:16}],20:[function(require,module){(function(){(function(){function exportAce(ns){var acequire=function(module,callback){return _acequire(\"\",module,callback)},root=global;ns&&(global[ns]||(global[ns]={}),root=global[ns]),root.define&&root.define.packaged||(_define.original=root.define,root.define=_define,root.define.packaged=!0),root.acequire&&root.acequire.packaged||(_acequire.original=root.acequire,root.acequire=acequire,root.acequire.packaged=!0)}var ACE_NAMESPACE=\"ace\",global=function(){return this}();if(ACE_NAMESPACE||\"undefined\"==typeof acequirejs){var _define=function(module,deps,payload){return\"string\"!=typeof module?(_define.original?_define.original.apply(window,arguments):(console.error(\"dropping module because define wasn't a string.\"),console.trace()),void 0):(2==arguments.length&&(payload=deps),_define.modules||(_define.modules={}),_define.modules[module]=payload,void 0)},_acequire=function(parentId,module,callback){if(\"[object Array]\"===Object.prototype.toString.call(module)){for(var params=[],i=0,l=module.length;l>i;++i){var dep=lookup(parentId,module[i]);if(!dep&&_acequire.original)return _acequire.original.apply(window,arguments);params.push(dep)}callback&&callback.apply(null,params)}else{if(\"string\"==typeof module){var payload=lookup(parentId,module);return!payload&&_acequire.original?_acequire.original.apply(window,arguments):(callback&&callback(),payload)}if(_acequire.original)return _acequire.original.apply(window,arguments)}},normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\"!\")){var chunks=moduleName.split(\"!\");return normalizeModule(parentId,chunks[0])+\"!\"+normalizeModule(parentId,chunks[1])}if(\".\"==moduleName.charAt(0)){var base=parentId.split(\"/\").slice(0,-1).join(\"/\");for(moduleName=base+\"/\"+moduleName;-1!==moduleName.indexOf(\".\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return moduleName},lookup=function(parentId,moduleName){moduleName=normalizeModule(parentId,moduleName);var module=_define.modules[moduleName];if(!module)return null;if(\"function\"==typeof module){var exports={},mod={id:moduleName,uri:\"\",exports:exports,packaged:!0},req=function(module,callback){return _acequire(moduleName,module,callback)},returnValue=module(req,exports,mod);return exports=returnValue||mod.exports,_define.modules[moduleName]=exports,exports}return module};exportAce(ACE_NAMESPACE)}})(),ace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/multi_select\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/config\"],function(acequire,exports){acequire(\"./lib/fixoldbrowsers\");var dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),Editor=acequire(\"./editor\").Editor,EditSession=acequire(\"./edit_session\").EditSession,UndoManager=acequire(\"./undomanager\").UndoManager,Renderer=acequire(\"./virtual_renderer\").VirtualRenderer,MultiSelect=acequire(\"./multi_select\").MultiSelect;acequire(\"./worker/worker_client\"),acequire(\"./keyboard/hash_handler\"),acequire(\"./placeholder\"),acequire(\"./mode/folding/fold_mode\"),acequire(\"./theme/textmate\"),exports.config=acequire(\"./config\"),exports.acequire=acequire,exports.edit=function(el){if(\"string\"==typeof el){var _id=el,el=document.getElementById(_id);if(!el)throw\"ace.edit can't find div #\"+_id}if(el.env&&el.env.editor instanceof Editor)return el.env.editor;var doc=exports.createEditSession(dom.getInnerText(el));el.innerHTML=\"\";var editor=new Editor(new Renderer(el));new MultiSelect(editor),editor.setSession(doc);var env={document:doc,editor:editor,onResize:editor.resize.bind(editor,null)};return event.addListener(window,\"resize\",env.onResize),editor.on(\"destroy\",function(){event.removeListener(window,\"resize\",env.onResize)}),el.env=editor.env=env,editor},exports.createEditSession=function(text){var doc=new EditSession(text,doc);return doc.setUndoManager(new UndoManager),doc},exports.EditSession=EditSession,exports.UndoManager=UndoManager}),ace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"],function(acequire){acequire(\"./regexp\"),acequire(\"./es5-shim\")}),ace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"],function(){function getNativeFlags(regex){return(regex.global?\"g\":\"\")+(regex.ignoreCase?\"i\":\"\")+(regex.multiline?\"m\":\"\")+(regex.extended?\"x\":\"\")+(regex.sticky?\"y\":\"\")}function indexOf(array,item,from){if(Array.prototype.indexOf)return array.indexOf(item,from);for(var i=from||0;array.length>i;i++)if(array[i]===item)return i;return-1}var real={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},compliantExecNpcg=void 0===real.exec.call(/()??/,\"\")[1],compliantLastIndexIncrement=function(){var x=/^/g;return real.test.call(x,\"\"),!x.lastIndex}();compliantLastIndexIncrement&&compliantExecNpcg||(RegExp.prototype.exec=function(str){var name,r2,match=real.exec.apply(this,arguments);if(\"string\"==typeof str&&match){if(!compliantExecNpcg&&match.length>1&&indexOf(match,\"\")>-1&&(r2=RegExp(this.source,real.replace.call(getNativeFlags(this),\"g\",\"\")),real.replace.call(str.slice(match.index),r2,function(){for(var i=1;arguments.length-2>i;i++)void 0===arguments[i]&&(match[i]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var i=1;match.length>i;i++)name=this._xregexp.captureNames[i-1],name&&(match[name]=match[i]);!compliantLastIndexIncrement&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--}return match},compliantLastIndexIncrement||(RegExp.prototype.test=function(str){var match=real.exec.call(this,str);return match&&this.global&&!match[0].length&&this.lastIndex>match.index&&this.lastIndex--,!!match}))}),ace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\"sentinel\",{}),\"sentinel\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\"function\"!=typeof target)throw new TypeError(\"Function.prototype.bind called on incompatible \"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\"__defineGetter__\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\"XXX\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\"[object Array]\"==_toString(obj)});var boxedString=Object(\"a\"),splitString=\"a\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0,thisp=arguments[1];if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduce of empty array with no initial value\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\"reduce of empty array with no initial value\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):object,length=self.length>>>0;if(\"[object Function]\"!=_toString(fun))throw new TypeError(fun+\" is not a function\");if(!length&&1==arguments.length)throw new TypeError(\"reduceRight of empty array with no initial value\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\"reduceRight of empty array with no initial value\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\"[object String]\"==_toString(this)?this.split(\"\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\"Object.getOwnPropertyDescriptor called on a non-object: \";Object.getOwnPropertyDescriptor=function(object,property){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\"undefined\"==typeof document||doesDefinePropertyWork(document.createElement(\"div\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\"Property description must be an object: \",ERR_NON_OBJECT_TARGET=\"Object.defineProperty called on non-object: \",ERR_ACCESSORS_NOT_SUPPORTED=\"getters & setters can not be defined on this javascript engine\";Object.defineProperty=function(object,property,descriptor){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\"object\"!=typeof descriptor&&\"function\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\"value\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\"get\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\"set\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\"function\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\"\";owns(object,name);)name+=\"?\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\"object\"!=typeof object&&\"function\"!=typeof object||null===object)throw new TypeError(\"Object.keys called on a non-object\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\"\t\\n\u000b\\f\\r  ᠎              \\u2028\\u2029\";if(!String.prototype.trim||ws.trim()){ws=\"[\"+ws+\"]\";var trimBeginRegexp=RegExp(\"^\"+ws+ws+\"*\"),trimEndRegexp=RegExp(ws+ws+\"*$\");String.prototype.trim=function(){return(this+\"\").replace(trimBeginRegexp,\"\").replace(trimEndRegexp,\"\")}}var toObject=function(o){if(null==o)throw new TypeError(\"can't convert \"+o+\" to object\");return Object(o)}}),ace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"],function(acequire,exports){if(\"undefined\"!=typeof document){var XHTML_NS=\"http://www.w3.org/1999/xhtml\";exports.getDocumentHead=function(doc){return doc||(doc=document),doc.head||doc.getElementsByTagName(\"head\")[0]||doc.documentElement},exports.createElement=function(tag,ns){return document.createElementNS?document.createElementNS(ns||XHTML_NS,tag):document.createElement(tag)},exports.hasCssClass=function(el,name){var classes=el.className.split(/\\s+/g);return-1!==classes.indexOf(name)},exports.addCssClass=function(el,name){exports.hasCssClass(el,name)||(el.className+=\" \"+name)},exports.removeCssClass=function(el,name){for(var classes=el.className.split(/\\s+/g);;){var index=classes.indexOf(name);if(-1==index)break;classes.splice(index,1)}el.className=classes.join(\" \")},exports.toggleCssClass=function(el,name){for(var classes=el.className.split(/\\s+/g),add=!0;;){var index=classes.indexOf(name);if(-1==index)break;add=!1,classes.splice(index,1)}return add&&classes.push(name),el.className=classes.join(\" \"),add},exports.setCssClass=function(node,className,include){include?exports.addCssClass(node,className):exports.removeCssClass(node,className)},exports.hasCssString=function(id,doc){var sheets,index=0;if(doc=doc||document,doc.createStyleSheet&&(sheets=doc.styleSheets)){for(;sheets.length>index;)if(sheets[index++].owningElement.id===id)return!0}else if(sheets=doc.getElementsByTagName(\"style\"))for(;sheets.length>index;)if(sheets[index++].id===id)return!0;return!1},exports.importCssString=function(cssText,id,doc){if(doc=doc||document,id&&exports.hasCssString(id,doc))return null;var style;doc.createStyleSheet?(style=doc.createStyleSheet(),style.cssText=cssText,id&&(style.owningElement.id=id)):(style=doc.createElementNS?doc.createElementNS(XHTML_NS,\"style\"):doc.createElement(\"style\"),style.appendChild(doc.createTextNode(cssText)),id&&(style.id=id),exports.getDocumentHead(doc).appendChild(style))},exports.importCssStylsheet=function(uri,doc){if(doc.createStyleSheet)doc.createStyleSheet(uri);else{var link=exports.createElement(\"link\");link.rel=\"stylesheet\",link.href=uri,exports.getDocumentHead(doc).appendChild(link)}},exports.getInnerWidth=function(element){return parseInt(exports.computedStyle(element,\"paddingLeft\"),10)+parseInt(exports.computedStyle(element,\"paddingRight\"),10)+element.clientWidth},exports.getInnerHeight=function(element){return parseInt(exports.computedStyle(element,\"paddingTop\"),10)+parseInt(exports.computedStyle(element,\"paddingBottom\"),10)+element.clientHeight},void 0!==window.pageYOffset?(exports.getPageScrollTop=function(){return window.pageYOffset},exports.getPageScrollLeft=function(){return window.pageXOffset}):(exports.getPageScrollTop=function(){return document.body.scrollTop},exports.getPageScrollLeft=function(){return document.body.scrollLeft}),exports.computedStyle=window.getComputedStyle?function(element,style){return style?(window.getComputedStyle(element,\"\")||{})[style]||\"\":window.getComputedStyle(element,\"\")||{}}:function(element,style){return style?element.currentStyle[style]:element.currentStyle},exports.scrollbarWidth=function(document){var inner=exports.createElement(\"ace_inner\");inner.style.width=\"100%\",inner.style.minWidth=\"0px\",inner.style.height=\"200px\",inner.style.display=\"block\";var outer=exports.createElement(\"ace_outer\"),style=outer.style;style.position=\"absolute\",style.left=\"-10000px\",style.overflow=\"hidden\",style.width=\"200px\",style.minWidth=\"0px\",style.height=\"150px\",style.display=\"block\",outer.appendChild(inner);var body=document.documentElement;body.appendChild(outer);var noScrollbar=inner.offsetWidth;style.overflow=\"scroll\";var withScrollbar=inner.offsetWidth;return noScrollbar==withScrollbar&&(withScrollbar=outer.clientWidth),body.removeChild(outer),noScrollbar-withScrollbar},exports.setInnerHtml=function(el,innerHtml){var element=el.cloneNode(!1);return element.innerHTML=innerHtml,el.parentNode.replaceChild(element,el),element},\"textContent\"in document.documentElement?(exports.setInnerText=function(el,innerText){el.textContent=innerText},exports.getInnerText=function(el){return el.textContent}):(exports.setInnerText=function(el,innerText){el.innerText=innerText},exports.getInnerText=function(el){return el.innerText}),exports.getParentWindow=function(document){return document.defaultView||document.parentWindow}}}),ace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\",\"ace/lib/dom\"],function(acequire,exports){function normalizeCommandKeys(callback,e,keyCode){var hashId=0;if(hashId=!useragent.isOpera||\"KeyboardEvent\"in window||!useragent.isMac?0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0):0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0),keyCode in keys.MODIFIER_KEYS){switch(keys.MODIFIER_KEYS[keyCode]){case\"Alt\":hashId=2;break;case\"Shift\":hashId=4;break;case\"Ctrl\":hashId=1;break;default:hashId=8}keyCode=0}return 8&hashId&&(91==keyCode||93==keyCode)&&(keyCode=0),hashId||keyCode in keys.FUNCTION_KEYS||keyCode in keys.PRINTABLE_KEYS?callback(e,hashId,keyCode):!1}var keys=acequire(\"./keys\"),useragent=acequire(\"./useragent\");if(acequire(\"./dom\"),exports.addListener=function(elem,type,callback){if(elem.addEventListener)return elem.addEventListener(type,callback,!1);if(elem.attachEvent){var wrapper=function(){callback(window.event)};callback._wrapper=wrapper,elem.attachEvent(\"on\"+type,wrapper)}},exports.removeListener=function(elem,type,callback){return elem.removeEventListener?elem.removeEventListener(type,callback,!1):(elem.detachEvent&&elem.detachEvent(\"on\"+type,callback._wrapper||callback),void 0)},exports.stopEvent=function(e){return exports.stopPropagation(e),exports.preventDefault(e),!1},exports.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},exports.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},exports.getButton=function(e){return\"dblclick\"==e.type?0:\"contextmenu\"==e.type||e.ctrlKey&&useragent.isMac?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},exports.capture=document.documentElement.setCapture?function(el,eventHandler,releaseCaptureHandler){function onReleaseCapture(e){eventHandler(e),called||(called=!0,releaseCaptureHandler(e)),exports.removeListener(el,\"mousemove\",eventHandler),exports.removeListener(el,\"mouseup\",onReleaseCapture),exports.removeListener(el,\"losecapture\",onReleaseCapture),el.releaseCapture()}var called=!1;exports.addListener(el,\"mousemove\",eventHandler),exports.addListener(el,\"mouseup\",onReleaseCapture),exports.addListener(el,\"losecapture\",onReleaseCapture),el.setCapture()}:function(el,eventHandler,releaseCaptureHandler){function onMouseUp(e){eventHandler&&eventHandler(e),releaseCaptureHandler&&releaseCaptureHandler(e),document.removeEventListener(\"mousemove\",eventHandler,!0),document.removeEventListener(\"mouseup\",onMouseUp,!0),e.stopPropagation()}document.addEventListener(\"mousemove\",eventHandler,!0),document.addEventListener(\"mouseup\",onMouseUp,!0)},exports.addMouseWheelListener=function(el,callback){var factor=8,listener=function(e){void 0!==e.wheelDelta?void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/factor,e.wheelY=-e.wheelDeltaY/factor):(e.wheelX=0,e.wheelY=-e.wheelDelta/factor):e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),callback(e)};exports.addListener(el,\"DOMMouseScroll\",listener),exports.addListener(el,\"mousewheel\",listener)},exports.addMultiMouseDownListener=function(el,timeouts,eventHandler,callbackName){var startX,startY,timer,clicks=0,eventNames={2:\"dblclick\",3:\"tripleclick\",4:\"quadclick\"};exports.addListener(el,\"mousedown\",function(e){if(0!=exports.getButton(e))clicks=0;else{var isNewClick=Math.abs(e.clientX-startX)>5||Math.abs(e.clientY-startY)>5;(!timer||isNewClick)&&(clicks=0),clicks+=1,timer&&clearTimeout(timer),timer=setTimeout(function(){timer=null},timeouts[clicks-1]||600)}if(1==clicks&&(startX=e.clientX,startY=e.clientY),eventHandler[callbackName](\"mousedown\",e),clicks>4)clicks=0;else if(clicks>1)return eventHandler[callbackName](eventNames[clicks],e)}),useragent.isOldIE&&exports.addListener(el,\"dblclick\",function(e){clicks=2,timer&&clearTimeout(timer),timer=setTimeout(function(){timer=null},timeouts[clicks-1]||600),eventHandler[callbackName](\"mousedown\",e),eventHandler[callbackName](eventNames[clicks],e)})},exports.addCommandKeyListener=function(el,callback){var addListener=exports.addListener;if(useragent.isOldGecko||useragent.isOpera&&!(\"KeyboardEvent\"in window)){var lastKeyDownKeyCode=null;addListener(el,\"keydown\",function(e){lastKeyDownKeyCode=e.keyCode}),addListener(el,\"keypress\",function(e){return normalizeCommandKeys(callback,e,lastKeyDownKeyCode)})}else{var lastDown=null;addListener(el,\"keydown\",function(e){return lastDown=e.keyIdentifier||e.keyCode,normalizeCommandKeys(callback,e,e.keyCode)})}},window.postMessage&&!useragent.isOldIE){var postMessageId=1;exports.nextTick=function(callback,win){win=win||window;var messageName=\"zero-timeout-message-\"+postMessageId;exports.addListener(win,\"message\",function listener(e){e.data==messageName&&(exports.stopPropagation(e),exports.removeListener(win,\"message\",listener),callback())}),win.postMessage(messageName,\"*\")}}exports.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame,exports.nextFrame=exports.nextFrame?exports.nextFrame.bind(window):function(callback){setTimeout(callback,17)}}),ace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"],function(acequire,exports){var oop=acequire(\"./oop\"),Keys=function(){var ret={MODIFIER_KEYS:{16:\"Shift\",17:\"Ctrl\",18:\"Alt\",224:\"Meta\"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:\"Backspace\",9:\"Tab\",13:\"Return\",19:\"Pause\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"Print\",45:\"Insert\",46:\"Delete\",96:\"Numpad0\",97:\"Numpad1\",98:\"Numpad2\",99:\"Numpad3\",100:\"Numpad4\",101:\"Numpad5\",102:\"Numpad6\",103:\"Numpad7\",104:\"Numpad8\",105:\"Numpad9\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"Numlock\",145:\"Scrolllock\"},PRINTABLE_KEYS:{32:\" \",48:\"0\",49:\"1\",50:\"2\",51:\"3\",52:\"4\",53:\"5\",54:\"6\",55:\"7\",56:\"8\",57:\"9\",59:\";\",61:\"=\",65:\"a\",66:\"b\",67:\"c\",68:\"d\",69:\"e\",70:\"f\",71:\"g\",72:\"h\",73:\"i\",74:\"j\",75:\"k\",76:\"l\",77:\"m\",78:\"n\",79:\"o\",80:\"p\",81:\"q\",82:\"r\",83:\"s\",84:\"t\",85:\"u\",86:\"v\",87:\"w\",88:\"x\",89:\"y\",90:\"z\",107:\"+\",109:\"-\",110:\".\",188:\",\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"}};for(var i in ret.FUNCTION_KEYS){var name=ret.FUNCTION_KEYS[i].toLowerCase();ret[name]=parseInt(i,10)}return oop.mixin(ret,ret.MODIFIER_KEYS),oop.mixin(ret,ret.PRINTABLE_KEYS),oop.mixin(ret,ret.FUNCTION_KEYS),ret.enter=ret[\"return\"],ret.escape=ret.esc,ret.del=ret[\"delete\"],ret[173]=\"-\",ret}();oop.mixin(exports,Keys),exports.keyCodeToString=function(keyCode){return(Keys[keyCode]||String.fromCharCode(keyCode)).toLowerCase()}}),ace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.inherits=function(){var tempCtor=function(){};\nreturn function(ctor,superCtor){tempCtor.prototype=superCtor.prototype,ctor.super_=superCtor.prototype,ctor.prototype=new tempCtor,ctor.prototype.constructor=ctor}}(),exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"],function(acequire,exports){if(exports.OS={LINUX:\"LINUX\",MAC:\"MAC\",WINDOWS:\"WINDOWS\"},exports.getOS=function(){return exports.isMac?exports.OS.MAC:exports.isLinux?exports.OS.LINUX:exports.OS.WINDOWS},\"object\"==typeof navigator){var os=(navigator.platform.match(/mac|win|linux/i)||[\"other\"])[0].toLowerCase(),ua=navigator.userAgent;exports.isWin=\"win\"==os,exports.isMac=\"mac\"==os,exports.isLinux=\"linux\"==os,exports.isIE=(\"Microsoft Internet Explorer\"==navigator.appName||navigator.appName.indexOf(\"MSAppHost\")>=0)&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\\.0-9]+)/)[1]),exports.isOldIE=exports.isIE&&9>exports.isIE,exports.isGecko=exports.isMozilla=window.controllers&&\"Gecko\"===window.navigator.product,exports.isOldGecko=exports.isGecko&&4>parseInt((navigator.userAgent.match(/rv\\:(\\d+)/)||[])[1],10),exports.isOpera=window.opera&&\"[object Opera]\"==Object.prototype.toString.call(window.opera),exports.isWebKit=parseFloat(ua.split(\"WebKit/\")[1])||void 0,exports.isChrome=parseFloat(ua.split(\" Chrome/\")[1])||void 0,exports.isAIR=ua.indexOf(\"AdobeAIR\")>=0,exports.isIPad=ua.indexOf(\"iPad\")>=0,exports.isTouchPad=ua.indexOf(\"TouchPad\")>=0}}),ace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\"],function(acequire,exports){acequire(\"./lib/fixoldbrowsers\");var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),useragent=acequire(\"./lib/useragent\"),TextInput=acequire(\"./keyboard/textinput\").TextInput,MouseHandler=acequire(\"./mouse/mouse_handler\").MouseHandler,FoldHandler=acequire(\"./mouse/fold_handler\").FoldHandler,KeyBinding=acequire(\"./keyboard/keybinding\").KeyBinding,EditSession=acequire(\"./edit_session\").EditSession,Search=acequire(\"./search\").Search,Range=acequire(\"./range\").Range,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,CommandManager=acequire(\"./commands/command_manager\").CommandManager,defaultCommands=acequire(\"./commands/default_commands\").commands,config=acequire(\"./config\"),Editor=function(renderer,session){var container=renderer.getContainerElement();this.container=container,this.renderer=renderer,this.commands=new CommandManager(useragent.isMac?\"mac\":\"win\",defaultCommands),this.textInput=new TextInput(renderer.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new KeyBinding(this),this.$mouseHandler=new MouseHandler(this),new FoldHandler(this),this.$blockScrolling=0,this.$search=(new Search).set({wrap:!0}),this.setSession(session||new EditSession(\"\")),config.resetOptions(this),config._emit(\"editor\",this)};(function(){oop.implement(this,EventEmitter),this.setKeyboardHandler=function(keyboardHandler){if(keyboardHandler)if(\"string\"==typeof keyboardHandler){this.$keybindingId=keyboardHandler;var _self=this;config.loadModule([\"keybinding\",keyboardHandler],function(module){_self.$keybindingId==keyboardHandler&&_self.keyBinding.setKeyboardHandler(module&&module.handler)})}else delete this.$keybindingId,this.keyBinding.setKeyboardHandler(keyboardHandler);else this.keyBinding.setKeyboardHandler(null)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(session){if(this.session!=session){if(this.session){var oldSession=this.session;this.session.removeEventListener(\"change\",this.$onDocumentChange),this.session.removeEventListener(\"changeMode\",this.$onChangeMode),this.session.removeEventListener(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.session.removeEventListener(\"changeTabSize\",this.$onChangeTabSize),this.session.removeEventListener(\"changeWrapLimit\",this.$onChangeWrapLimit),this.session.removeEventListener(\"changeWrapMode\",this.$onChangeWrapMode),this.session.removeEventListener(\"onChangeFold\",this.$onChangeFold),this.session.removeEventListener(\"changeFrontMarker\",this.$onChangeFrontMarker),this.session.removeEventListener(\"changeBackMarker\",this.$onChangeBackMarker),this.session.removeEventListener(\"changeBreakpoint\",this.$onChangeBreakpoint),this.session.removeEventListener(\"changeAnnotation\",this.$onChangeAnnotation),this.session.removeEventListener(\"changeOverwrite\",this.$onCursorChange),this.session.removeEventListener(\"changeScrollTop\",this.$onScrollTopChange),this.session.removeEventListener(\"changeScrollLeft\",this.$onScrollLeftChange);var selection=this.session.getSelection();selection.removeEventListener(\"changeCursor\",this.$onCursorChange),selection.removeEventListener(\"changeSelection\",this.$onSelectionChange)}this.session=session,this.$onDocumentChange=this.onDocumentChange.bind(this),session.addEventListener(\"change\",this.$onDocumentChange),this.renderer.setSession(session),this.$onChangeMode=this.onChangeMode.bind(this),session.addEventListener(\"changeMode\",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),session.addEventListener(\"tokenizerUpdate\",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),session.addEventListener(\"changeTabSize\",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),session.addEventListener(\"changeWrapLimit\",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),session.addEventListener(\"changeWrapMode\",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),session.addEventListener(\"changeFold\",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener(\"changeFrontMarker\",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener(\"changeBackMarker\",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener(\"changeBreakpoint\",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener(\"changeAnnotation\",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener(\"changeOverwrite\",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener(\"changeScrollTop\",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener(\"changeScrollLeft\",this.$onScrollLeftChange),this.selection=session.getSelection(),this.selection.addEventListener(\"changeCursor\",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener(\"changeSelection\",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit(\"changeSession\",{session:session,oldSession:oldSession})}},this.getSession=function(){return this.session},this.setValue=function(val,cursorPos){return this.session.doc.setValue(val),cursorPos?1==cursorPos?this.navigateFileEnd():-1==cursorPos&&this.navigateFileStart():this.selectAll(),val},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(force){this.renderer.onResize(force)},this.setTheme=function(theme){this.renderer.setTheme(theme)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(style){this.renderer.setStyle(style)},this.unsetStyle=function(style){this.renderer.unsetStyle(style)},this.setFontSize=function(size){this.setOption(\"fontSize\",size)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var self=this;this.$highlightPending=!0,setTimeout(function(){self.$highlightPending=!1;var pos=self.session.findMatchingBracket(self.getCursorPosition());if(pos)var range=new Range(pos.row,pos.column,pos.row,pos.column+1);else if(self.session.$mode.getMatching)var range=self.session.$mode.getMatching(self.session);range&&(self.session.$bracketHighlight=self.session.addMarker(range,\"ace_bracket\",\"text\"))},50)}},this.focus=function(){var _self=this;setTimeout(function(){_self.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit(\"focus\"))},this.onBlur=function(){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit(\"blur\"))},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var lastRow,delta=e.data,range=delta.range;lastRow=range.start.row==range.end.row&&\"insertLines\"!=delta.action&&\"removeLines\"!=delta.action?range.end.row:1/0,this.renderer.updateLines(range.start.row,lastRow),this._emit(\"change\",e),this.$cursorChange()},this.onTokenizerUpdate=function(e){var rows=e.data;this.renderer.updateLines(rows.first,rows.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine(),this._emit(\"changeSelection\")},this.$updateHighlightActiveLine=function(){var highlight,session=this.getSession();if(this.$highlightActiveLine&&(\"line\"==this.$selectionStyle&&this.selection.isMultiLine()||(highlight=this.getCursorPosition())),session.$highlightLineMarker&&!highlight)session.removeMarker(session.$highlightLineMarker.id),session.$highlightLineMarker=null;else if(!session.$highlightLineMarker&&highlight){var range=new Range(highlight.row,highlight.column,highlight.row,1/0);range.id=session.addMarker(range,\"ace_active-line\",\"screenLine\"),session.$highlightLineMarker=range}else highlight&&(session.$highlightLineMarker.start.row=highlight.row,session.$highlightLineMarker.end.row=highlight.row,session.$highlightLineMarker.start.column=highlight.column,session._emit(\"changeBackMarker\"))},this.onSelectionChange=function(){var session=this.session;if(session.$selectionMarker&&session.removeMarker(session.$selectionMarker),session.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var range=this.selection.getRange(),style=this.getSelectionStyle();session.$selectionMarker=session.addMarker(range,\"ace_selection\",style)}var re=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(re),this._emit(\"changeSelection\")},this.$getSelectionHighLightRegexp=function(){var session=this.session,selection=this.getSelectionRange();if(!selection.isEmpty()&&!selection.isMultiLine()){var startOuter=selection.start.column-1,endOuter=selection.end.column+1,line=session.getLine(selection.start.row),lineCols=line.length,needle=line.substring(Math.max(startOuter,0),Math.min(endOuter,lineCols));if(!(startOuter>=0&&/^[\\w\\d]/.test(needle)||lineCols>=endOuter&&/[\\w\\d]$/.test(needle))&&(needle=line.substring(selection.start.column,selection.end.column),/^[\\w\\d]+$/.test(needle))){var re=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:needle});return re}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit(\"changeMode\",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var text=\"\";return this.selection.isEmpty()||(text=this.session.getTextRange(this.getSelectionRange())),this._emit(\"copy\",text),text},this.onCopy=function(){this.commands.exec(\"copy\",this)},this.onCut=function(){this.commands.exec(\"cut\",this)},this.onPaste=function(text){this.$readOnly||(this._emit(\"paste\",text),this.insert(text))},this.execCommand=function(command,args){this.commands.exec(command,this,args)},this.insert=function(text){var session=this.session,mode=session.getMode(),cursor=this.getCursorPosition();if(this.getBehavioursEnabled()){var transform=mode.transformAction(session.getState(cursor.row),\"insertion\",this,session,text);transform&&(text=transform.text)}if(text=text.replace(\"\t\",this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var range=new Range.fromPoints(cursor,cursor);range.end.column+=text.length,this.session.remove(range)}}else cursor=this.session.remove(this.getSelectionRange()),this.clearSelection();this.clearSelection();var start=cursor.column,lineState=session.getState(cursor.row),line=session.getLine(cursor.row),shouldOutdent=mode.checkOutdent(lineState,line,text),end=session.insert(cursor,text);if(transform&&transform.selection&&(2==transform.selection.length?this.selection.setSelectionRange(new Range(cursor.row,start+transform.selection[0],cursor.row,start+transform.selection[1])):this.selection.setSelectionRange(new Range(cursor.row+transform.selection[0],transform.selection[1],cursor.row+transform.selection[2],transform.selection[3]))),session.getDocument().isNewLine(text)){var lineIndent=mode.getNextLineIndent(lineState,line.slice(0,cursor.column),session.getTabString());this.moveCursorTo(cursor.row+1,0);for(var size=session.getTabSize(),minIndent=Number.MAX_VALUE,row=cursor.row+1;end.row>=row;++row){var indent=0;line=session.getLine(row);for(var i=0;line.length>i;++i)if(\"\t\"==line.charAt(i))indent+=size;else{if(\" \"!=line.charAt(i))break;indent+=1}/[^\\s]/.test(line)&&(minIndent=Math.min(indent,minIndent))}for(var row=cursor.row+1;end.row>=row;++row){var outdent=minIndent;line=session.getLine(row);for(var i=0;line.length>i&&outdent>0;++i)\"\t\"==line.charAt(i)?outdent-=size:\" \"==line.charAt(i)&&(outdent-=1);session.remove(new Range(row,0,row,i))}session.indentRows(cursor.row+1,end.row,lineIndent)}shouldOutdent&&mode.autoOutdent(lineState,session,cursor.row)},this.onTextInput=function(text){this.keyBinding.onTextInput(text)},this.onCommandKey=function(e,hashId,keyCode){this.keyBinding.onCommandKey(e,hashId,keyCode)},this.setOverwrite=function(overwrite){this.session.setOverwrite(overwrite)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(speed){this.setOption(\"scrollSpeed\",speed)},this.getScrollSpeed=function(){return this.getOption(\"scrollSpeed\")},this.setDragDelay=function(dragDelay){this.setOption(\"dragDelay\",dragDelay)},this.getDragDelay=function(){return this.getOption(\"dragDelay\")},this.setSelectionStyle=function(val){this.setOption(\"selectionStyle\",val)},this.getSelectionStyle=function(){return this.getOption(\"selectionStyle\")},this.setHighlightActiveLine=function(shouldHighlight){this.setOption(\"highlightActiveLine\",shouldHighlight)},this.getHighlightActiveLine=function(){return this.getOption(\"highlightActiveLine\")},this.setHighlightGutterLine=function(shouldHighlight){this.setOption(\"highlightGutterLine\",shouldHighlight)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.setHighlightSelectedWord=function(shouldHighlight){this.setOption(\"highlightSelectedWord\",shouldHighlight)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(shouldAnimate){this.renderer.setAnimatedScroll(shouldAnimate)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(showInvisibles){this.renderer.setShowInvisibles(showInvisibles)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(display){this.renderer.setDisplayIndentGuides(display)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(showPrintMargin){this.renderer.setShowPrintMargin(showPrintMargin)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(showPrintMargin){this.renderer.setPrintMarginColumn(showPrintMargin)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(readOnly){this.setOption(\"readOnly\",readOnly)},this.getReadOnly=function(){return this.getOption(\"readOnly\")},this.setBehavioursEnabled=function(enabled){this.setOption(\"behavioursEnabled\",enabled)},this.getBehavioursEnabled=function(){return this.getOption(\"behavioursEnabled\")},this.setWrapBehavioursEnabled=function(enabled){this.setOption(\"wrapBehavioursEnabled\",enabled)},this.getWrapBehavioursEnabled=function(){return this.getOption(\"wrapBehavioursEnabled\")},this.setShowFoldWidgets=function(show){this.setOption(\"showFoldWidgets\",show)},this.getShowFoldWidgets=function(){return this.getOption(\"showFoldWidgets\")},this.setFadeFoldWidgets=function(fade){this.setOption(\"fadeFoldWidgets\",fade)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.remove=function(dir){this.selection.isEmpty()&&(\"left\"==dir?this.selection.selectLeft():this.selection.selectRight());var range=this.getSelectionRange();if(this.getBehavioursEnabled()){var session=this.session,state=session.getState(range.start.row),new_range=session.getMode().transformAction(state,\"deletion\",this,session,range);new_range&&(range=new_range)}this.session.remove(range),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var range=this.getSelectionRange();range.start.column==range.end.column&&range.start.row==range.end.row&&(range.end.column=0,range.end.row++),this.session.remove(range),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var cursor=this.getCursorPosition();this.insert(\"\\n\"),this.moveCursorToPosition(cursor)},this.transposeLetters=function(){if(this.selection.isEmpty()){var cursor=this.getCursorPosition(),column=cursor.column;if(0!==column){var swap,range,line=this.session.getLine(cursor.row);line.length>column?(swap=line.charAt(column)+line.charAt(column-1),range=new Range(cursor.row,column-1,cursor.row,column+1)):(swap=line.charAt(column-1)+line.charAt(column-2),range=new Range(cursor.row,column-2,cursor.row,column)),this.session.replace(range,swap)}}},this.toLowerCase=function(){var originalRange=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var range=this.getSelectionRange(),text=this.session.getTextRange(range);this.session.replace(range,text.toLowerCase()),this.selection.setSelectionRange(originalRange)},this.toUpperCase=function(){var originalRange=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var range=this.getSelectionRange(),text=this.session.getTextRange(range);this.session.replace(range,text.toUpperCase()),this.selection.setSelectionRange(originalRange)},this.indent=function(){var session=this.session,range=this.getSelectionRange();if(!(range.start.row\u003Crange.end.row||range.start.column\u003Crange.end.column)){var indentString;if(this.session.getUseSoftTabs()){var size=session.getTabSize(),position=this.getCursorPosition(),column=session.documentToScreenColumn(position.row,position.column),count=size-column%size;indentString=lang.stringRepeat(\" \",count)}else indentString=\"\t\";return this.insert(indentString)}var rows=this.$getSelectedRows();session.indentRows(rows.first,rows.last,\"\t\")},this.blockIndent=function(){var rows=this.$getSelectedRows();this.session.indentRows(rows.first,rows.last,\"\t\")},this.blockOutdent=function(){var selection=this.session.getSelection();this.session.outdentRows(selection.getRange())},this.sortLines=function(){var rows=this.$getSelectedRows(),session=this.session,lines=[];for(i=rows.first;rows.last>=i;i++)lines.push(session.getLine(i));lines.sort(function(a,b){return a.toLowerCase()\u003Cb.toLowerCase()?-1:a.toLowerCase()>b.toLowerCase()?1:0});for(var deleteRange=new Range(0,0,0,0),i=rows.first;rows.last>=i;i++){var line=session.getLine(i);deleteRange.start.row=i,deleteRange.end.row=i,deleteRange.end.column=line.length,session.replace(deleteRange,lines[i-rows.first])}},this.toggleCommentLines=function(){var state=this.session.getState(this.getCursorPosition().row),rows=this.$getSelectedRows();this.session.getMode().toggleCommentLines(state,this.session,rows.first,rows.last)},this.getNumberAt=function(row,column){var _numberRx=/[\\-]?[0-9]+(?:\\.[0-9]+)?/g;_numberRx.lastIndex=0;for(var s=this.session.getLine(row);column>_numberRx.lastIndex;){var m=_numberRx.exec(s);if(column>=m.index&&m.index+m[0].length>=column){var number={value:m[0],start:m.index,end:m.index+m[0].length};return number}}return null},this.modifyNumber=function(amount){var row=this.selection.getCursor().row,column=this.selection.getCursor().column,charRange=new Range(row,column-1,row,column),c=this.session.getTextRange(charRange);if(!isNaN(parseFloat(c))&&isFinite(c)){var nr=this.getNumberAt(row,column);if(nr){var fp=nr.value.indexOf(\".\")>=0?nr.start+nr.value.indexOf(\".\")+1:nr.end,decimals=nr.start+nr.value.length-fp,t=parseFloat(nr.value);t*=Math.pow(10,decimals),amount*=fp!==nr.end&&fp>column?Math.pow(10,nr.end-column-1):Math.pow(10,nr.end-column),t+=amount,t/=Math.pow(10,decimals);var nnr=t.toFixed(decimals),replaceRange=new Range(row,nr.start,row,nr.end);this.session.replace(replaceRange,nnr),this.moveCursorTo(row,Math.max(nr.start+1,column+nnr.length-nr.value.length))}}},this.removeLines=function(){var range,rows=this.$getSelectedRows();range=0===rows.first||rows.last+1\u003Cthis.session.getLength()?new Range(rows.first,0,rows.last+1,0):new Range(rows.first-1,this.session.getLine(rows.first-1).length,rows.last,this.session.getLine(rows.last).length),this.session.remove(range),this.clearSelection()},this.duplicateSelection=function(){var sel=this.selection,doc=this.session,range=sel.getRange(),reverse=sel.isBackwards();if(range.isEmpty()){var row=range.start.row;doc.duplicateLines(row,row)}else{var point=reverse?range.start:range.end,endPoint=doc.insert(point,doc.getTextRange(range),!1);range.start=point,range.end=endPoint,sel.setSelectionRange(range,reverse)}},this.moveLinesDown=function(){this.$moveLines(function(firstRow,lastRow){return this.session.moveLinesDown(firstRow,lastRow)})},this.moveLinesUp=function(){this.$moveLines(function(firstRow,lastRow){return this.session.moveLinesUp(firstRow,lastRow)})},this.moveText=function(range,toPosition){return this.session.moveText(range,toPosition)},this.copyLinesUp=function(){this.$moveLines(function(firstRow,lastRow){return this.session.duplicateLines(firstRow,lastRow),0})},this.copyLinesDown=function(){this.$moveLines(function(firstRow,lastRow){return this.session.duplicateLines(firstRow,lastRow)})},this.$moveLines=function(mover){var selection=this.selection;if(!selection.inMultiSelectMode||this.inVirtualSelectionMode){var range=selection.toOrientedRange(),rows=this.$getSelectedRows(range),linesMoved=mover.call(this,rows.first,rows.last);range.moveBy(linesMoved,0),selection.fromOrientedRange(range)}else{var ranges=selection.rangeList.ranges;selection.rangeList.detach(this.session);for(var i=ranges.length;i--;){for(var rangeIndex=i,rows=ranges[i].collapseRows(),last=rows.end.row,first=rows.start.row;i--;){var rows=ranges[i].collapseRows();if(!(1>=first-rows.end.row))break;first=rows.end.row}i++;for(var linesMoved=mover.call(this,first,last);rangeIndex>=i;)ranges[rangeIndex].moveBy(linesMoved,0),rangeIndex--}selection.fromOrientedRange(selection.ranges[0]),selection.rangeList.attach(this.session)}},this.$getSelectedRows=function(){var range=this.getSelectionRange().collapseRows();return{first:range.start.row,last:range.end.row}},this.onCompositionStart=function(){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(text){this.renderer.setCompositionText(text)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(row){return row>=this.getFirstVisibleRow()&&this.getLastVisibleRow()>=row},this.isRowFullyVisible=function(row){return row>=this.renderer.getFirstFullyVisibleRow()&&this.renderer.getLastFullyVisibleRow()>=row},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(dir,select){var renderer=this.renderer,config=this.renderer.layerConfig,rows=dir*Math.floor(config.height/config.lineHeight);this.$blockScrolling++,1==select?this.selection.$moveSelection(function(){this.moveCursorBy(rows,0)}):0==select&&(this.selection.moveCursorBy(rows,0),this.selection.clearSelection()),this.$blockScrolling--;var scrollTop=renderer.scrollTop;renderer.scrollBy(0,rows*config.lineHeight),null!=select&&renderer.scrollCursorIntoView(null,.5),renderer.animateScrolling(scrollTop)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(row){this.renderer.scrollToRow(row)},this.scrollToLine=function(line,center,animate,callback){this.renderer.scrollToLine(line,center,animate,callback)},this.centerSelection=function(){var range=this.getSelectionRange(),pos={row:Math.floor(range.start.row+(range.end.row-range.start.row)/2),column:Math.floor(range.start.column+(range.end.column-range.start.column)/2)};this.renderer.alignCursor(pos,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(row,column){this.selection.moveCursorTo(row,column)},this.moveCursorToPosition=function(pos){this.selection.moveCursorToPosition(pos)},this.jumpToMatching=function(select){var cursor=this.getCursorPosition(),range=this.session.getBracketRange(cursor);if(!range){if(range=this.find({needle:/[{}()\\[\\]]/g,preventScroll:!0,start:{row:cursor.row,column:cursor.column-1}}),!range)return;var pos=range.start;pos.row==cursor.row&&2>Math.abs(pos.column-cursor.column)&&(range=this.session.getBracketRange(pos))}pos=range&&range.cursor||pos,pos&&(select?range&&range.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(pos.row,pos.column):(this.clearSelection(),this.moveCursorTo(pos.row,pos.column)))},this.gotoLine=function(lineNumber,column,animate){this.selection.clearSelection(),this.session.unfold({row:lineNumber-1,column:column||0}),this.$blockScrolling+=1,this.moveCursorTo(lineNumber-1,column||0),this.$blockScrolling-=1,this.isRowFullyVisible(lineNumber-1)||this.scrollToLine(lineNumber-1,!0,animate)},this.navigateTo=function(row,column){this.clearSelection(),this.moveCursorTo(row,column)},this.navigateUp=function(times){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var selectionStart=this.selection.anchor.getPosition();return this.moveCursorToPosition(selectionStart)}this.selection.clearSelection(),times=times||1,this.selection.moveCursorBy(-times,0)},this.navigateDown=function(times){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var selectionEnd=this.selection.anchor.getPosition();return this.moveCursorToPosition(selectionEnd)}this.selection.clearSelection(),times=times||1,this.selection.moveCursorBy(times,0)},this.navigateLeft=function(times){if(this.selection.isEmpty())for(times=times||1;times--;)this.selection.moveCursorLeft();else{var selectionStart=this.getSelectionRange().start;this.moveCursorToPosition(selectionStart)}this.clearSelection()},this.navigateRight=function(times){if(this.selection.isEmpty())for(times=times||1;times--;)this.selection.moveCursorRight();else{var selectionEnd=this.getSelectionRange().end;this.moveCursorToPosition(selectionEnd)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){var scrollTop=this.renderer.scrollTop;this.selection.moveCursorFileEnd(),this.clearSelection(),this.renderer.animateScrolling(scrollTop)},this.navigateFileStart=function(){var scrollTop=this.renderer.scrollTop;this.selection.moveCursorFileStart(),this.clearSelection(),this.renderer.animateScrolling(scrollTop)},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(replacement,options){options&&this.$search.set(options);var range=this.$search.find(this.session),replaced=0;return range?(this.$tryReplace(range,replacement)&&(replaced=1),null!==range&&(this.selection.setSelectionRange(range),this.renderer.scrollSelectionIntoView(range.start,range.end)),replaced):replaced},this.replaceAll=function(replacement,options){options&&this.$search.set(options);var ranges=this.$search.findAll(this.session),replaced=0;if(!ranges.length)return replaced;this.$blockScrolling+=1;var selection=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var i=ranges.length-1;i>=0;--i)this.$tryReplace(ranges[i],replacement)&&replaced++;return this.selection.setSelectionRange(selection),this.$blockScrolling-=1,replaced},this.$tryReplace=function(range,replacement){var input=this.session.getTextRange(range);return replacement=this.$search.replace(input,replacement),null!==replacement?(range.end=this.session.replace(range,replacement),range):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(needle,options,animate){options||(options={}),\"string\"==typeof needle||needle instanceof RegExp?options.needle=needle:\"object\"==typeof needle&&oop.mixin(options,needle);\nvar range=this.selection.getRange();null==options.needle&&(needle=this.session.getTextRange(range)||this.$search.$options.needle,needle||(range=this.session.getWordRange(range.start.row,range.start.column),needle=this.session.getTextRange(range)),this.$search.set({needle:needle})),this.$search.set(options),options.start||this.$search.set({start:range});var newRange=this.$search.find(this.session);return options.preventScroll?newRange:newRange?(this.revealRange(newRange,animate),newRange):(options.backwards?range.start=range.end:range.end=range.start,this.selection.setRange(range),void 0)},this.findNext=function(options,animate){this.find({skipCurrent:!0,backwards:!1},options,animate)},this.findPrevious=function(options,animate){this.find(options,{skipCurrent:!0,backwards:!0},animate)},this.revealRange=function(range,animate){this.$blockScrolling+=1,this.session.unfold(range),this.selection.setSelectionRange(range),this.$blockScrolling-=1;var scrollTop=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(range.start,range.end,.5),0!=animate&&this.renderer.animateScrolling(scrollTop)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._emit(\"destroy\",this)},this.setAutoScrollEditorIntoView=function(enable){if(enable!==!1){var rect,self=this,shouldScroll=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement(\"div\"));var scrollAnchor=this.$scrollAnchor;scrollAnchor.style.cssText=\"position:absolute\",this.container.insertBefore(scrollAnchor,this.container.firstChild);var onChangeSelection=this.on(\"changeSelection\",function(){shouldScroll=!0}),onBeforeRender=this.renderer.on(\"beforeRender\",function(){shouldScroll&&(rect=self.renderer.container.getBoundingClientRect())}),onAfterRender=this.renderer.on(\"afterRender\",function(){if(shouldScroll&&rect&&self.isFocused()){var renderer=self.renderer,pos=renderer.$cursorLayer.$pixelPos,config=renderer.layerConfig,top=pos.top-config.offset;shouldScroll=pos.top>=0&&0>top+rect.top?!0:pos.top\u003Cconfig.height&&pos.top+rect.top+config.lineHeight>window.innerHeight?!1:null,null!=shouldScroll&&(scrollAnchor.style.top=top+\"px\",scrollAnchor.style.left=pos.left+\"px\",scrollAnchor.style.height=config.lineHeight+\"px\",scrollAnchor.scrollIntoView(shouldScroll)),shouldScroll=rect=null}});this.setAutoScrollEditorIntoView=function(enable){enable!==!0&&(delete this.setAutoScrollEditorIntoView,this.removeEventListener(\"changeSelection\",onChangeSelection),this.renderer.removeEventListener(\"afterRender\",onAfterRender),this.renderer.removeEventListener(\"beforeRender\",onBeforeRender))}}}}).call(Editor.prototype),config.defineOptions(Editor.prototype,\"editor\",{selectionStyle:{set:function(style){this.onSelectionChange(),this._emit(\"changeSelectionStyle\",{data:style})},initialValue:\"line\"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(readOnly){this.textInput.setReadOnly(readOnly);var cursorLayer=this.renderer.$cursorLayer;cursorLayer&&cursorLayer.setBlinking(!readOnly)},initialValue:!1},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},hScrollBarAlwaysVisible:\"renderer\",highlightGutterLine:\"renderer\",animatedScroll:\"renderer\",showInvisibles:\"renderer\",showPrintMargin:\"renderer\",printMarginColumn:\"renderer\",printMargin:\"renderer\",fadeFoldWidgets:\"renderer\",showFoldWidgets:\"renderer\",showGutter:\"renderer\",displayIndentGuides:\"renderer\",fontSize:\"renderer\",fontFamily:\"renderer\",scrollSpeed:\"$mouseHandler\",dragDelay:\"$mouseHandler\",focusTimout:\"$mouseHandler\",firstLineNumber:\"session\",overwrite:\"session\",newLineMode:\"session\",useWorker:\"session\",useSoftTabs:\"session\",tabSize:\"session\",wrap:\"session\",foldStyle:\"session\"}),exports.Editor=Editor}),ace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"],function(acequire,exports){exports.stringReverse=function(string){return string.split(\"\").reverse().join(\"\")},exports.stringRepeat=function(string,count){for(var result=\"\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\"\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\"\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\"object\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function(obj){if(\"object\"!=typeof obj)return obj;var copy=obj.constructor();for(var key in obj)copy[key]=\"object\"==typeof obj[key]?this.deepCopy(obj[key]):obj[key];return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},exports.escapeHTML=function(str){return str.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/\u003C/g,\"<\")},exports.getMatchOffsets=function(string,regExp){var matches=[];return string.replace(regExp,function(str){matches.push({offset:arguments[arguments.length-2],length:str.length})}),matches},exports.deferredCall=function(fcn){var timer=null,callback=function(){timer=null,fcn()},deferred=function(timeout){return deferred.cancel(),timer=setTimeout(callback,timeout||0),deferred};return deferred.schedule=deferred,deferred.call=function(){return this.cancel(),fcn(),deferred},deferred.cancel=function(){return clearTimeout(timer),timer=null,deferred},deferred},exports.delayedCall=function(fcn,defaultTimeout){var timer=null,callback=function(){timer=null,fcn()},_self=function(timeout){timer&&clearTimeout(timer),timer=setTimeout(callback,timeout||defaultTimeout)};return _self.delay=_self,_self.schedule=function(timeout){null==timer&&(timer=setTimeout(callback,timeout||0))},_self.call=function(){this.cancel(),fcn()},_self.cancel=function(){timer&&clearTimeout(timer),timer=null},_self.isPending=function(){return timer},_self}}),ace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),dom=acequire(\"../lib/dom\"),lang=acequire(\"../lib/lang\"),BROKEN_SETDATA=18>useragent.isChrome,TextInput=function(parentNode,host){function resetSelection(isEmpty){if(!inComposition){if(inputHandler)selectionStart=0,selectionEnd=isEmpty?0:text.value.length-1;else var selectionStart=isEmpty?2:1,selectionEnd=2;try{text.setSelectionRange(selectionStart,selectionEnd)}catch(e){}}}function resetValue(){inComposition||(text.value=PLACEHOLDER,useragent.isWebKit&&syncValue.schedule())}function onContextMenuClose(){setTimeout(function(){tempStyle&&(text.style.cssText=tempStyle,tempStyle=\"\"),null==host.renderer.$keepTextAreaAtCursor&&(host.renderer.$keepTextAreaAtCursor=!0,host.renderer.$moveTextAreaToCursor())},0)}var text=dom.createElement(\"textarea\");text.className=\"ace_text-input\",useragent.isTouchPad&&text.setAttribute(\"x-palm-disable-auto-cap\",!0),text.wrap=\"off\",text.autocorrect=\"off\",text.autocapitalize=\"off\",text.spellcheck=!1,text.style.bottom=\"2000em\",parentNode.insertBefore(text,parentNode.firstChild);var PLACEHOLDER=\"\u0001\u0001\",cut=!1,copied=!1,pasted=!1,inComposition=!1,tempStyle=\"\",isSelectionEmpty=!0;try{var isFocused=document.activeElement===text}catch(e){}event.addListener(text,\"blur\",function(){host.onBlur(),isFocused=!1}),event.addListener(text,\"focus\",function(){isFocused=!0,host.onFocus(),resetSelection()}),this.focus=function(){text.focus()},this.blur=function(){text.blur()},this.isFocused=function(){return isFocused};var syncSelection=lang.delayedCall(function(){isFocused&&resetSelection(isSelectionEmpty)}),syncValue=lang.delayedCall(function(){inComposition||(text.value=PLACEHOLDER,isFocused&&resetSelection())});useragent.isWebKit||host.addEventListener(\"changeSelection\",function(){host.selection.isEmpty()!=isSelectionEmpty&&(isSelectionEmpty=!isSelectionEmpty,syncSelection.schedule())}),resetValue(),isFocused&&host.onFocus();var isAllSelected=function(text){return 0===text.selectionStart&&text.selectionEnd===text.value.length};if(!text.setSelectionRange&&text.createTextRange&&(text.setSelectionRange=function(selectionStart,selectionEnd){var range=this.createTextRange();range.collapse(!0),range.moveStart(\"character\",selectionStart),range.moveEnd(\"character\",selectionEnd),range.select()},isAllSelected=function(text){try{var range=text.ownerDocument.selection.createRange()}catch(e){}return range&&range.parentElement()==text?range.text==text.value:!1}),useragent.isOldIE){var inPropertyChange=!1,onPropertyChange=function(e){if(!inPropertyChange){var data=text.value;if(!inComposition&&data&&data!=PLACEHOLDER){if(e&&data==PLACEHOLDER[0])return syncProperty.schedule();sendText(data),inPropertyChange=!0,resetValue(),inPropertyChange=!1}}},syncProperty=lang.delayedCall(onPropertyChange);event.addListener(text,\"propertychange\",onPropertyChange);var keytable={13:1,27:1};event.addListener(text,\"keyup\",function(e){!inComposition||text.value&&!keytable[e.keyCode]||setTimeout(onCompositionEnd,0),129>(text.value.charCodeAt(0)||0)||(inComposition?onCompositionUpdate():onCompositionStart())})}var onSelect=function(){cut?cut=!1:copied?copied=!1:isAllSelected(text)?(host.selectAll(),resetSelection()):inputHandler&&resetSelection(host.selection.isEmpty())},inputHandler=null;this.setInputHandler=function(cb){inputHandler=cb},this.getInputHandler=function(){return inputHandler};var afterContextMenu=!1,sendText=function(data){inputHandler&&(data=inputHandler(data),inputHandler=null),pasted?(resetSelection(),data&&host.onPaste(data),pasted=!1):data==PLACEHOLDER[0]?afterContextMenu&&host.execCommand(\"del\",{source:\"ace\"}):(data.substring(0,2)==PLACEHOLDER?data=data.substr(2):data[0]==PLACEHOLDER[0]?data=data.substr(1):data[data.length-1]==PLACEHOLDER[0]&&(data=data.slice(0,-1)),data[data.length-1]==PLACEHOLDER[0]&&(data=data.slice(0,-1)),data&&host.onTextInput(data)),afterContextMenu&&(afterContextMenu=!1)},onInput=function(){if(!inComposition){var data=text.value;sendText(data),resetValue()}},onCut=function(e){var data=host.getCopyText();if(!data)return event.preventDefault(e),void 0;var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData&&!BROKEN_SETDATA){var supported=clipboardData.setData(\"Text\",data);supported&&(host.onCut(),event.preventDefault(e))}supported||(cut=!0,text.value=data,text.select(),setTimeout(function(){cut=!1,resetValue(),resetSelection(),host.onCut()}))},onCopy=function(e){var data=host.getCopyText();if(!data)return event.preventDefault(e),void 0;var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData&&!BROKEN_SETDATA){var supported=clipboardData.setData(\"Text\",data);supported&&(host.onCopy(),event.preventDefault(e))}supported||(copied=!0,text.value=data,text.select(),setTimeout(function(){copied=!1,resetValue(),resetSelection(),host.onCopy()}))},onPaste=function(e){var clipboardData=e.clipboardData||window.clipboardData;if(clipboardData){var data=clipboardData.getData(\"Text\");data&&host.onPaste(data),useragent.isIE&&setTimeout(resetSelection),event.preventDefault(e)}else text.value=\"\",pasted=!0};event.addCommandKeyListener(text,host.onCommandKey.bind(host)),event.addListener(text,\"select\",onSelect),event.addListener(text,\"input\",onInput),event.addListener(text,\"cut\",onCut),event.addListener(text,\"copy\",onCopy),event.addListener(text,\"paste\",onPaste),\"oncut\"in text&&\"oncopy\"in text&&\"onpaste\"in text||event.addListener(parentNode,\"keydown\",function(e){if((!useragent.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:onCopy(e);break;case 86:onPaste(e);break;case 88:onCut(e)}});var onCompositionStart=function(){inComposition={},host.onCompositionStart(),setTimeout(onCompositionUpdate,0),host.on(\"mousedown\",onCompositionEnd),host.selection.isEmpty()||(host.insert(\"\"),host.session.markUndoGroup(),host.selection.clearSelection()),host.session.markUndoGroup()},onCompositionUpdate=function(){if(inComposition&&(host.onCompositionUpdate(text.value),inComposition.lastValue&&host.undo(),inComposition.lastValue=text.value.replace(/\\x01/g,\"\"),inComposition.lastValue)){var r=host.selection.getRange();host.insert(inComposition.lastValue),host.session.markUndoGroup(),inComposition.range=host.selection.getRange(),host.selection.setRange(r),host.selection.clearSelection()}},onCompositionEnd=function(e){var c=inComposition;inComposition=!1;var timer=setTimeout(function(){var str=text.value.replace(/\\x01/g,\"\");inComposition||str!=c.lastValue||resetValue()});inputHandler=function(str){return clearTimeout(timer),str=str.replace(/\\x01/g,\"\"),str==c.lastValue?\"\":(str||c.lastValue&&host.undo(),str)},host.onCompositionEnd(),host.removeListener(\"mousedown\",onCompositionEnd),\"compositionend\"==e.type&&host.selection.setRange(c.range)},syncComposition=lang.delayedCall(onCompositionUpdate,50);event.addListener(text,\"compositionstart\",onCompositionStart),event.addListener(text,useragent.isGecko?\"text\":\"keyup\",function(){syncComposition.schedule()}),event.addListener(text,\"compositionend\",onCompositionEnd),this.getElement=function(){return text},this.setReadOnly=function(readOnly){text.readOnly=readOnly},this.onContextMenu=function(e){afterContextMenu=!0,tempStyle||(tempStyle=text.style.cssText),text.style.cssText=\"z-index:100000;\"+(useragent.isIE?\"opacity:0.1;\":\"\"),resetSelection(host.selection.isEmpty()),host._emit(\"nativecontextmenu\",{target:host});var rect=host.container.getBoundingClientRect(),style=dom.computedStyle(host.container),top=rect.top+(parseInt(style.borderTopWidth)||0),left=rect.left+(parseInt(rect.borderLeftWidth)||0),maxTop=rect.bottom-top-text.clientHeight,move=function(e){text.style.left=e.clientX-left-2+\"px\",text.style.top=Math.min(e.clientY-top-2,maxTop)+\"px\"};move(e),\"mousedown\"==e.type&&(host.renderer.$keepTextAreaAtCursor&&(host.renderer.$keepTextAreaAtCursor=null),useragent.isWin&&event.capture(host.container,move,onContextMenuClose))},this.onContextMenuClose=onContextMenuClose,useragent.isGecko||event.addListener(text,\"contextmenu\",function(e){host.textInput.onContextMenu(e),onContextMenuClose()})};exports.TextInput=TextInput}),ace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop\",\"ace/config\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),DefaultHandlers=acequire(\"./default_handlers\").DefaultHandlers,DefaultGutterHandler=acequire(\"./default_gutter_handler\").GutterHandler,MouseEvent=acequire(\"./mouse_event\").MouseEvent,DragdropHandler=acequire(\"./dragdrop\").DragdropHandler,config=acequire(\"../config\"),MouseHandler=function(editor){this.editor=editor,new DefaultHandlers(this),new DefaultGutterHandler(this),new DragdropHandler(this),event.addListener(editor.container,\"mousedown\",function(e){return editor.focus(),event.preventDefault(e)});var mouseTarget=editor.renderer.getMouseEventTarget();event.addListener(mouseTarget,\"click\",this.onMouseEvent.bind(this,\"click\")),event.addListener(mouseTarget,\"mousemove\",this.onMouseMove.bind(this,\"mousemove\")),event.addMultiMouseDownListener(mouseTarget,[300,300,250],this,\"onMouseEvent\"),event.addMouseWheelListener(editor.container,this.onMouseWheel.bind(this,\"mousewheel\"));var gutterEl=editor.renderer.$gutter;event.addListener(gutterEl,\"mousedown\",this.onMouseEvent.bind(this,\"guttermousedown\")),event.addListener(gutterEl,\"click\",this.onMouseEvent.bind(this,\"gutterclick\")),event.addListener(gutterEl,\"dblclick\",this.onMouseEvent.bind(this,\"gutterdblclick\")),event.addListener(gutterEl,\"mousemove\",this.onMouseEvent.bind(this,\"guttermousemove\"))};(function(){this.onMouseEvent=function(name,e){this.editor._emit(name,new MouseEvent(e,this.editor))},this.onMouseMove=function(name,e){var listeners=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;listeners&&listeners.length&&this.editor._emit(name,new MouseEvent(e,this.editor))},this.onMouseWheel=function(name,e){var mouseEvent=new MouseEvent(e,this.editor);mouseEvent.speed=2*this.$scrollSpeed,mouseEvent.wheelX=e.wheelX,mouseEvent.wheelY=e.wheelY,this.editor._emit(name,mouseEvent)},this.setState=function(state){this.state=state},this.captureMouse=function(ev,state){state&&this.setState(state),this.x=ev.x,this.y=ev.y,this.isMousePressed=!0;var renderer=this.editor.renderer;renderer.$keepTextAreaAtCursor&&(renderer.$keepTextAreaAtCursor=null);var self=this,onMouseMove=function(e){self.x=e.clientX,self.y=e.clientY},onCaptureEnd=function(e){clearInterval(timerId),onCaptureInterval(),self[self.state+\"End\"]&&self[self.state+\"End\"](e),self.$clickSelection=null,null==renderer.$keepTextAreaAtCursor&&(renderer.$keepTextAreaAtCursor=!0,renderer.$moveTextAreaToCursor()),self.isMousePressed=!1,self.onMouseEvent(\"mouseup\",e)},onCaptureInterval=function(){self[self.state]&&self[self.state]()};if(useragent.isOldIE&&\"dblclick\"==ev.domEvent.type)return setTimeout(function(){onCaptureEnd(ev.domEvent)});event.capture(this.editor.container,onMouseMove,onCaptureEnd);var timerId=setInterval(onCaptureInterval,20)}}).call(MouseHandler.prototype),config.defineOptions(MouseHandler.prototype,\"mouseHandler\",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:150},focusTimout:{initialValue:0}}),exports.MouseHandler=MouseHandler}),ace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/useragent\"],function(acequire,exports){function DefaultHandlers(mouseHandler){mouseHandler.$clickSelection=null;var editor=mouseHandler.editor;editor.setDefaultHandler(\"mousedown\",this.onMouseDown.bind(mouseHandler)),editor.setDefaultHandler(\"dblclick\",this.onDoubleClick.bind(mouseHandler)),editor.setDefaultHandler(\"tripleclick\",this.onTripleClick.bind(mouseHandler)),editor.setDefaultHandler(\"quadclick\",this.onQuadClick.bind(mouseHandler)),editor.setDefaultHandler(\"mousewheel\",this.onMouseWheel.bind(mouseHandler));var exports=[\"select\",\"startSelect\",\"drag\",\"dragEnd\",\"dragWait\",\"dragWaitEnd\",\"startDrag\",\"focusWait\"];exports.forEach(function(x){mouseHandler[x]=this[x]},this),mouseHandler.selectByLines=this.extendSelectionBy.bind(mouseHandler,\"getLineRange\"),mouseHandler.selectByWords=this.extendSelectionBy.bind(mouseHandler,\"getWordRange\")}function calcDistance(ax,ay,bx,by){return Math.sqrt(Math.pow(bx-ax,2)+Math.pow(by-ay,2))}function calcRangeOrientation(range,cursor){if(range.start.row==range.end.row)var cmp=2*cursor.column-range.start.column-range.end.column;else var cmp=2*cursor.row-range.start.row-range.end.row;return 0>cmp?{cursor:range.start,anchor:range.end}:{cursor:range.end,anchor:range.start}}var dom=acequire(\"../lib/dom\");acequire(\"../lib/useragent\");var DRAG_OFFSET=0;(function(){this.onMouseDown=function(ev){var inSelection=ev.inSelection(),pos=ev.getDocumentPosition();this.mousedownEvent=ev;var editor=this.editor,button=ev.getButton();if(0!==button){var selectionRange=editor.getSelectionRange(),selectionEmpty=selectionRange.isEmpty();return selectionEmpty&&(editor.moveCursorToPosition(pos),editor.selection.clearSelection()),editor.textInput.onContextMenu(ev.domEvent),void 0}return!inSelection||editor.isFocused()||(editor.focus(),!this.$focusTimout||this.$clickSelection||editor.inMultiSelectMode)?(!inSelection||this.$clickSelection||ev.getShiftKey()||editor.inMultiSelectMode?this.startSelect(pos):inSelection&&(this.mousedownEvent.time=(new Date).getTime(),this.setState(\"dragWait\")),this.captureMouse(ev),ev.preventDefault()):(this.setState(\"focusWait\"),this.captureMouse(ev),ev.preventDefault())},this.startSelect=function(pos){pos=pos||this.editor.renderer.screenToTextCoordinates(this.x,this.y),this.mousedownEvent.getShiftKey()?this.editor.selection.selectToPosition(pos):this.$clickSelection||(this.editor.moveCursorToPosition(pos),this.editor.selection.clearSelection()),this.setState(\"select\")},this.select=function(){var anchor,editor=this.editor,cursor=editor.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var cmp=this.$clickSelection.comparePoint(cursor);if(-1==cmp)anchor=this.$clickSelection.end;else if(1==cmp)anchor=this.$clickSelection.start;else{var orientedRange=calcRangeOrientation(this.$clickSelection,cursor);cursor=orientedRange.cursor,anchor=orientedRange.anchor}editor.selection.setSelectionAnchor(anchor.row,anchor.column)}editor.selection.selectToPosition(cursor),editor.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(unitName){var anchor,editor=this.editor,cursor=editor.renderer.screenToTextCoordinates(this.x,this.y),range=editor.selection[unitName](cursor.row,cursor.column);if(this.$clickSelection){var cmpStart=this.$clickSelection.comparePoint(range.start),cmpEnd=this.$clickSelection.comparePoint(range.end);if(-1==cmpStart&&0>=cmpEnd)anchor=this.$clickSelection.end,(range.end.row!=cursor.row||range.end.column!=cursor.column)&&(cursor=range.start);else if(1==cmpEnd&&cmpStart>=0)anchor=this.$clickSelection.start,(range.start.row!=cursor.row||range.start.column!=cursor.column)&&(cursor=range.end);else if(-1==cmpStart&&1==cmpEnd)cursor=range.end,anchor=range.start;else{var orientedRange=calcRangeOrientation(this.$clickSelection,cursor);cursor=orientedRange.cursor,anchor=orientedRange.anchor}editor.selection.setSelectionAnchor(anchor.row,anchor.column)}editor.selection.selectToPosition(cursor),editor.renderer.scrollCursorIntoView()},this.startDrag=function(){var editor=this.editor;this.setState(\"drag\"),this.dragRange=editor.getSelectionRange();var style=editor.getSelectionStyle();this.dragSelectionMarker=editor.session.addMarker(this.dragRange,\"ace_selection\",style),editor.clearSelection(),dom.addCssClass(editor.container,\"ace_dragging\"),this.$dragKeybinding||(this.$dragKeybinding={handleKeyboard:function(data,hashId,keyString){return\"esc\"==keyString?{command:this.command}:void 0},command:{exec:function(editor){var self=editor.$mouseHandler;self.dragCursor=null,self.dragEnd(),self.startSelect()}}}),editor.keyBinding.addKeyboardHandler(this.$dragKeybinding)},this.focusWait=function(){var distance=calcDistance(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),time=(new Date).getTime();(distance>DRAG_OFFSET||time-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.dragWait=function(){var distance=calcDistance(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),time=(new Date).getTime(),editor=this.editor;distance>DRAG_OFFSET?this.startSelect(this.mousedownEvent.getDocumentPosition()):time-this.mousedownEvent.time>editor.$mouseHandler.$dragDelay&&this.startDrag()},this.dragWaitEnd=function(e){this.mousedownEvent.domEvent=e,this.startSelect()},this.drag=function(){var editor=this.editor;this.dragCursor=editor.renderer.screenToTextCoordinates(this.x,this.y),editor.moveCursorToPosition(this.dragCursor),editor.renderer.scrollCursorIntoView()},this.dragEnd=function(e){var editor=this.editor,dragCursor=this.dragCursor,dragRange=this.dragRange;if(dom.removeCssClass(editor.container,\"ace_dragging\"),editor.session.removeMarker(this.dragSelectionMarker),editor.keyBinding.removeKeyboardHandler(this.$dragKeybinding),dragCursor){if(editor.clearSelection(),e&&(e.ctrlKey||e.altKey)){var session=editor.session,newRange=dragRange;newRange.end=session.insert(dragCursor,session.getTextRange(dragRange)),newRange.start=dragCursor}else{if(dragRange.contains(dragCursor.row,dragCursor.column))return;var newRange=editor.moveText(dragRange,dragCursor)}newRange&&editor.selection.setSelectionRange(newRange)}},this.onDoubleClick=function(ev){var pos=ev.getDocumentPosition(),editor=this.editor,session=editor.session,range=session.getBracketRange(pos);return range?(range.isEmpty()&&(range.start.column--,range.end.column++),this.$clickSelection=range,this.setState(\"select\"),void 0):(this.$clickSelection=editor.selection.getWordRange(pos.row,pos.column),this.setState(\"selectByWords\"),void 0)},this.onTripleClick=function(ev){var pos=ev.getDocumentPosition(),editor=this.editor;this.setState(\"selectByLines\"),this.$clickSelection=editor.selection.getLineRange(pos.row)},this.onQuadClick=function(){var editor=this.editor;editor.selectAll(),this.$clickSelection=editor.getSelectionRange(),this.setState(\"null\")},this.onMouseWheel=function(ev){if(!ev.getShiftKey()&&!ev.getAccelKey()){var t=ev.domEvent.timeStamp,dt=t-(this.$lastScrollTime||0),editor=this.editor,isScrolable=editor.renderer.isScrollableBy(ev.wheelX*ev.speed,ev.wheelY*ev.speed);return isScrolable||200>dt?(this.$lastScrollTime=t,editor.renderer.scrollBy(ev.wheelX*ev.speed,ev.wheelY*ev.speed),ev.stop()):void 0}}}).call(DefaultHandlers.prototype),exports.DefaultHandlers=DefaultHandlers}),ace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\"],function(acequire,exports){function GutterHandler(mouseHandler){function createTooltip(){tooltip=dom.createElement(\"div\"),tooltip.className=\"ace_gutter-tooltip\",tooltip.style.display=\"none\",editor.container.appendChild(tooltip)}function showTooltip(){tooltip||createTooltip();var row=mouseEvent.getDocumentPosition().row,annotation=gutter.$annotations[row];if(!annotation)return hideTooltip();var maxRow=editor.session.getLength();if(row==maxRow){var screenRow=editor.renderer.pixelToScreenCoordinates(0,mouseEvent.y).row,pos=mouseEvent.$pos;if(screenRow>editor.session.documentToScreenRow(pos.row,pos.column))return hideTooltip()}tooltipAnnotation!=annotation&&(tooltipAnnotation=annotation.text.join(\"\u003Cbr/>\"),tooltip.style.display=\"block\",tooltip.innerHTML=tooltipAnnotation,editor.on(\"mousewheel\",hideTooltip),moveTooltip(mouseEvent))}function hideTooltip(){tooltipTimeout&&(tooltipTimeout=clearTimeout(tooltipTimeout)),tooltipAnnotation&&(tooltip.style.display=\"none\",tooltipAnnotation=null,editor.removeEventListener(\"mousewheel\",hideTooltip))}function moveTooltip(e){var rect=editor.renderer.$gutter.getBoundingClientRect();tooltip.style.left=e.x+15+\"px\",e.y+3*editor.renderer.lineHeight+15\u003Crect.bottom?(tooltip.style.bottom=\"\",tooltip.style.top=e.y+15+\"px\"):(tooltip.style.top=\"\",tooltip.style.bottom=rect.bottom-e.y+5+\"px\")}var editor=mouseHandler.editor,gutter=editor.renderer.$gutterLayer;mouseHandler.editor.setDefaultHandler(\"guttermousedown\",function(e){if(editor.isFocused()){var gutterRegion=gutter.getRegion(e);if(\"foldWidgets\"!=gutterRegion){var row=e.getDocumentPosition().row,selection=editor.session.selection;if(e.getShiftKey())selection.selectTo(row,0);else{if(2==e.domEvent.detail)return editor.selectAll(),e.preventDefault();mouseHandler.$clickSelection=editor.selection.getLineRange(row)}return mouseHandler.captureMouse(e,\"selectByLines\"),e.preventDefault()}}});var tooltipTimeout,mouseEvent,tooltip,tooltipAnnotation;mouseHandler.editor.setDefaultHandler(\"guttermousemove\",function(e){var target=e.domEvent.target||e.domEvent.srcElement;return dom.hasCssClass(target,\"ace_fold-widget\")?hideTooltip():(tooltipAnnotation&&moveTooltip(e),mouseEvent=e,tooltipTimeout||(tooltipTimeout=setTimeout(function(){tooltipTimeout=null,mouseEvent&&!mouseHandler.isMousePressed?showTooltip():hideTooltip()},50)),void 0)}),event.addListener(editor.renderer.$gutter,\"mouseout\",function(){mouseEvent=null,tooltipAnnotation&&!tooltipTimeout&&(tooltipTimeout=setTimeout(function(){tooltipTimeout=null,hideTooltip()},50))})}var dom=acequire(\"../lib/dom\"),event=acequire(\"../lib/event\");exports.GutterHandler=GutterHandler}),ace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"],function(acequire,exports){var event=acequire(\"../lib/event\"),useragent=acequire(\"../lib/useragent\"),MouseEvent=exports.MouseEvent=function(domEvent,editor){this.domEvent=domEvent,this.editor=editor,this.x=this.clientX=domEvent.clientX,this.y=this.clientY=domEvent.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){event.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){event.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var editor=this.editor;if(editor.getReadOnly())this.$inSelection=!1;else{var selectionRange=editor.getSelectionRange();if(selectionRange.isEmpty())this.$inSelection=!1;else{var pos=this.getDocumentPosition();this.$inSelection=selectionRange.contains(pos.row,pos.column)}}return this.$inSelection},this.getButton=function(){return event.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=useragent.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(MouseEvent.prototype)}),ace.define(\"ace/mouse/dragdrop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){var event=acequire(\"../lib/event\"),DragdropHandler=function(mouseHandler){function addDragMarker(){range=editor.selection.toOrientedRange(),dragSelectionMarker=editor.session.addMarker(range,\"ace_selection\",editor.getSelectionStyle()),editor.clearSelection(),clearInterval(timerId),timerId=setInterval(onDragInterval,20),counter=0,event.addListener(document,\"mousemove\",onMouseMove)}function clearDragMarker(){clearInterval(timerId),editor.session.removeMarker(dragSelectionMarker),dragSelectionMarker=null,editor.selection.fromOrientedRange(range),counter=0,event.removeListener(document,\"mousemove\",onMouseMove)}function onMouseMove(){null==onMouseMoveTimer&&(onMouseMoveTimer=setTimeout(function(){null!=onMouseMoveTimer&&dragSelectionMarker&&clearDragMarker()},20))}var dragSelectionMarker,x,y,timerId,range,dragCursor,editor=mouseHandler.editor,counter=0,mouseTarget=editor.container;event.addListener(mouseTarget,\"dragenter\",function(e){if(!editor.getReadOnly()){var types=e.dataTransfer.types;if(!types||-1!==Array.prototype.indexOf.call(types,\"text/plain\"))return dragSelectionMarker||addDragMarker(),counter++,event.preventDefault(e)}}),event.addListener(mouseTarget,\"dragover\",function(e){if(!editor.getReadOnly()){var types=e.dataTransfer.types;if(!types||-1!==Array.prototype.indexOf.call(types,\"text/plain\"))return null!==onMouseMoveTimer&&(onMouseMoveTimer=null),x=e.clientX,y=e.clientY,event.preventDefault(e)}});var onDragInterval=function(){dragCursor=editor.renderer.screenToTextCoordinates(x,y),editor.moveCursorToPosition(dragCursor),editor.renderer.scrollCursorIntoView()};event.addListener(mouseTarget,\"dragleave\",function(e){return counter--,0>=counter&&dragSelectionMarker?(clearDragMarker(),event.preventDefault(e)):void 0}),event.addListener(mouseTarget,\"drop\",function(e){return dragSelectionMarker?(range.end=editor.session.insert(dragCursor,e.dataTransfer.getData(\"Text\")),range.start=dragCursor,clearDragMarker(),editor.focus(),event.preventDefault(e)):void 0});var onMouseMoveTimer=null};exports.DragdropHandler=DragdropHandler}),ace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\"],function(acequire,exports,module){\"no use strict\";\nfunction deHyphenate(str){return str.replace(/-(.)/g,function(m,m1){return m1.toUpperCase()})}var lang=acequire(\"./lib/lang\"),oop=acequire(\"./lib/oop\"),net=acequire(\"./lib/net\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,global=function(){return this}(),options={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:\"\",suffix:\".js\",$moduleUrls:{}};exports.get=function(key){if(!options.hasOwnProperty(key))throw Error(\"Unknown config key: \"+key);return options[key]},exports.set=function(key,value){if(!options.hasOwnProperty(key))throw Error(\"Unknown config key: \"+key);options[key]=value},exports.all=function(){return lang.copyObject(options)},oop.implement(exports,EventEmitter),exports.moduleUrl=function(name,component){if(options.$moduleUrls[name])return options.$moduleUrls[name];var parts=name.split(\"/\");component=component||parts[parts.length-2]||\"\";var base=parts[parts.length-1].replace(component,\"\").replace(/(^[\\-_])|([\\-_]$)/,\"\");!base&&parts.length>1&&(base=parts[parts.length-2]);var path=options[component+\"Path\"];return null==path&&(path=options.basePath),path&&\"/\"!=path.slice(-1)&&(path+=\"/\"),path+component+\"-\"+base+this.get(\"suffix\")},exports.setModuleUrl=function(name,subst){return options.$moduleUrls[name]=subst},exports.$loading={},exports.loadModule=function(moduleName,onLoad){var module,moduleType;Array.isArray(moduleName)&&(moduleType=moduleName[0],moduleName=moduleName[1]);try{module=acequire(moduleName)}catch(e){}if(module&&!exports.$loading[moduleName])return onLoad&&onLoad(module);if(exports.$loading[moduleName]||(exports.$loading[moduleName]=[]),exports.$loading[moduleName].push(onLoad),!(exports.$loading[moduleName].length>1)){var afterLoad=function(){acequire([moduleName],function(module){exports._emit(\"load.module\",{name:moduleName,module:module});var listeners=exports.$loading[moduleName];exports.$loading[moduleName]=null,listeners.forEach(function(onLoad){onLoad&&onLoad(module)})})};return exports.get(\"packaged\")?(net.loadScript(exports.moduleUrl(moduleName,moduleType),afterLoad),void 0):afterLoad()}},exports.init=function(){if(options.packaged=acequire.packaged||module.packaged||global.define&&define.packaged,!global.document)return\"\";for(var scriptOptions={},scriptUrl=\"\",scripts=document.getElementsByTagName(\"script\"),i=0;scripts.length>i;i++){var script=scripts[i],src=script.src||script.getAttribute(\"src\");if(src){for(var attributes=script.attributes,j=0,l=attributes.length;l>j;j++){var attr=attributes[j];0===attr.name.indexOf(\"data-ace-\")&&(scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/,\"\"))]=attr.value)}var m=src.match(/^(.*)\\/ace(\\-\\w+)?\\.js(\\?|$)/);m&&(scriptUrl=m[1])}}scriptUrl&&(scriptOptions.base=scriptOptions.base||scriptUrl,scriptOptions.packaged=!0),scriptOptions.basePath=scriptOptions.base,scriptOptions.workerPath=scriptOptions.workerPath||scriptOptions.base,scriptOptions.modePath=scriptOptions.modePath||scriptOptions.base,scriptOptions.themePath=scriptOptions.themePath||scriptOptions.base,delete scriptOptions.base;for(var key in scriptOptions)scriptOptions[key]!==void 0&&exports.set(key,scriptOptions[key])};var optionsProvider={setOptions:function(optList){Object.keys(optList).forEach(function(key){this.setOption(key,optList[key])},this)},getOptions:function(a){var b={};return Object.keys(a).forEach(function(key){b[key]=this.getOption(key)},this),b},setOption:function(name,value){if(this[\"$\"+name]!==value){var opt=this.$options[name];if(!opt)return void 0;if(opt.forwardTo)return this[opt.forwardTo]&&this[opt.forwardTo].setOption(name,value);opt.handlesSet||(this[\"$\"+name]=value),opt&&opt.set&&opt.set.call(this,value)}},getOption:function(name){var opt=this.$options[name];return opt?opt.forwardTo?this[opt.forwardTo]&&this[opt.forwardTo].getOption(name):opt&&opt.get?opt.get.call(this):this[\"$\"+name]:void 0}},defaultOptions={};exports.defineOptions=function(obj,path,options){return obj.$options||(defaultOptions[path]=obj.$options={}),Object.keys(options).forEach(function(key){var opt=options[key];\"string\"==typeof opt&&(opt={forwardTo:opt}),opt.name||(opt.name=key),obj.$options[opt.name]=opt,\"initialValue\"in opt&&(obj[\"$\"+opt.name]=opt.initialValue)}),oop.implement(obj,optionsProvider),this},exports.resetOptions=function(obj){Object.keys(obj.$options).forEach(function(key){var opt=obj.$options[key];\"value\"in opt&&obj.setOption(key,opt.value)})},exports.setDefaultValue=function(path,name,value){var opts=defaultOptions[path]||(defaultOptions[path]={});opts[name]&&(opts.forwardTo?exports.setDefaultValue(opts.forwardTo,name,value):opts[name].value=value)},exports.setDefaultValues=function(path,optionHash){Object.keys(optionHash).forEach(function(key){exports.setDefaultValue(path,key,optionHash[key])})}}),ace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){var dom=acequire(\"./dom\");exports.get=function(url,callback){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,!0),xhr.onreadystatechange=function(){4===xhr.readyState&&callback(xhr.responseText)},xhr.send(null)},exports.loadScript=function(path,callback){var head=dom.getDocumentHead(),s=document.createElement(\"script\");s.src=path,head.appendChild(s),s.onload=s.onreadystatechange=function(_,isAbort){(isAbort||!s.readyState||\"loaded\"==s.readyState||\"complete\"==s.readyState)&&(s=s.onload=s.onreadystatechange=null,isAbort||callback())}}}),ace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\"object\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault);for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners)for(var i=0;listeners.length>i;i++)listeners[i](e,this)},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){if(this._defaultHandlers=this._defaultHandlers||{},this._defaultHandlers[eventName])throw Error(\"The default handler for '\"+eventName+\"' is already set\");this._defaultHandlers[eventName]=callback},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\"unshift\":\"push\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\"],function(acequire,exports){function FoldHandler(editor){editor.on(\"click\",function(e){var position=e.getDocumentPosition(),session=editor.session,fold=session.getFoldAt(position.row,position.column,1);fold&&(e.getAccelKey()?session.removeFold(fold):session.expandFold(fold),e.stop())}),editor.on(\"gutterclick\",function(e){var gutterRegion=editor.renderer.$gutterLayer.getRegion(e);if(\"foldWidgets\"==gutterRegion){var row=e.getDocumentPosition().row,session=editor.session;session.foldWidgets&&session.foldWidgets[row]&&editor.session.onFoldWidgetClick(row,e),editor.isFocused()||editor.focus(),e.stop()}}),editor.on(\"gutterdblclick\",function(e){var gutterRegion=editor.renderer.$gutterLayer.getRegion(e);if(\"foldWidgets\"==gutterRegion){var row=e.getDocumentPosition().row,session=editor.session,data=session.getParentFoldRangeData(row,!0),range=data.range||data.firstRange;if(range){var row=range.start.row,fold=session.getFoldAt(row,session.getLine(row).length,1);fold?session.removeFold(fold):(session.addFold(\"...\",range),editor.renderer.scrollCursorIntoView({row:range.start.row,column:0}))}e.stop()}})}exports.FoldHandler=FoldHandler}),ace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"],function(acequire,exports){var keyUtil=acequire(\"../lib/keys\"),event=acequire(\"../lib/event\"),KeyBinding=function(editor){this.$editor=editor,this.$data={},this.$handlers=[],this.setDefaultHandler(editor.commands)};(function(){this.setDefaultHandler=function(kb){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=kb,this.addKeyboardHandler(kb,0),this.$data={editor:this.$editor}},this.setKeyboardHandler=function(kb){var h=this.$handlers;if(h[h.length-1]!=kb){for(;h[h.length-1]&&h[h.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(h[h.length-1]);this.addKeyboardHandler(kb,1)}},this.addKeyboardHandler=function(kb,pos){if(kb){var i=this.$handlers.indexOf(kb);-1!=i&&this.$handlers.splice(i,1),void 0==pos?this.$handlers.push(kb):this.$handlers.splice(pos,0,kb),-1==i&&kb.attach&&kb.attach(this.$editor)}},this.removeKeyboardHandler=function(kb){var i=this.$handlers.indexOf(kb);return-1==i?!1:(this.$handlers.splice(i,1),kb.detach&&kb.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.$callKeyboardHandlers=function(hashId,keyString,keyCode,e){for(var toExecute,success=!1,commands=this.$editor.commands,i=this.$handlers.length;i--&&(toExecute=this.$handlers[i].handleKeyboard(this.$data,hashId,keyString,keyCode,e),!(toExecute&&toExecute.command&&(success=\"null\"==toExecute.command?1!=toExecute.passEvent:commands.exec(toExecute.command,this.$editor,toExecute.args,e),success&&e&&-1!=hashId&&event.stopEvent(e),success))););return success},this.onCommandKey=function(e,hashId,keyCode){var keyString=keyUtil.keyCodeToString(keyCode);this.$callKeyboardHandlers(hashId,keyString,keyCode,e)},this.onTextInput=function(text){var success=this.$callKeyboardHandlers(-1,text);success||this.$editor.commands.exec(\"insertstring\",this.$editor,text)}}).call(KeyBinding.prototype),exports.KeyBinding=KeyBinding}),ace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),config=acequire(\"./config\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Selection=acequire(\"./selection\").Selection,TextMode=acequire(\"./mode/text\").Mode,Range=acequire(\"./range\").Range,Document=acequire(\"./document\").Document,BackgroundTokenizer=acequire(\"./background_tokenizer\").BackgroundTokenizer,SearchHighlight=acequire(\"./search_highlight\").SearchHighlight,EditSession=function(text,mode){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.$foldData.toString=function(){return this.join(\"\\n\")},this.on(\"changeFold\",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),\"object\"==typeof text&&text.getLine||(text=new Document(text)),this.setDocument(text),this.selection=new Selection(this),this.setMode(mode),config.resetOptions(this),config._emit(\"session\",this)};(function(){function isFullWidth(c){return 4352>c?!1:c>=4352&&4447>=c||c>=4515&&4519>=c||c>=4602&&4607>=c||c>=9001&&9002>=c||c>=11904&&11929>=c||c>=11931&&12019>=c||c>=12032&&12245>=c||c>=12272&&12283>=c||c>=12288&&12350>=c||c>=12353&&12438>=c||c>=12441&&12543>=c||c>=12549&&12589>=c||c>=12593&&12686>=c||c>=12688&&12730>=c||c>=12736&&12771>=c||c>=12784&&12830>=c||c>=12832&&12871>=c||c>=12880&&13054>=c||c>=13056&&19903>=c||c>=19968&&42124>=c||c>=42128&&42182>=c||c>=43360&&43388>=c||c>=44032&&55203>=c||c>=55216&&55238>=c||c>=55243&&55291>=c||c>=63744&&64255>=c||c>=65040&&65049>=c||c>=65072&&65106>=c||c>=65108&&65126>=c||c>=65128&&65131>=c||c>=65281&&65376>=c||c>=65504&&65510>=c}oop.implement(this,EventEmitter),this.setDocument=function(doc){this.doc&&this.doc.removeListener(\"change\",this.$onChange),this.doc=doc,doc.on(\"change\",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(docRow){if(!docRow)return this.$docRowCache=[],this.$screenRowCache=[],void 0;var l=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,docRow)+1;l>i&&(this.$docRowCache.splice(i,l),this.$screenRowCache.splice(i,l))},this.$getRowCacheIndex=function(cacheArray,val){for(var low=0,hi=cacheArray.length-1;hi>=low;){var mid=low+hi>>1,c=cacheArray[mid];if(val>c)low=mid+1;else{if(!(c>val))return mid;hi=mid-1}}return low-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var fold=e.data;this.$resetRowCache(fold.start.row)},this.onChange=function(e){var delta=e.data;this.$modified=!0,this.$resetRowCache(delta.range.start.row);var removedFolds=this.$updateInternalDataOnChange(e);this.$fromUndo||!this.$undoManager||delta.ignore||(this.$deltasDoc.push(delta),removedFolds&&0!=removedFolds.length&&this.$deltasFold.push({action:\"removeFolds\",folds:removedFolds}),this.$informUndoManager.schedule()),this.bgTokenizer.$updateOnChange(delta),this._emit(\"change\",e)},this.setValue=function(text){this.doc.setValue(text),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(row){return this.bgTokenizer.getState(row)},this.getTokens=function(row){return this.bgTokenizer.getTokens(row)},this.getTokenAt=function(row,column){var token,tokens=this.bgTokenizer.getTokens(row),c=0;if(null==column)i=tokens.length-1,c=this.getLine(row).length;else for(var i=0;tokens.length>i&&(c+=tokens[i].value.length,!(c>=column));i++);return(token=tokens[i])?(token.index=i,token.start=c-token.value.length,token):null},this.setUndoManager=function(undoManager){if(this.$undoManager=undoManager,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),undoManager){var self=this;this.$syncInformUndoManager=function(){self.$informUndoManager.cancel(),self.$deltasFold.length&&(self.$deltas.push({group:\"fold\",deltas:self.$deltasFold}),self.$deltasFold=[]),self.$deltasDoc.length&&(self.$deltas.push({group:\"doc\",deltas:self.$deltasDoc}),self.$deltasDoc=[]),self.$deltas.length>0&&undoManager.execute({action:\"aceupdate\",args:[self.$deltas,self]}),self.$deltas=[]},this.$informUndoManager=lang.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?lang.stringRepeat(\" \",this.getTabSize()):\"\t\"},this.setUseSoftTabs=function(val){this.setOption(\"useSoftTabs\",val)},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.setTabSize=function(tabSize){this.setOption(\"tabSize\",tabSize)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(position){return this.$useSoftTabs&&0==position.column%this.$tabSize},this.$overwrite=!1,this.setOverwrite=function(overwrite){this.setOption(\"overwrite\",overwrite)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(row,className){this.$decorations[row]||(this.$decorations[row]=\"\"),this.$decorations[row]+=\" \"+className,this._emit(\"changeBreakpoint\",{})},this.removeGutterDecoration=function(row,className){this.$decorations[row]=(this.$decorations[row]||\"\").replace(\" \"+className,\"\"),this._emit(\"changeBreakpoint\",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(rows){this.$breakpoints=[];for(var i=0;rows.length>i;i++)this.$breakpoints[rows[i]]=\"ace_breakpoint\";this._emit(\"changeBreakpoint\",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._emit(\"changeBreakpoint\",{})},this.setBreakpoint=function(row,className){void 0===className&&(className=\"ace_breakpoint\"),className?this.$breakpoints[row]=className:delete this.$breakpoints[row],this._emit(\"changeBreakpoint\",{})},this.clearBreakpoint=function(row){delete this.$breakpoints[row],this._emit(\"changeBreakpoint\",{})},this.addMarker=function(range,clazz,type,inFront){var id=this.$markerId++,marker={range:range,type:type||\"line\",renderer:\"function\"==typeof type?type:null,clazz:clazz,inFront:!!inFront,id:id};return inFront?(this.$frontMarkers[id]=marker,this._emit(\"changeFrontMarker\")):(this.$backMarkers[id]=marker,this._emit(\"changeBackMarker\")),id},this.addDynamicMarker=function(marker,inFront){if(marker.update){var id=this.$markerId++;return marker.id=id,marker.inFront=!!inFront,inFront?(this.$frontMarkers[id]=marker,this._emit(\"changeFrontMarker\")):(this.$backMarkers[id]=marker,this._emit(\"changeBackMarker\")),marker}},this.removeMarker=function(markerId){var marker=this.$frontMarkers[markerId]||this.$backMarkers[markerId];if(marker){var markers=marker.inFront?this.$frontMarkers:this.$backMarkers;marker&&(delete markers[markerId],this._emit(marker.inFront?\"changeFrontMarker\":\"changeBackMarker\"))}},this.getMarkers=function(inFront){return inFront?this.$frontMarkers:this.$backMarkers},this.highlight=function(re){if(!this.$searchHighlight){var highlight=new SearchHighlight(null,\"ace_selected-word\",\"text\");this.$searchHighlight=this.addDynamicMarker(highlight)}this.$searchHighlight.setRegexp(re)},this.highlightLines=function(startRow,endRow,clazz,inFront){\"number\"!=typeof endRow&&(clazz=endRow,endRow=startRow),clazz||(clazz=\"ace_step\");var range=new Range(startRow,0,endRow,1/0);return range.id=this.addMarker(range,clazz,\"fullLine\",inFront),range},this.setAnnotations=function(annotations){this.$annotations=annotations,this._emit(\"changeAnnotation\",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r?\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\"},this.getWordRange=function(row,column){var line=this.getLine(row),inToken=!1;if(column>0&&(inToken=!!line.charAt(column-1).match(this.tokenRe)),inToken||(inToken=!!line.charAt(column).match(this.tokenRe)),inToken)var re=this.tokenRe;else if(/^\\s+$/.test(line.slice(column-1,column+1)))var re=/\\s/;else var re=this.nonTokenRe;var start=column;if(start>0){do start--;while(start>=0&&line.charAt(start).match(re));start++}for(var end=column;line.length>end&&line.charAt(end).match(re);)end++;return new Range(row,start,row,end)},this.getAWordRange=function(row,column){for(var wordRange=this.getWordRange(row,column),line=this.getLine(wordRange.end.row);line.charAt(wordRange.end.column).match(/[ \\t]/);)wordRange.end.column+=1;return wordRange},this.setNewLineMode=function(newLineMode){this.doc.setNewLineMode(newLineMode)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(useWorker){this.setOption(\"useWorker\",useWorker)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var rows=e.data;this.bgTokenizer.start(rows.first),this._emit(\"tokenizerUpdate\",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(mode){if(mode&&\"object\"==typeof mode){if(mode.getTokenizer)return this.$onChangeMode(mode);var options=mode,path=options.path}else path=mode||\"ace/mode/text\";return this.$modes[\"ace/mode/text\"]||(this.$modes[\"ace/mode/text\"]=new TextMode),this.$modes[path]&&!options?this.$onChangeMode(this.$modes[path]):(this.$modeId=path,config.loadModule([\"mode\",path],function(m){return this.$modeId===path?this.$modes[path]&&!options?this.$onChangeMode(this.$modes[path]):(m&&m.Mode&&(m=new m.Mode(options),options||(this.$modes[path]=m,m.$id=path),this.$onChangeMode(m)),void 0):void 0}.bind(this)),this.$mode||this.$onChangeMode(this.$modes[\"ace/mode/text\"],!0),void 0)},this.$onChangeMode=function(mode,$isPlaceholder){if(this.$mode!==mode){this.$mode=mode,this.$stopWorker(),this.$useWorker&&this.$startWorker();var tokenizer=mode.getTokenizer();if(void 0!==tokenizer.addEventListener){var onReloadTokenizer=this.onReloadTokenizer.bind(this);tokenizer.addEventListener(\"update\",onReloadTokenizer)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(tokenizer);else{this.bgTokenizer=new BackgroundTokenizer(tokenizer);var _self=this;this.bgTokenizer.addEventListener(\"update\",function(e){_self._emit(\"tokenizerUpdate\",e)})}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=mode.tokenRe,this.nonTokenRe=mode.nonTokenRe,$isPlaceholder||(this.$modeId=mode.$id,this.$setFolding(mode.foldingRules),this._emit(\"changeMode\"),this.bgTokenizer.start(0))}},this.$stopWorker=function(){this.$worker&&this.$worker.terminate(),this.$worker=null},this.$startWorker=function(){if(\"undefined\"==typeof Worker||acequire.noWorker)this.$worker=null;else try{this.$worker=this.$mode.createWorker(this)}catch(e){console.log(\"Could not load worker\"),console.log(e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(scrollTop){scrollTop=Math.round(Math.max(0,scrollTop)),this.$scrollTop===scrollTop||isNaN(scrollTop)||(this.$scrollTop=scrollTop,this._signal(\"changeScrollTop\",scrollTop))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(scrollLeft){scrollLeft=Math.round(Math.max(0,scrollLeft)),this.$scrollLeft===scrollLeft||isNaN(scrollLeft)||(this.$scrollLeft=scrollLeft,this._signal(\"changeScrollLeft\",scrollLeft))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.screenWidth},this.$computeWidth=function(force){if(this.$modified||force){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var lines=this.doc.getAllLines(),cache=this.$rowLengthCache,longestScreenLine=0,foldIndex=0,foldLine=this.$foldData[foldIndex],foldStart=foldLine?foldLine.start.row:1/0,len=lines.length,i=0;len>i;i++){if(i>foldStart){if(i=foldLine.end.row+1,i>=len)break;foldLine=this.$foldData[foldIndex++],foldStart=foldLine?foldLine.start.row:1/0}null==cache[i]&&(cache[i]=this.$getStringScreenWidth(lines[i])[0]),cache[i]>longestScreenLine&&(longestScreenLine=cache[i])}this.screenWidth=longestScreenLine}},this.getLine=function(row){return this.doc.getLine(row)},this.getLines=function(firstRow,lastRow){return this.doc.getLines(firstRow,lastRow)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(range){return this.doc.getTextRange(range||this.selection.getRange())},this.insert=function(position,text){return this.doc.insert(position,text)},this.remove=function(range){return this.doc.remove(range)},this.undoChanges=function(deltas,dontSelect){if(deltas.length){this.$fromUndo=!0;for(var lastUndoRange=null,i=deltas.length-1;-1!=i;i--){var delta=deltas[i];\"doc\"==delta.group?(this.doc.revertDeltas(delta.deltas),lastUndoRange=this.$getUndoSelection(delta.deltas,!0,lastUndoRange)):delta.deltas.forEach(function(foldDelta){this.addFolds(foldDelta.folds)},this)}return this.$fromUndo=!1,lastUndoRange&&this.$undoSelect&&!dontSelect&&this.selection.setSelectionRange(lastUndoRange),lastUndoRange}},this.redoChanges=function(deltas,dontSelect){if(deltas.length){this.$fromUndo=!0;for(var lastUndoRange=null,i=0;deltas.length>i;i++){var delta=deltas[i];\"doc\"==delta.group&&(this.doc.applyDeltas(delta.deltas),lastUndoRange=this.$getUndoSelection(delta.deltas,!1,lastUndoRange))}return this.$fromUndo=!1,lastUndoRange&&this.$undoSelect&&!dontSelect&&this.selection.setSelectionRange(lastUndoRange),lastUndoRange}},this.setUndoSelect=function(enable){this.$undoSelect=enable},this.$getUndoSelection=function(deltas,isUndo,lastUndoRange){function isInsert(delta){var insert=\"insertText\"===delta.action||\"insertLines\"===delta.action;return isUndo?!insert:insert}var range,point,delta=deltas[0],lastDeltaIsInsert=!1;isInsert(delta)?(range=delta.range.clone(),lastDeltaIsInsert=!0):(range=Range.fromPoints(delta.range.start,delta.range.start),lastDeltaIsInsert=!1);for(var i=1;deltas.length>i;i++)delta=deltas[i],isInsert(delta)?(point=delta.range.start,-1==range.compare(point.row,point.column)&&range.setStart(delta.range.start),point=delta.range.end,1==range.compare(point.row,point.column)&&range.setEnd(delta.range.end),lastDeltaIsInsert=!0):(point=delta.range.start,-1==range.compare(point.row,point.column)&&(range=Range.fromPoints(delta.range.start,delta.range.start)),lastDeltaIsInsert=!1);if(null!=lastUndoRange){var cmp=lastUndoRange.compareRange(range);1==cmp?range.setStart(lastUndoRange.start):-1==cmp&&range.setEnd(lastUndoRange.end)}return range},this.replace=function(range,text){return this.doc.replace(range,text)},this.moveText=function(fromRange,toPosition,copy){var text=this.getTextRange(fromRange),folds=this.getFoldsInRange(fromRange),toRange=Range.fromPoints(toPosition,toPosition);if(!copy){this.remove(fromRange);var rowDiff=fromRange.start.row-fromRange.end.row,collDiff=rowDiff?-fromRange.end.column:fromRange.start.column-fromRange.end.column;collDiff&&(toRange.start.row==fromRange.end.row&&toRange.start.column>fromRange.end.column&&(toRange.start.column+=collDiff),toRange.end.row==fromRange.end.row&&toRange.end.column>fromRange.end.column&&(toRange.end.column+=collDiff)),rowDiff&&toRange.start.row>=fromRange.end.row&&(toRange.start.row+=rowDiff,toRange.end.row+=rowDiff)}if(this.insert(toRange.start,text),folds.length){var oldStart=fromRange.start,newStart=toRange.start,rowDiff=newStart.row-oldStart.row,collDiff=newStart.column-oldStart.column;this.addFolds(folds.map(function(x){return x=x.clone(),x.start.row==oldStart.row&&(x.start.column+=collDiff),x.end.row==oldStart.row&&(x.end.column+=collDiff),x.start.row+=rowDiff,x.end.row+=rowDiff,x}))}return toRange},this.indentRows=function(startRow,endRow,indentString){indentString=indentString.replace(/\\t/g,this.getTabString());for(var row=startRow;endRow>=row;row++)this.insert({row:row,column:0},indentString)},this.outdentRows=function(range){for(var rowRange=range.collapseRows(),deleteRange=new Range(0,0,0,0),size=this.getTabSize(),i=rowRange.start.row;rowRange.end.row>=i;++i){var line=this.getLine(i);deleteRange.start.row=i,deleteRange.end.row=i;for(var j=0;size>j&&\" \"==line.charAt(j);++j);size>j&&\"\t\"==line.charAt(j)?(deleteRange.start.column=j,deleteRange.end.column=j+1):(deleteRange.start.column=0,deleteRange.end.column=j),this.remove(deleteRange)}},this.$moveLines=function(firstRow,lastRow,dir){if(firstRow=this.getRowFoldStart(firstRow),lastRow=this.getRowFoldEnd(lastRow),0>dir){var row=this.getRowFoldStart(firstRow+dir);if(0>row)return 0;var diff=row-firstRow}else if(dir>0){var row=this.getRowFoldEnd(lastRow+dir);if(row>this.doc.getLength()-1)return 0;var diff=row-lastRow}else{firstRow=this.$clipRowToDocument(firstRow),lastRow=this.$clipRowToDocument(lastRow);var diff=lastRow-firstRow+1}var range=new Range(firstRow,0,lastRow,Number.MAX_VALUE),folds=this.getFoldsInRange(range).map(function(x){return x=x.clone(),x.start.row+=diff,x.end.row+=diff,x}),lines=0==dir?this.doc.getLines(firstRow,lastRow):this.doc.removeLines(firstRow,lastRow);return this.doc.insertLines(firstRow+diff,lines),folds.length&&this.addFolds(folds),diff},this.moveLinesUp=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,-1)},this.moveLinesDown=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,1)},this.duplicateLines=function(firstRow,lastRow){return this.$moveLines(firstRow,lastRow,0)},this.$clipRowToDocument=function(row){return Math.max(0,Math.min(row,this.doc.getLength()-1))},this.$clipColumnToRow=function(row,column){return 0>column?0:Math.min(this.doc.getLine(row).length,column)},this.$clipPositionToDocument=function(row,column){if(column=Math.max(0,column),0>row)row=0,column=0;else{var len=this.doc.getLength();row>=len?(row=len-1,column=this.doc.getLine(len-1).length):column=Math.min(this.doc.getLine(row).length,column)}return{row:row,column:column}},this.$clipRangeToDocument=function(range){0>range.start.row?(range.start.row=0,range.start.column=0):range.start.column=this.$clipColumnToRow(range.start.row,range.start.column);var len=this.doc.getLength()-1;return range.end.row>len?(range.end.row=len,range.end.column=this.doc.getLine(len).length):range.end.column=this.$clipColumnToRow(range.end.row,range.end.column),range},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(useWrapMode){if(useWrapMode!=this.$useWrapMode){if(this.$useWrapMode=useWrapMode,this.$modified=!0,this.$resetRowCache(0),useWrapMode){var len=this.getLength();this.$wrapData=[];for(var i=0;len>i;i++)this.$wrapData.push([]);this.$updateWrapData(0,len-1)}this._emit(\"changeWrapMode\")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(min,max){(this.$wrapLimitRange.min!==min||this.$wrapLimitRange.max!==max)&&(this.$wrapLimitRange.min=min,this.$wrapLimitRange.max=max,this.$modified=!0,this._emit(\"changeWrapMode\"))},this.adjustWrapLimit=function(desiredLimit,$printMargin){var limits=this.$wrapLimitRange;0>limits.max&&(limits={min:$printMargin,max:$printMargin});var wrapLimit=this.$constrainWrapLimit(desiredLimit,limits.min,limits.max);return wrapLimit!=this.$wrapLimit&&wrapLimit>1?(this.$wrapLimit=wrapLimit,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit(\"changeWrapLimit\")),!0):!1},this.$constrainWrapLimit=function(wrapLimit,min,max){return min&&(wrapLimit=Math.max(min,wrapLimit)),max&&(wrapLimit=Math.min(max,wrapLimit)),wrapLimit},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var len,useWrapMode=this.$useWrapMode,action=e.data.action,firstRow=e.data.range.start.row,lastRow=e.data.range.end.row,start=e.data.range.start,end=e.data.range.end,removedFolds=null;if(-1!=action.indexOf(\"Lines\")?(lastRow=\"insertLines\"==action?firstRow+e.data.lines.length:firstRow,len=e.data.lines?e.data.lines.length:lastRow-firstRow):len=lastRow-firstRow,this.$updating=!0,0!=len)if(-1!=action.indexOf(\"remove\")){this[useWrapMode?\"$wrapData\":\"$rowLengthCache\"].splice(firstRow,len);var foldLines=this.$foldData;removedFolds=this.getFoldsInRange(e.data.range),this.removeFolds(removedFolds);var foldLine=this.getFoldLine(end.row),idx=0;if(foldLine){foldLine.addRemoveChars(end.row,end.column,start.column-end.column),foldLine.shiftRow(-len);var foldLineBefore=this.getFoldLine(firstRow);foldLineBefore&&foldLineBefore!==foldLine&&(foldLineBefore.merge(foldLine),foldLine=foldLineBefore),idx=foldLines.indexOf(foldLine)+1\n}for(idx;foldLines.length>idx;idx++){var foldLine=foldLines[idx];foldLine.start.row>=end.row&&foldLine.shiftRow(-len)}lastRow=firstRow}else{var args;if(useWrapMode){args=[firstRow,0];for(var i=0;len>i;i++)args.push([]);this.$wrapData.splice.apply(this.$wrapData,args)}else args=Array(len),args.unshift(firstRow,0),this.$rowLengthCache.splice.apply(this.$rowLengthCache,args);var foldLines=this.$foldData,foldLine=this.getFoldLine(firstRow),idx=0;if(foldLine){var cmp=foldLine.range.compareInside(start.row,start.column);0==cmp?(foldLine=foldLine.split(start.row,start.column),foldLine.shiftRow(len),foldLine.addRemoveChars(lastRow,0,end.column-start.column)):-1==cmp&&(foldLine.addRemoveChars(firstRow,0,end.column-start.column),foldLine.shiftRow(len)),idx=foldLines.indexOf(foldLine)+1}for(idx;foldLines.length>idx;idx++){var foldLine=foldLines[idx];foldLine.start.row>=firstRow&&foldLine.shiftRow(len)}}else{len=Math.abs(e.data.range.start.column-e.data.range.end.column),-1!=action.indexOf(\"remove\")&&(removedFolds=this.getFoldsInRange(e.data.range),this.removeFolds(removedFolds),len=-len);var foldLine=this.getFoldLine(firstRow);foldLine&&foldLine.addRemoveChars(firstRow,start.column,len)}return useWrapMode&&this.$wrapData.length!=this.doc.getLength()&&console.error(\"doc.getLength() and $wrapData.length have to be the same!\"),this.$updating=!1,useWrapMode?this.$updateWrapData(firstRow,lastRow):this.$updateRowLengthCache(firstRow,lastRow),removedFolds},this.$updateRowLengthCache=function(firstRow,lastRow){this.$rowLengthCache[firstRow]=null,this.$rowLengthCache[lastRow]=null},this.$updateWrapData=function(firstRow,lastRow){var tokens,foldLine,lines=this.doc.getAllLines(),tabSize=this.getTabSize(),wrapData=this.$wrapData,wrapLimit=this.$wrapLimit,row=firstRow;for(lastRow=Math.min(lastRow,lines.length-1);lastRow>=row;)if(foldLine=this.getFoldLine(row,foldLine)){for(tokens=[],foldLine.walk(function(placeholder,row,column,lastColumn){var walkTokens;if(null!=placeholder){walkTokens=this.$getDisplayTokens(placeholder,tokens.length),walkTokens[0]=PLACEHOLDER_START;for(var i=1;walkTokens.length>i;i++)walkTokens[i]=PLACEHOLDER_BODY}else walkTokens=this.$getDisplayTokens(lines[row].substring(lastColumn,column),tokens.length);tokens=tokens.concat(walkTokens)}.bind(this),foldLine.end.row,lines[foldLine.end.row].length+1);0!=tokens.length&&tokens[tokens.length-1]>=SPACE;)tokens.pop();wrapData[foldLine.start.row]=this.$computeWrapSplits(tokens,wrapLimit,tabSize),row=foldLine.end.row+1}else tokens=this.$getDisplayTokens(lang.stringTrimRight(lines[row])),wrapData[row]=this.$computeWrapSplits(tokens,wrapLimit,tabSize),row++};var CHAR=1,CHAR_EXT=2,PLACEHOLDER_START=3,PLACEHOLDER_BODY=4,PUNCTUATION=9,SPACE=10,TAB=11,TAB_SPACE=12;this.$computeWrapSplits=function(tokens,wrapLimit){function addSplit(screenPos){var displayed=tokens.slice(lastSplit,screenPos),len=displayed.length;displayed.join(\"\").replace(/12/g,function(){len-=1}).replace(/2/g,function(){len-=1}),lastDocSplit+=len,splits.push(lastDocSplit),lastSplit=screenPos}if(0==tokens.length)return[];for(var splits=[],displayLength=tokens.length,lastSplit=0,lastDocSplit=0;displayLength-lastSplit>wrapLimit;){var split=lastSplit+wrapLimit;if(tokens[split]>=SPACE){for(;tokens[split]>=SPACE;)split++;addSplit(split)}else if(tokens[split]!=PLACEHOLDER_START&&tokens[split]!=PLACEHOLDER_BODY){for(var minSplit=Math.max(split-10,lastSplit-1);split>minSplit&&PLACEHOLDER_START>tokens[split];)split--;for(;split>minSplit&&tokens[split]==PUNCTUATION;)split--;split>minSplit?addSplit(++split):(split=lastSplit+wrapLimit,addSplit(split))}else{for(split;split!=lastSplit-1&&tokens[split]!=PLACEHOLDER_START;split--);if(split>lastSplit){addSplit(split);continue}for(split=lastSplit+wrapLimit;tokens.length>split&&tokens[split]==PLACEHOLDER_BODY;split++);if(split==tokens.length)break;addSplit(split)}}return splits},this.$getDisplayTokens=function(str,offset){var tabSize,arr=[];offset=offset||0;for(var i=0;str.length>i;i++){var c=str.charCodeAt(i);if(9==c){tabSize=this.getScreenTabSize(arr.length+offset),arr.push(TAB);for(var n=1;tabSize>n;n++)arr.push(TAB_SPACE)}else 32==c?arr.push(SPACE):c>39&&48>c||c>57&&64>c?arr.push(PUNCTUATION):c>=4352&&isFullWidth(c)?arr.push(CHAR,CHAR_EXT):arr.push(CHAR)}return arr},this.$getStringScreenWidth=function(str,maxScreenColumn,screenColumn){if(0==maxScreenColumn)return[0,0];null==maxScreenColumn&&(maxScreenColumn=1/0),screenColumn=screenColumn||0;var c,column;for(column=0;str.length>column&&(c=str.charCodeAt(column),screenColumn+=9==c?this.getScreenTabSize(screenColumn):c>=4352&&isFullWidth(c)?2:1,!(screenColumn>maxScreenColumn));column++);return[screenColumn,column]},this.getRowLength=function(row){return this.$useWrapMode&&this.$wrapData[row]?this.$wrapData[row].length+1:1},this.getScreenLastRowColumn=function(screenRow){var pos=this.screenToDocumentPosition(screenRow,Number.MAX_VALUE);return this.documentToScreenColumn(pos.row,pos.column)},this.getDocumentLastRowColumn=function(docRow,docColumn){var screenRow=this.documentToScreenRow(docRow,docColumn);return this.getScreenLastRowColumn(screenRow)},this.getDocumentLastRowColumnPosition=function(docRow,docColumn){var screenRow=this.documentToScreenRow(docRow,docColumn);return this.screenToDocumentPosition(screenRow,Number.MAX_VALUE/10)},this.getRowSplitData=function(row){return this.$useWrapMode?this.$wrapData[row]:void 0},this.getScreenTabSize=function(screenColumn){return this.$tabSize-screenColumn%this.$tabSize},this.screenToDocumentRow=function(screenRow,screenColumn){return this.screenToDocumentPosition(screenRow,screenColumn).row},this.screenToDocumentColumn=function(screenRow,screenColumn){return this.screenToDocumentPosition(screenRow,screenColumn).column},this.screenToDocumentPosition=function(screenRow,screenColumn){if(0>screenRow)return{row:0,column:0};var line,column,docRow=0,docColumn=0,row=0,rowLength=0,rowCache=this.$screenRowCache,i=this.$getRowCacheIndex(rowCache,screenRow),l=rowCache.length;if(l&&i>=0)var row=rowCache[i],docRow=this.$docRowCache[i],doCache=screenRow>rowCache[l-1];else var doCache=!l;for(var maxRow=this.getLength()-1,foldLine=this.getNextFoldLine(docRow),foldStart=foldLine?foldLine.start.row:1/0;screenRow>=row&&(rowLength=this.getRowLength(docRow),!(row+rowLength-1>=screenRow||docRow>=maxRow));)row+=rowLength,docRow++,docRow>foldStart&&(docRow=foldLine.end.row+1,foldLine=this.getNextFoldLine(docRow,foldLine),foldStart=foldLine?foldLine.start.row:1/0),doCache&&(this.$docRowCache.push(docRow),this.$screenRowCache.push(row));if(foldLine&&docRow>=foldLine.start.row)line=this.getFoldDisplayLine(foldLine),docRow=foldLine.start.row;else{if(screenRow>=row+rowLength||docRow>maxRow)return{row:maxRow,column:this.getLine(maxRow).length};line=this.getLine(docRow),foldLine=null}if(this.$useWrapMode){var splits=this.$wrapData[docRow];splits&&(column=splits[screenRow-row],screenRow>row&&splits.length&&(docColumn=splits[screenRow-row-1]||splits[splits.length-1],line=line.substring(docColumn)))}return docColumn+=this.$getStringScreenWidth(line,screenColumn)[1],this.$useWrapMode&&docColumn>=column&&(docColumn=column-1),foldLine?foldLine.idxToPosition(docColumn):{row:docRow,column:docColumn}},this.documentToScreenPosition=function(docRow,docColumn){if(docColumn===void 0)var pos=this.$clipPositionToDocument(docRow.row,docRow.column);else pos=this.$clipPositionToDocument(docRow,docColumn);docRow=pos.row,docColumn=pos.column;var screenRow=0,foldStartRow=null,fold=null;fold=this.getFoldAt(docRow,docColumn,1),fold&&(docRow=fold.start.row,docColumn=fold.start.column);var rowEnd,row=0,rowCache=this.$docRowCache,i=this.$getRowCacheIndex(rowCache,docRow),l=rowCache.length;if(l&&i>=0)var row=rowCache[i],screenRow=this.$screenRowCache[i],doCache=docRow>rowCache[l-1];else var doCache=!l;for(var foldLine=this.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;docRow>row;){if(row>=foldStart){if(rowEnd=foldLine.end.row+1,rowEnd>docRow)break;foldLine=this.getNextFoldLine(rowEnd,foldLine),foldStart=foldLine?foldLine.start.row:1/0}else rowEnd=row+1;screenRow+=this.getRowLength(row),row=rowEnd,doCache&&(this.$docRowCache.push(row),this.$screenRowCache.push(screenRow))}var textLine=\"\";if(foldLine&&row>=foldStart?(textLine=this.getFoldDisplayLine(foldLine,docRow,docColumn),foldStartRow=foldLine.start.row):(textLine=this.getLine(docRow).substring(0,docColumn),foldStartRow=docRow),this.$useWrapMode){for(var wrapRow=this.$wrapData[foldStartRow],screenRowOffset=0;textLine.length>=wrapRow[screenRowOffset];)screenRow++,screenRowOffset++;textLine=textLine.substring(wrapRow[screenRowOffset-1]||0,textLine.length)}return{row:screenRow,column:this.$getStringScreenWidth(textLine)[0]}},this.documentToScreenColumn=function(row,docColumn){return this.documentToScreenPosition(row,docColumn).column},this.documentToScreenRow=function(docRow,docColumn){return this.documentToScreenPosition(docRow,docColumn).row},this.getScreenLength=function(){var screenRows=0,fold=null;if(this.$useWrapMode)for(var lastRow=this.$wrapData.length,row=0,i=0,fold=this.$foldData[i++],foldStart=fold?fold.start.row:1/0;lastRow>row;)screenRows+=this.$wrapData[row].length+1,row++,row>foldStart&&(row=fold.end.row+1,fold=this.$foldData[i++],foldStart=fold?fold.start.row:1/0);else{screenRows=this.getLength();for(var foldData=this.$foldData,i=0;foldData.length>i;i++)fold=foldData[i],screenRows-=fold.end.row-fold.start.row}return screenRows}}).call(EditSession.prototype),acequire(\"./edit_session/folding\").Folding.call(EditSession.prototype),acequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype),config.defineOptions(EditSession.prototype,\"session\",{wrap:{set:function(value){if(value&&\"off\"!=value?\"free\"==value?value=!0:\"printMargin\"==value?value=-1:\"string\"==typeof value&&(value=parseInt(value,10)||!1):value=!1,this.$wrap!=value){if(value){var col=\"number\"==typeof value?value:null;this.setWrapLimitRange(col,col),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1);this.$wrap=value}},get:function(){return this.getUseWrapMode()?this.getWrapLimitRange().min||\"free\":\"off\"},handlesSet:!0},firstLineNumber:{set:function(){this._emit(\"changeBreakpoint\")},initialValue:1},useWorker:{set:function(useWorker){this.$useWorker=useWorker,this.$stopWorker(),useWorker&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(tabSize){isNaN(tabSize)||this.$tabSize===tabSize||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=tabSize,this._emit(\"changeTabSize\"))},initialValue:4,handlesSet:!0},overwrite:{set:function(){this._emit(\"changeOverwrite\")},initialValue:!1},newLineMode:{set:function(val){this.doc.setNewLineMode(val)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0}}),exports.EditSession=EditSession}),ace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),lang=acequire(\"./lib/lang\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Selection=function(session){this.session=session,this.doc=session.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var self=this;this.lead.on(\"change\",function(e){self._emit(\"changeCursor\"),self.$isEmpty||self._emit(\"changeSelection\"),self.$keepDesiredColumnOnChange||e.old.column==e.value.column||(self.$desiredColumn=null)}),this.selectionAnchor.on(\"change\",function(){self.$isEmpty||self._emit(\"changeSelection\")})};(function(){oop.implement(this,EventEmitter),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(row,column){this.anchor.setPosition(row,column),this.$isEmpty&&(this.$isEmpty=!1,this._emit(\"changeSelection\"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(columns){if(this.$isEmpty)return this.moveCursorTo(this.lead.row,this.lead.column+columns),void 0;var anchor=this.getSelectionAnchor(),lead=this.getSelectionLead(),isBackwards=this.isBackwards();isBackwards&&0===anchor.column||this.setSelectionAnchor(anchor.row,anchor.column+columns),(isBackwards||0!==lead.column)&&this.$moveSelection(function(){this.moveCursorTo(lead.row,lead.column+columns)})},this.isBackwards=function(){var anchor=this.anchor,lead=this.lead;return anchor.row>lead.row||anchor.row==lead.row&&anchor.column>lead.column},this.getRange=function(){var anchor=this.anchor,lead=this.lead;return this.isEmpty()?Range.fromPoints(lead,lead):this.isBackwards()?Range.fromPoints(lead,anchor):Range.fromPoints(anchor,lead)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit(\"changeSelection\"))},this.selectAll=function(){var lastRow=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(lastRow,this.doc.getLine(lastRow).length)},this.setRange=this.setSelectionRange=function(range,reverse){reverse?(this.setSelectionAnchor(range.end.row,range.end.column),this.selectTo(range.start.row,range.start.column)):(this.setSelectionAnchor(range.start.row,range.start.column),this.selectTo(range.end.row,range.end.column)),this.$desiredColumn=null},this.$moveSelection=function(mover){var lead=this.lead;this.$isEmpty&&this.setSelectionAnchor(lead.row,lead.column),mover.call(this)},this.selectTo=function(row,column){this.$moveSelection(function(){this.moveCursorTo(row,column)})},this.selectToPosition=function(pos){this.$moveSelection(function(){this.moveCursorToPosition(pos)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(row,column){if(column===void 0){var cursor=row||this.lead;row=cursor.row,column=cursor.column}return this.session.getWordRange(row,column)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var cursor=this.getCursor(),range=this.session.getAWordRange(cursor.row,cursor.column);this.setSelectionRange(range)},this.getLineRange=function(row,excludeLastChar){var rowEnd,rowStart=\"number\"==typeof row?row:this.lead.row,foldLine=this.session.getFoldLine(rowStart);return foldLine?(rowStart=foldLine.start.row,rowEnd=foldLine.end.row):rowEnd=rowStart,excludeLastChar?new Range(rowStart,0,rowEnd,this.session.getLine(rowEnd).length):new Range(rowStart,0,rowEnd+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var fold,cursor=this.lead.getPosition();if(fold=this.session.getFoldAt(cursor.row,cursor.column,-1))this.moveCursorTo(fold.start.row,fold.start.column);else if(0==cursor.column)cursor.row>0&&this.moveCursorTo(cursor.row-1,this.doc.getLine(cursor.row-1).length);else{var tabSize=this.session.getTabSize();this.session.isTabStop(cursor)&&this.doc.getLine(cursor.row).slice(cursor.column-tabSize,cursor.column).split(\" \").length-1==tabSize?this.moveCursorBy(0,-tabSize):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var fold,cursor=this.lead.getPosition();if(fold=this.session.getFoldAt(cursor.row,cursor.column,1))this.moveCursorTo(fold.end.row,fold.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row\u003Cthis.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var tabSize=this.session.getTabSize(),cursor=this.lead;this.session.isTabStop(cursor)&&this.doc.getLine(cursor.row).slice(cursor.column,cursor.column+tabSize).split(\" \").length-1==tabSize?this.moveCursorBy(0,tabSize):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var row=this.lead.row,column=this.lead.column,screenRow=this.session.documentToScreenRow(row,column),firstColumnPosition=this.session.screenToDocumentPosition(screenRow,0),beforeCursor=this.session.getDisplayLine(row,null,firstColumnPosition.row,firstColumnPosition.column),leadingSpace=beforeCursor.match(/^\\s*/);leadingSpace[0].length==column||this.session.$useEmacsStyleLineStart||(firstColumnPosition.column+=leadingSpace[0].length),this.moveCursorToPosition(firstColumnPosition)},this.moveCursorLineEnd=function(){var lead=this.lead,lineEnd=this.session.getDocumentLastRowColumnPosition(lead.row,lead.column);if(this.lead.column==lineEnd.column){var line=this.session.getLine(lineEnd.row);if(lineEnd.column==line.length){var textEnd=line.search(/\\s+$/);textEnd>0&&(lineEnd.column=textEnd)}}this.moveCursorTo(lineEnd.row,lineEnd.column)},this.moveCursorFileEnd=function(){var row=this.doc.getLength()-1,column=this.doc.getLine(row).length;this.moveCursorTo(row,column)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var match,row=this.lead.row,column=this.lead.column,line=this.doc.getLine(row),rightOfCursor=line.substring(column);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var fold=this.session.getFoldAt(row,column,1);return fold?(this.moveCursorTo(fold.end.row,fold.end.column),void 0):((match=this.session.nonTokenRe.exec(rightOfCursor))&&(column+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,rightOfCursor=line.substring(column)),column>=line.length?(this.moveCursorTo(row,line.length),this.moveCursorRight(),this.doc.getLength()-1>row&&this.moveCursorWordRight(),void 0):((match=this.session.tokenRe.exec(rightOfCursor))&&(column+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(row,column),void 0))},this.moveCursorLongWordLeft=function(){var fold,row=this.lead.row,column=this.lead.column;if(fold=this.session.getFoldAt(row,column,-1))return this.moveCursorTo(fold.start.row,fold.start.column),void 0;var str=this.session.getFoldStringAt(row,column,-1);null==str&&(str=this.doc.getLine(row).substring(0,column));var match,leftOfCursor=lang.stringReverse(str);return this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,(match=this.session.nonTokenRe.exec(leftOfCursor))&&(column-=this.session.nonTokenRe.lastIndex,leftOfCursor=leftOfCursor.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),0>=column?(this.moveCursorTo(row,0),this.moveCursorLeft(),row>0&&this.moveCursorWordLeft(),void 0):((match=this.session.tokenRe.exec(leftOfCursor))&&(column-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(row,column),void 0)},this.$shortWordEndIndex=function(rightOfCursor){var match,ch,index=0,whitespaceRe=/\\s/,tokenRe=this.session.tokenRe;if(tokenRe.lastIndex=0,match=this.session.tokenRe.exec(rightOfCursor))index=this.session.tokenRe.lastIndex;else{for(;(ch=rightOfCursor[index])&&whitespaceRe.test(ch);)index++;if(1>=index)for(tokenRe.lastIndex=0;(ch=rightOfCursor[index])&&!tokenRe.test(ch);)if(tokenRe.lastIndex=0,index++,whitespaceRe.test(ch)){if(index>2){index--;break}for(;(ch=rightOfCursor[index])&&whitespaceRe.test(ch);)index++;if(index>2)break}}return tokenRe.lastIndex=0,index},this.moveCursorShortWordRight=function(){var row=this.lead.row,column=this.lead.column,line=this.doc.getLine(row),rightOfCursor=line.substring(column),fold=this.session.getFoldAt(row,column,1);if(fold)return this.moveCursorTo(fold.end.row,fold.end.column);if(column==line.length){var l=this.doc.getLength();do row++,rightOfCursor=this.doc.getLine(row);while(l>row&&/^\\s*$/.test(rightOfCursor));/^\\s+/.test(rightOfCursor)||(rightOfCursor=\"\"),column=0}var index=this.$shortWordEndIndex(rightOfCursor);this.moveCursorTo(row,column+index)},this.moveCursorShortWordLeft=function(){var fold,row=this.lead.row,column=this.lead.column;if(fold=this.session.getFoldAt(row,column,-1))return this.moveCursorTo(fold.start.row,fold.start.column);var line=this.session.getLine(row).substring(0,column);if(0==column){do row--,line=this.doc.getLine(row);while(row>0&&/^\\s*$/.test(line));column=line.length,/\\s+$/.test(line)||(line=\"\")}var leftOfCursor=lang.stringReverse(line),index=this.$shortWordEndIndex(leftOfCursor);return this.moveCursorTo(row,column-index)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(rows,chars){var screenPos=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===chars&&(this.$desiredColumn?screenPos.column=this.$desiredColumn:this.$desiredColumn=screenPos.column);var docPos=this.session.screenToDocumentPosition(screenPos.row+rows,screenPos.column);this.moveCursorTo(docPos.row,docPos.column+chars,0===chars)},this.moveCursorToPosition=function(position){this.moveCursorTo(position.row,position.column)},this.moveCursorTo=function(row,column,keepDesiredColumn){var fold=this.session.getFoldAt(row,column,1);fold&&(row=fold.start.row,column=fold.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(row,column),this.$keepDesiredColumnOnChange=!1,keepDesiredColumn||(this.$desiredColumn=null)},this.moveCursorToScreen=function(row,column,keepDesiredColumn){var pos=this.session.screenToDocumentPosition(row,column);this.moveCursorTo(pos.row,pos.column,keepDesiredColumn)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(range){this.setSelectionRange(range,range.cursor==range.start),this.$desiredColumn=range.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(range){var r=this.getRange();return range?(range.start.column=r.start.column,range.start.row=r.start.row,range.end.column=r.end.column,range.end.row=r.end.row):range=r,range.cursor=this.isBackwards()?range.start:range.end,range.desiredColumn=this.$desiredColumn,range}}).call(Selection.prototype),exports.Selection=Selection}),ace.define(\"ace/range\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\"object\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\"object\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour\",\"ace/unicode\",\"ace/lib/lang\"],function(acequire,exports){var Tokenizer=acequire(\"../tokenizer\").Tokenizer,TextHighlightRules=acequire(\"./text_highlight_rules\").TextHighlightRules,Behaviour=acequire(\"./behaviour\").Behaviour,unicode=acequire(\"../unicode\"),lang=acequire(\"../lib/lang\"),Mode=function(){this.$tokenizer=new Tokenizer((new TextHighlightRules).getRules()),this.$behaviour=new Behaviour};(function(){this.tokenRe=RegExp(\"^[\"+unicode.packages.L+unicode.packages.Mn+unicode.packages.Mc+unicode.packages.Nd+unicode.packages.Pc+\"\\\\$_]+\",\"g\"),this.nonTokenRe=RegExp(\"^(?:[^\"+unicode.packages.L+unicode.packages.Mn+unicode.packages.Mc+unicode.packages.Nd+unicode.packages.Pc+\"\\\\$_]|s])+\",\"g\"),this.getTokenizer=function(){return this.$tokenizer},this.toggleCommentLines=function(state,session,startRow,endRow){var regexpStart,lineCommentStart,doc=session.doc;if(!this.lineCommentStart)return!1;Array.isArray(this.lineCommentStart)?(regexpStart=this.lineCommentStart.map(lang.escapeRegExp).join(\"|\"),lineCommentStart=this.lineCommentStart[0]):(regexpStart=lang.escapeRegExp(this.lineCommentStart),lineCommentStart=this.lineCommentStart),regexpStart=RegExp(\"^\\\\s*(?:\"+regexpStart+\") ?\");for(var removeComment=!0,minSpace=1/0,indentations=[],i=startRow;endRow>=i;i++){var line=doc.getLine(i),indent=line.search(/\\S|$/);indentations[i]=indent,minSpace>indent&&(minSpace=indent),removeComment&&!regexpStart.test(line)&&(removeComment=!1)}if(removeComment)for(var i=startRow;endRow>=i;i++){var line=doc.getLine(i),m=line.match(regexpStart);doc.removeInLine(i,indentations[i],m[0].length)}else{lineCommentStart+=\" \";for(var i=startRow;endRow>=i;i++)doc.insertInLine({row:i,column:minSpace},lineCommentStart)}},this.getNextLineIndent=function(state,line){return this.$getIndent(line)},this.checkOutdent=function(){return!1},this.autoOutdent=function(){},this.$getIndent=function(line){return line.match(/^\\s*/)[0]},this.createWorker=function(){return null},this.createModeDelegates=function(mapping){if(this.$embeds){this.$modes={};for(var i=0;this.$embeds.length>i;i++)mapping[this.$embeds[i]]&&(this.$modes[this.$embeds[i]]=new mapping[this.$embeds[i]]);for(var delegations=[\"toggleCommentLines\",\"getNextLineIndent\",\"checkOutdent\",\"autoOutdent\",\"transformAction\"],i=0;delegations.length>i;i++)(function(scope){var functionName=delegations[i],defaultHandler=scope[functionName];scope[delegations[i]]=function(){return this.$delegator(functionName,arguments,defaultHandler)}})(this)}},this.$delegator=function(method,args,defaultHandler){for(var state=args[0],i=0;this.$embeds.length>i;i++)if(this.$modes[this.$embeds[i]]){var split=state.split(this.$embeds[i]);if(!split[0]&&split[1]){args[0]=split[1];var mode=this.$modes[this.$embeds[i]];return mode[method].apply(mode,args)}}var ret=defaultHandler.apply(this,args);return defaultHandler?ret:void 0},this.transformAction=function(state,action){if(this.$behaviour){var behaviours=this.$behaviour.getBehaviours();for(var key in behaviours)if(behaviours[key][action]){var ret=behaviours[key][action].apply(this,arguments);if(ret)return ret}}}}).call(Mode.prototype),exports.Mode=Mode}),ace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var MAX_TOKEN_COUNT=1e3,Tokenizer=function(rules){this.states=rules,this.regExps={},this.matchMappings={};for(var key in this.states){for(var state=this.states[key],ruleRegExps=[],matchTotal=0,mapping=this.matchMappings[key]={defaultToken:\"text\"},flag=\"g\",i=0;state.length>i;i++){var rule=state[i];if(rule.defaultToken&&(mapping.defaultToken=rule.defaultToken),rule.caseInsensitive&&(flag=\"gi\"),null!=rule.regex){rule.regex instanceof RegExp&&(rule.regex=(\"\"+rule.regex).slice(1,-1));var adjustedregex=rule.regex,matchcount=RegExp(\"(?:(\"+adjustedregex+\")|(.))\").exec(\"a\").length-2;if(Array.isArray(rule.token))if(1==rule.token.length||1==matchcount)rule.token=rule.token[0];else{if(matchcount-1!=rule.token.length)throw Error(\"number of classes and regexp groups in '\"+rule.token+\"'\\n'\"+rule.regex+\"' doesn't match\\n\"+(matchcount-1)+\"!=\"+rule.token.length);rule.tokenArray=rule.token,rule.onMatch=this.$arrayTokens}else\"function\"!=typeof rule.token||rule.onMatch||(rule.onMatch=matchcount>1?this.$applyToken:rule.token);matchcount>1&&(/\\\\\\d/.test(rule.regex)?adjustedregex=rule.regex.replace(/\\\\([0-9]+)/g,function(match,digit){return\"\\\\\"+(parseInt(digit,10)+matchTotal+1)}):(matchcount=1,adjustedregex=this.removeCapturingGroups(rule.regex)),rule.splitRegex||\"string\"==typeof rule.token||(rule.splitRegex=this.createSplitterRegexp(rule.regex,flag))),mapping[matchTotal]=i,matchTotal+=matchcount,ruleRegExps.push(adjustedregex),rule.onMatch||(rule.onMatch=null),rule.__proto__=null\n}}this.regExps[key]=RegExp(\"(\"+ruleRegExps.join(\")|(\")+\")|($)\",flag)}};(function(){this.$applyToken=function(str){var values=this.splitRegex.exec(str).slice(1),types=this.token.apply(this,values);if(\"string\"==typeof types)return[{type:types,value:str}];for(var tokens=[],i=0,l=types.length;l>i;i++)values[i]&&(tokens[tokens.length]={type:types[i],value:values[i]});return tokens},this.$arrayTokens=function(str){if(!str)return[];for(var values=this.splitRegex.exec(str),tokens=[],types=this.tokenArray,i=0,l=types.length;l>i;i++)values[i+1]&&(tokens[tokens.length]={type:types[i],value:values[i+1]});return tokens},this.removeCapturingGroups=function(src){var r=src.replace(/\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,function(x,y){return y?\"(?:\":x});return r},this.createSplitterRegexp=function(src,flag){if(-1!=src.indexOf(\"(?=\")){var stack=0,inChClass=!1,lastCapture={};src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g,function(m,esc,parenOpen,parenClose,square,index){return inChClass?inChClass=\"]\"!=square:square?inChClass=!0:parenClose?(stack==lastCapture.stack&&(lastCapture.end=index+1,lastCapture.stack=-1),stack--):parenOpen&&(stack++,1!=parenOpen.length&&(lastCapture.stack=stack,lastCapture.start=index)),m}),null!=lastCapture.end&&/^\\)*$/.test(src.substr(lastCapture.end))&&(src=src.substring(0,lastCapture.start)+src.substr(lastCapture.end))}return RegExp(src,(flag||\"\").replace(\"g\",\"\"))},this.getLineTokens=function(line,startState){if(startState&&\"string\"!=typeof startState){var stack=startState.slice(0);startState=stack[0]}else var stack=[];var currentState=startState||\"start\",state=this.states[currentState],mapping=this.matchMappings[currentState],re=this.regExps[currentState];re.lastIndex=0;for(var match,tokens=[],lastIndex=0,token={type:null,value:\"\"};match=re.exec(line);){var type=mapping.defaultToken,rule=null,value=match[0],index=re.lastIndex;if(index-value.length>lastIndex){var skipped=line.substring(lastIndex,index-value.length);token.type==type?token.value+=skipped:(token.type&&tokens.push(token),token={type:type,value:skipped})}for(var i=0;match.length-2>i;i++)if(void 0!==match[i+1]){rule=state[mapping[i]],type=rule.onMatch?rule.onMatch(value,currentState,stack):rule.token,rule.next&&(currentState=\"string\"==typeof rule.next?rule.next:rule.next(currentState,stack),state=this.states[currentState],state||(window.console&&console.error&&console.error(currentState,\"doesn't exist\"),currentState=\"start\",state=this.states[currentState]),mapping=this.matchMappings[currentState],lastIndex=index,re=this.regExps[currentState],re.lastIndex=index);break}if(value)if(\"string\"==typeof type)rule&&rule.merge===!1||token.type!==type?(token.type&&tokens.push(token),token={type:type,value:value}):token.value+=value;else if(type){token.type&&tokens.push(token),token={type:null,value:\"\"};for(var i=0;type.length>i;i++)tokens.push(type[i])}if(lastIndex==line.length)break;if(lastIndex=index,tokens.length>MAX_TOKEN_COUNT){token.value+=line.substr(lastIndex),currentState=\"start\";break}}return token.type&&tokens.push(token),{tokens:tokens,state:stack.length?stack:currentState}}}).call(Tokenizer.prototype),exports.Tokenizer=Tokenizer}),ace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"],function(acequire,exports){var lang=acequire(\"../lib/lang\"),TextHighlightRules=function(){this.$rules={start:[{token:\"empty_line\",regex:\"^$\"},{defaultToken:\"text\"}]}};(function(){this.addRules=function(rules,prefix){for(var key in rules){for(var state=rules[key],i=0;state.length>i;i++){var rule=state[i];rule.next&&(rule.next=prefix+rule.next)}this.$rules[prefix+key]=state}},this.getRules=function(){return this.$rules},this.embedRules=function(HighlightRules,prefix,escapeRules,states,append){var embedRules=(new HighlightRules).getRules();if(states)for(var i=0;states.length>i;i++)states[i]=prefix+states[i];else{states=[];for(var key in embedRules)states.push(prefix+key)}if(this.addRules(embedRules,prefix),escapeRules)for(var addRules=Array.prototype[append?\"push\":\"unshift\"],i=0;states.length>i;i++)addRules.apply(this.$rules[states[i]],lang.deepCopy(escapeRules));this.$embeds||(this.$embeds=[]),this.$embeds.push(prefix)},this.getEmbeds=function(){return this.$embeds};var pushState=function(currentState,stack){return\"start\"!=currentState&&stack.unshift(this.nextState,currentState),this.nextState},popState=function(currentState,stack){return stack[0]!==currentState?\"start\":(stack.shift(),stack.shift())};this.normalizeRules=function(){function processState(key){var state=rules[key];state.processed=!0;for(var i=0;state.length>i;i++){var rule=state[i];!rule.regex&&rule.start&&(rule.regex=rule.start,rule.next||(rule.next=[]),rule.next.push({defaultToken:rule.token},{token:rule.token+\".end\",regex:rule.end||rule.start,next:\"pop\"}),rule.token=rule.token+\".start\",rule.push=!0);var next=rule.next||rule.push;if(next&&Array.isArray(next)){var stateName=rule.stateName||rule.token+id++;rules[stateName]=next,rule.next=stateName,processState(stateName)}else\"pop\"==next&&(rule.next=popState);if(rule.push&&(rule.nextState=rule.next||rule.push,rule.next=pushState,delete rule.push),rule.rules)for(var r in rule.rules)rules[r]?rules[r].push&&rules[r].push.apply(rules[r],rule.rules[r]):rules[r]=rule.rules[r];if(rule.include||\"string\"==typeof rule)var includeName=rule.include||rule,toInsert=rules[includeName];else Array.isArray(rule)&&(toInsert=rule);if(toInsert){var args=[i,1].concat(toInsert);rule.noEscape&&(args=args.filter(function(x){return!x.next})),state.splice.apply(state,args),i--,toInsert=null}}}var id=0,rules=this.$rules;Object.keys(rules).forEach(processState)},this.createKeywordMapper=function(map,defaultToken,ignoreCase,splitChar){var keywords=Object.create(null);return Object.keys(map).forEach(function(className){var a=map[className];ignoreCase&&(a=a.toLowerCase());for(var list=a.split(splitChar||\"|\"),i=list.length;i--;)keywords[list[i]]=className}),map=null,ignoreCase?function(value){return keywords[value.toLowerCase()]||defaultToken}:function(value){return keywords[value]||defaultToken}},this.getKeywords=function(){return this.$keywords}}).call(TextHighlightRules.prototype),exports.TextHighlightRules=TextHighlightRules}),ace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var Behaviour=function(){this.$behaviours={}};(function(){this.add=function(name,action,callback){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[name]:this.$behaviours[name]={}}this.$behaviours[name][action]=callback},this.addBehaviours=function(behaviours){for(var key in behaviours)for(var action in behaviours[key])this.add(key,action,behaviours[key][action])},this.remove=function(name){this.$behaviours&&this.$behaviours[name]&&delete this.$behaviours[name]},this.inherit=function(mode,filter){if(\"function\"==typeof mode)var behaviours=(new mode).getBehaviours(filter);else var behaviours=mode.getBehaviours(filter);this.addBehaviours(behaviours)},this.getBehaviours=function(filter){if(filter){for(var ret={},i=0;filter.length>i;i++)this.$behaviours[filter[i]]&&(ret[filter[i]]=this.$behaviours[filter[i]]);return ret}return this.$behaviours}}).call(Behaviour.prototype),exports.Behaviour=Behaviour}),ace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"],function(acequire,exports){function addUnicodePackage(pack){var codePoint=/\\w{4}/g;for(var name in pack)exports.packages[name]=pack[name].replace(codePoint,\"\\\\u$&\")}exports.packages={},addUnicodePackage({L:\"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",Ll:\"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",Lu:\"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",Lt:\"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",Lm:\"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",Lo:\"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",M:\"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",Mn:\"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",Mc:\"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",Me:\"0488048906DE20DD-20E020E2-20E4A670-A672\",N:\"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nd:\"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",Nl:\"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",No:\"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",P:\"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",Pd:\"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",Ps:\"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",Pe:\"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",Pi:\"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",Pf:\"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",Pc:\"005F203F20402054FE33FE34FE4D-FE4FFF3F\",Po:\"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",S:\"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",Sm:\"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",Sc:\"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",Sk:\"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",So:\"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",Z:\"002000A01680180E2000-200A20282029202F205F3000\",Zs:\"002000A01680180E2000-200A202F205F3000\",Zl:\"2028\",Zp:\"2029\",C:\"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",Cc:\"0000-001F007F-009F\",Cf:\"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",Co:\"E000-F8FF\",Cs:\"D800-DFFF\",Cn:\"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"})\n}),ace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Range=acequire(\"./range\").Range,Anchor=acequire(\"./anchor\").Anchor,Document=function(text){this.$lines=[],0==text.length?this.$lines=[\"\"]:Array.isArray(text)?this.insertLines(0,text):this.insert({row:0,column:0},text)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength();this.remove(new Range(0,0,len,this.getLine(len-1).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==\"aaa\".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,\"\\n\").split(\"\\n\")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:\"\\n\"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine}},this.$autoNewLine=\"\\n\",this.$newLineMode=\"auto\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode)},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\"\\r\\n\"==text||\"\\r\"==text||\"\\n\"==text},this.getLine=function(row){return this.$lines[row]||\"\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){if(range.start.row==range.end.row)return this.$lines[range.start.row].substring(range.start.column,range.end.column);var lines=this.getLines(range.start.row+1,range.end.row-1);return lines.unshift((this.$lines[range.start.row]||\"\").substring(range.start.column)),lines.push((this.$lines[range.end.row]||\"\").substring(0,range.end.column)),lines.join(this.getNewLineCharacter())},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):0>position.row&&(position.row=0),position},this.insert=function(position,text){if(!text||0===text.length)return position;position=this.$clipPosition(position),1>=this.getLength()&&this.$detectNewLine(text);var lines=this.$split(text),firstLine=lines.splice(0,1)[0],lastLine=0==lines.length?null:lines.splice(lines.length-1,1)[0];return position=this.insertInLine(position,firstLine),null!==lastLine&&(position=this.insertNewLine(position),position=this.insertLines(position.row,lines),position=this.insertInLine(position,lastLine||\"\")),position},this.insertLines=function(row,lines){if(0==lines.length)return{row:row,column:0};if(lines.length>65535){var end=this.insertLines(row,lines.slice(65535));lines=lines.slice(0,65535)}var args=[row,0];args.push.apply(args,lines),this.$lines.splice.apply(this.$lines,args);var range=new Range(row,0,row+lines.length,0),delta={action:\"insertLines\",range:range,lines:lines};return this._emit(\"change\",{data:delta}),end||range.end},this.insertNewLine=function(position){position=this.$clipPosition(position);var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column),this.$lines.splice(position.row+1,0,line.substring(position.column,line.length));var end={row:position.row+1,column:0},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:this.getNewLineCharacter()};return this._emit(\"change\",{data:delta}),end},this.insertInLine=function(position,text){if(0==text.length)return position;var line=this.$lines[position.row]||\"\";this.$lines[position.row]=line.substring(0,position.column)+text+line.substring(position.column);var end={row:position.row,column:position.column+text.length},delta={action:\"insertText\",range:Range.fromPoints(position,end),text:text};return this._emit(\"change\",{data:delta}),end},this.remove=function(range){if(range.start=this.$clipPosition(range.start),range.end=this.$clipPosition(range.end),range.isEmpty())return range.start;var firstRow=range.start.row,lastRow=range.end.row;if(range.isMultiLine()){var firstFullRow=0==range.start.column?firstRow:firstRow+1,lastFullRow=lastRow-1;range.end.column>0&&this.removeInLine(lastRow,0,range.end.column),lastFullRow>=firstFullRow&&this.removeLines(firstFullRow,lastFullRow),firstFullRow!=firstRow&&(this.removeInLine(firstRow,range.start.column,this.getLine(firstRow).length),this.removeNewLine(range.start.row))}else this.removeInLine(firstRow,range.start.column,range.end.column);return range.start},this.removeInLine=function(row,startColumn,endColumn){if(startColumn!=endColumn){var range=new Range(row,startColumn,row,endColumn),line=this.getLine(row),removed=line.substring(startColumn,endColumn),newLine=line.substring(0,startColumn)+line.substring(endColumn,line.length);this.$lines.splice(row,1,newLine);var delta={action:\"removeText\",range:range,text:removed};return this._emit(\"change\",{data:delta}),range.start}},this.removeLines=function(firstRow,lastRow){var range=new Range(firstRow,0,lastRow+1,0),removed=this.$lines.splice(firstRow,lastRow-firstRow+1),delta={action:\"removeLines\",range:range,nl:this.getNewLineCharacter(),lines:removed};return this._emit(\"change\",{data:delta}),removed},this.removeNewLine=function(row){var firstLine=this.getLine(row),secondLine=this.getLine(row+1),range=new Range(row,firstLine.length,row+1,0),line=firstLine+secondLine;this.$lines.splice(row,2,line);var delta={action:\"removeText\",range:range,text:this.getNewLineCharacter()};this._emit(\"change\",{data:delta})},this.replace=function(range,text){if(0==text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;if(this.remove(range),text)var end=this.insert(range.start,text);else end=range.start;return end},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"insertText\"==delta.action?this.insert(range.start,delta.text):\"removeLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"removeText\"==delta.action&&this.remove(range)}},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--){var delta=deltas[i],range=Range.fromPoints(delta.range.start,delta.range.end);\"insertLines\"==delta.action?this.removeLines(range.start.row,range.end.row-1):\"insertText\"==delta.action?this.remove(range):\"removeLines\"==delta.action?this.insertLines(range.start.row,delta.lines):\"removeText\"==delta.action&&this.insert(range.start,delta.text)}},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length;return index+newlineLength*i+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.document=doc,column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column),this.$onChange=this.onChange.bind(this),doc.on(\"change\",this.$onChange)};(function(){oop.implement(this,EventEmitter),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(e){var delta=e.data,range=delta.range;if(!(range.start.row==range.end.row&&range.start.row!=this.row||range.start.row>this.row||range.start.row==this.row&&range.start.column>this.column)){var row=this.row,column=this.column,start=range.start,end=range.end;\"insertText\"===delta.action?start.row===row&&column>=start.column?start.row===end.row?column+=end.column-start.column:(column-=start.column,row+=end.row-start.row):start.row!==end.row&&row>start.row&&(row+=end.row-start.row):\"insertLines\"===delta.action?row>=start.row&&(row+=end.row-start.row):\"removeText\"===delta.action?start.row===row&&column>start.column?column=end.column>=column?start.column:Math.max(0,column-(end.column-start.column)):start.row!==end.row&&row>start.row?(end.row===row&&(column=Math.max(0,column-end.column)+start.column),row-=end.row-start.row):end.row===row&&(row-=end.row-start.row,column=Math.max(0,column-end.column)+start.column):\"removeLines\"==delta.action&&row>=start.row&&(row>=end.row?row-=end.row-start.row:(row=start.row,column=0)),this.setPosition(row,column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._emit(\"change\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\"change\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,BackgroundTokenizer=function(tokenizer){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=tokenizer;var self=this;this.$worker=function(){if(self.running){for(var workerStart=new Date,startLine=self.currentLine,doc=self.doc,processedLines=0,len=doc.getLength();len>self.currentLine;){for(self.$tokenizeRow(self.currentLine);self.lines[self.currentLine];)self.currentLine++;if(processedLines++,0==processedLines%5&&new Date-workerStart>20)return self.fireUpdateEvent(startLine,self.currentLine-1),self.running=setTimeout(self.$worker,20),void 0}self.running=!1,self.fireUpdateEvent(startLine,len-1)}}};(function(){oop.implement(this,EventEmitter),this.setTokenizer=function(tokenizer){this.tokenizer=tokenizer,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(doc){this.doc=doc,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(firstRow,lastRow){var data={first:firstRow,last:lastRow};this._emit(\"update\",{data:data})},this.start=function(startRow){this.currentLine=Math.min(startRow||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.$updateOnChange=function(delta){var range=delta.range,startRow=range.start.row,len=range.end.row-startRow;if(0===len)this.lines[startRow]=null;else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.lines.splice(startRow,len+1,null),this.states.splice(startRow,len+1,null);else{var args=Array(len+1);args.unshift(startRow,1),this.lines.splice.apply(this.lines,args),this.states.splice.apply(this.states,args)}this.currentLine=Math.min(startRow,this.currentLine,this.doc.getLength()),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(row){return this.lines[row]||this.$tokenizeRow(row)},this.getState=function(row){return this.currentLine==row&&this.$tokenizeRow(row),this.states[row]||\"start\"},this.$tokenizeRow=function(row){var line=this.doc.getLine(row),state=this.states[row-1],data=this.tokenizer.getLineTokens(line,state,row);return this.states[row]+\"\"!=data.state+\"\"?(this.states[row]=data.state,this.lines[row+1]=null,this.currentLine>row+1&&(this.currentLine=row+1)):this.currentLine==row&&(this.currentLine=row+1),this.lines[row]=data.tokens}}).call(BackgroundTokenizer.prototype),exports.BackgroundTokenizer=BackgroundTokenizer}),ace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(acequire,exports){var lang=acequire(\"./lib/lang\");acequire(\"./lib/oop\");var Range=acequire(\"./range\").Range,SearchHighlight=function(regExp,clazz,type){this.setRegexp(regExp),this.clazz=clazz,this.type=type||\"text\"};(function(){this.MAX_RANGES=500,this.setRegexp=function(regExp){this.regExp+\"\"!=regExp+\"\"&&(this.regExp=regExp,this.cache=[])},this.update=function(html,markerLayer,session,config){if(this.regExp)for(var start=config.firstRow,end=config.lastRow,i=start;end>=i;i++){var ranges=this.cache[i];null==ranges&&(ranges=lang.getMatchOffsets(session.getLine(i),this.regExp),ranges.length>this.MAX_RANGES&&(ranges=ranges.slice(0,this.MAX_RANGES)),ranges=ranges.map(function(match){return new Range(i,match.offset,i,match.offset+match.length)}),this.cache[i]=ranges.length?ranges:\"\");for(var j=ranges.length;j--;)markerLayer.drawSingleLineMarker(html,ranges[j].toScreenRange(session),this.clazz,config,null,this.type)}}}).call(SearchHighlight.prototype),exports.SearchHighlight=SearchHighlight}),ace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"],function(acequire,exports){function Folding(){this.getFoldAt=function(row,column,side){var foldLine=this.getFoldLine(row);if(!foldLine)return null;for(var folds=foldLine.folds,i=0;folds.length>i;i++){var fold=folds[i];if(fold.range.contains(row,column)){if(1==side&&fold.range.isEnd(row,column))continue;if(-1==side&&fold.range.isStart(row,column))continue;return fold}}},this.getFoldsInRange=function(range){var start=range.start,end=range.end,foldLines=this.$foldData,foundFolds=[];start.column+=1,end.column-=1;for(var i=0;foldLines.length>i;i++){var cmp=foldLines[i].range.compareRange(range);if(2!=cmp){if(-2==cmp)break;for(var folds=foldLines[i].folds,j=0;folds.length>j;j++){var fold=folds[j];if(cmp=fold.range.compareRange(range),-2==cmp)break;if(2!=cmp){if(42==cmp)break;foundFolds.push(fold)}}}}return start.column-=1,end.column+=1,foundFolds},this.getAllFolds=function(){function addFold(fold){folds.push(fold)}for(var folds=[],foldLines=this.$foldData,i=0;foldLines.length>i;i++)for(var j=0;foldLines[i].folds.length>j;j++)addFold(foldLines[i].folds[j]);return folds},this.getFoldStringAt=function(row,column,trim,foldLine){if(foldLine=foldLine||this.getFoldLine(row),!foldLine)return null;for(var str,fold,lastFold={end:{column:0}},i=0;foldLine.folds.length>i;i++){fold=foldLine.folds[i];var cmp=fold.range.compareEnd(row,column);if(-1==cmp){str=this.getLine(fold.start.row).substring(lastFold.end.column,fold.start.column);break}if(0===cmp)return null;lastFold=fold}return str||(str=this.getLine(fold.start.row).substring(lastFold.end.column)),-1==trim?str.substring(0,column-lastFold.end.column):1==trim?str.substring(column-lastFold.end.column):str},this.getFoldLine=function(docRow,startFoldLine){var foldData=this.$foldData,i=0;for(startFoldLine&&(i=foldData.indexOf(startFoldLine)),-1==i&&(i=0),i;foldData.length>i;i++){var foldLine=foldData[i];if(docRow>=foldLine.start.row&&foldLine.end.row>=docRow)return foldLine;if(foldLine.end.row>docRow)return null}return null},this.getNextFoldLine=function(docRow,startFoldLine){var foldData=this.$foldData,i=0;for(startFoldLine&&(i=foldData.indexOf(startFoldLine)),-1==i&&(i=0),i;foldData.length>i;i++){var foldLine=foldData[i];if(foldLine.end.row>=docRow)return foldLine}return null},this.getFoldedRowCount=function(first,last){for(var foldData=this.$foldData,rowCount=last-first+1,i=0;foldData.length>i;i++){var foldLine=foldData[i],end=foldLine.end.row,start=foldLine.start.row;if(end>=last){last>start&&(start>=first?rowCount-=last-start:rowCount=0);break}end>=first&&(rowCount-=start>=first?end-start:end-first+1)}return rowCount},this.$addFoldLine=function(foldLine){return this.$foldData.push(foldLine),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),foldLine},this.addFold=function(placeholder,range){var fold,foldData=this.$foldData,added=!1;placeholder instanceof Fold?fold=placeholder:(fold=new Fold(range,placeholder),fold.collapseChildren=range.collapseChildren),this.$clipRangeToDocument(fold.range);var startRow=fold.start.row,startColumn=fold.start.column,endRow=fold.end.row,endColumn=fold.end.column;if(startRow==endRow&&2>endColumn-startColumn)throw\"The range has to be at least 2 characters width\";var startFold=this.getFoldAt(startRow,startColumn,1),endFold=this.getFoldAt(endRow,endColumn,-1);if(startFold&&endFold==startFold)return startFold.addSubFold(fold);if(startFold&&!startFold.range.isStart(startRow,startColumn)||endFold&&!endFold.range.isEnd(endRow,endColumn))throw\"A fold can't intersect already existing fold\"+fold.range+startFold.range;var folds=this.getFoldsInRange(fold.range);folds.length>0&&(this.removeFolds(folds),folds.forEach(function(subFold){fold.addSubFold(subFold)}));for(var i=0;foldData.length>i;i++){var foldLine=foldData[i];if(endRow==foldLine.start.row){foldLine.addFold(fold),added=!0;break}if(startRow==foldLine.end.row){if(foldLine.addFold(fold),added=!0,!fold.sameRow){var foldLineNext=foldData[i+1];if(foldLineNext&&foldLineNext.start.row==endRow){foldLine.merge(foldLineNext);break}}break}if(foldLine.start.row>=endRow)break}return added||(foldLine=this.$addFoldLine(new FoldLine(this.$foldData,fold))),this.$useWrapMode?this.$updateWrapData(foldLine.start.row,foldLine.start.row):this.$updateRowLengthCache(foldLine.start.row,foldLine.start.row),this.$modified=!0,this._emit(\"changeFold\",{data:fold}),fold},this.addFolds=function(folds){folds.forEach(function(fold){this.addFold(fold)},this)},this.removeFold=function(fold){var foldLine=fold.foldLine,startRow=foldLine.start.row,endRow=foldLine.end.row,foldLines=this.$foldData,folds=foldLine.folds;if(1==folds.length)foldLines.splice(foldLines.indexOf(foldLine),1);else if(foldLine.range.isEnd(fold.end.row,fold.end.column))folds.pop(),foldLine.end.row=folds[folds.length-1].end.row,foldLine.end.column=folds[folds.length-1].end.column;else if(foldLine.range.isStart(fold.start.row,fold.start.column))folds.shift(),foldLine.start.row=folds[0].start.row,foldLine.start.column=folds[0].start.column;else if(fold.sameRow)folds.splice(folds.indexOf(fold),1);else{var newFoldLine=foldLine.split(fold.start.row,fold.start.column);folds=newFoldLine.folds,folds.shift(),newFoldLine.start.row=folds[0].start.row,newFoldLine.start.column=folds[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(startRow,endRow):this.$updateRowLengthCache(startRow,endRow)),this.$modified=!0,this._emit(\"changeFold\",{data:fold})},this.removeFolds=function(folds){for(var cloneFolds=[],i=0;folds.length>i;i++)cloneFolds.push(folds[i]);cloneFolds.forEach(function(fold){this.removeFold(fold)},this),this.$modified=!0},this.expandFold=function(fold){this.removeFold(fold),fold.subFolds.forEach(function(subFold){fold.restoreRange(subFold),this.addFold(subFold)},this),fold.collapseChildren>0&&this.foldAll(fold.start.row+1,fold.end.row,fold.collapseChildren-1),fold.subFolds=[]},this.expandFolds=function(folds){folds.forEach(function(fold){this.expandFold(fold)},this)},this.unfold=function(location,expandInner){var range,folds;if(null==location?(range=new Range(0,0,this.getLength(),0),expandInner=!0):range=\"number\"==typeof location?new Range(location,0,location,this.getLine(location).length):\"row\"in location?Range.fromPoints(location,location):location,folds=this.getFoldsInRange(range),expandInner)this.removeFolds(folds);else for(;folds.length;)this.expandFolds(folds),folds=this.getFoldsInRange(range)},this.isRowFolded=function(docRow,startFoldRow){return!!this.getFoldLine(docRow,startFoldRow)},this.getRowFoldEnd=function(docRow,startFoldRow){var foldLine=this.getFoldLine(docRow,startFoldRow);return foldLine?foldLine.end.row:docRow},this.getRowFoldStart=function(docRow,startFoldRow){var foldLine=this.getFoldLine(docRow,startFoldRow);return foldLine?foldLine.start.row:docRow},this.getFoldDisplayLine=function(foldLine,endRow,endColumn,startRow,startColumn){null==startRow&&(startRow=foldLine.start.row,startColumn=0),null==endRow&&(endRow=foldLine.end.row,endColumn=this.getLine(endRow).length);var doc=this.doc,textLine=\"\";return foldLine.walk(function(placeholder,row,column,lastColumn){if(!(startRow>row)){if(row==startRow){if(startColumn>column)return;lastColumn=Math.max(startColumn,lastColumn)}textLine+=null!=placeholder?placeholder:doc.getLine(row).substring(lastColumn,column)}},endRow,endColumn),textLine},this.getDisplayLine=function(row,endColumn,startRow,startColumn){var foldLine=this.getFoldLine(row);if(foldLine)return this.getFoldDisplayLine(foldLine,row,endColumn,startRow,startColumn);var line;return line=this.doc.getLine(row),line.substring(startColumn||0,endColumn||line.length)},this.$cloneFoldData=function(){var fd=[];return fd=this.$foldData.map(function(foldLine){var folds=foldLine.folds.map(function(fold){return fold.clone()});return new FoldLine(fd,folds)})},this.toggleFold=function(tryToUnfold){var fold,bracketPos,selection=this.selection,range=selection.getRange();if(range.isEmpty()){var cursor=range.start;if(fold=this.getFoldAt(cursor.row,cursor.column))return this.expandFold(fold),void 0;(bracketPos=this.findMatchingBracket(cursor))?1==range.comparePoint(bracketPos)?range.end=bracketPos:(range.start=bracketPos,range.start.column++,range.end.column--):(bracketPos=this.findMatchingBracket({row:cursor.row,column:cursor.column+1}))?(1==range.comparePoint(bracketPos)?range.end=bracketPos:range.start=bracketPos,range.start.column++):range=this.getCommentFoldRange(cursor.row,cursor.column)||range}else{var folds=this.getFoldsInRange(range);if(tryToUnfold&&folds.length)return this.expandFolds(folds),void 0;1==folds.length&&(fold=folds[0])}if(fold||(fold=this.getFoldAt(range.start.row,range.start.column)),fold&&\"\"+fold.range==\"\"+range)return this.expandFold(fold),void 0;var placeholder=\"...\";if(!range.isMultiLine()){if(placeholder=this.getTextRange(range),4>placeholder.length)return;placeholder=placeholder.trim().substring(0,2)+\"..\"}this.addFold(placeholder,range)},this.getCommentFoldRange=function(row,column,dir){var iterator=new TokenIterator(this,row,column),token=iterator.getCurrentToken();if(token&&/^comment|string/.test(token.type)){var range=new Range,re=RegExp(token.type.replace(/\\..*/,\"\\\\.\"));if(1!=dir){do token=iterator.stepBackward();while(token&&re.test(token.type));iterator.stepForward()}if(range.start.row=iterator.getCurrentTokenRow(),range.start.column=iterator.getCurrentTokenColumn()+2,iterator=new TokenIterator(this,row,column),-1!=dir){do token=iterator.stepForward();while(token&&re.test(token.type));token=iterator.stepBackward()}else token=iterator.getCurrentToken();return range.end.row=iterator.getCurrentTokenRow(),range.end.column=iterator.getCurrentTokenColumn()+token.value.length-2,range}},this.foldAll=function(startRow,endRow,depth){void 0==depth&&(depth=1e5);var foldWidgets=this.foldWidgets;endRow=endRow||this.getLength();for(var row=startRow||0;endRow>row;row++)if(null==foldWidgets[row]&&(foldWidgets[row]=this.getFoldWidget(row)),\"start\"==foldWidgets[row]){var range=this.getFoldWidgetRange(row);if(range&&endRow>=range.end.row)try{var fold=this.addFold(\"...\",range);fold.collapseChildren=depth}catch(e){}row=range.end.row}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle=\"markbegin\",this.setFoldStyle=function(style){if(!this.$foldStyles[style])throw Error(\"invalid fold style: \"+style+\"[\"+Object.keys(this.$foldStyles).join(\", \")+\"]\");if(this.$foldStyle!=style){this.$foldStyle=style,\"manual\"==style&&this.unfold();var mode=this.$foldMode;this.$setFolding(null),this.$setFolding(mode)}},this.$setFolding=function(foldMode){if(this.$foldMode!=foldMode){if(this.$foldMode=foldMode,this.removeListener(\"change\",this.$updateFoldWidgets),this._emit(\"changeAnnotation\"),!foldMode||\"manual\"==this.$foldStyle)return this.foldWidgets=null,void 0;this.foldWidgets=[],this.getFoldWidget=foldMode.getFoldWidget.bind(foldMode,this,this.$foldStyle),this.getFoldWidgetRange=foldMode.getFoldWidgetRange.bind(foldMode,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.on(\"change\",this.$updateFoldWidgets)}},this.getParentFoldRangeData=function(row,ignoreCurrent){var fw=this.foldWidgets;if(!fw||ignoreCurrent&&fw[row])return{};for(var firstRange,i=row-1;i>=0;){var c=fw[i];if(null==c&&(c=fw[i]=this.getFoldWidget(i)),\"start\"==c){var range=this.getFoldWidgetRange(i);if(firstRange||(firstRange=range),range&&range.end.row>=row)break}i--}return{range:-1!==i&&range,firstRange:firstRange}},this.onFoldWidgetClick=function(row,e){var type=this.getFoldWidget(row),line=this.getLine(row);e=e.domEvent;var children=e.shiftKey,all=e.ctrlKey||e.metaKey,siblings=e.altKey,dir=\"end\"===type?-1:1,fold=this.getFoldAt(row,-1===dir?0:line.length,dir);if(fold)return children||all?this.removeFold(fold):this.expandFold(fold),void 0;var range=this.getFoldWidgetRange(row);if(range&&!range.isMultiLine()&&(fold=this.getFoldAt(range.start.row,range.start.column,1),fold&&range.isEqual(fold.range)))return this.removeFold(fold),void 0;if(siblings){var data=this.getParentFoldRangeData(row);if(data.range)var startRow=data.range.start.row+1,endRow=data.range.end.row;this.foldAll(startRow,endRow,all?1e4:0)}else if(children){var endRow=range?range.end.row:this.getLength();this.foldAll(row+1,range.end.row,all?1e4:0)}else range&&(all&&(range.collapseChildren=1e4),this.addFold(\"...\",range));range||((e.target||e.srcElement).className+=\" ace_invalid\")},this.updateFoldWidgets=function(e){var delta=e.data,range=delta.range,firstRow=range.start.row,len=range.end.row-firstRow;if(0===len)this.foldWidgets[firstRow]=null;else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.foldWidgets.splice(firstRow,len+1,null);else{var args=Array(len+1);args.unshift(firstRow,1),this.foldWidgets.splice.apply(this.foldWidgets,args)}}}var Range=acequire(\"../range\").Range,FoldLine=acequire(\"./fold_line\").FoldLine,Fold=acequire(\"./fold\").Fold,TokenIterator=acequire(\"../token_iterator\").TokenIterator;exports.Folding=Folding}),ace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){function FoldLine(foldData,folds){this.foldData=foldData,Array.isArray(folds)?this.folds=folds:folds=this.folds=[folds];var last=folds[folds.length-1];this.range=new Range(folds[0].start.row,folds[0].start.column,last.end.row,last.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(fold){fold.setFoldLine(this)},this)}var Range=acequire(\"../range\").Range;(function(){this.shiftRow=function(shift){this.start.row+=shift,this.end.row+=shift,this.folds.forEach(function(fold){fold.start.row+=shift,fold.end.row+=shift})},this.addFold=function(fold){if(fold.sameRow){if(fold.start.row\u003Cthis.startRow||fold.endRow>this.endRow)throw\"Can't add a fold to this FoldLine as it has no connection\";this.folds.push(fold),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(fold.start.row,fold.start.column)>0?(this.end.row=fold.end.row,this.end.column=fold.end.column):0>this.range.compareStart(fold.end.row,fold.end.column)&&(this.start.row=fold.start.row,this.start.column=fold.start.column)}else if(fold.start.row==this.end.row)this.folds.push(fold),this.end.row=fold.end.row,this.end.column=fold.end.column;else{if(fold.end.row!=this.start.row)throw\"Trying to add fold to FoldRow that doesn't have a matching row\";this.folds.unshift(fold),this.start.row=fold.start.row,this.start.column=fold.start.column}fold.foldLine=this},this.containsRow=function(row){return row>=this.start.row&&this.end.row>=row},this.walk=function(callback,endRow,endColumn){var fold,comp,stop,lastEnd=0,folds=this.folds,isNewRow=!0;null==endRow&&(endRow=this.end.row,endColumn=this.end.column);for(var i=0;folds.length>i;i++){if(fold=folds[i],comp=fold.range.compareStart(endRow,endColumn),-1==comp)return callback(null,endRow,endColumn,lastEnd,isNewRow),void 0;if(stop=callback(null,fold.start.row,fold.start.column,lastEnd,isNewRow),stop=!stop&&callback(fold.placeholder,fold.start.row,fold.start.column,lastEnd),stop||0==comp)return;isNewRow=!fold.sameRow,lastEnd=fold.end.column}callback(null,endRow,endColumn,lastEnd,isNewRow)},this.getNextFoldTo=function(row,column){for(var fold,cmp,i=0;this.folds.length>i;i++){if(fold=this.folds[i],cmp=fold.range.compareEnd(row,column),-1==cmp)return{fold:fold,kind:\"after\"};if(0==cmp)return{fold:fold,kind:\"inside\"}}return null},this.addRemoveChars=function(row,column,len){var fold,folds,ret=this.getNextFoldTo(row,column);if(ret)if(fold=ret.fold,\"inside\"==ret.kind&&fold.start.column!=column&&fold.start.row!=row)window.console&&window.console.log(row,column,fold);else if(fold.start.row==row){folds=this.folds;var i=folds.indexOf(fold);for(0==i&&(this.start.column+=len),i;folds.length>i;i++){if(fold=folds[i],fold.start.column+=len,!fold.sameRow)return;fold.end.column+=len}this.end.column+=len}},this.split=function(row,column){var fold=this.getNextFoldTo(row,column).fold,folds=this.folds,foldData=this.foldData;if(!fold)return null;var i=folds.indexOf(fold),foldBefore=folds[i-1];this.end.row=foldBefore.end.row,this.end.column=foldBefore.end.column,folds=folds.splice(i,folds.length-i);var newFoldLine=new FoldLine(foldData,folds);return foldData.splice(foldData.indexOf(this)+1,0,newFoldLine),newFoldLine},this.merge=function(foldLineNext){for(var folds=foldLineNext.folds,i=0;folds.length>i;i++)this.addFold(folds[i]);var foldData=this.foldData;foldData.splice(foldData.indexOf(foldLineNext),1)},this.toString=function(){var ret=[\"\"+this.range+\": [\"];return this.folds.forEach(function(fold){ret.push(\" \"+(\"\"+fold))}),ret.push(\"]\"),ret.join(\"\\n\")},this.idxToPosition=function(idx){for(var fold,lastFoldEndColumn=0,i=0;this.folds.length>i;i++){var fold=this.folds[i];if(idx-=fold.start.column-lastFoldEndColumn,0>idx)return{row:fold.start.row,column:fold.start.column+idx};if(idx-=fold.placeholder.length,0>idx)return fold.start;lastFoldEndColumn=fold.end.column}return{row:this.end.row,column:this.end.column+idx}}}).call(FoldLine.prototype),exports.FoldLine=FoldLine}),ace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"],function(acequire,exports){function consumePoint(point,anchor){point.row-=anchor.row,0==point.row&&(point.column-=anchor.column)}function consumeRange(range,anchor){consumePoint(range.start,anchor),consumePoint(range.end,anchor)}function restorePoint(point,anchor){0==point.row&&(point.column+=anchor.column),point.row+=anchor.row}function restoreRange(range,anchor){restorePoint(range.start,anchor),restorePoint(range.end,anchor)}acequire(\"../range\").Range;var RangeList=acequire(\"../range_list\").RangeList,oop=acequire(\"../lib/oop\"),Fold=exports.Fold=function(range,placeholder){this.foldLine=null,this.placeholder=placeholder,this.range=range,this.start=range.start,this.end=range.end,this.sameRow=range.start.row==range.end.row,this.subFolds=this.ranges=[]};oop.inherits(Fold,RangeList),function(){this.toString=function(){return'\"'+this.placeholder+'\" '+(\"\"+this.range)\n},this.setFoldLine=function(foldLine){this.foldLine=foldLine,this.subFolds.forEach(function(fold){fold.setFoldLine(foldLine)})},this.clone=function(){var range=this.range.clone(),fold=new Fold(range,this.placeholder);return this.subFolds.forEach(function(subFold){fold.subFolds.push(subFold.clone())}),fold.collapseChildren=this.collapseChildren,fold},this.addSubFold=function(fold){if(!this.range.isEqual(fold)){if(!this.range.containsRange(fold))throw\"A fold can't intersect already existing fold\"+fold.range+this.range;consumeRange(fold,this.start);for(var row=fold.start.row,column=fold.start.column,i=0,cmp=-1;this.subFolds.length>i&&(cmp=this.subFolds[i].range.compare(row,column),1==cmp);i++);var afterStart=this.subFolds[i];if(0==cmp)return afterStart.addSubFold(fold);for(var row=fold.range.end.row,column=fold.range.end.column,j=i,cmp=-1;this.subFolds.length>j&&(cmp=this.subFolds[j].range.compare(row,column),1==cmp);j++);if(this.subFolds[j],0==cmp)throw\"A fold can't intersect already existing fold\"+fold.range+this.range;return this.subFolds.splice(i,j-i,fold),fold.setFoldLine(this.foldLine),fold}},this.restoreRange=function(range){return restoreRange(range,this.start)}}.call(Fold.prototype)}),ace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"./range\").Range,comparePoints=Range.comparePoints,RangeList=function(){this.ranges=[]};(function(){this.comparePoints=comparePoints,this.pointIndex=function(pos,excludeEdges,startIndex){for(var list=this.ranges,i=startIndex||0;list.length>i;i++){var range=list[i],cmpEnd=comparePoints(pos,range.end);if(!(cmpEnd>0)){var cmpStart=comparePoints(pos,range.start);return 0===cmpEnd?excludeEdges&&0!==cmpStart?-i-2:i:cmpStart>0||0===cmpStart&&!excludeEdges?i:-i-1}}return-i-1},this.add=function(range){var excludeEdges=!range.isEmpty(),startIndex=this.pointIndex(range.start,excludeEdges);0>startIndex&&(startIndex=-startIndex-1);var endIndex=this.pointIndex(range.end,excludeEdges,startIndex);return 0>endIndex?endIndex=-endIndex-1:endIndex++,this.ranges.splice(startIndex,endIndex-startIndex,range)},this.addList=function(list){for(var removed=[],i=list.length;i--;)removed.push.call(removed,this.add(list[i]));return removed},this.substractPoint=function(pos){var i=this.pointIndex(pos);return i>=0?this.ranges.splice(i,1):void 0},this.merge=function(){var removed=[],list=this.ranges;list=list.sort(function(a,b){return comparePoints(a.start,b.start)});for(var range,next=list[0],i=1;list.length>i;i++){range=next,next=list[i];var cmp=comparePoints(range.end,next.start);0>cmp||(0!=cmp||range.isEmpty()||next.isEmpty())&&(0>comparePoints(range.end,next.end)&&(range.end.row=next.end.row,range.end.column=next.end.column),list.splice(i,1),removed.push(next),next=range,i--)}return this.ranges=list,removed},this.contains=function(row,column){return this.pointIndex({row:row,column:column})>=0},this.containsPoint=function(pos){return this.pointIndex(pos)>=0},this.rangeAtPoint=function(pos){var i=this.pointIndex(pos);return i>=0?this.ranges[i]:void 0},this.clipRows=function(startRow,endRow){var list=this.ranges;if(list[0].start.row>endRow||startRow>list[list.length-1].start.row)return[];var startIndex=this.pointIndex({row:startRow,column:0});0>startIndex&&(startIndex=-startIndex-1);var endIndex=this.pointIndex({row:endRow,column:0},startIndex);0>endIndex&&(endIndex=-endIndex-1);for(var clipped=[],i=startIndex;endIndex>i;i++)clipped.push(list[i]);return clipped},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(session){this.session&&this.detach(),this.session=session,this.onChange=this.$onChange.bind(this),this.session.on(\"change\",this.onChange)},this.detach=function(){this.session&&(this.session.removeListener(\"change\",this.onChange),this.session=null)},this.$onChange=function(e){var changeRange=e.data.range;if(\"i\"==e.data.action[0])var start=changeRange.start,end=changeRange.end;else var end=changeRange.start,start=changeRange.end;for(var startRow=start.row,endRow=end.row,lineDif=endRow-startRow,colDiff=-start.column+end.column,ranges=this.ranges,i=0,n=ranges.length;n>i;i++){var r=ranges[i];if(!(startRow>r.end.row)){if(r.start.row>startRow)break;r.start.row==startRow&&r.start.column>=start.column&&(r.start.column+=colDiff,r.start.row+=lineDif),r.end.row==startRow&&r.end.column>=start.column&&(r.end.column==start.column&&colDiff>0&&n-1>i&&r.end.column>r.start.column&&r.end.column==ranges[i+1].start.column&&(r.end.column-=colDiff),r.end.column+=colDiff,r.end.row+=lineDif)}}if(0!=lineDif&&n>i)for(;n>i;i++){var r=ranges[i];r.start.row+=lineDif,r.end.row+=lineDif}}}).call(RangeList.prototype),exports.RangeList=RangeList}),ace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var TokenIterator=function(session,initialRow,initialColumn){this.$session=session,this.$row=initialRow,this.$rowTokens=session.getTokens(initialRow);var token=session.getTokenAt(initialRow,initialColumn);this.$tokenIndex=token?token.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;0>this.$tokenIndex;){if(this.$row-=1,0>this.$row)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;for(var rowCount;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,rowCount||(rowCount=this.$session.getLength()),this.$row>=rowCount)return this.$row=rowCount-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var rowTokens=this.$rowTokens,tokenIndex=this.$tokenIndex,column=rowTokens[tokenIndex].start;if(void 0!==column)return column;for(column=0;tokenIndex>0;)tokenIndex-=1,column+=rowTokens[tokenIndex].value.length;return column}}).call(TokenIterator.prototype),exports.TokenIterator=TokenIterator}),ace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"],function(acequire,exports){function BracketMatch(){this.findMatchingBracket=function(position,chr){if(0==position.column)return null;var charBeforeCursor=chr||this.getLine(position.row).charAt(position.column-1);if(\"\"==charBeforeCursor)return null;var match=charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);return match?match[1]?this.$findClosingBracket(match[1],position):this.$findOpeningBracket(match[2],position):null},this.getBracketRange=function(pos){var range,line=this.getLine(pos.row),before=!0,chr=line.charAt(pos.column-1),match=chr&&chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);if(match||(chr=line.charAt(pos.column),pos={row:pos.row,column:pos.column+1},match=chr&&chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/),before=!1),!match)return null;if(match[1]){var bracketPos=this.$findClosingBracket(match[1],pos);if(!bracketPos)return null;range=Range.fromPoints(pos,bracketPos),before||(range.end.column++,range.start.column--),range.cursor=range.end}else{var bracketPos=this.$findOpeningBracket(match[2],pos);if(!bracketPos)return null;range=Range.fromPoints(bracketPos,pos),before||(range.start.column++,range.end.column--),range.cursor=range.start}return range},this.$brackets={\")\":\"(\",\"(\":\")\",\"]\":\"[\",\"[\":\"]\",\"{\":\"}\",\"}\":\"{\"},this.$findOpeningBracket=function(bracket,position,typeRe){var openBracket=this.$brackets[bracket],depth=1,iterator=new TokenIterator(this,position.row,position.column),token=iterator.getCurrentToken();if(token||(token=iterator.stepForward()),token){typeRe||(typeRe=RegExp(\"(\\\\.?\"+token.type.replace(\".\",\"\\\\.\").replace(\"rparen\",\".paren\")+\")+\"));for(var valueIndex=position.column-iterator.getCurrentTokenColumn()-2,value=token.value;;){for(;valueIndex>=0;){var chr=value.charAt(valueIndex);if(chr==openBracket){if(depth-=1,0==depth)return{row:iterator.getCurrentTokenRow(),column:valueIndex+iterator.getCurrentTokenColumn()}}else chr==bracket&&(depth+=1);valueIndex-=1}do token=iterator.stepBackward();while(token&&!typeRe.test(token.type));if(null==token)break;value=token.value,valueIndex=value.length-1}return null}},this.$findClosingBracket=function(bracket,position,typeRe){var closingBracket=this.$brackets[bracket],depth=1,iterator=new TokenIterator(this,position.row,position.column),token=iterator.getCurrentToken();if(token||(token=iterator.stepForward()),token){typeRe||(typeRe=RegExp(\"(\\\\.?\"+token.type.replace(\".\",\"\\\\.\").replace(\"lparen\",\".paren\")+\")+\"));for(var valueIndex=position.column-iterator.getCurrentTokenColumn();;){for(var value=token.value,valueLength=value.length;valueLength>valueIndex;){var chr=value.charAt(valueIndex);if(chr==closingBracket){if(depth-=1,0==depth)return{row:iterator.getCurrentTokenRow(),column:valueIndex+iterator.getCurrentTokenColumn()}}else chr==bracket&&(depth+=1);valueIndex+=1}do token=iterator.stepForward();while(token&&!typeRe.test(token.type));if(null==token)break;valueIndex=0}return null}}}var TokenIterator=acequire(\"../token_iterator\").TokenIterator,Range=acequire(\"../range\").Range;exports.BracketMatch=BracketMatch}),ace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"],function(acequire,exports){var lang=acequire(\"./lib/lang\"),oop=acequire(\"./lib/oop\"),Range=acequire(\"./range\").Range,Search=function(){this.$options={}};(function(){this.set=function(options){return oop.mixin(this.$options,options),this},this.getOptions=function(){return lang.copyObject(this.$options)},this.setOptions=function(options){this.$options=options},this.find=function(session){var iterator=this.$matchIterator(session,this.$options);if(!iterator)return!1;var firstRange=null;return iterator.forEach(function(range,row,offset){if(range.start)firstRange=range;else{var column=range.offset+(offset||0);firstRange=new Range(row,column,row,column+range.length)}return!0}),firstRange},this.findAll=function(session){var options=this.$options;if(!options.needle)return[];this.$assembleRegExp(options);var range=options.range,lines=range?session.getLines(range.start.row,range.end.row):session.doc.getAllLines(),ranges=[],re=options.re;if(options.$isMultiLine)for(var len=re.length,maxRow=lines.length-len,row=re.offset||0;maxRow>=row;row++){for(var j=0;len>j&&-1!=lines[row+j].search(re[j]);j++);var startLine=lines[row],line=lines[row+len-1],startIndex=startLine.match(re[0])[0].length,endIndex=line.match(re[len-1])[0].length;ranges.push(new Range(row,startLine.length-startIndex,row+len-1,endIndex))}else for(var i=0;lines.length>i;i++)for(var matches=lang.getMatchOffsets(lines[i],re),j=0;matches.length>j;j++){var match=matches[j];ranges.push(new Range(i,match.offset,i,match.offset+match.length))}if(range){for(var startColumn=range.start.column,endColumn=range.start.column,i=0,j=ranges.length-1;j>i&&startColumn>ranges[i].start.column&&ranges[i].start.row==range.start.row;)i++;for(;j>i&&ranges[j].end.column>endColumn&&ranges[j].end.row==range.end.row;)j--;return ranges.slice(i,j+1)}return ranges},this.replace=function(input,replacement){var options=this.$options,re=this.$assembleRegExp(options);if(options.$isMultiLine)return replacement;if(re){var match=re.exec(input);if(!match||match[0].length!=input.length)return null;if(replacement=input.replace(re,replacement),options.preserveCase){replacement=replacement.split(\"\");for(var i=Math.min(input.length,input.length);i--;){var ch=input[i];replacement[i]=ch&&ch.toLowerCase()!=ch?replacement[i].toUpperCase():replacement[i].toLowerCase()}replacement=replacement.join(\"\")}return replacement}},this.$matchIterator=function(session,options){var re=this.$assembleRegExp(options);if(!re)return!1;var callback,self=this,backwards=options.backwards;if(options.$isMultiLine)var len=re.length,matchIterator=function(line,row,offset){var startIndex=line.search(re[0]);if(-1!=startIndex){for(var i=1;len>i;i++)if(line=session.getLine(row+i),-1==line.search(re[i]))return;var endIndex=line.match(re[len-1])[0].length,range=new Range(row,startIndex,row+len-1,endIndex);return 1==re.offset?(range.start.row--,range.start.column=Number.MAX_VALUE):offset&&(range.start.column+=offset),callback(range)?!0:void 0}};else if(backwards)var matchIterator=function(line,row,startIndex){for(var matches=lang.getMatchOffsets(line,re),i=matches.length-1;i>=0;i--)if(callback(matches[i],row,startIndex))return!0};else var matchIterator=function(line,row,startIndex){for(var matches=lang.getMatchOffsets(line,re),i=0;matches.length>i;i++)if(callback(matches[i],row,startIndex))return!0};return{forEach:function(_callback){callback=_callback,self.$lineIterator(session,options).forEach(matchIterator)}}},this.$assembleRegExp=function(options){if(options.needle instanceof RegExp)return options.re=options.needle;var needle=options.needle;if(!options.needle)return options.re=!1;options.regExp||(needle=lang.escapeRegExp(needle)),options.wholeWord&&(needle=\"\\\\b\"+needle+\"\\\\b\");var modifier=options.caseSensitive?\"g\":\"gi\";if(options.$isMultiLine=/[\\n\\r]/.test(needle),options.$isMultiLine)return options.re=this.$assembleMultilineRegExp(needle,modifier);try{var re=RegExp(needle,modifier)}catch(e){re=!1}return options.re=re},this.$assembleMultilineRegExp=function(needle,modifier){for(var parts=needle.replace(/\\r\\n|\\r|\\n/g,\"$\\n^\").split(\"\\n\"),re=[],i=0;parts.length>i;i++)try{re.push(RegExp(parts[i],modifier))}catch(e){return!1}return\"\"==parts[0]?(re.shift(),re.offset=1):re.offset=0,re},this.$lineIterator=function(session,options){var backwards=1==options.backwards,skipCurrent=0!=options.skipCurrent,range=options.range,start=options.start;start||(start=range?range[backwards?\"end\":\"start\"]:session.selection.getRange()),start.start&&(start=start[skipCurrent!=backwards?\"end\":\"start\"]);var firstRow=range?range.start.row:0,lastRow=range?range.end.row:session.getLength()-1,forEach=backwards?function(callback){var row=start.row,line=session.getLine(row).substring(0,start.column);if(!callback(line,row)){for(row--;row>=firstRow;row--)if(callback(session.getLine(row),row))return;if(0!=options.wrap)for(row=lastRow,firstRow=start.row;row>=firstRow;row--)if(callback(session.getLine(row),row))return}}:function(callback){var row=start.row,line=session.getLine(row).substr(start.column);if(!callback(line,row,start.column)){for(row+=1;lastRow>=row;row++)if(callback(session.getLine(row),row))return;if(0!=options.wrap)for(row=firstRow,lastRow=start.row;lastRow>=row;row++)if(callback(session.getLine(row),row))return}};return{forEach:forEach}}}).call(Search.prototype),exports.Search=Search}),ace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),HashHandler=acequire(\"../keyboard/hash_handler\").HashHandler,EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,CommandManager=function(platform,commands){this.platform=platform,this.commands=this.byName={},this.commmandKeyBinding={},this.addCommands(commands),this.setDefaultHandler(\"exec\",function(e){return e.command.exec(e.editor,e.args||{})})};oop.inherits(CommandManager,HashHandler),function(){oop.implement(this,EventEmitter),this.exec=function(command,editor,args){if(\"string\"==typeof command&&(command=this.commands[command]),!command)return!1;if(editor&&editor.$readOnly&&!command.readOnly)return!1;var e={editor:editor,command:command,args:args},retvalue=this._emit(\"exec\",e);return this._signal(\"afterExec\",e),retvalue===!1?!1:!0},this.toggleRecording=function(editor){return this.$inReplay?void 0:(editor&&editor._emit(\"changeStatus\"),this.recording?(this.macro.pop(),this.removeEventListener(\"exec\",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on(\"exec\",this.$addCommandToMacro),this.recording=!0))},this.replay=function(editor){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(editor);try{this.$inReplay=!0,this.macro.forEach(function(x){\"string\"==typeof x?this.exec(x,editor):this.exec(x[0],editor,x[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(m){return m.map(function(x){return\"string\"!=typeof x[0]&&(x[0]=x[0].name),x[1]||(x=x[0]),x})}}.call(CommandManager.prototype),exports.CommandManager=CommandManager}),ace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"],function(acequire,exports){function HashHandler(config,platform){this.platform=platform||(useragent.isMac?\"mac\":\"win\"),this.commands={},this.commmandKeyBinding={},this.addCommands(config)}var keyUtil=acequire(\"../lib/keys\"),useragent=acequire(\"../lib/useragent\");(function(){this.addCommand=function(command){this.commands[command.name]&&this.removeCommand(command),this.commands[command.name]=command,command.bindKey&&this._buildKeyHash(command)},this.removeCommand=function(command){var name=\"string\"==typeof command?command:command.name;command=this.commands[name],delete this.commands[name];var ckb=this.commmandKeyBinding;for(var hashId in ckb)for(var key in ckb[hashId])ckb[hashId][key]==command&&delete ckb[hashId][key]},this.bindKey=function(key,command){if(key){if(\"function\"==typeof command)return this.addCommand({exec:command,bindKey:key,name:command.name||key}),void 0;var ckb=this.commmandKeyBinding;key.split(\"|\").forEach(function(keyPart){var binding=this.parseKeys(keyPart,command),hashId=binding.hashId;(ckb[hashId]||(ckb[hashId]={}))[binding.key]=command},this)}},this.addCommands=function(commands){commands&&Object.keys(commands).forEach(function(name){var command=commands[name];return\"string\"==typeof command?this.bindKey(command,name):(\"function\"==typeof command&&(command={exec:command}),command.name||(command.name=name),this.addCommand(command),void 0)},this)},this.removeCommands=function(commands){Object.keys(commands).forEach(function(name){this.removeCommand(commands[name])},this)},this.bindKeys=function(keyList){Object.keys(keyList).forEach(function(key){this.bindKey(key,keyList[key])},this)},this._buildKeyHash=function(command){var binding=command.bindKey;if(binding){var key=\"string\"==typeof binding?binding:binding[this.platform];this.bindKey(key,command)}},this.parseKeys=function(keys){-1!=keys.indexOf(\" \")&&(keys=keys.split(/\\s+/).pop());var parts=keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x}),key=parts.pop(),keyCode=keyUtil[key];if(keyUtil.FUNCTION_KEYS[keyCode])key=keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();else{if(!parts.length)return{key:key,hashId:-1};if(1==parts.length&&\"shift\"==parts[0])return{key:key.toUpperCase(),hashId:-1}}for(var hashId=0,i=parts.length;i--;){var modifier=keyUtil.KEY_MODS[parts[i]];if(null==modifier)return\"undefined\"!=typeof console&&console.error(\"invalid modifier \"+parts[i]+\" in \"+keys),!1;hashId|=modifier}return{key:key,hashId:hashId}},this.findKeyCommand=function(hashId,keyString){var ckbr=this.commmandKeyBinding;return ckbr[hashId]&&ckbr[hashId][keyString]},this.handleKeyboard=function(data,hashId,keyString){return{command:this.findKeyCommand(hashId,keyString)}}}).call(HashHandler.prototype),exports.HashHandler=HashHandler}),ace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\"],function(acequire,exports){function bindKey(win,mac){return{win:win,mac:mac}}var lang=acequire(\"../lib/lang\"),config=acequire(\"../config\");exports.commands=[{name:\"selectall\",bindKey:bindKey(\"Ctrl-A\",\"Command-A\"),exec:function(editor){editor.selectAll()},readOnly:!0},{name:\"centerselection\",bindKey:bindKey(null,\"Ctrl-L\"),exec:function(editor){editor.centerSelection()},readOnly:!0},{name:\"gotoline\",bindKey:bindKey(\"Ctrl-L\",\"Command-L\"),exec:function(editor){var line=parseInt(prompt(\"Enter line number:\"),10);isNaN(line)||editor.gotoLine(line)},readOnly:!0},{name:\"fold\",bindKey:bindKey(\"Alt-L|Ctrl-F1\",\"Command-Alt-L|Command-F1\"),exec:function(editor){editor.session.toggleFold(!1)},readOnly:!0},{name:\"unfold\",bindKey:bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\",\"Command-Alt-Shift-L|Command-Shift-F1\"),exec:function(editor){editor.session.toggleFold(!0)},readOnly:!0},{name:\"foldall\",bindKey:bindKey(\"Alt-0\",\"Command-Option-0\"),exec:function(editor){editor.session.foldAll()},readOnly:!0},{name:\"unfoldall\",bindKey:bindKey(\"Alt-Shift-0\",\"Command-Option-Shift-0\"),exec:function(editor){editor.session.unfold()},readOnly:!0},{name:\"findnext\",bindKey:bindKey(\"Ctrl-K\",\"Command-G\"),exec:function(editor){editor.findNext()},readOnly:!0},{name:\"findprevious\",bindKey:bindKey(\"Ctrl-Shift-K\",\"Command-Shift-G\"),exec:function(editor){editor.findPrevious()},readOnly:!0},{name:\"find\",bindKey:bindKey(\"Ctrl-F\",\"Command-F\"),exec:function(editor){config.loadModule(\"ace/ext/searchbox\",function(e){e.Search(editor)})},readOnly:!0},{name:\"overwrite\",bindKey:\"Insert\",exec:function(editor){editor.toggleOverwrite()},readOnly:!0},{name:\"selecttostart\",bindKey:bindKey(\"Ctrl-Shift-Home\",\"Command-Shift-Up\"),exec:function(editor){editor.getSelection().selectFileStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotostart\",bindKey:bindKey(\"Ctrl-Home\",\"Command-Home|Command-Up\"),exec:function(editor){editor.navigateFileStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectup\",bindKey:bindKey(\"Shift-Up\",\"Shift-Up\"),exec:function(editor){editor.getSelection().selectUp()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"golineup\",bindKey:bindKey(\"Up\",\"Up|Ctrl-P\"),exec:function(editor,args){editor.navigateUp(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttoend\",bindKey:bindKey(\"Ctrl-Shift-End\",\"Command-Shift-Down\"),exec:function(editor){editor.getSelection().selectFileEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoend\",bindKey:bindKey(\"Ctrl-End\",\"Command-End|Command-Down\"),exec:function(editor){editor.navigateFileEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectdown\",bindKey:bindKey(\"Shift-Down\",\"Shift-Down\"),exec:function(editor){editor.getSelection().selectDown()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"golinedown\",bindKey:bindKey(\"Down\",\"Down|Ctrl-N\"),exec:function(editor,args){editor.navigateDown(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectwordleft\",bindKey:bindKey(\"Ctrl-Shift-Left\",\"Option-Shift-Left\"),exec:function(editor){editor.getSelection().selectWordLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotowordleft\",bindKey:bindKey(\"Ctrl-Left\",\"Option-Left\"),exec:function(editor){editor.navigateWordLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttolinestart\",bindKey:bindKey(\"Alt-Shift-Left\",\"Command-Shift-Left\"),exec:function(editor){editor.getSelection().selectLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotolinestart\",bindKey:bindKey(\"Alt-Left|Home\",\"Command-Left|Home|Ctrl-A\"),exec:function(editor){editor.navigateLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectleft\",bindKey:bindKey(\"Shift-Left\",\"Shift-Left\"),exec:function(editor){editor.getSelection().selectLeft()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoleft\",bindKey:bindKey(\"Left\",\"Left|Ctrl-B\"),exec:function(editor,args){editor.navigateLeft(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectwordright\",bindKey:bindKey(\"Ctrl-Shift-Right\",\"Option-Shift-Right\"),exec:function(editor){editor.getSelection().selectWordRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotowordright\",bindKey:bindKey(\"Ctrl-Right\",\"Option-Right\"),exec:function(editor){editor.navigateWordRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttolineend\",bindKey:bindKey(\"Alt-Shift-Right\",\"Command-Shift-Right\"),exec:function(editor){editor.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotolineend\",bindKey:bindKey(\"Alt-Right|End\",\"Command-Right|End|Ctrl-E\"),exec:function(editor){editor.navigateLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectright\",bindKey:bindKey(\"Shift-Right\",\"Shift-Right\"),exec:function(editor){editor.getSelection().selectRight()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"gotoright\",bindKey:bindKey(\"Right\",\"Right|Ctrl-F\"),exec:function(editor,args){editor.navigateRight(args.times)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectpagedown\",bindKey:\"Shift-PageDown\",exec:function(editor){editor.selectPageDown()},readOnly:!0},{name:\"pagedown\",bindKey:bindKey(null,\"Option-PageDown\"),exec:function(editor){editor.scrollPageDown()},readOnly:!0},{name:\"gotopagedown\",bindKey:bindKey(\"PageDown\",\"PageDown|Ctrl-V\"),exec:function(editor){editor.gotoPageDown()},readOnly:!0},{name:\"selectpageup\",bindKey:\"Shift-PageUp\",exec:function(editor){editor.selectPageUp()},readOnly:!0},{name:\"pageup\",bindKey:bindKey(null,\"Option-PageUp\"),exec:function(editor){editor.scrollPageUp()},readOnly:!0},{name:\"gotopageup\",bindKey:\"PageUp\",exec:function(editor){editor.gotoPageUp()},readOnly:!0},{name:\"scrollup\",bindKey:bindKey(\"Ctrl-Up\",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"scrolldown\",bindKey:bindKey(\"Ctrl-Down\",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:\"selectlinestart\",bindKey:\"Shift-Home\",exec:function(editor){editor.getSelection().selectLineStart()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selectlineend\",bindKey:\"Shift-End\",exec:function(editor){editor.getSelection().selectLineEnd()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"togglerecording\",bindKey:bindKey(\"Ctrl-Alt-E\",\"Command-Option-E\"),exec:function(editor){editor.commands.toggleRecording(editor)},readOnly:!0},{name:\"replaymacro\",bindKey:bindKey(\"Ctrl-Shift-E\",\"Command-Shift-E\"),exec:function(editor){editor.commands.replay(editor)},readOnly:!0},{name:\"jumptomatching\",bindKey:bindKey(\"Ctrl-P\",\"Ctrl-Shift-P\"),exec:function(editor){editor.jumpToMatching()},multiSelectAction:\"forEach\",readOnly:!0},{name:\"selecttomatching\",bindKey:bindKey(\"Ctrl-Shift-P\",null),exec:function(editor){editor.jumpToMatching(!0)},multiSelectAction:\"forEach\",readOnly:!0},{name:\"cut\",exec:function(editor){var range=editor.getSelectionRange();editor._emit(\"cut\",range),editor.selection.isEmpty()||(editor.session.remove(range),editor.clearSelection())},multiSelectAction:\"forEach\"},{name:\"removeline\",bindKey:bindKey(\"Ctrl-D\",\"Command-D\"),exec:function(editor){editor.removeLines()},multiSelectAction:\"forEachLine\"},{name:\"duplicateSelection\",bindKey:bindKey(\"Ctrl-Shift-D\",\"Command-Shift-D\"),exec:function(editor){editor.duplicateSelection()},multiSelectAction:\"forEach\"},{name:\"sortlines\",bindKey:bindKey(\"Ctrl-Alt-S\",\"Command-Alt-S\"),exec:function(editor){editor.sortLines()},multiSelectAction:\"forEachLine\"},{name:\"togglecomment\",bindKey:bindKey(\"Ctrl-/\",\"Command-/\"),exec:function(editor){editor.toggleCommentLines()},multiSelectAction:\"forEachLine\"},{name:\"modifyNumberUp\",bindKey:bindKey(\"Ctrl-Shift-Up\",\"Alt-Shift-Up\"),exec:function(editor){editor.modifyNumber(1)},multiSelectAction:\"forEach\"},{name:\"modifyNumberDown\",bindKey:bindKey(\"Ctrl-Shift-Down\",\"Alt-Shift-Down\"),exec:function(editor){editor.modifyNumber(-1)},multiSelectAction:\"forEach\"},{name:\"replace\",bindKey:bindKey(\"Ctrl-H\",\"Command-Option-F\"),exec:function(editor){config.loadModule(\"ace/ext/searchbox\",function(e){e.Search(editor,!0)})}},{name:\"undo\",bindKey:bindKey(\"Ctrl-Z\",\"Command-Z\"),exec:function(editor){editor.undo()}},{name:\"redo\",bindKey:bindKey(\"Ctrl-Shift-Z|Ctrl-Y\",\"Command-Shift-Z|Command-Y\"),exec:function(editor){editor.redo()}},{name:\"copylinesup\",bindKey:bindKey(\"Alt-Shift-Up\",\"Command-Option-Up\"),exec:function(editor){editor.copyLinesUp()}},{name:\"movelinesup\",bindKey:bindKey(\"Alt-Up\",\"Option-Up\"),exec:function(editor){editor.moveLinesUp()}},{name:\"copylinesdown\",bindKey:bindKey(\"Alt-Shift-Down\",\"Command-Option-Down\"),exec:function(editor){editor.copyLinesDown()}},{name:\"movelinesdown\",bindKey:bindKey(\"Alt-Down\",\"Option-Down\"),exec:function(editor){editor.moveLinesDown()}},{name:\"del\",bindKey:bindKey(\"Delete\",\"Delete|Ctrl-D\"),exec:function(editor){editor.remove(\"right\")},multiSelectAction:\"forEach\"},{name:\"backspace\",bindKey:bindKey(\"Command-Backspace|Option-Backspace|Shift-Backspace|Backspace\",\"Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),exec:function(editor){editor.remove(\"left\")},multiSelectAction:\"forEach\"},{name:\"removetolinestart\",bindKey:bindKey(\"Alt-Backspace\",\"Command-Backspace\"),exec:function(editor){editor.removeToLineStart()},multiSelectAction:\"forEach\"},{name:\"removetolineend\",bindKey:bindKey(\"Alt-Delete\",\"Ctrl-K\"),exec:function(editor){editor.removeToLineEnd()},multiSelectAction:\"forEach\"},{name:\"removewordleft\",bindKey:bindKey(\"Ctrl-Backspace\",\"Alt-Backspace|Ctrl-Alt-Backspace\"),exec:function(editor){editor.removeWordLeft()},multiSelectAction:\"forEach\"},{name:\"removewordright\",bindKey:bindKey(\"Ctrl-Delete\",\"Alt-Delete\"),exec:function(editor){editor.removeWordRight()},multiSelectAction:\"forEach\"},{name:\"outdent\",bindKey:bindKey(\"Shift-Tab\",\"Shift-Tab\"),exec:function(editor){editor.blockOutdent()},multiSelectAction:\"forEach\"},{name:\"indent\",bindKey:bindKey(\"Tab\",\"Tab\"),exec:function(editor){editor.indent()},multiSelectAction:\"forEach\"},{name:\"blockoutdent\",bindKey:bindKey(\"Ctrl-[\",\"Ctrl-[\"),exec:function(editor){editor.blockOutdent()},multiSelectAction:\"forEachLine\"},{name:\"blockindent\",bindKey:bindKey(\"Ctrl-]\",\"Ctrl-]\"),exec:function(editor){editor.blockIndent()},multiSelectAction:\"forEachLine\"},{name:\"insertstring\",exec:function(editor,str){editor.insert(str)},multiSelectAction:\"forEach\"},{name:\"inserttext\",exec:function(editor,args){editor.insert(lang.stringRepeat(args.text||\"\",args.times||1))},multiSelectAction:\"forEach\"},{name:\"splitline\",bindKey:bindKey(null,\"Ctrl-O\"),exec:function(editor){editor.splitLine()},multiSelectAction:\"forEach\"},{name:\"transposeletters\",bindKey:bindKey(\"Ctrl-T\",\"Ctrl-T\"),exec:function(editor){editor.transposeLetters()},multiSelectAction:function(editor){editor.transposeSelections(1)}},{name:\"touppercase\",bindKey:bindKey(\"Ctrl-U\",\"Ctrl-U\"),exec:function(editor){editor.toUpperCase()},multiSelectAction:\"forEach\"},{name:\"tolowercase\",bindKey:bindKey(\"Ctrl-Shift-U\",\"Ctrl-Shift-U\"),exec:function(editor){editor.toLowerCase()},multiSelectAction:\"forEach\"}]}),ace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"],function(acequire,exports){var UndoManager=function(){this.reset()};(function(){this.execute=function(options){var deltas=options.args[0];this.$doc=options.args[1],this.$undoStack.push(deltas),this.$redoStack=[]},this.undo=function(dontSelect){var deltas=this.$undoStack.pop(),undoSelectionRange=null;return deltas&&(undoSelectionRange=this.$doc.undoChanges(deltas,dontSelect),this.$redoStack.push(deltas)),undoSelectionRange},this.redo=function(dontSelect){var deltas=this.$redoStack.pop(),redoSelectionRange=null;return deltas&&(redoSelectionRange=this.$doc.redoChanges(deltas,dontSelect),this.$undoStack.push(deltas)),redoSelectionRange},this.reset=function(){this.$undoStack=[],this.$redoStack=[]},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(UndoManager.prototype),exports.UndoManager=UndoManager}),ace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),useragent=acequire(\"./lib/useragent\"),config=acequire(\"./config\"),GutterLayer=acequire(\"./layer/gutter\").Gutter,MarkerLayer=acequire(\"./layer/marker\").Marker,TextLayer=acequire(\"./layer/text\").Text,CursorLayer=acequire(\"./layer/cursor\").Cursor,ScrollBar=acequire(\"./scrollbar\").ScrollBar,RenderLoop=acequire(\"./renderloop\").RenderLoop,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,editorCss=\".ace_editor {position: relative;overflow: hidden;font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;font-size: 12px;line-height: normal;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: text;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\\\");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\\\");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url(\\\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\\\");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTk5MTVGREIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTk5MTVGRUIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFOTkxNUZCQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFOTkxNUZDQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SIDkjAAAAJ1JREFUeNpi/P//PwMlgImBQkB7A6qrq/+DMC55FkIGKCoq4pVnpFkgTp069f/+/fv/r1u37r+tre1/kg0A+ptn9uzZYLaRkRHpLvjw4cNXWVlZhufPnzOcO3eOdAO0tbVPAjHDmzdvGA4fPsxIsgGSkpJmv379Ynj37h2DjIyMCMkG3LhxQ/T27dsMampqDHZ2dq/pH41DxwCAAAMAFdc68dUsFZgAAAAASUVORK5CYII=\\\");}.ace_scrollbar {position: absolute;overflow-x: hidden;overflow-y: scroll;right: 0;top: 0;bottom: 0;}.ace_scrollbar-inner {position: absolute;width: 1px;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;}.ace_text-input.ace_composition {background: #f8f8f8;color: #111;z-index: 1000;opacity: 1;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;white-space: nowrap;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;/* setting pointer-events: auto; on node under the mouse, which changesduring scroll, will break mouse wheel scrolling in Safari */pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {color: black;font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-moz-transition: opacity 0.18s;-webkit-transition: opacity 0.18s;-o-transition: opacity 0.18s;-ms-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_cursor[style*=\\\"opacity: 0\\\"]{-ms-filter: \\\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\\\";}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_line {white-space: nowrap;}.ace_marker-layer .ace_step {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\\\"),url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\\\"),url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;}.ace_editor.ace_dragging .ace_content {cursor: move;}.ace_gutter-tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;display: inline-block;max-width: 500px;padding: 4px;position: fixed;z-index: 300;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre-line;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: inline-block;width: 11px;vertical-align: top;background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\\\");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;}.ace_fold-widget.ace_end {background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\\\");}.ace_fold-widget.ace_closed {background-image: url(\\\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\\\");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}/*** Dark version for fold widgets*/.ace_dark .ace_fold-widget {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");}.ace_dark .ace_fold-widget.ace_end {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");}.ace_dark .ace_fold-widget.ace_closed {background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-moz-transition: opacity 0.4s ease 0.05s;-webkit-transition: opacity 0.4s ease 0.05s;-o-transition: opacity 0.4s ease 0.05s;-ms-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-moz-transition: opacity 0.05s ease 0.05s;-webkit-transition: opacity 0.05s ease 0.05s;-o-transition: opacity 0.05s ease 0.05s;-ms-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}\";\ndom.importCssString(editorCss,\"ace_editor\");var VirtualRenderer=function(container,theme){var _self=this;this.container=container||dom.createElement(\"div\"),this.$keepTextAreaAtCursor=!useragent.isIE,dom.addCssClass(this.container,\"ace_editor\"),this.setTheme(theme),this.$gutter=dom.createElement(\"div\"),this.$gutter.className=\"ace_gutter\",this.container.appendChild(this.$gutter),this.scroller=dom.createElement(\"div\"),this.scroller.className=\"ace_scroller\",this.container.appendChild(this.scroller),this.content=dom.createElement(\"div\"),this.content.className=\"ace_content\",this.scroller.appendChild(this.content),this.$gutterLayer=new GutterLayer(this.$gutter),this.$gutterLayer.on(\"changeGutterWidth\",this.onGutterResize.bind(this)),this.$markerBack=new MarkerLayer(this.content);var textLayer=this.$textLayer=new TextLayer(this.content);this.canvas=textLayer.element,this.$markerFront=new MarkerLayer(this.content),this.$cursorLayer=new CursorLayer(this.content),this.$horizScroll=!1,this.scrollBar=new ScrollBar(this.container),this.scrollBar.addEventListener(\"scroll\",function(e){_self.$inScrollAnimation||_self.session.setScrollTop(e.data)}),this.scrollTop=0,this.scrollLeft=0,event.addListener(this.scroller,\"scroll\",function(){var scrollLeft=_self.scroller.scrollLeft;_self.scrollLeft=scrollLeft,_self.session.setScrollLeft(scrollLeft)}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener(\"changeCharacterSize\",function(){_self.updateCharacterSize(),_self.onResize(!0)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new RenderLoop(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),config.resetOptions(this),config._emit(\"renderer\",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,oop.implement(this,EventEmitter),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle(\"ace_nobold\",!this.$allowBoldFonts)),this.characterWidth=this.$textLayer.getCharacterWidth(),this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(session){this.session=session,this.scroller.className=\"ace_scroller\",this.$cursorLayer.setSession(session),this.$markerBack.setSession(session),this.$markerFront.setSession(session),this.$gutterLayer.setSession(session),this.$textLayer.setSession(session),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(firstRow,lastRow){void 0===lastRow&&(lastRow=1/0),this.$changedLines?(this.$changedLines.firstRow>firstRow&&(this.$changedLines.firstRow=firstRow),lastRow>this.$changedLines.lastRow&&(this.$changedLines.lastRow=lastRow)):this.$changedLines={firstRow:firstRow,lastRow:lastRow},this.$changedLines.firstRow>this.layerConfig.lastRow||this.$changedLines.lastRow\u003Cthis.layerConfig.firstRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(force){force?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.onResize=function(force,gutterWidth,width,height){var changes=0,size=this.$size;if(!(this.resizing>2)){if(this.resizing>1?this.resizing++:this.resizing=force?1:0,height||(height=dom.getInnerHeight(this.container)),height&&(force||size.height!=height)&&(size.height=height,changes=this.CHANGE_SIZE,size.scrollerHeight=this.scroller.clientHeight,size.scrollerHeight||(size.scrollerHeight=size.height,this.$horizScroll&&(size.scrollerHeight-=this.scrollBar.getWidth())),this.scrollBar.setHeight(size.scrollerHeight),this.session&&(this.session.setScrollTop(this.getScrollTop()),changes|=this.CHANGE_FULL)),width||(width=dom.getInnerWidth(this.container)),width&&(force||this.resizing>1||size.width!=width)){changes=this.CHANGE_SIZE,size.width=width;var gutterWidth=this.$showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=gutterWidth+\"px\",size.scrollerWidth=Math.max(0,width-gutterWidth-this.scrollBar.getWidth()),this.scroller.style.right=this.scrollBar.getWidth()+\"px\",(this.session.getUseWrapMode()&&this.adjustWrapLimit()||force)&&(changes|=this.CHANGE_FULL)}this.$size.scrollerHeight&&(force?this.$renderChanges(changes,!0):this.$loop.schedule(changes),force&&(this.$gutterLayer.$padding=null),force&&delete this.resizing)}},this.onGutterResize=function(){var width=this.$size.width,gutterWidth=this.$showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=gutterWidth+\"px\",this.$size.scrollerWidth=Math.max(0,width-gutterWidth-this.scrollBar.getWidth()),this.session.getUseWrapMode()&&this.adjustWrapLimit()&&this.$loop.schedule(this.CHANGE_FULL)},this.adjustWrapLimit=function(){var availableWidth=this.$size.scrollerWidth-2*this.$padding,limit=Math.floor(availableWidth/this.characterWidth);return this.session.adjustWrapLimit(limit,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(shouldAnimate){this.setOption(\"animatedScroll\",shouldAnimate)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(showInvisibles){this.setOption(\"showInvisibles\",showInvisibles)},this.getShowInvisibles=function(){return this.getOption(\"showInvisibles\")},this.getDisplayIndentGuides=function(){return this.getOption(\"displayIndentGuides\")},this.setDisplayIndentGuides=function(display){this.setOption(\"displayIndentGuides\",display)},this.setShowPrintMargin=function(showPrintMargin){this.setOption(\"showPrintMargin\",showPrintMargin)},this.getShowPrintMargin=function(){return this.getOption(\"showPrintMargin\")},this.setPrintMarginColumn=function(showPrintMargin){this.setOption(\"printMarginColumn\",showPrintMargin)},this.getPrintMarginColumn=function(){return this.getOption(\"printMarginColumn\")},this.getShowGutter=function(){return this.getOption(\"showGutter\")},this.setShowGutter=function(show){return this.setOption(\"showGutter\",show)},this.getFadeFoldWidgets=function(){return this.getOption(\"fadeFoldWidgets\")},this.setFadeFoldWidgets=function(show){this.setOption(\"fadeFoldWidgets\",show)},this.setHighlightGutterLine=function(shouldHighlight){this.setOption(\"highlightGutterLine\",shouldHighlight)},this.getHighlightGutterLine=function(){return this.getOption(\"highlightGutterLine\")},this.$updateGutterLineHighlight=function(){var pos=this.$cursorLayer.$pixelPos,height=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var cursor=this.session.selection.getCursor();cursor.column=0,pos=this.$cursorLayer.getPixelPosition(cursor,!0),height*=this.session.getRowLength(cursor.row)}this.$gutterLineHighlight.style.top=pos.top-this.layerConfig.offset+\"px\",this.$gutterLineHighlight.style.height=height+\"px\"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var containerEl=dom.createElement(\"div\");containerEl.className=\"ace_layer ace_print-margin-layer\",this.$printMarginEl=dom.createElement(\"div\"),this.$printMarginEl.className=\"ace_print-margin\",containerEl.appendChild(this.$printMarginEl),this.content.insertBefore(containerEl,this.content.firstChild)}var style=this.$printMarginEl.style;style.left=this.characterWidth*this.$printMarginColumn+this.$padding+\"px\",style.visibility=this.$showPrintMargin?\"visible\":\"hidden\",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.content},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var config=this.layerConfig,posTop=this.$cursorLayer.$pixelPos.top,posLeft=this.$cursorLayer.$pixelPos.left;posTop-=config.offset;var h=this.lineHeight;if(!(0>posTop||posTop>config.height-h)){var w=this.characterWidth;if(this.$composition){var val=this.textarea.value.replace(/^\\x01+/,\"\");w*=this.session.$getStringScreenWidth(val)[0],h+=2,posTop-=1}posLeft-=this.scrollLeft,posLeft>this.$size.scrollerWidth-w&&(posLeft=this.$size.scrollerWidth-w),posLeft-=this.scrollBar.width,this.textarea.style.height=h+\"px\",this.textarea.style.width=w+\"px\",this.textarea.style.right=Math.max(0,this.$size.scrollerWidth-posLeft-w)+\"px\",this.textarea.style.bottom=Math.max(0,this.$size.height-posTop-h)+\"px\"}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var flint=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+flint},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(padding){this.$padding=padding,this.$textLayer.setPadding(padding),this.$cursorLayer.setPadding(padding),this.$markerFront.setPadding(padding),this.$markerBack.setPadding(padding),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(alwaysVisible){this.setOption(\"hScrollBarAlwaysVisible\",alwaysVisible)},this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight),this.scrollBar.setScrollTop(this.scrollTop)},this.$renderChanges=function(changes,force){if(force||changes&&this.session&&this.container.offsetWidth){if(this._signal(\"beforeRender\"),(changes&this.CHANGE_FULL||changes&this.CHANGE_SIZE||changes&this.CHANGE_TEXT||changes&this.CHANGE_LINES||changes&this.CHANGE_SCROLL)&&this.$computeLayerConfig(),changes&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var scrollLeft=this.scroller.scrollLeft;this.scrollLeft=scrollLeft,this.session.setScrollLeft(scrollLeft),this.scroller.className=0==this.scrollLeft?\"ace_scroller\":\"ace_scroller ace_scroll-left\"}if(changes&this.CHANGE_FULL)return this.$textLayer.checkForSizeChanges(),this.$updateScrollBar(),this.$textLayer.update(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal(\"afterRender\"),void 0;if(changes&this.CHANGE_SCROLL)return changes&this.CHANGE_TEXT||changes&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this.$updateScrollBar(),this._signal(\"afterRender\"),void 0;changes&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.$showGutter&&this.$gutterLayer.update(this.layerConfig)):changes&this.CHANGE_LINES?(this.$updateLines()||changes&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(this.layerConfig):(changes&this.CHANGE_TEXT||changes&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(this.layerConfig),changes&this.CHANGE_CURSOR&&(this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),changes&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),changes&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),changes&this.CHANGE_SIZE&&this.$updateScrollBar(),this._signal(\"afterRender\")}},this.$computeLayerConfig=function(){if(!this.$size.scrollerHeight)return this.onResize(!0);var session=this.session,offset=this.scrollTop%this.lineHeight,minHeight=this.$size.scrollerHeight+this.lineHeight,longestLine=this.$getLongestLine(),horizScroll=this.$hScrollBarAlwaysVisible||0>this.$size.scrollerWidth-longestLine,horizScrollChanged=this.$horizScroll!==horizScroll;this.$horizScroll=horizScroll,horizScrollChanged&&(this.scroller.style.overflowX=horizScroll?\"scroll\":\"hidden\",horizScroll||this.session.setScrollLeft(0));var maxHeight=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,maxHeight-this.$size.scrollerHeight)));var firstRowScreen,firstRowHeight,lineCount=Math.ceil(minHeight/this.lineHeight)-1,firstRow=Math.max(0,Math.round((this.scrollTop-offset)/this.lineHeight)),lastRow=firstRow+lineCount,lineHeight=this.lineHeight;firstRow=session.screenToDocumentRow(firstRow,0);var foldLine=session.getFoldLine(firstRow);foldLine&&(firstRow=foldLine.start.row),firstRowScreen=session.documentToScreenRow(firstRow,0),firstRowHeight=session.getRowLength(firstRow)*lineHeight,lastRow=Math.min(session.screenToDocumentRow(lastRow,0),session.getLength()-1),minHeight=this.$size.scrollerHeight+session.getRowLength(lastRow)*lineHeight+firstRowHeight,offset=this.scrollTop-firstRowScreen*lineHeight,this.layerConfig={width:longestLine,padding:this.$padding,firstRow:firstRow,firstRowScreen:firstRowScreen,lastRow:lastRow,lineHeight:lineHeight,characterWidth:this.characterWidth,minHeight:minHeight,maxHeight:maxHeight,offset:offset,height:this.$size.scrollerHeight},this.$gutterLayer.element.style.marginTop=-offset+\"px\",this.content.style.marginTop=-offset+\"px\",this.content.style.width=longestLine+2*this.$padding+\"px\",this.content.style.height=minHeight+\"px\",horizScrollChanged&&this.onResize(!0)},this.$updateLines=function(){var firstRow=this.$changedLines.firstRow,lastRow=this.$changedLines.lastRow;this.$changedLines=null;var layerConfig=this.layerConfig;return firstRow>layerConfig.lastRow+1||layerConfig.firstRow>lastRow?void 0:1/0===lastRow?(this.$showGutter&&this.$gutterLayer.update(layerConfig),this.$textLayer.update(layerConfig),void 0):(this.$textLayer.updateLines(layerConfig,firstRow,lastRow),!0)},this.$getLongestLine=function(){var charCount=this.session.getScreenWidth();return this.$textLayer.showInvisibles&&(charCount+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(charCount*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(row,className){this.$gutterLayer.addGutterDecoration(row,className)},this.removeGutterDecoration=function(row,className){this.$gutterLayer.removeGutterDecoration(row,className)},this.updateBreakpoints=function(){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(annotations){this.$gutterLayer.setAnnotations(annotations),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(anchor,lead,offset){this.scrollCursorIntoView(anchor,offset),this.scrollCursorIntoView(lead,offset)},this.scrollCursorIntoView=function(cursor,offset){if(0!==this.$size.scrollerHeight){var pos=this.$cursorLayer.getPixelPosition(cursor),left=pos.left,top=pos.top;this.scrollTop>top?(offset&&(top-=offset*this.$size.scrollerHeight),this.session.setScrollTop(top)):this.scrollTop+this.$size.scrollerHeight\u003Ctop+this.lineHeight&&(offset&&(top+=offset*this.$size.scrollerHeight),this.session.setScrollTop(top+this.lineHeight-this.$size.scrollerHeight));var scrollLeft=this.scrollLeft;scrollLeft>left?(this.$padding+2*this.layerConfig.characterWidth>left&&(left=0),this.session.setScrollLeft(left)):scrollLeft+this.$size.scrollerWidth\u003Cleft+this.characterWidth&&this.session.setScrollLeft(Math.round(left+this.characterWidth-this.$size.scrollerWidth))}},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(row){this.session.setScrollTop(row*this.lineHeight)},this.alignCursor=function(cursor,alignment){\"number\"==typeof cursor&&(cursor={row:cursor,column:0});var pos=this.$cursorLayer.getPixelPosition(cursor),h=this.$size.scrollerHeight-this.lineHeight,offset=pos.top-h*(alignment||0);return this.session.setScrollTop(offset),offset},this.STEPS=8,this.$calcSteps=function(fromValue,toValue){var i=0,l=this.STEPS,steps=[],func=function(t,x_min,dx){return dx*(Math.pow(t-1,3)+1)+x_min};for(i=0;l>i;++i)steps.push(func(i/this.STEPS,fromValue,toValue-fromValue));return steps},this.scrollToLine=function(line,center,animate,callback){var pos=this.$cursorLayer.getPixelPosition({row:line,column:0}),offset=pos.top;center&&(offset-=this.$size.scrollerHeight/2);var initialScroll=this.scrollTop;this.session.setScrollTop(offset),animate!==!1&&this.animateScrolling(initialScroll,callback)},this.animateScrolling=function(fromValue,callback){var toValue=this.scrollTop;if(this.$animatedScroll&&1e5>Math.abs(fromValue-toValue)){var _self=this,steps=_self.$calcSteps(fromValue,toValue);this.$inScrollAnimation=!0,clearInterval(this.$timer),_self.session.setScrollTop(steps.shift()),this.$timer=setInterval(function(){steps.length?(_self.session.setScrollTop(steps.shift()),_self.session.$scrollTop=toValue):null!=toValue?(_self.session.$scrollTop=-1,_self.session.setScrollTop(toValue),toValue=null):(_self.$timer=clearInterval(_self.$timer),_self.$inScrollAnimation=!1,callback&&callback())},10)}},this.scrollToY=function(scrollTop){this.scrollTop!==scrollTop&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=scrollTop)},this.scrollToX=function(scrollLeft){0>scrollLeft&&(scrollLeft=0),this.scrollLeft!==scrollLeft&&(this.scrollLeft=scrollLeft),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollBy=function(deltaX,deltaY){deltaY&&this.session.setScrollTop(this.session.getScrollTop()+deltaY),deltaX&&this.session.setScrollLeft(this.session.getScrollLeft()+deltaX)},this.isScrollableBy=function(deltaX,deltaY){return 0>deltaY&&this.session.getScrollTop()>=1?!0:deltaY>0&&-1>this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight?!0:void 0},this.pixelToScreenCoordinates=function(x,y){var canvasPos=this.scroller.getBoundingClientRect(),offset=(x+this.scrollLeft-canvasPos.left-this.$padding)/this.characterWidth,row=Math.floor((y+this.scrollTop-canvasPos.top)/this.lineHeight),col=Math.round(offset);return{row:row,column:col,side:offset-col>0?1:-1}},this.screenToTextCoordinates=function(x,y){var canvasPos=this.scroller.getBoundingClientRect(),col=Math.round((x+this.scrollLeft-canvasPos.left-this.$padding)/this.characterWidth),row=Math.floor((y+this.scrollTop-canvasPos.top)/this.lineHeight);return this.session.screenToDocumentPosition(row,Math.max(col,0))},this.textToScreenCoordinates=function(row,column){var canvasPos=this.scroller.getBoundingClientRect(),pos=this.session.documentToScreenPosition(row,column),x=this.$padding+Math.round(pos.column*this.characterWidth),y=pos.row*this.lineHeight;return{pageX:canvasPos.left+x-this.scrollLeft,pageY:canvasPos.top+y-this.scrollTop}},this.visualizeFocus=function(){dom.addCssClass(this.container,\"ace_focus\")},this.visualizeBlur=function(){dom.removeCssClass(this.container,\"ace_focus\")},this.showComposition=function(){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,dom.addCssClass(this.textarea,\"ace_composition\"),this.textarea.style.cssText=\"\",this.$moveTextAreaToCursor()},this.setCompositionText=function(){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(dom.removeCssClass(this.textarea,\"ace_composition\"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(theme){function afterLoad(theme){if(theme.cssClass){dom.importCssString(theme.cssText,theme.cssClass,_self.container.ownerDocument),_self.theme&&dom.removeCssClass(_self.container,_self.theme.cssClass),_self.$theme=theme.cssClass,_self.theme=theme,dom.addCssClass(_self.container,theme.cssClass),dom.setCssClass(_self.container,\"ace_dark\",theme.isDark);var padding=theme.padding||4;_self.$padding&&padding!=_self.$padding&&_self.setPadding(padding),_self.$size&&(_self.$size.width=0,_self.onResize()),_self._dispatchEvent(\"themeLoaded\",{theme:theme})}}var _self=this;if(this.$themeValue=theme,_self._dispatchEvent(\"themeChange\",{theme:theme}),theme&&\"string\"!=typeof theme)afterLoad(theme);else{var moduleName=theme||\"ace/theme/textmate\";config.loadModule([\"theme\",moduleName],afterLoad)}},this.getTheme=function(){return this.$themeValue},this.setStyle=function(style,include){dom.setCssClass(this.container,style,0!=include)},this.unsetStyle=function(style){dom.removeCssClass(this.container,style)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(VirtualRenderer.prototype),config.defineOptions(VirtualRenderer.prototype,\"renderer\",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(value){this.$textLayer.setShowInvisibles(value)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(val){\"number\"==typeof val&&(this.$printMarginColumn=val),this.$showPrintMargin=!!val,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(show){this.$gutter.style.display=show?\"block\":\"none\",this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(show){dom.setCssClass(this.$gutter,\"ace_fade-fold-widgets\",show)},initialValue:!1},showFoldWidgets:{set:function(show){this.$gutterLayer.setShowFoldWidgets(show)},initialValue:!0},displayIndentGuides:{set:function(show){this.$textLayer.setDisplayIndentGuides(show)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(shouldHighlight){return this.$gutterLineHighlight?(this.$gutterLineHighlight.style.display=shouldHighlight?\"\":\"none\",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight(),void 0):(this.$gutterLineHighlight=dom.createElement(\"div\"),this.$gutterLineHighlight.className=\"ace_gutter-active-line\",this.$gutter.appendChild(this.$gutterLineHighlight),void 0)},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(alwaysVisible){this.$hScrollBarAlwaysVisible=alwaysVisible,this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(size){\"number\"==typeof size&&(size+=\"px\"),this.container.style.fontSize=size,this.updateFontSize()},initialValue:12},fontFamily:{set:function(name){this.container.style.fontFamily=name,this.updateFontSize()}}}),exports.VirtualRenderer=VirtualRenderer}),ace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"],function(acequire,exports){var dom=acequire(\"../lib/dom\"),oop=acequire(\"../lib/oop\"),lang=acequire(\"../lib/lang\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,Gutter=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_gutter-layer\",parentEl.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this)};(function(){oop.implement(this,EventEmitter),this.setSession=function(session){this.session&&this.session.removeEventListener(\"change\",this.$updateAnnotations),this.session=session,session.on(\"change\",this.$updateAnnotations)},this.addGutterDecoration=function(row,className){window.console&&console.warn&&console.warn(\"deprecated use session.addGutterDecoration\"),this.session.addGutterDecoration(row,className)},this.removeGutterDecoration=function(row,className){window.console&&console.warn&&console.warn(\"deprecated use session.removeGutterDecoration\"),this.session.removeGutterDecoration(row,className)},this.setAnnotations=function(annotations){this.$annotations=[];for(var rowInfo,row,i=0;annotations.length>i;i++){var annotation=annotations[i],row=annotation.row,rowInfo=this.$annotations[row];rowInfo||(rowInfo=this.$annotations[row]={text:[]});var annoText=annotation.text;annoText=annoText?lang.escapeHTML(annoText):annotation.html||\"\",-1===rowInfo.text.indexOf(annoText)&&rowInfo.text.push(annoText);var type=annotation.type;\"error\"==type?rowInfo.className=\" ace_error\":\"warning\"==type&&\" ace_error\"!=rowInfo.className?rowInfo.className=\" ace_warning\":\"info\"!=type||rowInfo.className||(rowInfo.className=\" ace_info\")}},this.$updateAnnotations=function(e){if(this.$annotations.length){var delta=e.data,range=delta.range,firstRow=range.start.row,len=range.end.row-firstRow;if(0===len);else if(\"removeText\"==delta.action||\"removeLines\"==delta.action)this.$annotations.splice(firstRow,len+1,null);else{var args=Array(len+1);args.unshift(firstRow,1),this.$annotations.splice.apply(this.$annotations,args)}}},this.update=function(config){for(var emptyAnno={className:\"\"},html=[],i=config.firstRow,lastRow=config.lastRow,fold=this.session.getNextFoldLine(i),foldStart=fold?fold.start.row:1/0,foldWidgets=this.$showFoldWidgets&&this.session.foldWidgets,breakpoints=this.session.$breakpoints,decorations=this.session.$decorations,firstLineNumber=this.session.$firstLineNumber,lastLineNumber=0;;){if(i>foldStart&&(i=fold.end.row+1,fold=this.session.getNextFoldLine(i,fold),foldStart=fold?fold.start.row:1/0),i>lastRow)break;var annotation=this.$annotations[i]||emptyAnno;if(html.push(\"\u003Cdiv class='ace_gutter-cell \",breakpoints[i]||\"\",decorations[i]||\"\",annotation.className,\"' style='height:\",this.session.getRowLength(i)*config.lineHeight,\"px;'>\",lastLineNumber=i+firstLineNumber),foldWidgets){var c=foldWidgets[i];null==c&&(c=foldWidgets[i]=this.session.getFoldWidget(i)),c&&html.push(\"\u003Cspan class='ace_fold-widget ace_\",c,\"start\"==c&&i==foldStart&&fold.end.row>i?\" ace_closed\":\" ace_open\",\"' style='height:\",config.lineHeight,\"px\",\"'>\u003C/span>\")}html.push(\"\u003C/div>\"),i++}this.element=dom.setInnerHtml(this.element,html.join(\"\")),this.element.style.height=config.minHeight+\"px\",this.session.$useWrapMode&&(lastLineNumber=this.session.getLength());var gutterWidth=(\"\"+lastLineNumber).length*config.characterWidth,padding=this.$padding||this.$computePadding();gutterWidth+=padding.left+padding.right,gutterWidth!==this.gutterWidth&&(this.gutterWidth=gutterWidth,this.element.style.width=Math.ceil(this.gutterWidth)+\"px\",this._emit(\"changeGutterWidth\",gutterWidth))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(show){show?dom.addCssClass(this.element,\"ace_folding-enabled\"):dom.removeCssClass(this.element,\"ace_folding-enabled\"),this.$showFoldWidgets=show,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var style=dom.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(style.paddingLeft)+1,this.$padding.right=parseInt(style.paddingRight),this.$padding},this.getRegion=function(point){var padding=this.$padding||this.$computePadding(),rect=this.element.getBoundingClientRect();return point.x\u003Cpadding.left+rect.left?\"markers\":this.$showFoldWidgets&&point.x>rect.right-padding.right?\"foldWidgets\":void 0}}).call(Gutter.prototype),exports.Gutter=Gutter}),ace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"],function(acequire,exports){var Range=acequire(\"../range\").Range,dom=acequire(\"../lib/dom\"),Marker=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_marker-layer\",parentEl.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(padding){this.$padding=padding},this.setSession=function(session){this.session=session},this.setMarkers=function(markers){this.markers=markers},this.update=function(config){var config=config||this.config;if(config){this.config=config;var html=[];for(var key in this.markers){var marker=this.markers[key];if(marker.range){var range=marker.range.clipRows(config.firstRow,config.lastRow);if(!range.isEmpty())if(range=range.toScreenRange(this.session),marker.renderer){var top=this.$getTop(range.start.row,config),left=this.$padding+range.start.column*config.characterWidth;marker.renderer(html,range,left,top,config)}else\"fullLine\"==marker.type?this.drawFullLineMarker(html,range,marker.clazz,config):\"screenLine\"==marker.type?this.drawScreenLineMarker(html,range,marker.clazz,config):range.isMultiLine()?\"text\"==marker.type?this.drawTextMarker(html,range,marker.clazz,config):this.drawMultiLineMarker(html,range,marker.clazz,config):this.drawSingleLineMarker(html,range,marker.clazz+\" ace_start\",config)}else marker.update(html,this,this.session,config)}this.element=dom.setInnerHtml(this.element,html.join(\"\"))}},this.$getTop=function(row,layerConfig){return(row-layerConfig.firstRowScreen)*layerConfig.lineHeight},this.drawTextMarker=function(stringBuilder,range,clazz,layerConfig){var row=range.start.row,lineRange=new Range(row,range.start.column,row,this.session.getScreenLastRowColumn(row));for(this.drawSingleLineMarker(stringBuilder,lineRange,clazz+\" ace_start\",layerConfig,1,\"text\"),row=range.end.row,lineRange=new Range(row,0,row,range.end.column),this.drawSingleLineMarker(stringBuilder,lineRange,clazz,layerConfig,0,\"text\"),row=range.start.row+1;range.end.row>row;row++)lineRange.start.row=row,lineRange.end.row=row,lineRange.end.column=this.session.getScreenLastRowColumn(row),this.drawSingleLineMarker(stringBuilder,lineRange,clazz,layerConfig,1,\"text\")},this.drawMultiLineMarker=function(stringBuilder,range,clazz,config){var padding=this.$padding,height=config.lineHeight,top=this.$getTop(range.start.row,config),left=padding+range.start.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\" ace_start' style='\",\"height:\",height,\"px;\",\"right:0;\",\"top:\",top,\"px;\",\"left:\",left,\"px;'>\u003C/div>\"),top=this.$getTop(range.end.row,config);var width=range.end.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"width:\",width,\"px;\",\"top:\",top,\"px;\",\"left:\",padding,\"px;'>\u003C/div>\"),height=(range.end.row-range.start.row-1)*config.lineHeight,0>height||(top=this.$getTop(range.start.row+1,config),stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"right:0;\",\"top:\",top,\"px;\",\"left:\",padding,\"px;'>\u003C/div>\"))},this.drawSingleLineMarker=function(stringBuilder,range,clazz,config,extraLength){var height=config.lineHeight,width=(range.end.column+(extraLength||0)-range.start.column)*config.characterWidth,top=this.$getTop(range.start.row,config),left=this.$padding+range.start.column*config.characterWidth;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"width:\",width,\"px;\",\"top:\",top,\"px;\",\"left:\",left,\"px;'>\u003C/div>\")\n},this.drawFullLineMarker=function(stringBuilder,range,clazz,config){var top=this.$getTop(range.start.row,config),height=config.lineHeight;range.start.row!=range.end.row&&(height+=this.$getTop(range.end.row,config)-top),stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"top:\",top,\"px;\",\"left:0;right:0;'>\u003C/div>\")},this.drawScreenLineMarker=function(stringBuilder,range,clazz,config){var top=this.$getTop(range.start.row,config),height=config.lineHeight;stringBuilder.push(\"\u003Cdiv class='\",clazz,\"' style='\",\"height:\",height,\"px;\",\"top:\",top,\"px;\",\"left:0;right:0;'>\u003C/div>\")}}).call(Marker.prototype),exports.Marker=Marker}),ace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),dom=acequire(\"../lib/dom\"),lang=acequire(\"../lib/lang\"),useragent=acequire(\"../lib/useragent\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,Text=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_text-layer\",parentEl.appendChild(this.element),this.$characterSize={width:0,height:0},this.checkForSizeChanges(),this.$pollSizeChanges()};(function(){oop.implement(this,EventEmitter),this.EOF_CHAR=\"¶\",this.EOL_CHAR=\"¬\",this.TAB_CHAR=\"→\",this.SPACE_CHAR=\"·\",this.$padding=0,this.setPadding=function(padding){this.$padding=padding,this.element.style.padding=\"0 \"+padding+\"px\"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var size=this.$measureSizes();if(size&&(this.$characterSize.width!==size.width||this.$characterSize.height!==size.height)){this.$measureNode.style.fontWeight=\"bold\";var boldSize=this.$measureSizes();this.$measureNode.style.fontWeight=\"\",this.$characterSize=size,this.allowBoldFonts=boldSize&&boldSize.width===size.width&&boldSize.height===size.height,this._emit(\"changeCharacterSize\",{data:size})}},this.$pollSizeChanges=function(){var self=this;this.$pollSizeChangesTimer=setInterval(function(){self.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=useragent.isIE||useragent.isOldGecko?function(){var n=1e3;if(!this.$measureNode){var measureNode=this.$measureNode=dom.createElement(\"div\"),style=measureNode.style;if(style.width=style.height=\"auto\",style.left=style.top=40*-n+\"px\",style.visibility=\"hidden\",style.position=\"fixed\",style.overflow=\"visible\",style.whiteSpace=\"nowrap\",measureNode.innerHTML=lang.stringRepeat(\"Xy\",n),this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(measureNode);else{for(var container=this.element.parentNode;!dom.hasCssClass(container,\"ace_editor\");)container=container.parentNode;container.appendChild(measureNode)}}if(!this.element.offsetWidth)return null;var style=this.$measureNode.style,computedStyle=dom.computedStyle(this.element);for(var prop in this.$fontStyles)style[prop]=computedStyle[prop];var size={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(2*n)};return 0==size.width||0==size.height?null:size}:function(){if(!this.$measureNode){var measureNode=this.$measureNode=dom.createElement(\"div\"),style=measureNode.style;style.width=style.height=\"auto\",style.left=style.top=\"-100px\",style.visibility=\"hidden\",style.position=\"fixed\",style.overflow=\"visible\",style.whiteSpace=\"nowrap\",measureNode.innerHTML=\"X\";for(var container=this.element.parentNode;container&&!dom.hasCssClass(container,\"ace_editor\");)container=container.parentNode;if(!container)return this.$measureNode=null;container.appendChild(measureNode)}var rect=this.$measureNode.getBoundingClientRect(),size={height:rect.height,width:rect.width};return 0==size.width||0==size.height?null:size},this.setSession=function(session){this.session=session,this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(showInvisibles){return this.showInvisibles==showInvisibles?!1:(this.showInvisibles=showInvisibles,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(display){return this.displayIndentGuides==display?!1:(this.displayIndentGuides=display,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var tabSize=this.session.getTabSize();this.tabSize=tabSize;for(var tabStr=this.$tabStrings=[0],i=1;tabSize+1>i;i++)this.showInvisibles?tabStr.push(\"\u003Cspan class='ace_invisible'>\"+this.TAB_CHAR+lang.stringRepeat(\" \",i-1)+\"\u003C/span>\"):tabStr.push(lang.stringRepeat(\" \",i));if(this.displayIndentGuides){this.$indentGuideRe=/\\s\\S| \\t|\\t |\\s$/;var className=\"ace_indent-guide\";if(this.showInvisibles){className+=\" ace_invisible\";var spaceContent=lang.stringRepeat(this.SPACE_CHAR,this.tabSize),tabContent=this.TAB_CHAR+lang.stringRepeat(\" \",this.tabSize-1)}else var spaceContent=lang.stringRepeat(\" \",this.tabSize),tabContent=spaceContent;this.$tabStrings[\" \"]=\"\u003Cspan class='\"+className+\"'>\"+spaceContent+\"\u003C/span>\",this.$tabStrings[\"\t\"]=\"\u003Cspan class='\"+className+\"'>\"+tabContent+\"\u003C/span>\"}},this.updateLines=function(config,firstRow,lastRow){(this.config.lastRow!=config.lastRow||this.config.firstRow!=config.firstRow)&&this.scrollLines(config),this.config=config;for(var first=Math.max(firstRow,config.firstRow),last=Math.min(lastRow,config.lastRow),lineElements=this.element.childNodes,lineElementsIdx=0,row=config.firstRow;first>row;row++){var foldLine=this.session.getFoldLine(row);if(foldLine){if(foldLine.containsRow(first)){first=foldLine.start.row;break}row=foldLine.end.row}lineElementsIdx++}for(var row=first,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>last)break;var lineElement=lineElements[lineElementsIdx++];if(lineElement){var html=[];this.$renderLine(html,row,!this.$useLineGroups(),row==foldStart?foldLine:!1),dom.setInnerHtml(lineElement,html.join(\"\"))}row++}},this.scrollLines=function(config){var oldConfig=this.config;if(this.config=config,!oldConfig||oldConfig.lastRow\u003Cconfig.firstRow)return this.update(config);if(config.lastRow\u003ColdConfig.firstRow)return this.update(config);var el=this.element;if(oldConfig.firstRow\u003Cconfig.firstRow)for(var row=this.session.getFoldedRowCount(oldConfig.firstRow,config.firstRow-1);row>0;row--)el.removeChild(el.firstChild);if(oldConfig.lastRow>config.lastRow)for(var row=this.session.getFoldedRowCount(config.lastRow+1,oldConfig.lastRow);row>0;row--)el.removeChild(el.lastChild);if(config.firstRow\u003ColdConfig.firstRow){var fragment=this.$renderLinesFragment(config,config.firstRow,oldConfig.firstRow-1);el.firstChild?el.insertBefore(fragment,el.firstChild):el.appendChild(fragment)}if(config.lastRow>oldConfig.lastRow){var fragment=this.$renderLinesFragment(config,oldConfig.lastRow+1,config.lastRow);el.appendChild(fragment)}},this.$renderLinesFragment=function(config,firstRow,lastRow){for(var fragment=this.element.ownerDocument.createDocumentFragment(),row=firstRow,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>lastRow)break;var container=dom.createElement(\"div\"),html=[];if(this.$renderLine(html,row,!1,row==foldStart?foldLine:!1),container.innerHTML=html.join(\"\"),this.$useLineGroups())container.className=\"ace_line_group\",fragment.appendChild(container);else for(var lines=container.childNodes;lines.length;)fragment.appendChild(lines[0]);row++}return fragment},this.update=function(config){this.config=config;for(var html=[],firstRow=config.firstRow,lastRow=config.lastRow,row=firstRow,foldLine=this.session.getNextFoldLine(row),foldStart=foldLine?foldLine.start.row:1/0;;){if(row>foldStart&&(row=foldLine.end.row+1,foldLine=this.session.getNextFoldLine(row,foldLine),foldStart=foldLine?foldLine.start.row:1/0),row>lastRow)break;this.$useLineGroups()&&html.push(\"\u003Cdiv class='ace_line_group'>\"),this.$renderLine(html,row,!1,row==foldStart?foldLine:!1),this.$useLineGroups()&&html.push(\"\u003C/div>\"),row++}this.element=dom.setInnerHtml(this.element,html.join(\"\"))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(stringBuilder,screenColumn,token,value){var self=this,replaceReg=/\\t|&|\u003C|( +)|([\\x00-\\x1f\\x80-\\xa0\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]/g,replaceFunc=function(c,a,b,tabIdx){if(a)return self.showInvisibles?\"\u003Cspan class='ace_invisible'>\"+lang.stringRepeat(self.SPACE_CHAR,c.length)+\"\u003C/span>\":lang.stringRepeat(\" \",c.length);if(\"&\"==c)return\"&\";if(\"\u003C\"==c)return\"<\";if(\"\t\"==c){var tabSize=self.session.getScreenTabSize(screenColumn+tabIdx);return screenColumn+=tabSize-1,self.$tabStrings[tabSize]}if(\" \"==c){var classToUse=self.showInvisibles?\"ace_cjk ace_invisible\":\"ace_cjk\",space=self.showInvisibles?self.SPACE_CHAR:\"\";return screenColumn+=1,\"\u003Cspan class='\"+classToUse+\"' style='width:\"+2*self.config.characterWidth+\"px'>\"+space+\"\u003C/span>\"}return b?\"\u003Cspan class='ace_invisible ace_invalid'>\"+self.SPACE_CHAR+\"\u003C/span>\":(screenColumn+=1,\"\u003Cspan class='ace_cjk' style='width:\"+2*self.config.characterWidth+\"px'>\"+c+\"\u003C/span>\")},output=value.replace(replaceReg,replaceFunc);if(this.$textToken[token.type])stringBuilder.push(output);else{var classes=\"ace_\"+token.type.replace(/\\./g,\" ace_\"),style=\"\";\"fold\"==token.type&&(style=\" style='width:\"+token.value.length*this.config.characterWidth+\"px;' \"),stringBuilder.push(\"\u003Cspan class='\",classes,\"'\",style,\">\",output,\"\u003C/span>\")}return screenColumn+value.length},this.renderIndentGuide=function(stringBuilder,value){var cols=value.search(this.$indentGuideRe);return 0>=cols?value:\" \"==value[0]?(cols-=cols%this.tabSize,stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"],cols/this.tabSize)),value.substr(cols)):\"\t\"==value[0]?(stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\t\"],cols)),value.substr(cols)):value},this.$renderWrappedLine=function(stringBuilder,tokens,splits,onlyContents){for(var chars=0,split=0,splitChars=splits[0],screenColumn=0,i=0;tokens.length>i;i++){var token=tokens[i],value=token.value;if(0==i&&this.displayIndentGuides){if(chars=value.length,value=this.renderIndentGuide(stringBuilder,value),!value)continue;chars-=value.length}if(splitChars>chars+value.length)screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value),chars+=value.length;else{for(;chars+value.length>=splitChars;)screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value.substring(0,splitChars-chars)),value=value.substring(splitChars-chars),chars=splitChars,onlyContents||stringBuilder.push(\"\u003C/div>\",\"\u003Cdiv class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),split++,screenColumn=0,splitChars=splits[split]||Number.MAX_VALUE;0!=value.length&&(chars+=value.length,screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value))}}},this.$renderSimpleLine=function(stringBuilder,tokens){var screenColumn=0,token=tokens[0],value=token.value;this.displayIndentGuides&&(value=this.renderIndentGuide(stringBuilder,value)),value&&(screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value));for(var i=1;tokens.length>i;i++)token=tokens[i],value=token.value,screenColumn=this.$renderToken(stringBuilder,screenColumn,token,value)},this.$renderLine=function(stringBuilder,row,onlyContents,foldLine){if(foldLine||0==foldLine||(foldLine=this.session.getFoldLine(row)),foldLine)var tokens=this.$getFoldLineTokens(row,foldLine);else var tokens=this.session.getTokens(row);if(onlyContents||stringBuilder.push(\"\u003Cdiv class='ace_line' style='height:\",this.config.lineHeight,\"px'>\"),tokens.length){var splits=this.session.getRowSplitData(row);splits&&splits.length?this.$renderWrappedLine(stringBuilder,tokens,splits,onlyContents):this.$renderSimpleLine(stringBuilder,tokens)}this.showInvisibles&&(foldLine&&(row=foldLine.end.row),stringBuilder.push(\"\u003Cspan class='ace_invisible'>\",row==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,\"\u003C/span>\")),onlyContents||stringBuilder.push(\"\u003C/div>\")},this.$getFoldLineTokens=function(row,foldLine){function addTokens(tokens,from,to){for(var idx=0,col=0;from>col+tokens[idx].value.length;)if(col+=tokens[idx].value.length,idx++,idx==tokens.length)return;if(col!=from){var value=tokens[idx].value.substring(from-col);value.length>to-from&&(value=value.substring(0,to-from)),renderTokens.push({type:tokens[idx].type,value:value}),col=from+value.length,idx+=1}for(;to>col&&tokens.length>idx;){var value=tokens[idx].value;value.length+col>to?renderTokens.push({type:tokens[idx].type,value:value.substring(0,to-col)}):renderTokens.push(tokens[idx]),col+=value.length,idx+=1}}var session=this.session,renderTokens=[],tokens=session.getTokens(row);return foldLine.walk(function(placeholder,row,column,lastColumn,isNewRow){null!=placeholder?renderTokens.push({type:\"fold\",value:placeholder}):(isNewRow&&(tokens=session.getTokens(row)),tokens.length&&addTokens(tokens,lastColumn,column))},foldLine.end.row,this.session.getLine(foldLine.end.row).length),renderTokens},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(Text.prototype),exports.Text=Text}),ace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){var dom=acequire(\"../lib/dom\"),Cursor=function(parentEl){this.element=dom.createElement(\"div\"),this.element.className=\"ace_layer ace_cursor-layer\",parentEl.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),dom.addCssClass(this.element,\"ace_hidden-cursors\")};(function(){this.$padding=0,this.setPadding=function(padding){this.$padding=padding},this.setSession=function(session){this.session=session},this.setBlinking=function(blinking){blinking!=this.isBlinking&&(this.isBlinking=blinking,this.restartTimer())},this.setBlinkInterval=function(blinkInterval){blinkInterval!=this.blinkInterval&&(this.blinkInterval=blinkInterval,this.restartTimer())},this.setSmoothBlinking=function(smoothBlinking){smoothBlinking!=this.smoothBlinking&&(this.smoothBlinking=smoothBlinking,smoothBlinking?dom.addCssClass(this.element,\"ace_smooth-blinking\"):dom.removeCssClass(this.element,\"ace_smooth-blinking\"),this.restartTimer())},this.addCursor=function(){var el=dom.createElement(\"div\");return el.className=\"ace_cursor\",this.element.appendChild(el),this.cursors.push(el),el},this.removeCursor=function(){if(this.cursors.length>1){var el=this.cursors.pop();return el.parentNode.removeChild(el),el}},this.hideCursor=function(){this.isVisible=!1,dom.addCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,dom.removeCssClass(this.element,\"ace_hidden-cursors\"),this.restartTimer()},this.restartTimer=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&dom.removeCssClass(this.element,\"ace_smooth-blinking\");for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=\"\";if(this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){dom.addCssClass(this.element,\"ace_smooth-blinking\")}.bind(this));var blink=function(){this.timeoutId=setTimeout(function(){for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=0}.bind(this),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){for(var i=this.cursors.length;i--;)this.cursors[i].style.opacity=\"\";blink()}.bind(this),this.blinkInterval),blink()}},this.getPixelPosition=function(position,onScreen){if(!this.config||!this.session)return{left:0,top:0};position||(position=this.session.selection.getCursor());var pos=this.session.documentToScreenPosition(position),cursorLeft=this.$padding+pos.column*this.config.characterWidth,cursorTop=(pos.row-(onScreen?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:cursorLeft,top:cursorTop}},this.update=function(config){this.config=config;var selections=this.session.$selectionMarkers,i=0,cursorIndex=0;(void 0===selections||0===selections.length)&&(selections=[{cursor:null}]);for(var i=0,n=selections.length;n>i;i++){var pixelPos=this.getPixelPosition(selections[i].cursor,!0);if(!((pixelPos.top>config.height+config.offset||pixelPos.top\u003C-config.offset)&&i>1)){var style=(this.cursors[cursorIndex++]||this.addCursor()).style;style.left=pixelPos.left+\"px\",style.top=pixelPos.top+\"px\",style.width=config.characterWidth+\"px\",style.height=config.lineHeight+\"px\"}}for(;this.cursors.length>cursorIndex;)this.removeCursor();var overwrite=this.session.getOverwrite();this.$setOverwrite(overwrite),this.$pixelPos=pixelPos,this.restartTimer()},this.$setOverwrite=function(overwrite){overwrite!=this.overwrite&&(this.overwrite=overwrite,overwrite?dom.addCssClass(this.element,\"ace_overwrite-cursors\"):dom.removeCssClass(this.element,\"ace_overwrite-cursors\"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(Cursor.prototype),exports.Cursor=Cursor}),ace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"],function(acequire,exports){var oop=acequire(\"./lib/oop\"),dom=acequire(\"./lib/dom\"),event=acequire(\"./lib/event\"),EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,ScrollBar=function(parent){this.element=dom.createElement(\"div\"),this.element.className=\"ace_scrollbar\",this.inner=dom.createElement(\"div\"),this.inner.className=\"ace_scrollbar-inner\",this.element.appendChild(this.inner),parent.appendChild(this.element),this.width=dom.scrollbarWidth(parent.ownerDocument),this.element.style.width=(this.width||15)+5+\"px\",event.addListener(this.element,\"scroll\",this.onScroll.bind(this))};(function(){oop.implement(this,EventEmitter),this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit(\"scroll\",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.width},this.setHeight=function(height){this.element.style.height=height+\"px\"},this.setInnerHeight=function(height){this.inner.style.height=height+\"px\"},this.setScrollTop=function(scrollTop){this.scrollTop!=scrollTop&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=scrollTop)}}).call(ScrollBar.prototype),exports.ScrollBar=ScrollBar}),ace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){var event=acequire(\"./lib/event\"),RenderLoop=function(onRender,win){this.onRender=onRender,this.pending=!1,this.changes=0,this.window=win||window};(function(){this.schedule=function(change){if(this.changes=this.changes|change,!this.pending){this.pending=!0;var _self=this;event.nextFrame(function(){_self.pending=!1;for(var changes;changes=_self.changes;)_self.changes=0,_self.onRender(changes)},this.window)}}}).call(RenderLoop.prototype),exports.RenderLoop=RenderLoop}),ace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\"],function(acequire,exports){function find(session,needle,dir){return search.$options.wrap=!0,search.$options.needle=needle,search.$options.backwards=-1==dir,search.find(session)}function isSamePoint(p1,p2){return p1.row==p2.row&&p1.column==p2.column}function MultiSelect(editor){editor.$onAddRange=editor.$onAddRange.bind(editor),editor.$onRemoveRange=editor.$onRemoveRange.bind(editor),editor.$onMultiSelect=editor.$onMultiSelect.bind(editor),editor.$onSingleSelect=editor.$onSingleSelect.bind(editor),exports.onSessionChange.call(editor,editor),editor.on(\"changeSession\",exports.onSessionChange.bind(editor)),editor.on(\"mousedown\",onMouseDown),editor.commands.addCommands(commands.defaultCommands),addAltCursorListeners(editor)}function addAltCursorListeners(editor){function reset(){altCursor&&(contentEl.style.cursor=\"\",altCursor=!1)}var el=editor.textInput.getElement(),altCursor=!1,contentEl=editor.renderer.content;event.addListener(el,\"keydown\",function(e){18!=e.keyCode||e.ctrlKey||e.shiftKey||e.metaKey?altCursor&&(contentEl.style.cursor=\"\"):altCursor||(contentEl.style.cursor=\"crosshair\",altCursor=!0)}),event.addListener(el,\"keyup\",reset),event.addListener(el,\"blur\",reset)}var RangeList=acequire(\"./range_list\").RangeList,Range=acequire(\"./range\").Range,Selection=acequire(\"./selection\").Selection,onMouseDown=acequire(\"./mouse/multi_select_handler\").onMouseDown,event=acequire(\"./lib/event\"),lang=acequire(\"./lib/lang\"),commands=acequire(\"./commands/multi_select_commands\");exports.commands=commands.defaultCommands.concat(commands.multiSelectCommands);var Search=acequire(\"./search\").Search,search=new Search,EditSession=acequire(\"./edit_session\").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(EditSession.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(range,$blockChangeEvents){if(range){if(!this.inMultiSelectMode&&0==this.rangeCount){var oldRange=this.toOrientedRange();if(this.rangeList.add(oldRange),this.rangeList.add(range),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),$blockChangeEvents||this.fromOrientedRange(range);this.rangeList.removeAll(),this.rangeList.add(oldRange),this.$onAddRange(oldRange)}range.cursor||(range.cursor=range.end);var removed=this.rangeList.add(range);return this.$onAddRange(range),removed.length&&this.$onRemoveRange(removed),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit(\"multiSelect\"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),$blockChangeEvents||this.fromOrientedRange(range)}},this.toSingleRange=function(range){range=range||this.ranges[0];var removed=this.rangeList.removeAll();removed.length&&this.$onRemoveRange(removed),range&&this.fromOrientedRange(range)},this.substractPoint=function(pos){var removed=this.rangeList.substractPoint(pos);return removed?(this.$onRemoveRange(removed),removed[0]):void 0},this.mergeOverlappingRanges=function(){var removed=this.rangeList.merge();removed.length?this.$onRemoveRange(removed):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(range){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(range),this._emit(\"addRange\",{range:range})},this.$onRemoveRange=function(removed){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var lastRange=this.rangeList.ranges.pop();removed.push(lastRange),this.rangeCount=0}for(var i=removed.length;i--;){var index=this.ranges.indexOf(removed[i]);this.ranges.splice(index,1)}this._emit(\"removeRange\",{ranges:removed}),0==this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit(\"singleSelect\"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),lastRange=lastRange||this.ranges[0],lastRange&&!lastRange.isEqual(this.getRange())&&this.fromOrientedRange(lastRange)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new RangeList,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var ranges=this.rangeList.ranges,lastRange=ranges[ranges.length-1],range=Range.fromPoints(ranges[0].start,lastRange.end);this.toSingleRange(),this.setSelectionRange(range,lastRange.cursor==lastRange.start)}else{var range=this.getRange(),isBackwards=this.isBackwards(),startRow=range.start.row,endRow=range.end.row;if(startRow==endRow){if(isBackwards)var start=range.end,end=range.start;else var start=range.start,end=range.end;return this.addRange(Range.fromPoints(end,end)),this.addRange(Range.fromPoints(start,start)),void 0}var rectSel=[],r=this.getLineRange(startRow,!0);r.start.column=range.start.column,rectSel.push(r);for(var i=startRow+1;endRow>i;i++)rectSel.push(this.getLineRange(i,!0));r=this.getLineRange(endRow,!0),r.end.column=range.end.column,rectSel.push(r),rectSel.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var ranges=this.rangeList.ranges,lastRange=ranges[ranges.length-1],range=Range.fromPoints(ranges[0].start,lastRange.end);this.toSingleRange(),this.setSelectionRange(range,lastRange.cursor==lastRange.start)}else{var cursor=this.session.documentToScreenPosition(this.selectionLead),anchor=this.session.documentToScreenPosition(this.selectionAnchor),rectSel=this.rectangularRangeBlock(cursor,anchor);rectSel.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(screenCursor,screenAnchor,includeEmptyLines){var rectSel=[],xBackwards=screenCursor.column\u003CscreenAnchor.column;if(xBackwards)var startColumn=screenCursor.column,endColumn=screenAnchor.column;else var startColumn=screenAnchor.column,endColumn=screenCursor.column;var yBackwards=screenCursor.row\u003CscreenAnchor.row;if(yBackwards)var startRow=screenCursor.row,endRow=screenAnchor.row;else var startRow=screenAnchor.row,endRow=screenCursor.row;0>startColumn&&(startColumn=0),0>startRow&&(startRow=0),startRow==endRow&&(includeEmptyLines=!0);for(var row=startRow;endRow>=row;row++){var range=Range.fromPoints(this.session.screenToDocumentPosition(row,startColumn),this.session.screenToDocumentPosition(row,endColumn));if(range.isEmpty()){if(docEnd&&isSamePoint(range.end,docEnd))break;var docEnd=range.end}range.cursor=xBackwards?range.start:range.end,rectSel.push(range)}if(yBackwards&&rectSel.reverse(),!includeEmptyLines){for(var end=rectSel.length-1;rectSel[end].isEmpty()&&end>0;)end--;if(end>0)for(var start=0;rectSel[start].isEmpty();)start++;for(var i=end;i>=start;i--)rectSel[i].isEmpty()&&rectSel.splice(i,1)}return rectSel}}.call(Selection.prototype);var Editor=acequire(\"./editor\").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(orientedRange){orientedRange.cursor||(orientedRange.cursor=orientedRange.end);var style=this.getSelectionStyle();return orientedRange.marker=this.session.addMarker(orientedRange,\"ace_selection\",style),this.session.$selectionMarkers.push(orientedRange),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,orientedRange},this.removeSelectionMarker=function(range){if(range.marker){this.session.removeMarker(range.marker);var index=this.session.$selectionMarkers.indexOf(range);-1!=index&&this.session.$selectionMarkers.splice(index,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(ranges){for(var markerList=this.session.$selectionMarkers,i=ranges.length;i--;){var range=ranges[i];if(range.marker){this.session.removeMarker(range.marker);var index=markerList.indexOf(range);-1!=index&&markerList.splice(index,1)}}this.session.selectionMarkerCount=markerList.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle(\"ace_multiselect\"),this.keyBinding.addKeyboardHandler(commands.keyboardHandler),this.commands.on(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle(\"ace_multiselect\"),this.keyBinding.removeKeyboardHandler(commands.keyboardHandler),this.commands.removeEventListener(\"exec\",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onMultiSelectExec=function(e){var command=e.command,editor=e.editor;editor.multiSelect&&(command.multiSelectAction?\"forEach\"==command.multiSelectAction?editor.forEachSelection(command,e.args):\"forEachLine\"==command.multiSelectAction?editor.forEachSelection(command,e.args,!0):\"single\"==command.multiSelectAction?(editor.exitMultiSelectMode(),command.exec(editor,e.args||{})):command.multiSelectAction(editor,e.args||{}):(command.exec(editor,e.args||{}),editor.multiSelect.addRange(editor.multiSelect.toOrientedRange()),editor.multiSelect.mergeOverlappingRanges()),e.preventDefault())},this.forEachSelection=function(cmd,args,$byLines){if(!this.inVirtualSelectionMode){var session=this.session,selection=this.selection,rangeList=selection.rangeList,reg=selection._eventRegistry;selection._eventRegistry={};var tmpSel=new Selection(session);this.inVirtualSelectionMode=!0;for(var i=rangeList.ranges.length;i--;){if($byLines)for(;i>0&&rangeList.ranges[i].start.row==rangeList.ranges[i-1].end.row;)i--;tmpSel.fromOrientedRange(rangeList.ranges[i]),this.selection=session.selection=tmpSel,cmd.exec(this,args||{}),tmpSel.toOrientedRange(rangeList.ranges[i])}tmpSel.detach(),this.selection=session.selection=selection,this.inVirtualSelectionMode=!1,selection._eventRegistry=reg,selection.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()}},this.exitMultiSelectMode=function(){this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getCopyText=function(){var text=\"\";if(this.inMultiSelectMode){var ranges=this.multiSelect.rangeList.ranges;text=[];for(var i=0;ranges.length>i;i++)text.push(this.session.getTextRange(ranges[i]));text=text.join(this.session.getDocument().getNewLineCharacter())}else this.selection.isEmpty()||(text=this.session.getTextRange(this.getSelectionRange()));return text},this.onPaste=function(text){if(!this.$readOnly){if(this._signal(\"paste\",text),!this.inMultiSelectMode||this.inVirtualSelectionMode)return this.insert(text);var lines=text.split(/\\r\\n|\\r|\\n/),ranges=this.selection.rangeList.ranges;if(lines.length>ranges.length||2>=lines.length||!lines[1])return this.commands.exec(\"insertstring\",this,text);for(var i=ranges.length;i--;){var range=ranges[i];range.isEmpty()||this.session.remove(range),this.session.insert(range.start,lines[i])}}},this.findAll=function(needle,options,additive){options=options||{},options.needle=needle||options.needle,this.$search.set(options);var ranges=this.$search.findAll(this.session);if(!ranges.length)return 0;this.$blockScrolling+=1;var selection=this.multiSelect;additive||selection.toSingleRange(ranges[0]);for(var i=ranges.length;i--;)selection.addRange(ranges[i],!0);return this.$blockScrolling-=1,ranges.length},this.selectMoreLines=function(dir,skip){var range=this.selection.toOrientedRange(),isBackwards=range.cursor==range.end,screenLead=this.session.documentToScreenPosition(range.cursor);this.selection.$desiredColumn&&(screenLead.column=this.selection.$desiredColumn);var lead=this.session.screenToDocumentPosition(screenLead.row+dir,screenLead.column);if(range.isEmpty())var anchor=lead;else var screenAnchor=this.session.documentToScreenPosition(isBackwards?range.end:range.start),anchor=this.session.screenToDocumentPosition(screenAnchor.row+dir,screenAnchor.column);if(isBackwards){var newRange=Range.fromPoints(lead,anchor);newRange.cursor=newRange.start}else{var newRange=Range.fromPoints(anchor,lead);newRange.cursor=newRange.end\n}if(newRange.desiredColumn=screenLead.column,this.selection.inMultiSelectMode){if(skip)var toRemove=range.cursor}else this.selection.addRange(range);this.selection.addRange(newRange),toRemove&&this.selection.substractPoint(toRemove)},this.transposeSelections=function(dir){for(var session=this.session,sel=session.multiSelect,all=sel.ranges,i=all.length;i--;){var range=all[i];if(range.isEmpty()){var tmp=session.getWordRange(range.start.row,range.start.column);range.start.row=tmp.start.row,range.start.column=tmp.start.column,range.end.row=tmp.end.row,range.end.column=tmp.end.column}}sel.mergeOverlappingRanges();for(var words=[],i=all.length;i--;){var range=all[i];words.unshift(session.getTextRange(range))}0>dir?words.unshift(words.pop()):words.push(words.shift());for(var i=all.length;i--;){var range=all[i],tmp=range.clone();session.replace(range,words[i]),range.start.row=tmp.start.row,range.start.column=tmp.start.column}},this.selectMore=function(dir,skip){var session=this.session,sel=session.multiSelect,range=sel.toOrientedRange();if(range.isEmpty()){var range=session.getWordRange(range.start.row,range.start.column);range.cursor=range.end,this.multiSelect.addRange(range)}var needle=session.getTextRange(range),newRange=find(session,needle,dir);newRange&&(newRange.cursor=-1==dir?newRange.start:newRange.end,this.multiSelect.addRange(newRange)),skip&&this.multiSelect.substractPoint(range.cursor)},this.alignCursors=function(){var session=this.session,sel=session.multiSelect,ranges=sel.ranges;if(ranges.length){var row=-1,sameRowRanges=ranges.filter(function(r){return r.cursor.row==row?!0:(row=r.cursor.row,void 0)});sel.$onRemoveRange(sameRowRanges);var maxCol=0,minSpace=1/0,spaceOffsets=ranges.map(function(r){var p=r.cursor,line=session.getLine(p.row),spaceOffset=line.substr(p.column).search(/\\S/g);return-1==spaceOffset&&(spaceOffset=0),p.column>maxCol&&(maxCol=p.column),minSpace>spaceOffset&&(minSpace=spaceOffset),spaceOffset});ranges.forEach(function(r,i){var p=r.cursor,l=maxCol-p.column,d=spaceOffsets[i]-minSpace;l>d?session.insert(p,lang.stringRepeat(\" \",l-d)):session.remove(new Range(p.row,p.column,p.row,p.column-l+d)),r.start.column=r.end.column=maxCol,r.start.row=r.end.row=p.row,r.cursor=r.end}),sel.fromOrientedRange(ranges[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var range=this.selection.getRange(),fr=range.start.row,lr=range.end.row,lines=this.session.doc.removeLines(fr,lr);lines=this.$reAlignText(lines),this.session.doc.insertLines(fr,lines),range.start.column=0,range.end.column=lines[lines.length-1].length,this.selection.setRange(range)}},this.$reAlignText=function(lines){function spaces(n){return lang.stringRepeat(\" \",n)}function alignLeft(m){return m[2]?spaces(startW)+m[2]+spaces(textW-m[2].length+endW)+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}function alignRight(m){return m[2]?spaces(startW+textW-m[2].length)+m[2]+spaces(endW,\" \")+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}function unAlign(m){return m[2]?spaces(startW)+m[2]+spaces(endW)+m[4].replace(/^([=:])\\s+/,\"$1 \"):m[0]}var startW,textW,endW,isLeftAligned=!0,isRightAligned=!0;return lines.map(function(line){var m=line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);return m?null==startW?(startW=m[1].length,textW=m[2].length,endW=m[3].length,m):(startW+textW+endW!=m[1].length+m[2].length+m[3].length&&(isRightAligned=!1),startW!=m[1].length&&(isLeftAligned=!1),startW>m[1].length&&(startW=m[1].length),m[2].length>textW&&(textW=m[2].length),endW>m[3].length&&(endW=m[3].length),m):[line]}).map(isLeftAligned?isRightAligned?alignRight:alignLeft:unAlign)}}).call(Editor.prototype),exports.onSessionChange=function(e){var session=e.session;session.multiSelect||(session.$selectionMarkers=[],session.selection.$initRangeList(),session.multiSelect=session.selection),this.multiSelect=session.multiSelect;var oldSession=e.oldSession;oldSession&&(oldSession.multiSelect.removeEventListener(\"addRange\",this.$onAddRange),oldSession.multiSelect.removeEventListener(\"removeRange\",this.$onRemoveRange),oldSession.multiSelect.removeEventListener(\"multiSelect\",this.$onMultiSelect),oldSession.multiSelect.removeEventListener(\"singleSelect\",this.$onSingleSelect)),session.multiSelect.on(\"addRange\",this.$onAddRange),session.multiSelect.on(\"removeRange\",this.$onRemoveRange),session.multiSelect.on(\"multiSelect\",this.$onMultiSelect),session.multiSelect.on(\"singleSelect\",this.$onSingleSelect),this.inMultiSelectMode!=session.selection.inMultiSelectMode&&(session.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},exports.MultiSelect=MultiSelect}),ace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"],function(acequire,exports){function isSamePoint(p1,p2){return p1.row==p2.row&&p1.column==p2.column}function onMouseDown(e){var ev=e.domEvent,alt=ev.altKey,shift=ev.shiftKey,ctrl=e.getAccelKey(),button=e.getButton();if(e.editor.inMultiSelectMode&&2==button)return e.editor.textInput.onContextMenu(e.domEvent),void 0;if(!ctrl&&!alt)return 0==button&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode(),void 0;var editor=e.editor,selection=editor.selection,isMultiSelect=editor.inMultiSelectMode,pos=e.getDocumentPosition(),cursor=selection.getCursor(),inSelection=e.inSelection()||selection.isEmpty()&&isSamePoint(pos,cursor),mouseX=e.x,mouseY=e.y,onMouseSelection=function(e){mouseX=e.clientX,mouseY=e.clientY},blockSelect=function(){var newCursor=editor.renderer.pixelToScreenCoordinates(mouseX,mouseY),cursor=session.screenToDocumentPosition(newCursor.row,newCursor.column);isSamePoint(screenCursor,newCursor)&&isSamePoint(cursor,selection.selectionLead)||(screenCursor=newCursor,editor.selection.moveCursorToPosition(cursor),editor.selection.clearSelection(),editor.renderer.scrollCursorIntoView(),editor.removeSelectionMarkers(rectSel),rectSel=selection.rectangularRangeBlock(screenCursor,screenAnchor),rectSel.forEach(editor.addSelectionMarker,editor),editor.updateSelectionMarkers())},session=editor.session,screenAnchor=editor.renderer.pixelToScreenCoordinates(mouseX,mouseY),screenCursor=screenAnchor;if(!ctrl||shift||alt||0!=button){if(alt&&0==button){e.stop(),isMultiSelect&&!ctrl?selection.toSingleRange():!isMultiSelect&&ctrl&&selection.addRange();var rectSel=[];shift?(screenAnchor=session.documentToScreenPosition(selection.lead),blockSelect()):(selection.moveCursorToPosition(pos),selection.clearSelection());var onMouseSelectionEnd=function(){clearInterval(timerId),editor.removeSelectionMarkers(rectSel);for(var i=0;rectSel.length>i;i++)selection.addRange(rectSel[i])},onSelectionInterval=blockSelect;event.capture(editor.container,onMouseSelection,onMouseSelectionEnd);var timerId=setInterval(function(){onSelectionInterval()},20);return e.preventDefault()}}else{if(!isMultiSelect&&inSelection)return;if(!isMultiSelect){var range=selection.toOrientedRange();editor.addSelectionMarker(range)}var oldRange=selection.rangeList.rangeAtPoint(pos);editor.once(\"mouseup\",function(){var tmpSel=selection.toOrientedRange();oldRange&&tmpSel.isEmpty()&&isSamePoint(oldRange.cursor,tmpSel.cursor)?selection.substractPoint(tmpSel.cursor):(range&&(editor.removeSelectionMarker(range),selection.addRange(range)),selection.addRange(tmpSel))})}}var event=acequire(\"../lib/event\");exports.onMouseDown=onMouseDown}),ace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"],function(acequire,exports){exports.defaultCommands=[{name:\"addCursorAbove\",exec:function(editor){editor.selectMoreLines(-1)},bindKey:{win:\"Ctrl-Alt-Up\",mac:\"Ctrl-Alt-Up\"},readonly:!0},{name:\"addCursorBelow\",exec:function(editor){editor.selectMoreLines(1)},bindKey:{win:\"Ctrl-Alt-Down\",mac:\"Ctrl-Alt-Down\"},readonly:!0},{name:\"addCursorAboveSkipCurrent\",exec:function(editor){editor.selectMoreLines(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Up\",mac:\"Ctrl-Alt-Shift-Up\"},readonly:!0},{name:\"addCursorBelowSkipCurrent\",exec:function(editor){editor.selectMoreLines(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Down\",mac:\"Ctrl-Alt-Shift-Down\"},readonly:!0},{name:\"selectMoreBefore\",exec:function(editor){editor.selectMore(-1)},bindKey:{win:\"Ctrl-Alt-Left\",mac:\"Ctrl-Alt-Left\"},readonly:!0},{name:\"selectMoreAfter\",exec:function(editor){editor.selectMore(1)},bindKey:{win:\"Ctrl-Alt-Right\",mac:\"Ctrl-Alt-Right\"},readonly:!0},{name:\"selectNextBefore\",exec:function(editor){editor.selectMore(-1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Left\",mac:\"Ctrl-Alt-Shift-Left\"},readonly:!0},{name:\"selectNextAfter\",exec:function(editor){editor.selectMore(1,!0)},bindKey:{win:\"Ctrl-Alt-Shift-Right\",mac:\"Ctrl-Alt-Shift-Right\"},readonly:!0},{name:\"splitIntoLines\",exec:function(editor){editor.multiSelect.splitIntoLines()},bindKey:{win:\"Ctrl-Alt-L\",mac:\"Ctrl-Alt-L\"},readonly:!0},{name:\"alignCursors\",exec:function(editor){editor.alignCursors()},bindKey:{win:\"Ctrl-Alt-A\",mac:\"Ctrl-Alt-A\"}}],exports.multiSelectCommands=[{name:\"singleSelection\",bindKey:\"esc\",exec:function(editor){editor.exitMultiSelectMode()},readonly:!0,isAvailable:function(editor){return editor&&editor.inMultiSelectMode}}];var HashHandler=acequire(\"../keyboard/hash_handler\").HashHandler;exports.keyboardHandler=new HashHandler(exports.multiSelectCommands)}),ace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/config\"],function(acequire,exports){var oop=acequire(\"../lib/oop\"),EventEmitter=acequire(\"../lib/event_emitter\").EventEmitter,config=acequire(\"../config\"),WorkerClient=function(topLevelNamespaces,mod,classname){this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.onError=this.onError.bind(this);var workerUrl;if(config.get(\"packaged\"))workerUrl=config.moduleUrl(mod.id,\"worker\");else{var normalizePath=this.$normalizePath;acequire.nameToUrl&&!acequire.toUrl&&(acequire.toUrl=acequire.nameToUrl),workerUrl=normalizePath(acequire.toUrl(\"ace/worker/worker.js\",null,\"_\"));var tlns={};topLevelNamespaces.forEach(function(ns){tlns[ns]=normalizePath(acequire.toUrl(ns,null,\"_\").replace(/(\\.js)?(\\?.*)?$/,\"\"))})}var workerSrc=mod.src,Blob=require(\"w3c-blob\"),blob=new Blob([workerSrc],{type:\"application/javascript\"}),blobUrl=(window.URL||window.webkitURL).createObjectURL(blob);this.$worker=new Worker(blobUrl),this.$worker.postMessage({init:!0,tlns:tlns,module:mod.id,classname:classname}),this.callbackId=1,this.callbacks={},this.$worker.onerror=this.onError,this.$worker.onmessage=this.onMessage};(function(){oop.implement(this,EventEmitter),this.onError=function(e){throw window.console&&console.log&&console.log(e),e},this.onMessage=function(e){var msg=e.data;switch(msg.type){case\"log\":window.console&&console.log&&console.log.apply(console,msg.data);break;case\"event\":this._emit(msg.name,{data:msg.data});break;case\"call\":var callback=this.callbacks[msg.id];callback&&(callback(msg.data),delete this.callbacks[msg.id])}},this.$normalizePath=function(path){return location.host?(path=path.replace(/^[a-z]+:\\/\\/[^\\/]+/,\"\"),path=location.protocol+\"//\"+location.host+(\"/\"==path.charAt(0)?\"\":location.pathname.replace(/\\/[^\\/]*$/,\"\"))+\"/\"+path.replace(/^[\\/]+/,\"\")):path},this.terminate=function(){this._emit(\"terminate\",{}),this.$worker.terminate(),this.$worker=null,this.$doc.removeEventListener(\"change\",this.changeListener),this.$doc=null},this.send=function(cmd,args){this.$worker.postMessage({command:cmd,args:args})},this.call=function(cmd,args,callback){if(callback){var id=this.callbackId++;this.callbacks[id]=callback,args.push(id)}this.send(cmd,args)},this.emit=function(event,data){try{this.$worker.postMessage({event:event,data:{data:data.data}})}catch(ex){}},this.attachToDocument=function(doc){this.$doc&&this.terminate(),this.$doc=doc,this.call(\"setValue\",[doc.getValue()]),doc.on(\"change\",this.changeListener)},this.changeListener=function(e){e.range={start:e.data.range.start,end:e.data.range.end},this.emit(\"change\",e)}}).call(WorkerClient.prototype);var UIWorkerClient=function(topLevelNamespaces,mod,classname){this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var main=null,sender=Object.create(EventEmitter),_self=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){_self.messageBuffer.push(e),main&&setTimeout(processNext)};var processNext=function(){var msg=_self.messageBuffer.shift();msg.command?main[msg.command].apply(main,msg.args):msg.event&&sender._emit(msg.event,msg.data)};sender.postMessage=function(msg){_self.onMessage({data:msg})},sender.callback=function(data,callbackId){this.postMessage({type:\"call\",id:callbackId,data:data})},sender.emit=function(name,data){this.postMessage({type:\"event\",name:name,data:data})},config.loadModule([\"worker\",mod],function(Main){for(main=new Main[classname](sender);_self.messageBuffer.length;)processNext()})};UIWorkerClient.prototype=WorkerClient.prototype,exports.UIWorkerClient=UIWorkerClient,exports.WorkerClient=WorkerClient}),ace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"],function(acequire,exports){var Range=acequire(\"./range\").Range,EventEmitter=acequire(\"./lib/event_emitter\").EventEmitter,oop=acequire(\"./lib/oop\"),PlaceHolder=function(session,length,pos,others,mainClass,othersClass){var _self=this;this.length=length,this.session=session,this.doc=session.getDocument(),this.mainClass=mainClass,this.othersClass=othersClass,this.$onUpdate=this.onUpdate.bind(this),this.doc.on(\"change\",this.$onUpdate),this.$others=others,this.$onCursorChange=function(){setTimeout(function(){_self.onCursorChange()})},this.$pos=pos;var undoStack=session.getUndoManager().$undoStack||session.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=undoStack.length,this.setup(),session.selection.on(\"changeCursor\",this.$onCursorChange)};(function(){oop.implement(this,EventEmitter),this.setup=function(){var _self=this,doc=this.doc,session=this.session,pos=this.$pos;this.pos=doc.createAnchor(pos.row,pos.column),this.markerId=session.addMarker(new Range(pos.row,pos.column,pos.row,pos.column+this.length),this.mainClass,null,!1),this.pos.on(\"change\",function(event){session.removeMarker(_self.markerId),_self.markerId=session.addMarker(new Range(event.value.row,event.value.column,event.value.row,event.value.column+_self.length),_self.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(other){var anchor=doc.createAnchor(other.row,other.column);_self.others.push(anchor)}),session.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var session=this.session,_self=this;this.othersActive=!0,this.others.forEach(function(anchor){anchor.markerId=session.addMarker(new Range(anchor.row,anchor.column,anchor.row,anchor.column+_self.length),_self.othersClass,null,!1),anchor.on(\"change\",function(event){session.removeMarker(anchor.markerId),anchor.markerId=session.addMarker(new Range(event.value.row,event.value.column,event.value.row,event.value.column+_self.length),_self.othersClass,null,!1)})})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var i=0;this.others.length>i;i++)this.session.removeMarker(this.others[i].markerId)}},this.onUpdate=function(event){var delta=event.data,range=delta.range;if(range.start.row===range.end.row&&range.start.row===this.pos.row&&!this.$updating){this.$updating=!0;var lengthDiff=\"insertText\"===delta.action?range.end.column-range.start.column:range.start.column-range.end.column;if(range.start.column>=this.pos.column&&range.start.column\u003C=this.pos.column+this.length+1){var distanceFromStart=range.start.column-this.pos.column;if(this.length+=lengthDiff,!this.session.$fromUndo){if(\"insertText\"===delta.action)for(var i=this.others.length-1;i>=0;i--){var otherPos=this.others[i],newPos={row:otherPos.row,column:otherPos.column+distanceFromStart};otherPos.row===range.start.row&&range.start.column\u003CotherPos.column&&(newPos.column+=lengthDiff),this.doc.insert(newPos,delta.text)}else if(\"removeText\"===delta.action)for(var i=this.others.length-1;i>=0;i--){var otherPos=this.others[i],newPos={row:otherPos.row,column:otherPos.column+distanceFromStart};otherPos.row===range.start.row&&range.start.column\u003CotherPos.column&&(newPos.column+=lengthDiff),this.doc.remove(new Range(newPos.row,newPos.column,newPos.row,newPos.column-lengthDiff))}range.start.column===this.pos.column&&\"insertText\"===delta.action?setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-lengthDiff);for(var i=0;this.others.length>i;i++){var other=this.others[i],newPos={row:other.row,column:other.column-lengthDiff};other.row===range.start.row&&range.start.column\u003Cother.column&&(newPos.column+=lengthDiff),other.setPosition(newPos.row,newPos.column)}}.bind(this),0):range.start.column===this.pos.column&&\"removeText\"===delta.action&&setTimeout(function(){for(var i=0;this.others.length>i;i++){var other=this.others[i];other.row===range.start.row&&range.start.column\u003Cother.column&&other.setPosition(other.row,other.column-lengthDiff)}}.bind(this),0)}this.pos._emit(\"change\",{value:this.pos});for(var i=0;this.others.length>i;i++)this.others[i]._emit(\"change\",{value:this.others[i]})}this.$updating=!1}},this.onCursorChange=function(event){if(!this.$updating){var pos=this.session.selection.getCursor();pos.row===this.pos.row&&pos.column>=this.pos.column&&pos.column\u003C=this.pos.column+this.length?(this.showOtherMarkers(),this._emit(\"cursorEnter\",event)):(this.hideOtherMarkers(),this._emit(\"cursorLeave\",event))}},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener(\"change\",this.$onUpdate),this.session.selection.removeEventListener(\"changeCursor\",this.$onCursorChange),this.pos.detach();for(var i=0;this.others.length>i;i++)this.others[i].detach();this.session.setUndoSelect(!0)},this.cancel=function(){if(-1===this.$undoStackDepth)throw Error(\"Canceling placeholders only supported with undo manager attached to session.\");for(var undoManager=this.session.getUndoManager(),undosRequired=(undoManager.$undoStack||undoManager.$undostack).length-this.$undoStackDepth,i=0;undosRequired>i;i++)undoManager.undo(!0)}}).call(PlaceHolder.prototype),exports.PlaceHolder=PlaceHolder}),ace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(acequire,exports){var Range=acequire(\"../../range\").Range,FoldMode=exports.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(session,foldStyle,row){var line=session.getLine(row);return this.foldingStartMarker.test(line)?\"start\":\"markbeginend\"==foldStyle&&this.foldingStopMarker&&this.foldingStopMarker.test(line)?\"end\":\"\"},this.getFoldWidgetRange=function(){return null},this.indentationBlock=function(session,row,column){var re=/\\S/,line=session.getLine(row),startLevel=line.search(re);if(-1!=startLevel){for(var startColumn=column||line.length,maxRow=session.getLength(),startRow=row,endRow=row;maxRow>++row;){var level=session.getLine(row).search(re);if(-1!=level){if(startLevel>=level)break;endRow=row}}if(endRow>startRow){var endColumn=session.getLine(endRow).length;return new Range(startRow,startColumn,endRow,endColumn)}}},this.openingBracketBlock=function(session,bracket,row,column,typeRe){var start={row:row,column:column+1},end=session.$findClosingBracket(bracket,start,typeRe);if(end){var fw=session.foldWidgets[end.row];return null==fw&&(fw=this.getFoldWidget(session,end.row)),\"start\"==fw&&end.row>start.row&&(end.row--,end.column=session.getLine(end.row).length),Range.fromPoints(start,end)}},this.closingBracketBlock=function(session,bracket,row,column){var end={row:row,column:column},start=session.$findOpeningBracket(bracket,end);return start?(start.column++,end.column--,Range.fromPoints(start,end)):void 0}}).call(FoldMode.prototype)}),ace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"],function(acequire,exports){exports.isDark=!1,exports.cssClass=\"ace-tm\",exports.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm .ace_scroller {background-color: #FFFFFF;}.ace-tm .ace_cursor {border-left: 2px solid black;}.ace-tm .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_markup.ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_markup.ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;}';var dom=acequire(\"../lib/dom\");dom.importCssString(exports.cssText,exports.cssClass)}),function(){ace.acequire([\"ace/ace\"],function(a){a&&a.config.init(),window.ace||(window.ace={});for(var key in a)a.hasOwnProperty(key)&&(ace[key]=a[key])})}(),module.exports=window.ace.acequire(\"ace/ace\")})()},{\"w3c-blob\":30}],31:[function(require,module,exports){var Object_keys=function(obj){if(Object.keys)return Object.keys(obj);var res=[];for(var key in obj)res.push(key);return res},forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);for(var i=0;xs.length>i;i++)fn(xs[i],i,xs)},Script=exports.Script=function NodeScript(code){return this instanceof Script?(this.code=code,void 0):new Script(code)};Script.prototype.runInNewContext=function(context){context||(context={});var iframe=document.createElement(\"iframe\");iframe.style||(iframe.style={}),iframe.style.display=\"none\",document.body.appendChild(iframe);var win=iframe.contentWindow;forEach(Object_keys(context),function(key){win[key]=context[key]}),!win.eval&&win.execScript&&win.execScript(\"null\");var res=win.eval(this.code);return forEach(Object_keys(win),function(key){context[key]=win[key]}),document.body.removeChild(iframe),res},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInContext=function(context){return this.runInNewContext(context)},forEach(Object_keys(Script.prototype),function(name){exports[name]=Script[name]=function(code){var s=Script(code);return s[name].apply(s,[].slice.call(arguments,1))}}),exports.createScript=function(code){return exports.Script(code)},exports.createContext=Script.createContext=function(context){var copy={};return\"object\"==typeof context&&forEach(Object_keys(context),function(key){copy[key]=context[key]}),copy}},{}],24:[function(require,module){\"use strict\";function Terminal(opts){if(opts=opts||{},!(this instanceof Terminal))return new Terminal(opts);this.cols=opts.cols||500,this.rows=opts.rows||500,this.ybase=0,this.ydisp=0,this.x=0,this.y=0,this.cursorState=0,this.cursorHidden=!1,this.convertEol=!1,this.state=states.normal,this.queue=\"\",this.scrollTop=0,this.scrollBottom=this.rows-1,this.applicationKeypad=!1,this.originMode=!1,this.insertMode=!1,this.wraparoundMode=!1,this.normal=null,this.charset=null,this.gcharset=null,this.glevel=0,this.charsets=[null],this.element,this.children,this.refreshStart,this.refreshEnd,this.savedX,this.savedY,this.savedCols,this.readable=!0,this.writable=!0,this.defAttr=131840,this.curAttr=this.defAttr,this.params=[],this.currentParam=0,this.prefix=\"\",this.postfix=\"\",this.lines=[];for(var i=this.rows;i--;)this.lines.push(this.blankLine());this.tabs,this.setupStops()}var states=require(\"./lib/states\");module.exports=Terminal,require(\"./lib/colors\")(Terminal),require(\"./lib/options\")(Terminal),require(\"./lib/open\")(Terminal),require(\"./lib/destroy\")(Terminal),require(\"./lib/refresh\")(Terminal),require(\"./lib/write\")(Terminal),require(\"./lib/setgLevel\"),require(\"./lib/setgCharset\"),require(\"./lib/debug\")(Terminal),require(\"./lib/stops\")(Terminal),require(\"./lib/erase\")(Terminal),require(\"./lib/blankLine\")(Terminal),require(\"./lib/range\")(Terminal),require(\"./lib/util\")(Terminal),require(\"./lib/esc/index.js\")(Terminal),require(\"./lib/esc/reset.js\")(Terminal),require(\"./lib/esc/tabSet.js\")(Terminal),require(\"./lib/csi/charAttributes\")(Terminal),require(\"./lib/csi/insert-delete\")(Terminal),require(\"./lib/csi/position\")(Terminal),require(\"./lib/csi/cursor\")(Terminal),require(\"./lib/csi/repeatPrecedingCharacter\")(Terminal),require(\"./lib/csi/tabClear\")(Terminal),require(\"./lib/csi/softReset\")(Terminal),require(\"./lib/charsets.js\")(Terminal)},{\"./lib/esc/index.js\":32,\"./lib/esc/reset.js\":33,\"./lib/esc/tabSet.js\":34,\"./lib/charsets.js\":35,\"./lib/states\":36,\"./lib/colors\":37,\"./lib/options\":38,\"./lib/open\":39,\"./lib/destroy\":40,\"./lib/refresh\":41,\"./lib/write\":42,\"./lib/setgLevel\":43,\"./lib/setgCharset\":44,\"./lib/debug\":45,\"./lib/stops\":46,\"./lib/erase\":47,\"./lib/blankLine\":48,\"./lib/range\":49,\"./lib/util\":50,\"./lib/csi/charAttributes\":51,\"./lib/csi/insert-delete\":52,\"./lib/csi/position\":53,\"./lib/csi/cursor\":54,\"./lib/csi/repeatPrecedingCharacter\":55,\"./lib/csi/tabClear\":56,\"./lib/csi/softReset\":57}],25:[function(require,module,exports){(function(process){function through(write,end){function drain(){for(;buffer.length&&!stream.paused;){var data=buffer.shift();if(null===data)return stream.emit(\"end\");stream.emit(\"data\",data)}}function _end(){stream.writable=!1,end.call(stream),stream.readable||stream.destroy()}write=write||function(data){this.queue(data)},end=end||function(){this.queue(null)};var ended=!1,destroyed=!1,buffer=[],stream=new Stream;return stream.readable=stream.writable=!0,stream.paused=!1,stream.write=function(data){return write.call(this,data),!stream.paused},stream.queue=stream.push=function(data){return buffer.push(data),drain(),stream},stream.on(\"end\",function(){stream.readable=!1,stream.writable||process.nextTick(function(){stream.destroy()})}),stream.end=function(data){return ended?void 0:(ended=!0,arguments.length&&stream.write(data),_end(),stream)},stream.destroy=function(){return destroyed?void 0:(destroyed=!0,ended=!0,buffer.length=0,stream.writable=stream.readable=!1,stream.emit(\"close\"),stream)},stream.pause=function(){return stream.paused?void 0:(stream.paused=!0,stream.emit(\"pause\"),stream)},stream.resume=function(){return stream.paused&&(stream.paused=!1),drain(),stream.paused||stream.emit(\"drain\"),stream},stream}var Stream=require(\"stream\");exports=module.exports=through,through.through=through})(require(\"__browserify_process\"))},{stream:58,__browserify_process:16}],30:[function(require,module){(function(global){function get_blob(){if(global.Blob)try{return new Blob([\"asdf\"],{type:\"text/plain\"}),Blob}catch(err){}var Builder=global.BlobBuilder;return\"function\"!=typeof Builder&&(Builder=global.WebKitBlobBuilder||global.MozBlobBuilder||global.MSBlobBuilder),function(parts,bag){var builder=new Builder,endings=bag.endings,type=bag.type;if(endings)for(var i=0,len=parts.length;len>i;++i)builder.append(parts[i],endings);else for(var i=0,len=parts.length;len>i;++i)builder.append(parts[i]);return type?builder.getBlob(type):builder.getBlob()}}module.exports=get_blob()})(window)},{}],33:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.reset=function(){Terminal.call(this,this.cols,this.rows),this.refresh(0,this.rows-1)}}},{}],35:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.charsets={},Terminal.charsets.SCLD={\"`\":\"◆\",a:\"▒\",b:\"\t\",c:\"\\f\",d:\"\\r\",e:\"\\n\",f:\"°\",g:\"±\",h:\"␤\",i:\"\u000b\",j:\"┘\",k:\"┐\",l:\"┌\",m:\"└\",n:\"┼\",o:\"⎺\",p:\"⎻\",q:\"─\",r:\"⎼\",s:\"⎽\",t:\"├\",u:\"┤\",v:\"┴\",w:\"┬\",x:\"│\",y:\"≤\",z:\"≥\",\"{\":\"π\",\"|\":\"≠\",\"}\":\"£\",\"~\":\"·\"},Terminal.charsets.UK=null,Terminal.charsets.US=null,Terminal.charsets.Dutch=null,Terminal.charsets.Finnish=null,Terminal.charsets.French=null,Terminal.charsets.FrenchCanadian=null,Terminal.charsets.German=null,Terminal.charsets.Italian=null,Terminal.charsets.NorwegianDanish=null,Terminal.charsets.Spanish=null,Terminal.charsets.Swedish=null,Terminal.charsets.Swiss=null,Terminal.charsets.ISOLatin=null}},{}],36:[function(require,module){\"use strict\";module.exports={normal:0,escaped:1,csi:2,osc:3,charset:4,dcs:5,ignore:6}},{}],37:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.colors=[\"#2e3436\",\"#cc0000\",\"#4e9a06\",\"#c4a000\",\"#3465a4\",\"#75507b\",\"#06989a\",\"#d3d7cf\",\"#555753\",\"#ef2929\",\"#8ae234\",\"#fce94f\",\"#729fcf\",\"#ad7fa8\",\"#34e2e2\",\"#eeeeec\"],Terminal.colors=function(){function out(r,g,b){colors.push(\"#\"+hex(r)+hex(g)+hex(b))}function hex(c){return c=c.toString(16),2>c.length?\"0\"+c:c}var i,colors=Terminal.colors,r=[0,95,135,175,215,255];for(i=0;216>i;i++)out(r[0|i/36%6],r[0|i/6%6],r[i%6]);for(i=0;24>i;i++)r=8+10*i,out(r,r,r);return colors}(),Terminal.defaultColors={bg:\"#000000\",fg:\"#f0f0f0\"},Terminal.colors[256]=Terminal.defaultColors.bg,Terminal.colors[257]=Terminal.defaultColors.fg}},{}],38:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.termName=\"xterm\",Terminal.geometry=[80,24],Terminal.cursorBlink=!0,Terminal.visualBell=!1,Terminal.popOnBell=!1,Terminal.scrollback=1e3,Terminal.screenKeys=!1,Terminal.programFeatures=!1,Terminal.debug=!1}},{}],39:[function(require,module){\"use strict\";function isBoldBroken(){var el=document.createElement(\"span\");el.innerHTML=\"hello world\",document.body.appendChild(el);var w1=el.scrollWidth;el.style.fontWeight=\"bold\";var w2=el.scrollWidth;return document.body.removeChild(el),w1!==w2}module.exports=function(Terminal){Terminal.prototype.open=function(){var div,i=0;for(this.element=document.createElement(\"div\"),this.element.className=\"terminal\",this.children=[];this.rows>i;i++)div=document.createElement(\"div\"),this.element.appendChild(div),this.children.push(div);this.refresh(0,this.rows-1),null===Terminal.brokenBold&&(Terminal.brokenBold=isBoldBroken()),this.element.style.backgroundColor=Terminal.defaultColors.bg,this.element.style.color=Terminal.defaultColors.fg}}},{}],40:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.destroy=function(){this.readable=!1,this.writable=!1,this._events={},this.handler=function(){},this.write=function(){}}}},{}],41:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.refresh=function(start,end){var x,y,i,line,out,ch,width,data,attr,fgColor,bgColor,flags,row,parent;\nfor(width=this.cols,y=start;end>=y;y++){if(row=y+this.ydisp,line=this.lines[row],!line)return this.reset();for(out=\"\",x=y===this.y&&this.cursorState&&this.ydisp===this.ybase&&!this.cursorHidden?this.x:-1,attr=this.defAttr,i=0;width>i;i++){switch(data=line[i][0],ch=line[i][1],i===x&&(data=-1),data!==attr&&(attr!==this.defAttr&&(out+=\"\u003C/span>\"),data!==this.defAttr&&(-1===data?out+='\u003Cspan class=\"reverse-video\">':(out+='\u003Cspan style=\"',bgColor=511&data,fgColor=511&data>>9,flags=data>>18,1&flags&&(Terminal.brokenBold||(out+=\"font-weight:bold;\"),8>fgColor&&(fgColor+=8)),2&flags&&(out+=\"text-decoration:underline;\"),256!==bgColor&&(out+=\"background-color:\"+Terminal.colors[bgColor]+\";\"),257!==fgColor&&(out+=\"color:\"+Terminal.colors[fgColor]+\";\"),out+='\">'))),ch){case\"&\":out+=\"&\";break;case\"\u003C\":out+=\"\u003C\";break;case\">\":out+=\">\";break;default:out+=\" \">=ch?\" \":ch}attr=data}attr!==this.defAttr&&(out+=\"\u003C/span>\"),this.children[y].innerHTML=out}parent&&parent.appendChild(this.element)}}},{}],43:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setgLevel=function(g){this.glevel=g,this.charset=this.charsets[g]}}},{}],44:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setgCharset=function(g,charset){this.charsets[g]=charset,this.glevel===g&&(this.charset=charset)}}},{}],45:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.log=function(){if(Terminal.debug&&window.console&&window.console.log){var args=Array.prototype.slice.call(arguments);window.console.log.apply(window.console,args)}},Terminal.prototype.error=function(){if(Terminal.debug&&window.console&&window.console.error){var args=Array.prototype.slice.call(arguments);window.console.error.apply(window.console,args)}}}},{}],47:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.eraseRight=function(x,y){for(var line=this.lines[this.ybase+y],ch=[this.curAttr,\" \"];this.cols>x;x++)line[x]=ch;this.updateRange(y)},Terminal.prototype.eraseLeft=function(x,y){var line=this.lines[this.ybase+y],ch=[this.curAttr,\" \"];for(x++;x--;)line[x]=ch;this.updateRange(y)},Terminal.prototype.eraseLine=function(y){this.eraseRight(0,y)},Terminal.prototype.eraseInDisplay=function(params){var j;switch(params[0]){case 0:for(this.eraseRight(this.x,this.y),j=this.y+1;this.rows>j;j++)this.eraseLine(j);break;case 1:for(this.eraseLeft(this.x,this.y),j=this.y;j--;)this.eraseLine(j);break;case 2:for(j=this.rows;j--;)this.eraseLine(j);break;case 3:}},Terminal.prototype.eraseInLine=function(params){switch(params[0]){case 0:this.eraseRight(this.x,this.y);break;case 1:this.eraseLeft(this.x,this.y);break;case 2:this.eraseLine(this.y)}}}},{}],46:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.setupStops=function(i){for(null!=i?this.tabs[i]||(i=this.prevStop(i)):(this.tabs={},i=0);this.cols>i;i+=8)this.tabs[i]=!0},Terminal.prototype.prevStop=function(x){for(null==x&&(x=this.x);!this.tabs[--x]&&x>0;);return x>=this.cols?this.cols-1:0>x?0:x},Terminal.prototype.nextStop=function(x){for(null==x&&(x=this.x);!this.tabs[++x]&&this.cols>x;);return x>=this.cols?this.cols-1:0>x?0:x}}},{}],48:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.blankLine=function(cur){for(var attr=cur?this.curAttr:this.defAttr,ch=[attr,\" \"],line=[],i=0;this.cols>i;i++)line[i]=ch;return line}}},{}],49:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.updateRange=function(y){this.refreshStart>y&&(this.refreshStart=y),y>this.refreshEnd&&(this.refreshEnd=y)},Terminal.prototype.maxRange=function(){this.refreshStart=0,this.refreshEnd=this.rows-1}}},{}],50:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.ch=function(cur){return cur?[this.curAttr,\" \"]:[this.defAttr,\" \"]},Terminal.prototype.is=function(term){var name=this.termName||Terminal.termName;return 0===(name+\"\").indexOf(term)}}},{}],51:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.charAttributes=function(params){for(var bg,fg,p,l=params.length,i=0;l>i;i++)if(p=params[i],p>=30&&37>=p)this.curAttr=-261633&this.curAttr|p-30\u003C\u003C9;else if(p>=40&&47>=p)this.curAttr=-512&this.curAttr|p-40;else if(p>=90&&97>=p)p+=8,this.curAttr=-261633&this.curAttr|p-90\u003C\u003C9;else if(p>=100&&107>=p)p+=8,this.curAttr=-512&this.curAttr|p-100;else if(0===p)this.curAttr=this.defAttr;else if(1===p)this.curAttr=this.curAttr|1\u003C\u003C18;else if(4===p)this.curAttr=this.curAttr|2\u003C\u003C18;else if(7===p||27===p){if(7===p){if(4&this.curAttr>>18)continue;this.curAttr=this.curAttr|4\u003C\u003C18}else if(27===p){if(4&~(this.curAttr>>18))continue;this.curAttr=-1048577&this.curAttr}bg=511&this.curAttr,fg=511&this.curAttr>>9,this.curAttr=-262144&this.curAttr|(bg\u003C\u003C9|fg)}else if(22===p)this.curAttr=-262145&this.curAttr;else if(24===p)this.curAttr=-524289&this.curAttr;else if(39===p)this.curAttr=-261633&this.curAttr,this.curAttr=this.curAttr|(511&this.defAttr>>9)\u003C\u003C9;else if(49===p)this.curAttr=-512&this.curAttr,this.curAttr=this.curAttr|511&this.defAttr;else if(38===p){if(5!==params[i+1])continue;i+=2,p=255¶ms[i],this.curAttr=-261633&this.curAttr|p\u003C\u003C9}else if(48===p){if(5!==params[i+1])continue;i+=2,p=255¶ms[i],this.curAttr=-512&this.curAttr|p}}}},{}],52:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.insertChars=function(params){var param,row,j,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.x,ch=[this.curAttr,\" \"];param--&&this.cols>j;)this.lines[row].splice(j++,0,ch),this.lines[row].pop()},Terminal.prototype.insertLines=function(params){var param,row,j;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.rows-1-this.scrollBottom,j=this.rows-1+this.ybase-j+1;param--;)this.lines.splice(row,0,this.blankLine(!0)),this.lines.splice(j,1);this.updateRange(this.y),this.updateRange(this.scrollBottom)},Terminal.prototype.deleteLines=function(params){var param,row,j;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.rows-1-this.scrollBottom,j=this.rows-1+this.ybase-j;param--;)this.lines.splice(j+1,0,this.blankLine(!0)),this.lines.splice(row,1);this.updateRange(this.y),this.updateRange(this.scrollBottom)},Terminal.prototype.deleteChars=function(params){var param,row,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,ch=[this.curAttr,\" \"];param--;)this.lines[row].splice(this.x,1),this.lines[row].push(ch)},Terminal.prototype.eraseChars=function(params){var param,row,j,ch;for(param=params[0],1>param&&(param=1),row=this.y+this.ybase,j=this.x,ch=[this.curAttr,\" \"];param--&&this.cols>j;)this.lines[row][j++]=ch}}},{}],53:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.charPosAbsolute=function(params){var param=params[0];1>param&&(param=1),this.x=param-1,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.HPositionRelative=function(params){var param=params[0];1>param&&(param=1),this.x+=param,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.linePosAbsolute=function(params){var param=params[0];1>param&&(param=1),this.y=param-1,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.VPositionRelative=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.HVPosition=function(params){1>params[0]&&(params[0]=1),1>params[1]&&(params[1]=1),this.y=params[0]-1,this.y>=this.rows&&(this.y=this.rows-1),this.x=params[1]-1,this.x>=this.cols&&(this.x=this.cols-1)}}},{}],54:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.saveCursor=function(){this.savedX=this.x,this.savedY=this.y},Terminal.prototype.restoreCursor=function(){this.x=this.savedX||0,this.y=this.savedY||0},Terminal.prototype.cursorUp=function(params){var param=params[0];1>param&&(param=1),this.y-=param,0>this.y&&(this.y=0)},Terminal.prototype.cursorDown=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1)},Terminal.prototype.cursorForward=function(params){var param=params[0];1>param&&(param=1),this.x+=param,this.x>=this.cols&&(this.x=this.cols-1)},Terminal.prototype.cursorBackward=function(params){var param=params[0];1>param&&(param=1),this.x-=param,0>this.x&&(this.x=0)},Terminal.prototype.cursorPos=function(params){var row,col;row=params[0]-1,col=params.length>=2?params[1]-1:0,0>row?row=0:row>=this.rows&&(row=this.rows-1),0>col?col=0:col>=this.cols&&(col=this.cols-1),this.x=col,this.y=row},Terminal.prototype.cursorNextLine=function(params){var param=params[0];1>param&&(param=1),this.y+=param,this.y>=this.rows&&(this.y=this.rows-1),this.x=0},Terminal.prototype.cursorPrecedingLine=function(params){var param=params[0];1>param&&(param=1),this.y-=param,0>this.y&&(this.y=0),this.x=0},Terminal.prototype.cursorCharAbsolute=function(params){var param=params[0];1>param&&(param=1),this.x=param-1},Terminal.prototype.cursorForwardTab=function(params){for(var param=params[0]||1;param--;)this.x=this.nextStop()},Terminal.prototype.cursorBackwardTab=function(params){for(var param=params[0]||1;param--;)this.x=this.prevStop()}}},{}],55:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.repeatPrecedingCharacter=function(params){for(var param=params[0]||1,line=this.lines[this.ybase+this.y],ch=line[this.x-1]||[this.defAttr,\" \"];param--;)line[this.x++]=ch}}},{}],56:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.tabClear=function(params){var param=params[0];0>=param?delete this.tabs[this.x]:3===param&&(this.tabs={})}}},{}],57:[function(require,module){\"use strict\";module.exports=function(Terminal){Terminal.prototype.softReset=function(){this.cursorHidden=!1,this.insertMode=!1,this.originMode=!1,this.wraparoundMode=!1,this.applicationKeypad=!1,this.scrollTop=0,this.scrollBottom=this.rows-1,this.curAttr=this.defAttr,this.x=this.y=0,this.charset=null,this.glevel=0,this.charsets=[null]}}},{}],58:[function(require,module){function Stream(){events.EventEmitter.call(this)}var events=require(\"events\"),util=require(\"util\");util.inherits(Stream,events.EventEmitter),module.exports=Stream,Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest._pipeCount--,cleanup(),dest._pipeCount>0||dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,dest._pipeCount--,cleanup(),dest._pipeCount>0||dest.destroy())}function onerror(er){if(cleanup(),0===this.listeners(\"error\").length)throw er}function cleanup(){source.removeListener(\"data\",ondata),dest.removeListener(\"drain\",ondrain),source.removeListener(\"end\",onend),source.removeListener(\"close\",onclose),source.removeListener(\"error\",onerror),dest.removeListener(\"error\",onerror),source.removeListener(\"end\",cleanup),source.removeListener(\"close\",cleanup),dest.removeListener(\"end\",cleanup),dest.removeListener(\"close\",cleanup)}var source=this;source.on(\"data\",ondata),dest.on(\"drain\",ondrain),dest._isStdio||options&&options.end===!1||(dest._pipeCount=dest._pipeCount||0,dest._pipeCount++,source.on(\"end\",onend),source.on(\"close\",onclose));var didOnEnd=!1;return source.on(\"error\",onerror),dest.on(\"error\",onerror),source.on(\"end\",cleanup),source.on(\"close\",cleanup),dest.on(\"end\",cleanup),dest.on(\"close\",cleanup),dest.emit(\"pipe\",source),dest}},{events:15,util:6}],59:[function(require,module,exports){\"use strict\";var vm=require(\"vm\");exports.createCtx=function(sandbox){return vm.createContext(sandbox)},exports.runInCtx=function(code,ctx){return vm.runInContext(code,ctx)}},{vm:31}],60:[function(require,module){\"use strict\";module.exports=function(arr){return arr.filter(function(k){return!filterOut.hasOwnProperty(k)})};var filterOuts=[\"ArrayBuffer\",\"Attr\",\"BeforeLoadEvent\",\"Blob\",\"CDATASection\",\"CSSCharsetRule\",\"CSSImportRule\",\"CSSMediaRule\",\"CSSPageRule\",\"CSSPrimitiveValue\",\"CSSRuleList\",\"CSSStyleDeclaration\",\"CSSStyleSheet\",\"CSSValue\",\"CanvasGradient\",\"ClientRectList\",\"Clipboard\",\"CompositionEvent\",\"Counter\",\"DOMException\",\"DOMParser\",\"DOMStringMap\",\"DOMTokenList\",\"Document\",\"DocumentFragment\",\"DocumentType\",\"Element\",\"ErrorEvent\",\"Event\",\"EventSource\",\"File\",\"FileError\",\"FileList\",\"Float32Array\",\"HTMLAllCollection\",\"HTMLAreaElement\",\"HTMLBRElement\",\"HTMLButtonElement\",\"HTMLCanvasElement\",\"HTMLCollection\",\"HTMLDListElement\",\"HTMLDirectoryElement\",\"HTMLDivElement\",\"HTMLFormElement\",\"HTMLFrameElement\",\"HTMLHRElement\",\"HTMLIFrameElement\",\"HTMLImageElement\",\"HTMLInputElement\",\"HTMLLinkElement\",\"HTMLMapElement\",\"HTMLMediaElement\",\"HTMLMenuElement\",\"HTMLMeterElement\",\"HTMLOptGroupElement\",\"HTMLParamElement\",\"HTMLProgressElement\",\"HTMLQuoteElement\",\"HTMLSelectElement\",\"HTMLTableCaptionElement\",\"HTMLTableColElement\",\"HTMLTableSectionElement\",\"HTMLUListElement\",\"HTMLUnknownElement\",\"HashChangeEvent\",\"ImageData\",\"Int16Array\",\"Int8Array\",\"MediaController\",\"MediaError\",\"MediaList\",\"MessageChannel\",\"MimeType\",\"MutationEvent\",\"NamedNodeMap\",\"NodeFilter\",\"Notation\",\"OverflowEvent\",\"Plugin\",\"PluginArray\",\"PopStateEvent\",\"RGBColor\",\"Range\",\"Rect\",\"SQLException\",\"SVGAltGlyphItemElement\",\"SVGAnimateColorElement\",\"SVGAnimatedAngle\",\"SVGAnimatedEnumeration\",\"SVGAnimatedLength\",\"SVGAnimatedLengthList\",\"SVGAnimatedNumberList\",\"SVGAnimatedRect\",\"SVGAnimatedString\",\"SVGAnimatedTransformList\",\"SVGClipPathElement\",\"SVGDefsElement\",\"SVGElementInstanceList\",\"SVGEllipseElement\",\"SVGException\",\"SVGFEComponentTransferElement\",\"SVGFEConvolveMatrixElement\",\"SVGFEDiffuseLightingElement\",\"SVGFEDistantLightElement\",\"SVGFEFloodElement\",\"SVGFEFuncBElement\",\"SVGFEFuncGElement\",\"SVGFEFuncRElement\",\"SVGFEGaussianBlurElement\",\"SVGFEImageElement\",\"SVGFEMergeNodeElement\",\"SVGFEOffsetElement\",\"SVGFESpecularLightingElement\",\"SVGFilterElement\",\"SVGFontElement\",\"SVGFontFaceNameElement\",\"SVGFontFaceUriElement\",\"SVGGlyphElement\",\"SVGGlyphRefElement\",\"SVGGradientElement\",\"SVGHKernElement\",\"SVGLengthList\",\"SVGLinearGradientElement\",\"SVGMarkerElement\",\"SVGMatrix\",\"SVGNumber\",\"SVGPaint\",\"SVGPathSegArcAbs\",\"SVGPathSegArcRel\",\"SVGPathSegCurvetoCubicAbs\",\"SVGPathSegCurvetoCubicSmoothAbs\",\"SVGPathSegCurvetoCubicSmoothRel\",\"SVGPathSegCurvetoQuadraticRel\",\"SVGPathSegCurvetoQuadraticSmoothAbs\",\"SVGPathSegCurvetoQuadraticSmoothRel\",\"SVGPathSegLinetoHorizontalRel\",\"SVGPathSegLinetoVerticalRel\",\"SVGPathSegList\",\"SVGPathSegMovetoAbs\",\"SVGPatternElement\",\"SVGPointList\",\"SVGPolylineElement\",\"SVGPreserveAspectRatio\",\"SVGRectElement\",\"SVGSetElement\",\"SVGStopElement\",\"SVGStringList\",\"SVGSymbolElement\",\"SVGTSpanElement\",\"SVGTextPathElement\",\"SVGTransformList\",\"SVGZoomEvent\",\"Selection\",\"Storage\",\"StorageEvent\",\"TextEvent\",\"TextMetrics\",\"TextTrackCueList\",\"UIEvent\",\"Uint32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"WebGLActiveInfo\",\"WebGLProgram\",\"WebGLRenderbuffer\",\"WebGLRenderingContext\",\"WebGLShader\",\"WebKitAnimationEvent\",\"WebKitCSSFilterValue\",\"WebKitCSSKeyframeRule\",\"WebKitCSSTransformValue\",\"WebKitPoint\",\"WebKitTransitionEvent\",\"Window\",\"Worker\",\"XMLDocument\",\"XMLHttpRequest\",\"XMLHttpRequestException\",\"XPathEvaluator\",\"XPathResult\",\"clientInformation\",\"console\",\"exports\",\"frameElement\",\"frames\",\"history\",\"localStorage\",\"location\",\"locationbar\",\"menubar\",\"navigator\",\"onbeforeunload\",\"onblur\",\"oncanplaythrough\",\"onclick\",\"ondragenter\",\"ondragleave\",\"ondragover\",\"ondragstart\",\"ondrop\",\"ondurationchange\",\"onemptied\",\"onerror\",\"onkeydown\",\"onkeypress\",\"onloadeddata\",\"onloadstart\",\"onmessage\",\"onmouseout\",\"onmouseover\",\"onoffline\",\"ononline\",\"onplay\",\"onplaying\",\"onprogress\",\"onratechange\",\"onscroll\",\"onsearch\",\"onselect\",\"onsuspend\",\"ontimeupdate\",\"onwebkittransitionend\",\"opener\",\"scrollbars\",\"styleMedia\",\"toolbar\",\"webkitAudioContext\",\"webkitAudioPannerNode\",\"webkitURL\",\"Audio\",\"AudioProcessingEvent\",\"CSSFontFaceRule\",\"CSSRule\",\"CSSStyleRule\",\"CSSValueList\",\"CanvasPattern\",\"CanvasRenderingContext2D\",\"CharacterData\",\"ClientRect\",\"CloseEvent\",\"Comment\",\"CustomEvent\",\"DOMImplementation\",\"DOMSettableTokenList\",\"DOMStringList\",\"DataView\",\"Entity\",\"EntityReference\",\"EventException\",\"FileReader\",\"Float64Array\",\"FormData\",\"HTMLAnchorElement\",\"HTMLAppletElement\",\"HTMLAudioElement\",\"HTMLBaseElement\",\"HTMLBaseFontElement\",\"HTMLBodyElement\",\"HTMLDocument\",\"HTMLElement\",\"HTMLEmbedElement\",\"HTMLFieldSetElement\",\"HTMLFontElement\",\"HTMLFrameSetElement\",\"HTMLHeadElement\",\"HTMLHeadingElement\",\"HTMLHtmlElement\",\"HTMLKeygenElement\",\"HTMLLIElement\",\"HTMLLabelElement\",\"HTMLLegendElement\",\"HTMLMarqueeElement\",\"HTMLMetaElement\",\"HTMLModElement\",\"HTMLOListElement\",\"HTMLObjectElement\",\"HTMLOptionElement\",\"HTMLOutputElement\",\"HTMLParagraphElement\",\"HTMLPreElement\",\"HTMLScriptElement\",\"HTMLSourceElement\",\"HTMLSpanElement\",\"HTMLStyleElement\",\"HTMLTableCellElement\",\"HTMLTableElement\",\"HTMLTableRowElement\",\"HTMLTextAreaElement\",\"HTMLTitleElement\",\"HTMLTrackElement\",\"HTMLVideoElement\",\"Image\",\"Int32Array\",\"KeyboardEvent\",\"MessageEvent\",\"MessagePort\",\"MimeTypeArray\",\"MouseEvent\",\"Node\",\"NodeList\",\"OfflineAudioCompletionEvent\",\"Option\",\"PageTransitionEvent\",\"ProcessingInstruction\",\"ProgressEvent\",\"RangeException\",\"SVGAElement\",\"SVGAltGlyphDefElement\",\"SVGAltGlyphElement\",\"SVGAngle\",\"SVGAnimateElement\",\"SVGAnimateMotionElement\",\"SVGAnimateTransformElement\",\"SVGAnimatedBoolean\",\"SVGAnimatedInteger\",\"SVGAnimatedNumber\",\"SVGAnimatedPreserveAspectRatio\",\"SVGCircleElement\",\"SVGColor\",\"SVGComponentTransferFunctionElement\",\"SVGCursorElement\",\"SVGDescElement\",\"SVGDocument\",\"SVGElement\",\"SVGElementInstance\",\"SVGFEBlendElement\",\"SVGFEColorMatrixElement\",\"SVGFECompositeElement\",\"SVGFEDisplacementMapElement\",\"SVGFEDropShadowElement\",\"SVGFEFuncAElement\",\"SVGFEMergeElement\",\"SVGFEMorphologyElement\",\"SVGFEPointLightElement\",\"SVGFESpotLightElement\",\"SVGFETileElement\",\"SVGFETurbulenceElement\",\"SVGFontFaceElement\",\"SVGFontFaceFormatElement\",\"SVGFontFaceSrcElement\",\"SVGForeignObjectElement\",\"SVGGElement\",\"SVGImageElement\",\"SVGLength\",\"SVGLineElement\",\"SVGMPathElement\",\"SVGMaskElement\",\"SVGMetadataElement\",\"SVGMissingGlyphElement\",\"SVGNumberList\",\"SVGPathElement\",\"SVGPathSeg\",\"SVGPathSegClosePath\",\"SVGPathSegCurvetoCubicRel\",\"SVGPathSegCurvetoQuadraticAbs\",\"SVGPathSegLinetoAbs\",\"SVGPathSegLinetoHorizontalAbs\",\"SVGPathSegLinetoRel\",\"SVGPathSegLinetoVerticalAbs\",\"SVGPathSegMovetoRel\",\"SVGPoint\",\"SVGPolygonElement\",\"SVGRadialGradientElement\",\"SVGRect\",\"SVGRenderingIntent\",\"SVGSVGElement\",\"SVGScriptElement\",\"SVGStyleElement\",\"SVGSwitchElement\",\"SVGTRefElement\",\"SVGTextContentElement\",\"SVGTextElement\",\"SVGTextPositioningElement\",\"SVGTitleElement\",\"SVGTransform\",\"SVGUnitTypes\",\"SVGUseElement\",\"SVGVKernElement\",\"SVGViewElement\",\"SharedWorker\",\"StyleSheet\",\"StyleSheetList\",\"Text\",\"TextTrack\",\"TextTrackCue\",\"TextTrackList\",\"TimeRanges\",\"TrackEvent\",\"Uint16Array\",\"WebGLBuffer\",\"WebGLContextEvent\",\"WebGLFramebuffer\",\"WebGLShaderPrecisionFormat\",\"WebGLTexture\",\"WebGLUniformLocation\",\"WebKitCSSKeyframesRule\",\"WebKitCSSMatrix\",\"WebKitMutationObserver\",\"WebSocket\",\"WheelEvent\",\"XMLHttpRequestProgressEvent\",\"XMLHttpRequestUpload\",\"XMLSerializer\",\"XPathException\",\"XSLTProcessor\",\"applicationCache\",\"closed\",\"crypto\",\"defaultStatus\",\"defaultstatus\",\"devicePixelRatio\",\"event\",\"innerHeight\",\"innerWidth\",\"length\",\"module\",\"name\",\"offscreenBuffering\",\"onabort\",\"oncanplay\",\"onchange\",\"oncontextmenu\",\"ondblclick\",\"ondrag\",\"ondragend\",\"onended\",\"onfocus\",\"onhashchange\",\"oninput\",\"oninvalid\",\"onkeyup\",\"onload\",\"onloadedmetadata\",\"onmousedown\",\"onmousemove\",\"onmouseup\",\"onmousewheel\",\"onpagehide\",\"onpageshow\",\"onpause\",\"onpopstate\",\"onreset\",\"onresize\",\"onseeked\",\"onseeking\",\"onstalled\",\"onstorage\",\"onsubmit\",\"onunload\",\"onvolumechange\",\"onwaiting\",\"onwebkitanimationend\",\"onwebkitanimationiteration\",\"onwebkitanimationstart\",\"outerHeight\",\"outerWidth\",\"pageXOffset\",\"pageYOffset\",\"parent\",\"personalbar\",\"screen\",\"screenLeft\",\"screenTop\",\"screenX\",\"screenY\",\"scrollX\",\"scrollY\",\"self\",\"sessionStorage\",\"status\",\"statusbar\",\"Touch\",\"TouchList\",\"TouchEvent\",\"DeviceMotionEvent\",\"DeviceOrientationEvent\",\"orientation\",\"onorientationchange\",\"ontouched\",\"ondeviceorientation\",\"ontouchmove\",\"ondevicemotion\",\"ontouchcancel\",\"ontouchstart\",\"ongestureend\",\"ontouchend\",\"ongesturestart\",\"ongesturechange\",\"getSearchEngine\",\"setSearchEngine\",\"canSetSearchEngine\",\"InstallTrigger\",\"getInterface\",\"sidebar\"],filterOut={};filterOuts.forEach(function(k){filterOut[k]=!0})},{}],61:[function(require,module){\"use strict\";var exclude={};module.exports=function(thing,exclude_){var t={},ex=exclude_||exclude;return thing?(Object.keys(thing).filter(function(k){return!ex[k]}).forEach(function(k){thing.hasOwnProperty(k)&&(t[k]=thing[k])}),t):t},[\"top\",\"Intl\",\"chrome\",\"document\",\"external\",\"v8Intl\",\"window\",\"frameElement\",\"parent\"].forEach(function(k){exclude[k]=!0})},{}],28:[function(require,module){module.exports={highlight:require(\"./lib/highlight\"),highlightFile:require(\"./lib/highlightFile\"),highlightFileSync:require(\"./lib/highlightFileSync\")}},{\"./lib/highlight\":62,\"./lib/highlightFile\":63,\"./lib/highlightFileSync\":64}],65:[function(require,module,exports){(function(process){function filter(xs,fn){for(var res=[],i=0;xs.length>i;i++)fn(xs[i],i,xs)&&res.push(xs[i]);return res}function normalizeArray(parts,allowAboveRoot){for(var up=0,i=parts.length;i>=0;i--){var last=parts[i];\".\"==last?parts.splice(i,1):\"..\"===last?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up--;up)parts.unshift(\"..\");return parts}var splitPathRe=/^(.+\\/(?!$)|\\/)?((?:.+?)?(\\.[^.]*)?)$/;exports.resolve=function(){for(var resolvedPath=\"\",resolvedAbsolute=!1,i=arguments.length;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();\"string\"==typeof path&&path&&(resolvedPath=path+\"/\"+resolvedPath,resolvedAbsolute=\"/\"===path.charAt(0))}return resolvedPath=normalizeArray(filter(resolvedPath.split(\"/\"),function(p){return!!p}),!resolvedAbsolute).join(\"/\"),(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},exports.normalize=function(path){var isAbsolute=\"/\"===path.charAt(0),trailingSlash=\"/\"===path.slice(-1);return path=normalizeArray(filter(path.split(\"/\"),function(p){return!!p}),!isAbsolute).join(\"/\"),path||isAbsolute||(path=\".\"),path&&trailingSlash&&(path+=\"/\"),(isAbsolute?\"/\":\"\")+path},exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p){return p&&\"string\"==typeof p}).join(\"/\"))},exports.dirname=function(path){var dir=splitPathRe.exec(path)[1]||\"\",isWindows=!1;return dir?1===dir.length||isWindows&&3>=dir.length&&\":\"===dir.charAt(1)?dir:dir.substring(0,dir.length-1):\".\"},exports.basename=function(path,ext){var f=splitPathRe.exec(path)[2]||\"\";return ext&&f.substr(-1*ext.length)===ext&&(f=f.substr(0,f.length-ext.length)),f},exports.extname=function(path){return splitPathRe.exec(path)[3]||\"\"},exports.relative=function(from,to){function trim(arr){for(var start=0;arr.length>start&&\"\"===arr[start];start++);for(var end=arr.length-1;end>=0&&\"\"===arr[end];end--);return start>end?[]:arr.slice(start,end-start+1)}from=exports.resolve(from).substr(1),to=exports.resolve(to).substr(1);for(var fromParts=trim(from.split(\"/\")),toParts=trim(to.split(\"/\")),length=Math.min(fromParts.length,toParts.length),samePartsLength=length,i=0;length>i;i++)if(fromParts[i]!==toParts[i]){samePartsLength=i;break}for(var outputParts=[],i=samePartsLength;fromParts.length>i;i++)outputParts.push(\"..\");return outputParts=outputParts.concat(toParts.slice(samePartsLength)),outputParts.join(\"/\")}})(require(\"__browserify_process\"))},{__browserify_process:16}],42:[function(require,module){\"use strict\";function fixLinefeed(data){return data.replace(/([^\\r])\\n/g,\"$1\\r\\n\")}function fixIndent(data){return/(^|\\n) /.test(data)?data.split(\"\\n\").map(function(line){for(var count=0;\" \"===line.charAt(0);)line=line.slice(1),count++;for(;count--;)line=\" \"+line;return line}).join(\"\\r\\n\"):data}var states=require(\"./states\");module.exports=function(Terminal){Terminal.prototype.write=function(data){data=fixLinefeed(data),data=fixIndent(data);var cs,ch,l=data.length,i=0;for(this.refreshStart=this.y,this.refreshEnd=this.y,this.ybase!==this.ydisp&&(this.ydisp=this.ybase,this.maxRange());l>i;i++)switch(ch=data[i],this.state){case states.normal:switch(ch){case\"\u0007\":this.bell();break;case\"\\n\":case\"\u000b\":case\"\\f\":this.convertEol&&(this.x=0),this.y++;break;case\"\\r\":this.x=0;break;case\"\\b\":this.x>0&&this.x--;break;case\"\t\":this.x=this.nextStop();break;case\"\u000e\":this.setgLevel(1);break;case\"\u000f\":this.setgLevel(0);break;case\"\u001b\":this.state=states.escaped;break;default:ch>=\" \"&&(this.charset&&this.charset[ch]&&(ch=this.charset[ch]),this.x>=this.cols&&(this.x=0,this.y++),this.lines[this.y+this.ybase][this.x]=[this.curAttr,ch],this.x++,this.updateRange(this.y))}break;case states.escaped:switch(ch){case\"[\":this.params=[],this.currentParam=0,this.state=states.csi;break;case\"]\":this.params=[],this.currentParam=0,this.state=states.osc;break;case\"P\":this.params=[],this.currentParam=0,this.state=states.dcs;break;case\"_\":this.stateType=\"apc\",this.state=states.ignore;break;case\"^\":this.stateType=\"pm\",this.state=states.ignore;break;case\"c\":this.reset();break;case\"E\":this.x=0;break;case\"D\":this.index();break;case\"M\":this.reverseIndex();break;case\"%\":this.setgLevel(0),this.setgCharset(0,Terminal.charsets.US),this.state=states.normal,i++;break;case\"(\":case\")\":case\"*\":case\"+\":case\"-\":case\".\":switch(ch){case\"(\":this.gcharset=0;break;case\")\":this.gcharset=1;break;case\"*\":this.gcharset=2;break;case\"+\":this.gcharset=3;break;case\"-\":this.gcharset=1;break;case\".\":this.gcharset=2}this.state=states.charset;break;case\"/\":this.gcharset=3,this.state=states.charset,i--;break;case\"N\":break;case\"O\":break;case\"n\":this.setgLevel(2);break;case\"o\":this.setgLevel(3);break;case\"|\":this.setgLevel(3);break;case\"}\":this.setgLevel(2);break;case\"~\":this.setgLevel(1);break;case\"7\":this.saveCursor(),this.state=states.normal;break;case\"8\":this.restoreCursor(),this.state=states.normal;break;case\"#\":this.state=states.normal,i++;break;case\"H\":this.tabSet();break;case\"=\":this.log(\"Serial port requested application keypad.\"),this.applicationKeypad=!0,this.state=states.normal;break;case\">\":this.log(\"Switching back to normal keypad.\"),this.applicationKeypad=!1,this.state=states.normal;break;default:this.state=states.normal,this.error(\"Unknown ESC control: %s.\",ch)}break;case states.charset:switch(ch){case\"0\":cs=Terminal.charsets.SCLD;break;case\"A\":cs=Terminal.charsets.UK;break;case\"B\":cs=Terminal.charsets.US;break;case\"4\":cs=Terminal.charsets.Dutch;break;case\"C\":case\"5\":cs=Terminal.charsets.Finnish;break;case\"R\":cs=Terminal.charsets.French;break;case\"Q\":cs=Terminal.charsets.FrenchCanadian;break;case\"K\":cs=Terminal.charsets.German;break;case\"Y\":cs=Terminal.charsets.Italian;break;case\"E\":case\"6\":cs=Terminal.charsets.NorwegianDanish;break;case\"Z\":cs=Terminal.charsets.Spanish;break;case\"H\":case\"7\":cs=Terminal.charsets.Swedish;break;case\"=\":cs=Terminal.charsets.Swiss;break;case\"/\":cs=Terminal.charsets.ISOLatin,i++;break;default:cs=Terminal.charsets.US}this.setgCharset(this.gcharset,cs),this.gcharset=null,this.state=states.normal;break;case states.osc:if(\"\u001b\"===ch||\"\u0007\"===ch){switch(\"\u001b\"===ch&&i++,this.params.push(this.currentParam),this.params[0]){case 0:case 1:case 2:this.params[1]&&(this.title=this.params[1],this.handleTitle(this.title));break;case 3:break;case 4:case 5:break;case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:break;case 46:break;case 50:break;case 51:break;case 52:break;case 104:case 105:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:}this.params=[],this.currentParam=0,this.state=states.normal}else this.params.length?this.currentParam+=ch:ch>=\"0\"&&\"9\">=ch?this.currentParam=10*this.currentParam+ch.charCodeAt(0)-48:\";\"===ch&&(this.params.push(this.currentParam),this.currentParam=\"\");break;case states.csi:if(\"?\"===ch||\">\"===ch||\"!\"===ch){this.prefix=ch;break}if(ch>=\"0\"&&\"9\">=ch){this.currentParam=10*this.currentParam+ch.charCodeAt(0)-48;break}if(\"$\"===ch||'\"'===ch||\" \"===ch||\"'\"===ch){this.postfix=ch;break}if(this.params.push(this.currentParam),this.currentParam=0,\";\"===ch)break;switch(this.state=states.normal,ch){case\"A\":this.cursorUp(this.params);break;case\"B\":this.cursorDown(this.params);break;case\"C\":this.cursorForward(this.params);break;case\"D\":this.cursorBackward(this.params);break;case\"H\":this.cursorPos(this.params);break;case\"J\":this.eraseInDisplay(this.params);break;case\"K\":this.eraseInLine(this.params);break;case\"m\":this.charAttributes(this.params);break;case\"n\":this.deviceStatus(this.params);break;case\"@\":this.insertChars(this.params);break;case\"E\":this.cursorNextLine(this.params);break;case\"F\":this.cursorPrecedingLine(this.params);break;case\"G\":this.cursorCharAbsolute(this.params);break;case\"L\":this.insertLines(this.params);break;case\"M\":this.deleteLines(this.params);break;case\"P\":this.deleteChars(this.params);break;case\"X\":this.eraseChars(this.params);break;case\"`\":this.charPosAbsolute(this.params);break;case\"a\":this.HPositionRelative(this.params);break;case\"c\":break;case\"d\":this.linePosAbsolute(this.params);break;case\"e\":this.VPositionRelative(this.params);break;case\"f\":this.HVPosition(this.params);break;case\"h\":break;case\"l\":break;case\"r\":break;case\"s\":this.saveCursor(this.params);break;case\"u\":this.restoreCursor(this.params);break;case\"I\":this.cursorForwardTab(this.params);break;case\"S\":break;case\"T\":2>this.params.length&&!this.prefix;break;case\"Z\":this.cursorBackwardTab(this.params);break;case\"b\":this.repeatPrecedingCharacter(this.params);break;case\"g\":this.tabClear(this.params);break;case\"p\":switch(this.prefix){case\"!\":this.softReset(this.params)}break;default:this.error(\"Unknown CSI code: %s.\",ch)}this.prefix=\"\",this.postfix=\"\";break;case states.dcs:if(\"\u001b\"===ch||\"\u0007\"===ch){switch(\"\u001b\"===ch&&i++,this.prefix){case\"\":break;case\"$q\":var pt=this.currentParam;switch(pt){case'\"q':pt='0\"q';break;case'\"p':pt='61\"p';break;case\"r\":pt=\"\"+(this.scrollTop+1)+\";\"+(this.scrollBottom+1)+\"r\";break;case\"m\":pt=\"0m\";break;default:this.error(\"Unknown DCS Pt: %s.\",pt),pt=\"\"}break;case\"+p\":break;default:this.error(\"Unknown DCS prefix: %s.\",this.prefix)}this.currentParam=0,this.prefix=\"\",this.state=states.normal}else this.currentParam?this.currentParam+=ch:this.prefix||\"$\"===ch||\"+\"===ch?2===this.prefix.length?this.currentParam=ch:this.prefix+=ch:this.currentParam=ch;break;case states.ignore:\"\u001b\"===ch||\"\u0007\"===ch?(\"\u001b\"===ch&&i++,this.stateData=\"\",this.state=states.normal):(this.stateData||(this.stateData=\"\"),this.stateData+=ch)}this.updateRange(this.y),this.refresh(this.refreshStart,this.refreshEnd)},Terminal.prototype.writeln=function(data){data=data.replace(/ /g,\" \"),this.write(data+\" \\r\\n\")}}},{\"./states\":36}],32:[function(require,module){\"use strict\";var states=require(\"../states\");module.exports=function(Terminal){Terminal.prototype.index=function(){this.y++,this.y>this.scrollBottom&&(this.y--,this.scroll()),this.state=states.normal},Terminal.prototype.reverseIndex=function(){var j;this.y--,this.y\u003Cthis.scrollTop&&(this.y++,this.lines.splice(this.y+this.ybase,0,this.blankLine(!0)),j=this.rows-1-this.scrollBottom,this.lines.splice(this.rows-1+this.ybase-j+1,1),this.updateRange(this.scrollTop),this.updateRange(this.scrollBottom)),this.state=states.normal}}},{\"../states\":36}],34:[function(require,module){\"use strict\";var states=require(\"../states\");module.exports=function(Terminal){Terminal.prototype.tabSet=function(){this.tabs[this.x]=!0,this.state=states.normal}}},{\"../states\":36}],26:[function(require,module){(function(process){\"use strict\";function isFunctionDeclaration(snippet){var firstStatement=snippet.ast.body&&snippet.ast.body[0]&&snippet.ast.body[0];return firstStatement&&\"FunctionDeclaration\"===firstStatement.type}function added(origKeys,keys){return keys.filter(function(k){return!~origKeys.indexOf(k)\n})}function changed(ctx,prevCtx,prevKeys){return prevKeys.filter(function(k){return!deepIs(prevCtx[k],ctx[k])})}function keyValues(keys,ctx,prevCtx){return keys.map(function(k){return{key:k,value:ctx[k],prevValue:prevCtx?prevCtx[k]:void 0}})}function cleaned(ctx,add){var cleanedCtx=removeProblematic(ctx);return Object.keys(add).forEach(function(k){cleanedCtx[k]=add[k]}),cleanedCtx}function evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues){browser&&(ctx=cleaned(ctx,allTrackedKeyValues));var result,prevCtx=clone(ctx),prevKeys=Object.keys(prevCtx),code=snippet.code;try{isStrict&&!useStrictRx.test(code)&&parse('\"use strict\";'+snippet.code),result=runner.runInCtx(code,ctx)}catch(e){ctx[ErrorIndicator]=\"\"+e}browser&&(ctx=cleaned(ctx,{}));var crntCtx=clone(ctx),keys=Object.keys(crntCtx),addedValues=added(prevKeys,keys);browser&&(addedValues=removeIFrameGenerated(addedValues));var addedKeyValues=keyValues(addedValues,crntCtx),changedValues=changed(crntCtx,prevCtx,prevKeys),changedKeyValues=keyValues(changedValues,crntCtx,prevCtx);snippet.evaluated={result:result,ctx:prevCtx,added:clone(addedKeyValues),changed:clone(changedKeyValues)},browser&&(addedKeyValues.concat(changedKeyValues).forEach(function(x){allTrackedKeyValues[x.key]=x.value}),delete allTrackedKeyValues[ErrorIndicator]),delete ctx[ErrorIndicator]}var browser=process.browser,clone=(require(\"vm\"),require(\"clone\")),deepIs=require(\"deep-is\"),runner=require(\"./runner-vm\"),colors=require(\"ansicolors\"),parse=require(\"esprima\").parse,removeIFrameGenerated=require(\"./remove-iframe-generated\"),removeProblematic=require(\"./remove-problematic\"),createSandbox=require(\"./create-sandbox\"),ErrorIndicator=colors.red(\"!\"),useStrictRx=/^ *['\"]use strict['\"]/;module.exports=function(snippets,fullSrcPath){var fndecs,sandbox=createSandbox(fullSrcPath),ctx=runner.createCtx(sandbox),allTrackedKeyValues={},nonEmptySnippets=snippets.filter(function(snippet){return snippet.code.length}),isStrict=nonEmptySnippets.some(function(snippet){return useStrictRx.test(snippet.raw)});return browser||(fndecs=nonEmptySnippets.filter(function(snippet,idx){return isFunctionDeclaration(snippet)?(nonEmptySnippets.splice(idx,1),!0):!1}),fndecs.forEach(function(snippet){evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues)})),nonEmptySnippets.forEach(function(snippet){evalSnippet(ctx,snippet,isStrict,allTrackedKeyValues)}),ctx}})(require(\"__browserify_process\"))},{vm:31,\"./runner-vm\":59,\"./remove-iframe-generated\":60,\"./remove-problematic\":61,\"./create-sandbox\":66,clone:67,ansicolors:68,\"deep-is\":69,esprima:70,__browserify_process:16}],66:[function(require,module){(function(process,global){\"use strict\";function cleanProcess(process){var exclude={stdout:!0,stderr:!0,stdin:!0,mainModule:!0};return removeProblematic(process,exclude)}var browser=process.browser,requireLikeName=\"require-like\",requireLike=browser?function(){}:require(requireLikeName),path=require(\"path\"),removeProblematic=require(\"./remove-problematic\");module.exports=function(fullSrcPath){var exports={},sandbox={console:global.console,module:{exports:exports,parent:null},exports:exports,process:cleanProcess(process)},serverside={require:requireLike(fullSrcPath),__filename:fullSrcPath,__dirname:path.dirname(fullSrcPath),Buffer:require(\"buffer\").Buffer,ArrayBuffer:global.ArrayBuffer,Int8Array:global.Int8Array,Uint8Array:global.Uint8Array,Uint8ClampedArray:global.Uint8ClampedArray,Int16Array:global.Int16Array,Uint16Array:global.Uint16Array,Int32Array:global.Int32Array,Uint32Array:global.Uint32Array,Float32Array:global.Float32Array,Float64Array:global.Float64Array,DataView:global.DataView};return browser||Object.keys(serverside).forEach(function(k){sandbox[k]=serverside[k]}),sandbox}})(require(\"__browserify_process\"),window)},{path:65,buffer:71,\"./remove-problematic\":61,__browserify_process:16}],27:[function(require,module){\"use strict\";function formatAdd(key,value,diffopts){return format(\"%s %s: %s\",colors.brightGreen(\"+\"),key,diffValues({},value,diffopts))}function formatChange(key,prevValue,value,diffopts){return format(\"%s %s: %s\",colors.brightBlue(\"~\"),key,diffValues(prevValue,value,diffopts))}function formatResult(result,diffopts){return format(\"%s %s\",colors.cyan(\"=>\"),diffValues({},result,diffopts))}function formatSectionEnd(multiLine,lastOne){return!multiLine||lastOne?\"\\n\":colors.brightBlack(\"\\n--------\\n\")}function resolveTale(evaluated,opts){if(!evaluated)return\"\";var tales=[];return evaluated.added.length&&evaluated.added.forEach(function(x){tales.push(opts.formatAdd(x.key,x.value,opts.diff))}),evaluated.changed.length&&evaluated.changed.forEach(function(x){tales.push(opts.formatChange(x.key,x.prevValue,x.value,opts.diff))}),evaluated.result!==void 0&&tales.push(opts.formatResult(evaluated.result,opts.diff)),tales.reduce(function(s,tale,idx,all){var lastOne=idx===all.length-1,multiLine=~tale.indexOf(\"\\n\");return s+tale+opts.formatSectionEnd(multiLine,lastOne)},\"\")}var diffValues=require(\"./diff-values\"),format=require(\"util\").format,colors=require(\"ansicolors\");module.exports=function(snippets,opts){return opts=opts||{},opts.formatAdd=opts.formatAdd||formatAdd,opts.formatChange=opts.formatChange||formatChange,opts.formatResult=opts.formatResult||formatResult,opts.formatSectionEnd=opts.formatSectionEnd||formatSectionEnd,snippets.map(function(snippet){var tale=resolveTale(snippet.evaluated,opts);return{tale:tale,insertAfter:snippet.end}})}},{util:6,\"./diff-values\":72,ansicolors:68}],73:[function(require,module){(function(){function objectKeys(object){if(Object.keys)return Object.keys(object);var result=[];for(var name in object)Object.prototype.hasOwnProperty.call(object,name)&&result.push(name);return result}function replacer(key,value){return void 0===value?\"\"+value:\"number\"!=typeof value||!isNaN(value)&&isFinite(value)?\"function\"==typeof value||value instanceof RegExp?\"\"+value:value:\"\"+value}function truncate(s,n){return\"string\"==typeof s?n>s.length?s:s.slice(0,n):s}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,\"==\",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(Buffer.isBuffer(actual)&&Buffer.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;actual.length>i;i++)if(actual[i]!==expected[i])return!1;return!0}return actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?expected instanceof RegExp?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;\"string\"==typeof expected&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?\" (\"+expected.name+\").\":\".\")+(message?\" \"+message:\".\"),shouldThrow&&!actual&&fail(\"Missing expected exception\"+message),!shouldThrow&&expectedException(actual,expected)&&fail(\"Got unwanted exception\"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require(\"util\"),Buffer=require(\"buffer\").Buffer,pSlice=Array.prototype.slice,assert=module.exports=ok;assert.AssertionError=function(options){this.name=\"AssertionError\",this.message=options.message,this.actual=options.actual,this.expected=options.expected,this.operator=options.operator;var stackStartFunction=options.stackStartFunction||fail;Error.captureStackTrace&&Error.captureStackTrace(this,stackStartFunction)},util.inherits(assert.AssertionError,Error),assert.AssertionError.prototype.toString=function(){return this.message?[this.name+\":\",this.message].join(\" \"):[this.name+\":\",truncate(JSON.stringify(this.actual,replacer),128),this.operator,truncate(JSON.stringify(this.expected,replacer),128)].join(\" \")},assert.AssertionError.__proto__=Error.prototype,assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,\"==\",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,\"!=\",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,\"deepEqual\",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,\"notDeepEqual\",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,\"===\",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,\"!==\",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err}})()},{util:6,buffer:71}],74:[function(){},{}],69:[function(require,module){function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function isNumberNaN(value){return\"number\"==typeof value&&value!==value}function areZerosEqual(zeroA,zeroB){return 1/zeroA===1/zeroB}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),deepEqual(a,b)):!1;try{var key,i,ka=Object_keys(a),kb=Object_keys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!deepEqual(a[key],b[key]))return!1;return!0}var pSlice=Array.prototype.slice,Object_keys=\"function\"==typeof Object.keys?Object.keys:function(obj){var keys=[];for(var key in obj)keys.push(key);return keys},deepEqual=module.exports=function(actual,expected){return 0===actual&&0===expected?areZerosEqual(actual,expected):actual===expected?!0:actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():isNumberNaN(actual)?isNumberNaN(expected):\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}},{}],68:[function(require,module){\"use strict\";var colorNums={white:37,black:30,blue:34,cyan:36,green:32,magenta:35,red:31,yellow:33,brightBlack:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97},backgroundColorNums={bgBlack:40,bgRed:41,bgGreen:42,bgYellow:43,bgBlue:44,bgMagenta:45,bgCyan:46,bgWhite:47,bgBrightBlack:100,bgBrightRed:101,bgBrightGreen:102,bgBrightYellow:103,bgBrightBlue:104,bgBrightMagenta:105,bgBrightCyan:106,bgBrightWhite:107},colors={};Object.keys(colorNums).forEach(function(k){colors[k]=function(s){return\"\u001b[\"+colorNums[k]+\"m\"+s+\"\u001b[39m\"}}),Object.keys(backgroundColorNums).forEach(function(k){colors[k]=function(s){return\"\u001b[\"+backgroundColorNums[k]+\"m\"+s+\"\u001b[49m\"}}),module.exports=colors},{}],70:[function(require,module,exports){(function(){(function(root,factory){\"use strict\";\"function\"==typeof define&&define.amd?define([\"exports\"],factory):exports!==void 0?factory(exports):factory(root.esprima={})})(this,function(exports){\"use strict\";function assert(condition,message){if(!condition)throw Error(\"ASSERT: \"+message)}function sliceSource(from,to){return source.slice(from,to)}function isDecimalDigit(ch){return\"0123456789\".indexOf(ch)>=0}function isHexDigit(ch){return\"0123456789abcdefABCDEF\".indexOf(ch)>=0}function isOctalDigit(ch){return\"01234567\".indexOf(ch)>=0}function isWhiteSpace(ch){return\" \"===ch||\"\t\"===ch||\"\u000b\"===ch||\"\\f\"===ch||\" \"===ch||ch.charCodeAt(0)>=5760&&\" ᠎              \".indexOf(ch)>=0}function isLineTerminator(ch){return\"\\n\"===ch||\"\\r\"===ch||\"\\u2028\"===ch||\"\\u2029\"===ch}function isIdentifierStart(ch){return\"$\"===ch||\"_\"===ch||\"\\\\\"===ch||ch>=\"a\"&&\"z\">=ch||ch>=\"A\"&&\"Z\">=ch||ch.charCodeAt(0)>=128&&Regex.NonAsciiIdentifierStart.test(ch)}function isIdentifierPart(ch){return\"$\"===ch||\"_\"===ch||\"\\\\\"===ch||ch>=\"a\"&&\"z\">=ch||ch>=\"A\"&&\"Z\">=ch||ch>=\"0\"&&\"9\">=ch||ch.charCodeAt(0)>=128&&Regex.NonAsciiIdentifierPart.test(ch)}function isFutureReservedWord(id){switch(id){case\"class\":case\"enum\":case\"export\":case\"extends\":case\"import\":case\"super\":return!0}return!1}function isStrictModeReservedWord(id){switch(id){case\"implements\":case\"interface\":case\"package\":case\"private\":case\"protected\":case\"public\":case\"static\":case\"yield\":case\"let\":return!0}return!1}function isRestrictedWord(id){return\"eval\"===id||\"arguments\"===id}function isKeyword(id){var keyword=!1;switch(id.length){case 2:keyword=\"if\"===id||\"in\"===id||\"do\"===id;break;case 3:keyword=\"var\"===id||\"for\"===id||\"new\"===id||\"try\"===id;break;case 4:keyword=\"this\"===id||\"else\"===id||\"case\"===id||\"void\"===id||\"with\"===id;break;case 5:keyword=\"while\"===id||\"break\"===id||\"catch\"===id||\"throw\"===id;break;case 6:keyword=\"return\"===id||\"typeof\"===id||\"delete\"===id||\"switch\"===id;break;case 7:keyword=\"default\"===id||\"finally\"===id;break;case 8:keyword=\"function\"===id||\"continue\"===id||\"debugger\"===id;break;case 10:keyword=\"instanceof\"===id}if(keyword)return!0;switch(id){case\"const\":return!0;case\"yield\":case\"let\":return!0}return strict&&isStrictModeReservedWord(id)?!0:isFutureReservedWord(id)}function skipComment(){var ch,blockComment,lineComment;for(blockComment=!1,lineComment=!1;length>index;)if(ch=source[index],lineComment)ch=source[index++],isLineTerminator(ch)&&(lineComment=!1,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index);else if(blockComment)isLineTerminator(ch)?(\"\\r\"===ch&&\"\\n\"===source[index+1]&&++index,++lineNumber,++index,lineStart=index,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")):(ch=source[index++],index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),\"*\"===ch&&(ch=source[index],\"/\"===ch&&(++index,blockComment=!1)));else if(\"/\"===ch)if(ch=source[index+1],\"/\"===ch)index+=2,lineComment=!0;else{if(\"*\"!==ch)break;index+=2,blockComment=!0,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}else if(isWhiteSpace(ch))++index;else{if(!isLineTerminator(ch))break;++index,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index}}function scanHexEscape(prefix){var i,len,ch,code=0;for(len=\"u\"===prefix?4:2,i=0;len>i;++i){if(!(length>index&&isHexDigit(source[index])))return\"\";ch=source[index++],code=16*code+\"0123456789abcdef\".indexOf(ch.toLowerCase())}return String.fromCharCode(code)}function scanIdentifier(){var ch,start,id,restore;if(ch=source[index],isIdentifierStart(ch)){if(start=index,\"\\\\\"===ch){if(++index,\"u\"!==source[index])return;if(++index,restore=index,ch=scanHexEscape(\"u\")){if(\"\\\\\"===ch||!isIdentifierStart(ch))return;id=ch}else index=restore,id=\"u\"}else id=source[index++];for(;length>index&&(ch=source[index],isIdentifierPart(ch));)if(\"\\\\\"===ch){if(++index,\"u\"!==source[index])return;if(++index,restore=index,ch=scanHexEscape(\"u\")){if(\"\\\\\"===ch||!isIdentifierPart(ch))return;id+=ch}else index=restore,id+=\"u\"}else id+=source[index++];return 1===id.length?{type:Token.Identifier,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:isKeyword(id)?{type:Token.Keyword,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:\"null\"===id?{type:Token.NullLiteral,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:\"true\"===id||\"false\"===id?{type:Token.BooleanLiteral,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:{type:Token.Identifier,value:id,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}}function scanPunctuator(){var ch2,ch3,ch4,start=index,ch1=source[index];return\";\"===ch1||\"{\"===ch1||\"}\"===ch1?(++index,{type:Token.Punctuator,value:ch1,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\",\"===ch1||\"(\"===ch1||\")\"===ch1?(++index,{type:Token.Punctuator,value:ch1,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):(ch2=source[index+1],\".\"!==ch1||isDecimalDigit(ch2)?(ch3=source[index+2],ch4=source[index+3],\">\"===ch1&&\">\"===ch2&&\">\"===ch3&&\"=\"===ch4?(index+=4,{type:Token.Punctuator,value:\">>>=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"=\"===ch1&&\"=\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"===\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"!\"===ch1&&\"=\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"!==\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\">\"===ch1&&\">\"===ch2&&\">\"===ch3?(index+=3,{type:Token.Punctuator,value:\">>>\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"\u003C\"===ch1&&\"\u003C\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\"\u003C\u003C=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\">\"===ch1&&\">\"===ch2&&\"=\"===ch3?(index+=3,{type:Token.Punctuator,value:\">>=\",lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"=\"===ch2&&\"\u003C>=!+-*%&|^/\".indexOf(ch1)>=0?(index+=2,{type:Token.Punctuator,value:ch1+ch2,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):ch1===ch2&&\"+-\u003C>&|\".indexOf(ch1)>=0&&\"+-\u003C>&|\".indexOf(ch2)>=0?(index+=2,{type:Token.Punctuator,value:ch1+ch2,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}):\"[]\u003C>+-*%&|^!~?:=/\".indexOf(ch1)>=0?{type:Token.Punctuator,value:source[index++],lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}:void 0):{type:Token.Punctuator,value:source[index++],lineNumber:lineNumber,lineStart:lineStart,range:[start,index]})}function scanNumericLiteral(){var number,start,ch;if(ch=source[index],assert(isDecimalDigit(ch)||\".\"===ch,\"Numeric literal must start with a decimal digit or a decimal point\"),start=index,number=\"\",\".\"!==ch){if(number=source[index++],ch=source[index],\"0\"===number){if(\"x\"===ch||\"X\"===ch){for(number+=source[index++];length>index&&(ch=source[index],isHexDigit(ch));)number+=source[index++];return 2>=number.length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),length>index&&(ch=source[index],isIdentifierStart(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseInt(number,16),lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}if(isOctalDigit(ch)){for(number+=source[index++];length>index&&(ch=source[index],isOctalDigit(ch));)number+=source[index++];return length>index&&(ch=source[index],(isIdentifierStart(ch)||isDecimalDigit(ch))&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseInt(number,8),octal:!0,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}isDecimalDigit(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}for(;length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++]}if(\".\"===ch)for(number+=source[index++];length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++];if(\"e\"===ch||\"E\"===ch)if(number+=source[index++],ch=source[index],(\"+\"===ch||\"-\"===ch)&&(number+=source[index++]),ch=source[index],isDecimalDigit(ch))for(number+=source[index++];length>index&&(ch=source[index],isDecimalDigit(ch));)number+=source[index++];else ch=\"character \"+ch,index>=length&&(ch=\"\u003Cend>\"),throwError({},Messages.UnexpectedToken,\"ILLEGAL\");return length>index&&(ch=source[index],isIdentifierStart(ch)&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")),{type:Token.NumericLiteral,value:parseFloat(number),lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}function scanStringLiteral(){var quote,start,ch,code,unescaped,restore,str=\"\",octal=!1;for(quote=source[index],assert(\"'\"===quote||'\"'===quote,\"String literal must starts with a quote\"),start=index,++index;length>index;){if(ch=source[index++],ch===quote){quote=\"\";break}if(\"\\\\\"===ch)if(ch=source[index++],isLineTerminator(ch))++lineNumber,\"\\r\"===ch&&\"\\n\"===source[index]&&++index;else switch(ch){case\"n\":str+=\"\\n\";break;case\"r\":str+=\"\\r\";break;case\"t\":str+=\"\t\";break;case\"u\":case\"x\":restore=index,unescaped=scanHexEscape(ch),unescaped?str+=unescaped:(index=restore,str+=ch);break;case\"b\":str+=\"\\b\";break;case\"f\":str+=\"\\f\";break;case\"v\":str+=\"\u000b\";break;default:isOctalDigit(ch)?(code=\"01234567\".indexOf(ch),0!==code&&(octal=!0),length>index&&isOctalDigit(source[index])&&(octal=!0,code=8*code+\"01234567\".indexOf(source[index++]),\"0123\".indexOf(ch)>=0&&length>index&&isOctalDigit(source[index])&&(code=8*code+\"01234567\".indexOf(source[index++]))),str+=String.fromCharCode(code)):str+=ch}else{if(isLineTerminator(ch))break;str+=ch}}return\"\"!==quote&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),{type:Token.StringLiteral,value:str,octal:octal,lineNumber:lineNumber,lineStart:lineStart,range:[start,index]}}function scanRegExp(){var str,ch,start,pattern,flags,value,restore,classMarker=!1,terminated=!1;for(buffer=null,skipComment(),start=index,ch=source[index],assert(\"/\"===ch,\"Regular expression literal must start with a slash\"),str=source[index++];length>index;)if(ch=source[index++],str+=ch,classMarker)\"]\"===ch&&(classMarker=!1);else if(\"\\\\\"===ch)ch=source[index++],isLineTerminator(ch)&&throwError({},Messages.UnterminatedRegExp),str+=ch;else{if(\"/\"===ch){terminated=!0;break}\"[\"===ch?classMarker=!0:isLineTerminator(ch)&&throwError({},Messages.UnterminatedRegExp)}for(terminated||throwError({},Messages.UnterminatedRegExp),pattern=str.substr(1,str.length-2),flags=\"\";length>index&&(ch=source[index],isIdentifierPart(ch));)if(++index,\"\\\\\"===ch&&length>index)if(ch=source[index],\"u\"===ch)if(++index,restore=index,ch=scanHexEscape(\"u\"))for(flags+=ch,str+=\"\\\\u\";index>restore;++restore)str+=source[restore];else index=restore,flags+=\"u\",str+=\"\\\\u\";else str+=\"\\\\\";else flags+=ch,str+=ch;try{value=RegExp(pattern,flags)}catch(e){throwError({},Messages.InvalidRegExp)}return{literal:str,value:value,range:[start,index]}}function isIdentifierName(token){return token.type===Token.Identifier||token.type===Token.Keyword||token.type===Token.BooleanLiteral||token.type===Token.NullLiteral}function advance(){var ch,token;return skipComment(),index>=length?{type:Token.EOF,lineNumber:lineNumber,lineStart:lineStart,range:[index,index]}:(token=scanPunctuator(),token!==void 0?token:(ch=source[index],\"'\"===ch||'\"'===ch?scanStringLiteral():\".\"===ch||isDecimalDigit(ch)?scanNumericLiteral():(token=scanIdentifier(),token!==void 0?token:(throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),void 0))))}function lex(){var token;return buffer?(index=buffer.range[1],lineNumber=buffer.lineNumber,lineStart=buffer.lineStart,token=buffer,buffer=null,token):(buffer=null,advance())}function lookahead(){var pos,line,start;return null!==buffer?buffer:(pos=index,line=lineNumber,start=lineStart,buffer=advance(),index=pos,lineNumber=line,lineStart=start,buffer)}function peekLineTerminator(){var pos,line,start,found;return pos=index,line=lineNumber,start=lineStart,skipComment(),found=lineNumber!==line,index=pos,lineNumber=line,lineStart=start,found}function throwError(token,messageFormat){var error,args=Array.prototype.slice.call(arguments,2),msg=messageFormat.replace(/%(\\d)/g,function(whole,index){return args[index]||\"\"});throw\"number\"==typeof token.lineNumber?(error=Error(\"Line \"+token.lineNumber+\": \"+msg),error.index=token.range[0],error.lineNumber=token.lineNumber,error.column=token.range[0]-lineStart+1):(error=Error(\"Line \"+lineNumber+\": \"+msg),error.index=index,error.lineNumber=lineNumber,error.column=index-lineStart+1),error}function throwErrorTolerant(){try{throwError.apply(null,arguments)}catch(e){if(!extra.errors)throw e;extra.errors.push(e)}}function throwUnexpected(token){if(token.type===Token.EOF&&throwError(token,Messages.UnexpectedEOS),token.type===Token.NumericLiteral&&throwError(token,Messages.UnexpectedNumber),token.type===Token.StringLiteral&&throwError(token,Messages.UnexpectedString),token.type===Token.Identifier&&throwError(token,Messages.UnexpectedIdentifier),token.type===Token.Keyword){if(isFutureReservedWord(token.value))throwError(token,Messages.UnexpectedReserved);else if(strict&&isStrictModeReservedWord(token.value))return throwErrorTolerant(token,Messages.StrictReservedWord),void 0;throwError(token,Messages.UnexpectedToken,token.value)}throwError(token,Messages.UnexpectedToken,token.value)}function expect(value){var token=lex();(token.type!==Token.Punctuator||token.value!==value)&&throwUnexpected(token)}function expectKeyword(keyword){var token=lex();(token.type!==Token.Keyword||token.value!==keyword)&&throwUnexpected(token)}function match(value){var token=lookahead();return token.type===Token.Punctuator&&token.value===value}function matchKeyword(keyword){var token=lookahead();return token.type===Token.Keyword&&token.value===keyword}function matchAssign(){var token=lookahead(),op=token.value;return token.type!==Token.Punctuator?!1:\"=\"===op||\"*=\"===op||\"/=\"===op||\"%=\"===op||\"+=\"===op||\"-=\"===op||\"\u003C\u003C=\"===op||\">>=\"===op||\">>>=\"===op||\"&=\"===op||\"^=\"===op||\"|=\"===op}function consumeSemicolon(){var token,line;if(\";\"===source[index])return lex(),void 0;if(line=lineNumber,skipComment(),lineNumber===line){if(match(\";\"))return lex(),void 0;token=lookahead(),token.type===Token.EOF||match(\"}\")||throwUnexpected(token)}}function isLeftHandSide(expr){return expr.type===Syntax.Identifier||expr.type===Syntax.MemberExpression}function parseArrayInitialiser(){var elements=[];for(expect(\"[\");!match(\"]\");)match(\",\")?(lex(),elements.push(null)):(elements.push(parseAssignmentExpression()),match(\"]\")||expect(\",\"));return expect(\"]\"),{type:Syntax.ArrayExpression,elements:elements}}function parsePropertyFunction(param,first){var previousStrict,body;return previousStrict=strict,body=parseFunctionSourceElements(),first&&strict&&isRestrictedWord(param[0].name)&&throwErrorTolerant(first,Messages.StrictParamName),strict=previousStrict,{type:Syntax.FunctionExpression,id:null,params:param,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseObjectPropertyKey(){var token=lex();return token.type===Token.StringLiteral||token.type===Token.NumericLiteral?(strict&&token.octal&&throwErrorTolerant(token,Messages.StrictOctalLiteral),createLiteral(token)):{type:Syntax.Identifier,name:token.value}}function parseObjectProperty(){var token,key,id,param;return token=lookahead(),token.type===Token.Identifier?(id=parseObjectPropertyKey(),\"get\"!==token.value||match(\":\")?\"set\"!==token.value||match(\":\")?(expect(\":\"),{type:Syntax.Property,key:id,value:parseAssignmentExpression(),kind:\"init\"}):(key=parseObjectPropertyKey(),expect(\"(\"),token=lookahead(),token.type!==Token.Identifier&&throwUnexpected(lex()),param=[parseVariableIdentifier()],expect(\")\"),{type:Syntax.Property,key:key,value:parsePropertyFunction(param,token),kind:\"set\"}):(key=parseObjectPropertyKey(),expect(\"(\"),expect(\")\"),{type:Syntax.Property,key:key,value:parsePropertyFunction([]),kind:\"get\"})):token.type!==Token.EOF&&token.type!==Token.Punctuator?(key=parseObjectPropertyKey(),expect(\":\"),{type:Syntax.Property,key:key,value:parseAssignmentExpression(),kind:\"init\"}):(throwUnexpected(token),void 0)}function parseObjectInitialiser(){var property,name,kind,properties=[],map={},toString=String;for(expect(\"{\");!match(\"}\");)property=parseObjectProperty(),name=property.key.type===Syntax.Identifier?property.key.name:toString(property.key.value),kind=\"init\"===property.kind?PropertyKind.Data:\"get\"===property.kind?PropertyKind.Get:PropertyKind.Set,Object.prototype.hasOwnProperty.call(map,name)?(map[name]===PropertyKind.Data?strict&&kind===PropertyKind.Data?throwErrorTolerant({},Messages.StrictDuplicateProperty):kind!==PropertyKind.Data&&throwErrorTolerant({},Messages.AccessorDataProperty):kind===PropertyKind.Data?throwErrorTolerant({},Messages.AccessorDataProperty):map[name]&kind&&throwErrorTolerant({},Messages.AccessorGetSet),map[name]|=kind):map[name]=kind,properties.push(property),match(\"}\")||expect(\",\");return expect(\"}\"),{type:Syntax.ObjectExpression,properties:properties}}function parseGroupExpression(){var expr;return expect(\"(\"),expr=parseExpression(),expect(\")\"),expr}function parsePrimaryExpression(){var token=lookahead(),type=token.type;if(type===Token.Identifier)return{type:Syntax.Identifier,name:lex().value};if(type===Token.StringLiteral||type===Token.NumericLiteral)return strict&&token.octal&&throwErrorTolerant(token,Messages.StrictOctalLiteral),createLiteral(lex());if(type===Token.Keyword){if(matchKeyword(\"this\"))return lex(),{type:Syntax.ThisExpression};if(matchKeyword(\"function\"))return parseFunctionExpression()}return type===Token.BooleanLiteral?(lex(),token.value=\"true\"===token.value,createLiteral(token)):type===Token.NullLiteral?(lex(),token.value=null,createLiteral(token)):match(\"[\")?parseArrayInitialiser():match(\"{\")?parseObjectInitialiser():match(\"(\")?parseGroupExpression():match(\"/\")||match(\"/=\")?createLiteral(scanRegExp()):throwUnexpected(lex())}function parseArguments(){var args=[];if(expect(\"(\"),!match(\")\"))for(;length>index&&(args.push(parseAssignmentExpression()),!match(\")\"));)expect(\",\");return expect(\")\"),args}function parseNonComputedProperty(){var token=lex();return isIdentifierName(token)||throwUnexpected(token),{type:Syntax.Identifier,name:token.value}}function parseNonComputedMember(){return expect(\".\"),parseNonComputedProperty()}function parseComputedMember(){var expr;return expect(\"[\"),expr=parseExpression(),expect(\"]\"),expr}function parseNewExpression(){var expr;return expectKeyword(\"new\"),expr={type:Syntax.NewExpression,callee:parseLeftHandSideExpression(),arguments:[]},match(\"(\")&&(expr.arguments=parseArguments()),expr}function parseLeftHandSideExpressionAllowCall(){var expr;for(expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\")||match(\"(\");)expr=match(\"(\")?{type:Syntax.CallExpression,callee:expr,arguments:parseArguments()}:match(\"[\")?{type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()}:{type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()};return expr}function parseLeftHandSideExpression(){var expr;for(expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\");)expr=match(\"[\")?{type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()}:{type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()};return expr}function parsePostfixExpression(){var token,expr=parseLeftHandSideExpressionAllowCall();return token=lookahead(),token.type!==Token.Punctuator?expr:(!match(\"++\")&&!match(\"--\")||peekLineTerminator()||(strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant({},Messages.StrictLHSPostfix),isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),expr={type:Syntax.UpdateExpression,operator:lex().value,argument:expr,prefix:!1}),expr)}function parseUnaryExpression(){var token,expr;return token=lookahead(),token.type!==Token.Punctuator&&token.type!==Token.Keyword?parsePostfixExpression():match(\"++\")||match(\"--\")?(token=lex(),expr=parseUnaryExpression(),strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant({},Messages.StrictLHSPrefix),isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),expr={type:Syntax.UpdateExpression,operator:token.value,argument:expr,prefix:!0}):match(\"+\")||match(\"-\")||match(\"~\")||match(\"!\")?expr={type:Syntax.UnaryExpression,operator:lex().value,argument:parseUnaryExpression()}:matchKeyword(\"delete\")||matchKeyword(\"void\")||matchKeyword(\"typeof\")?(expr={type:Syntax.UnaryExpression,operator:lex().value,argument:parseUnaryExpression()},strict&&\"delete\"===expr.operator&&expr.argument.type===Syntax.Identifier&&throwErrorTolerant({},Messages.StrictDelete),expr):parsePostfixExpression()\n}function parseMultiplicativeExpression(){for(var expr=parseUnaryExpression();match(\"*\")||match(\"/\")||match(\"%\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseUnaryExpression()};return expr}function parseAdditiveExpression(){for(var expr=parseMultiplicativeExpression();match(\"+\")||match(\"-\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseMultiplicativeExpression()};return expr}function parseShiftExpression(){for(var expr=parseAdditiveExpression();match(\"\u003C\u003C\")||match(\">>\")||match(\">>>\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseAdditiveExpression()};return expr}function parseRelationalExpression(){var expr,previousAllowIn;for(previousAllowIn=state.allowIn,state.allowIn=!0,expr=parseShiftExpression();match(\"\u003C\")||match(\">\")||match(\"\u003C=\")||match(\">=\")||previousAllowIn&&matchKeyword(\"in\")||matchKeyword(\"instanceof\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseShiftExpression()};return state.allowIn=previousAllowIn,expr}function parseEqualityExpression(){for(var expr=parseRelationalExpression();match(\"==\")||match(\"!=\")||match(\"===\")||match(\"!==\");)expr={type:Syntax.BinaryExpression,operator:lex().value,left:expr,right:parseRelationalExpression()};return expr}function parseBitwiseANDExpression(){for(var expr=parseEqualityExpression();match(\"&\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"&\",left:expr,right:parseEqualityExpression()};return expr}function parseBitwiseXORExpression(){for(var expr=parseBitwiseANDExpression();match(\"^\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"^\",left:expr,right:parseBitwiseANDExpression()};return expr}function parseBitwiseORExpression(){for(var expr=parseBitwiseXORExpression();match(\"|\");)lex(),expr={type:Syntax.BinaryExpression,operator:\"|\",left:expr,right:parseBitwiseXORExpression()};return expr}function parseLogicalANDExpression(){for(var expr=parseBitwiseORExpression();match(\"&&\");)lex(),expr={type:Syntax.LogicalExpression,operator:\"&&\",left:expr,right:parseBitwiseORExpression()};return expr}function parseLogicalORExpression(){for(var expr=parseLogicalANDExpression();match(\"||\");)lex(),expr={type:Syntax.LogicalExpression,operator:\"||\",left:expr,right:parseLogicalANDExpression()};return expr}function parseConditionalExpression(){var expr,previousAllowIn,consequent;return expr=parseLogicalORExpression(),match(\"?\")&&(lex(),previousAllowIn=state.allowIn,state.allowIn=!0,consequent=parseAssignmentExpression(),state.allowIn=previousAllowIn,expect(\":\"),expr={type:Syntax.ConditionalExpression,test:expr,consequent:consequent,alternate:parseAssignmentExpression()}),expr}function parseAssignmentExpression(){var token,expr;return token=lookahead(),expr=parseConditionalExpression(),matchAssign()&&(isLeftHandSide(expr)||throwError({},Messages.InvalidLHSInAssignment),strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)&&throwErrorTolerant(token,Messages.StrictLHSAssignment),expr={type:Syntax.AssignmentExpression,operator:lex().value,left:expr,right:parseAssignmentExpression()}),expr}function parseExpression(){var expr=parseAssignmentExpression();if(match(\",\"))for(expr={type:Syntax.SequenceExpression,expressions:[expr]};length>index&&match(\",\");)lex(),expr.expressions.push(parseAssignmentExpression());return expr}function parseStatementList(){for(var statement,list=[];length>index&&!match(\"}\")&&(statement=parseSourceElement(),void 0!==statement);)list.push(statement);return list}function parseBlock(){var block;return expect(\"{\"),block=parseStatementList(),expect(\"}\"),{type:Syntax.BlockStatement,body:block}}function parseVariableIdentifier(){var token=lex();return token.type!==Token.Identifier&&throwUnexpected(token),{type:Syntax.Identifier,name:token.value}}function parseVariableDeclaration(kind){var id=parseVariableIdentifier(),init=null;return strict&&isRestrictedWord(id.name)&&throwErrorTolerant({},Messages.StrictVarName),\"const\"===kind?(expect(\"=\"),init=parseAssignmentExpression()):match(\"=\")&&(lex(),init=parseAssignmentExpression()),{type:Syntax.VariableDeclarator,id:id,init:init}}function parseVariableDeclarationList(kind){for(var list=[];length>index&&(list.push(parseVariableDeclaration(kind)),match(\",\"));)lex();return list}function parseVariableStatement(){var declarations;return expectKeyword(\"var\"),declarations=parseVariableDeclarationList(),consumeSemicolon(),{type:Syntax.VariableDeclaration,declarations:declarations,kind:\"var\"}}function parseConstLetDeclaration(kind){var declarations;return expectKeyword(kind),declarations=parseVariableDeclarationList(kind),consumeSemicolon(),{type:Syntax.VariableDeclaration,declarations:declarations,kind:kind}}function parseEmptyStatement(){return expect(\";\"),{type:Syntax.EmptyStatement}}function parseExpressionStatement(){var expr=parseExpression();return consumeSemicolon(),{type:Syntax.ExpressionStatement,expression:expr}}function parseIfStatement(){var test,consequent,alternate;return expectKeyword(\"if\"),expect(\"(\"),test=parseExpression(),expect(\")\"),consequent=parseStatement(),matchKeyword(\"else\")?(lex(),alternate=parseStatement()):alternate=null,{type:Syntax.IfStatement,test:test,consequent:consequent,alternate:alternate}}function parseDoWhileStatement(){var body,test,oldInIteration;return expectKeyword(\"do\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,expectKeyword(\"while\"),expect(\"(\"),test=parseExpression(),expect(\")\"),match(\";\")&&lex(),{type:Syntax.DoWhileStatement,body:body,test:test}}function parseWhileStatement(){var test,body,oldInIteration;return expectKeyword(\"while\"),expect(\"(\"),test=parseExpression(),expect(\")\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,{type:Syntax.WhileStatement,test:test,body:body}}function parseForVariableDeclaration(){var token=lex();return{type:Syntax.VariableDeclaration,declarations:parseVariableDeclarationList(),kind:token.value}}function parseForStatement(){var init,test,update,left,right,body,oldInIteration;return init=test=update=null,expectKeyword(\"for\"),expect(\"(\"),match(\";\")?lex():(matchKeyword(\"var\")||matchKeyword(\"let\")?(state.allowIn=!1,init=parseForVariableDeclaration(),state.allowIn=!0,1===init.declarations.length&&matchKeyword(\"in\")&&(lex(),left=init,right=parseExpression(),init=null)):(state.allowIn=!1,init=parseExpression(),state.allowIn=!0,matchKeyword(\"in\")&&(isLeftHandSide(init)||throwError({},Messages.InvalidLHSInForIn),lex(),left=init,right=parseExpression(),init=null)),left===void 0&&expect(\";\")),left===void 0&&(match(\";\")||(test=parseExpression()),expect(\";\"),match(\")\")||(update=parseExpression())),expect(\")\"),oldInIteration=state.inIteration,state.inIteration=!0,body=parseStatement(),state.inIteration=oldInIteration,left===void 0?{type:Syntax.ForStatement,init:init,test:test,update:update,body:body}:{type:Syntax.ForInStatement,left:left,right:right,body:body,each:!1}}function parseContinueStatement(){var token,label=null;return expectKeyword(\"continue\"),\";\"===source[index]?(lex(),state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:null}):peekLineTerminator()?(state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:null}):(token=lookahead(),token.type===Token.Identifier&&(label=parseVariableIdentifier(),Object.prototype.hasOwnProperty.call(state.labelSet,label.name)||throwError({},Messages.UnknownLabel,label.name)),consumeSemicolon(),null!==label||state.inIteration||throwError({},Messages.IllegalContinue),{type:Syntax.ContinueStatement,label:label})}function parseBreakStatement(){var token,label=null;return expectKeyword(\"break\"),\";\"===source[index]?(lex(),state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:null}):peekLineTerminator()?(state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:null}):(token=lookahead(),token.type===Token.Identifier&&(label=parseVariableIdentifier(),Object.prototype.hasOwnProperty.call(state.labelSet,label.name)||throwError({},Messages.UnknownLabel,label.name)),consumeSemicolon(),null!==label||state.inIteration||state.inSwitch||throwError({},Messages.IllegalBreak),{type:Syntax.BreakStatement,label:label})}function parseReturnStatement(){var token,argument=null;return expectKeyword(\"return\"),state.inFunctionBody||throwErrorTolerant({},Messages.IllegalReturn),\" \"===source[index]&&isIdentifierStart(source[index+1])?(argument=parseExpression(),consumeSemicolon(),{type:Syntax.ReturnStatement,argument:argument}):peekLineTerminator()?{type:Syntax.ReturnStatement,argument:null}:(match(\";\")||(token=lookahead(),match(\"}\")||token.type===Token.EOF||(argument=parseExpression())),consumeSemicolon(),{type:Syntax.ReturnStatement,argument:argument})}function parseWithStatement(){var object,body;return strict&&throwErrorTolerant({},Messages.StrictModeWith),expectKeyword(\"with\"),expect(\"(\"),object=parseExpression(),expect(\")\"),body=parseStatement(),{type:Syntax.WithStatement,object:object,body:body}}function parseSwitchCase(){var test,statement,consequent=[];for(matchKeyword(\"default\")?(lex(),test=null):(expectKeyword(\"case\"),test=parseExpression()),expect(\":\");length>index&&!(match(\"}\")||matchKeyword(\"default\")||matchKeyword(\"case\"))&&(statement=parseStatement(),void 0!==statement);)consequent.push(statement);return{type:Syntax.SwitchCase,test:test,consequent:consequent}}function parseSwitchStatement(){var discriminant,cases,clause,oldInSwitch,defaultFound;if(expectKeyword(\"switch\"),expect(\"(\"),discriminant=parseExpression(),expect(\")\"),expect(\"{\"),match(\"}\"))return lex(),{type:Syntax.SwitchStatement,discriminant:discriminant};for(cases=[],oldInSwitch=state.inSwitch,state.inSwitch=!0,defaultFound=!1;length>index&&!match(\"}\");)clause=parseSwitchCase(),null===clause.test&&(defaultFound&&throwError({},Messages.MultipleDefaultsInSwitch),defaultFound=!0),cases.push(clause);return state.inSwitch=oldInSwitch,expect(\"}\"),{type:Syntax.SwitchStatement,discriminant:discriminant,cases:cases}}function parseThrowStatement(){var argument;return expectKeyword(\"throw\"),peekLineTerminator()&&throwError({},Messages.NewlineAfterThrow),argument=parseExpression(),consumeSemicolon(),{type:Syntax.ThrowStatement,argument:argument}}function parseCatchClause(){var param;return expectKeyword(\"catch\"),expect(\"(\"),match(\")\")||(param=parseExpression(),strict&¶m.type===Syntax.Identifier&&isRestrictedWord(param.name)&&throwErrorTolerant({},Messages.StrictCatchVariable)),expect(\")\"),{type:Syntax.CatchClause,param:param,body:parseBlock()}}function parseTryStatement(){var block,handlers=[],finalizer=null;return expectKeyword(\"try\"),block=parseBlock(),matchKeyword(\"catch\")&&handlers.push(parseCatchClause()),matchKeyword(\"finally\")&&(lex(),finalizer=parseBlock()),0!==handlers.length||finalizer||throwError({},Messages.NoCatchOrFinally),{type:Syntax.TryStatement,block:block,guardedHandlers:[],handlers:handlers,finalizer:finalizer}}function parseDebuggerStatement(){return expectKeyword(\"debugger\"),consumeSemicolon(),{type:Syntax.DebuggerStatement}}function parseStatement(){var expr,labeledBody,token=lookahead();if(token.type===Token.EOF&&throwUnexpected(token),token.type===Token.Punctuator)switch(token.value){case\";\":return parseEmptyStatement();case\"{\":return parseBlock();case\"(\":return parseExpressionStatement();default:}if(token.type===Token.Keyword)switch(token.value){case\"break\":return parseBreakStatement();case\"continue\":return parseContinueStatement();case\"debugger\":return parseDebuggerStatement();case\"do\":return parseDoWhileStatement();case\"for\":return parseForStatement();case\"function\":return parseFunctionDeclaration();case\"if\":return parseIfStatement();case\"return\":return parseReturnStatement();case\"switch\":return parseSwitchStatement();case\"throw\":return parseThrowStatement();case\"try\":return parseTryStatement();case\"var\":return parseVariableStatement();case\"while\":return parseWhileStatement();case\"with\":return parseWithStatement();default:}return expr=parseExpression(),expr.type===Syntax.Identifier&&match(\":\")?(lex(),Object.prototype.hasOwnProperty.call(state.labelSet,expr.name)&&throwError({},Messages.Redeclaration,\"Label\",expr.name),state.labelSet[expr.name]=!0,labeledBody=parseStatement(),delete state.labelSet[expr.name],{type:Syntax.LabeledStatement,label:expr,body:labeledBody}):(consumeSemicolon(),{type:Syntax.ExpressionStatement,expression:expr})}function parseFunctionSourceElements(){var sourceElement,token,directive,firstRestricted,oldLabelSet,oldInIteration,oldInSwitch,oldInFunctionBody,sourceElements=[];for(expect(\"{\");length>index&&(token=lookahead(),token.type===Token.StringLiteral)&&(sourceElement=parseSourceElement(),sourceElements.push(sourceElement),sourceElement.expression.type===Syntax.Literal);)directive=sliceSource(token.range[0]+1,token.range[1]-1),\"use strict\"===directive?(strict=!0,firstRestricted&&throwErrorTolerant(firstRestricted,Messages.StrictOctalLiteral)):!firstRestricted&&token.octal&&(firstRestricted=token);for(oldLabelSet=state.labelSet,oldInIteration=state.inIteration,oldInSwitch=state.inSwitch,oldInFunctionBody=state.inFunctionBody,state.labelSet={},state.inIteration=!1,state.inSwitch=!1,state.inFunctionBody=!0;length>index&&!match(\"}\")&&(sourceElement=parseSourceElement(),void 0!==sourceElement);)sourceElements.push(sourceElement);return expect(\"}\"),state.labelSet=oldLabelSet,state.inIteration=oldInIteration,state.inSwitch=oldInSwitch,state.inFunctionBody=oldInFunctionBody,{type:Syntax.BlockStatement,body:sourceElements}}function parseFunctionDeclaration(){var id,param,body,token,stricted,firstRestricted,message,previousStrict,paramSet,params=[];if(expectKeyword(\"function\"),token=lookahead(),id=parseVariableIdentifier(),strict?isRestrictedWord(token.value)&&throwErrorTolerant(token,Messages.StrictFunctionName):isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictFunctionName):isStrictModeReservedWord(token.value)&&(firstRestricted=token,message=Messages.StrictReservedWord),expect(\"(\"),!match(\")\"))for(paramSet={};length>index&&(token=lookahead(),param=parseVariableIdentifier(),strict?(isRestrictedWord(token.value)&&(stricted=token,message=Messages.StrictParamName),Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(stricted=token,message=Messages.StrictParamDupe)):firstRestricted||(isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictParamName):isStrictModeReservedWord(token.value)?(firstRestricted=token,message=Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(firstRestricted=token,message=Messages.StrictParamDupe)),params.push(param),paramSet[param.name]=!0,!match(\")\"));)expect(\",\");return expect(\")\"),previousStrict=strict,body=parseFunctionSourceElements(),strict&&firstRestricted&&throwError(firstRestricted,message),strict&&stricted&&throwErrorTolerant(stricted,message),strict=previousStrict,{type:Syntax.FunctionDeclaration,id:id,params:params,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseFunctionExpression(){var token,stricted,firstRestricted,message,param,body,previousStrict,paramSet,id=null,params=[];if(expectKeyword(\"function\"),match(\"(\")||(token=lookahead(),id=parseVariableIdentifier(),strict?isRestrictedWord(token.value)&&throwErrorTolerant(token,Messages.StrictFunctionName):isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictFunctionName):isStrictModeReservedWord(token.value)&&(firstRestricted=token,message=Messages.StrictReservedWord)),expect(\"(\"),!match(\")\"))for(paramSet={};length>index&&(token=lookahead(),param=parseVariableIdentifier(),strict?(isRestrictedWord(token.value)&&(stricted=token,message=Messages.StrictParamName),Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(stricted=token,message=Messages.StrictParamDupe)):firstRestricted||(isRestrictedWord(token.value)?(firstRestricted=token,message=Messages.StrictParamName):isStrictModeReservedWord(token.value)?(firstRestricted=token,message=Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(paramSet,token.value)&&(firstRestricted=token,message=Messages.StrictParamDupe)),params.push(param),paramSet[param.name]=!0,!match(\")\"));)expect(\",\");return expect(\")\"),previousStrict=strict,body=parseFunctionSourceElements(),strict&&firstRestricted&&throwError(firstRestricted,message),strict&&stricted&&throwErrorTolerant(stricted,message),strict=previousStrict,{type:Syntax.FunctionExpression,id:id,params:params,defaults:[],body:body,rest:null,generator:!1,expression:!1}}function parseSourceElement(){var token=lookahead();if(token.type===Token.Keyword)switch(token.value){case\"const\":case\"let\":return parseConstLetDeclaration(token.value);case\"function\":return parseFunctionDeclaration();default:return parseStatement()}return token.type!==Token.EOF?parseStatement():void 0}function parseSourceElements(){for(var sourceElement,token,directive,firstRestricted,sourceElements=[];length>index&&(token=lookahead(),token.type===Token.StringLiteral)&&(sourceElement=parseSourceElement(),sourceElements.push(sourceElement),sourceElement.expression.type===Syntax.Literal);)directive=sliceSource(token.range[0]+1,token.range[1]-1),\"use strict\"===directive?(strict=!0,firstRestricted&&throwErrorTolerant(firstRestricted,Messages.StrictOctalLiteral)):!firstRestricted&&token.octal&&(firstRestricted=token);for(;length>index&&(sourceElement=parseSourceElement(),void 0!==sourceElement);)sourceElements.push(sourceElement);return sourceElements}function parseProgram(){var program;return strict=!1,program={type:Syntax.Program,body:parseSourceElements()}}function addComment(type,value,start,end,loc){assert(\"number\"==typeof start,\"Comment must have valid position\"),extra.comments.length>0&&extra.comments[extra.comments.length-1].range[1]>start||extra.comments.push({type:type,value:value,range:[start,end],loc:loc})}function scanComment(){var comment,ch,loc,start,blockComment,lineComment;for(comment=\"\",blockComment=!1,lineComment=!1;length>index;)if(ch=source[index],lineComment)ch=source[index++],isLineTerminator(ch)?(loc.end={line:lineNumber,column:index-lineStart-1},lineComment=!1,addComment(\"Line\",comment,start,index-1,loc),\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index,comment=\"\"):index>=length?(lineComment=!1,comment+=ch,loc.end={line:lineNumber,column:length-lineStart},addComment(\"Line\",comment,start,length,loc)):comment+=ch;else if(blockComment)isLineTerminator(ch)?(\"\\r\"===ch&&\"\\n\"===source[index+1]?(++index,comment+=\"\\r\\n\"):comment+=ch,++lineNumber,++index,lineStart=index,index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")):(ch=source[index++],index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\"),comment+=ch,\"*\"===ch&&(ch=source[index],\"/\"===ch&&(comment=comment.substr(0,comment.length-1),blockComment=!1,++index,loc.end={line:lineNumber,column:index-lineStart},addComment(\"Block\",comment,start,index,loc),comment=\"\")));else if(\"/\"===ch)if(ch=source[index+1],\"/\"===ch)loc={start:{line:lineNumber,column:index-lineStart}},start=index,index+=2,lineComment=!0,index>=length&&(loc.end={line:lineNumber,column:index-lineStart},lineComment=!1,addComment(\"Line\",comment,start,index,loc));else{if(\"*\"!==ch)break;start=index,index+=2,blockComment=!0,loc={start:{line:lineNumber,column:index-lineStart-2}},index>=length&&throwError({},Messages.UnexpectedToken,\"ILLEGAL\")}else if(isWhiteSpace(ch))++index;else{if(!isLineTerminator(ch))break;++index,\"\\r\"===ch&&\"\\n\"===source[index]&&++index,++lineNumber,lineStart=index}}function filterCommentLocation(){var i,entry,comment,comments=[];for(i=0;extra.comments.length>i;++i)entry=extra.comments[i],comment={type:entry.type,value:entry.value},extra.range&&(comment.range=entry.range),extra.loc&&(comment.loc=entry.loc),comments.push(comment);extra.comments=comments}function collectToken(){var start,loc,token,range,value;return skipComment(),start=index,loc={start:{line:lineNumber,column:index-lineStart}},token=extra.advance(),loc.end={line:lineNumber,column:index-lineStart},token.type!==Token.EOF&&(range=[token.range[0],token.range[1]],value=sliceSource(token.range[0],token.range[1]),extra.tokens.push({type:TokenName[token.type],value:value,range:range,loc:loc})),token}function collectRegex(){var pos,loc,regex,token;return skipComment(),pos=index,loc={start:{line:lineNumber,column:index-lineStart}},regex=extra.scanRegExp(),loc.end={line:lineNumber,column:index-lineStart},extra.tokens.length>0&&(token=extra.tokens[extra.tokens.length-1],token.range[0]===pos&&\"Punctuator\"===token.type&&(\"/\"===token.value||\"/=\"===token.value)&&extra.tokens.pop()),extra.tokens.push({type:\"RegularExpression\",value:regex.literal,range:[pos,index],loc:loc}),regex}function filterTokenLocation(){var i,entry,token,tokens=[];for(i=0;extra.tokens.length>i;++i)entry=extra.tokens[i],token={type:entry.type,value:entry.value},extra.range&&(token.range=entry.range),extra.loc&&(token.loc=entry.loc),tokens.push(token);extra.tokens=tokens}function createLiteral(token){return{type:Syntax.Literal,value:token.value}}function createRawLiteral(token){return{type:Syntax.Literal,value:token.value,raw:sliceSource(token.range[0],token.range[1])}}function createLocationMarker(){var marker={};return marker.range=[index,index],marker.loc={start:{line:lineNumber,column:index-lineStart},end:{line:lineNumber,column:index-lineStart}},marker.end=function(){this.range[1]=index,this.loc.end.line=lineNumber,this.loc.end.column=index-lineStart},marker.applyGroup=function(node){extra.range&&(node.groupRange=[this.range[0],this.range[1]]),extra.loc&&(node.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},marker.apply=function(node){extra.range&&(node.range=[this.range[0],this.range[1]]),extra.loc&&(node.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},marker}function trackGroupExpression(){var marker,expr;return skipComment(),marker=createLocationMarker(),expect(\"(\"),expr=parseExpression(),expect(\")\"),marker.end(),marker.applyGroup(expr),expr}function trackLeftHandSideExpression(){var marker,expr;for(skipComment(),marker=createLocationMarker(),expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\");)match(\"[\")?(expr={type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()},marker.end(),marker.apply(expr)):(expr={type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()},marker.end(),marker.apply(expr));return expr}function trackLeftHandSideExpressionAllowCall(){var marker,expr;for(skipComment(),marker=createLocationMarker(),expr=matchKeyword(\"new\")?parseNewExpression():parsePrimaryExpression();match(\".\")||match(\"[\")||match(\"(\");)match(\"(\")?(expr={type:Syntax.CallExpression,callee:expr,arguments:parseArguments()},marker.end(),marker.apply(expr)):match(\"[\")?(expr={type:Syntax.MemberExpression,computed:!0,object:expr,property:parseComputedMember()},marker.end(),marker.apply(expr)):(expr={type:Syntax.MemberExpression,computed:!1,object:expr,property:parseNonComputedMember()},marker.end(),marker.apply(expr));return expr}function filterGroup(node){var n,i,entry;n=\"[object Array]\"===Object.prototype.toString.apply(node)?[]:{};for(i in node)node.hasOwnProperty(i)&&\"groupRange\"!==i&&\"groupLoc\"!==i&&(entry=node[i],n[i]=null===entry||\"object\"!=typeof entry||entry instanceof RegExp?entry:filterGroup(entry));return n}function wrapTrackingFunction(range,loc){return function(parseFunction){function isBinary(node){return node.type===Syntax.LogicalExpression||node.type===Syntax.BinaryExpression}function visit(node){var start,end;isBinary(node.left)&&visit(node.left),isBinary(node.right)&&visit(node.right),range&&(node.left.groupRange||node.right.groupRange?(start=node.left.groupRange?node.left.groupRange[0]:node.left.range[0],end=node.right.groupRange?node.right.groupRange[1]:node.right.range[1],node.range=[start,end]):node.range===void 0&&(start=node.left.range[0],end=node.right.range[1],node.range=[start,end])),loc&&(node.left.groupLoc||node.right.groupLoc?(start=node.left.groupLoc?node.left.groupLoc.start:node.left.loc.start,end=node.right.groupLoc?node.right.groupLoc.end:node.right.loc.end,node.loc={start:start,end:end}):node.loc===void 0&&(node.loc={start:node.left.loc.start,end:node.right.loc.end}))}return function(){var marker,node;return skipComment(),marker=createLocationMarker(),node=parseFunction.apply(null,arguments),marker.end(),range&&node.range===void 0&&marker.apply(node),loc&&node.loc===void 0&&marker.apply(node),isBinary(node)&&visit(node),node}}}function patch(){var wrapTracking;extra.comments&&(extra.skipComment=skipComment,skipComment=scanComment),extra.raw&&(extra.createLiteral=createLiteral,createLiteral=createRawLiteral),(extra.range||extra.loc)&&(extra.parseGroupExpression=parseGroupExpression,extra.parseLeftHandSideExpression=parseLeftHandSideExpression,extra.parseLeftHandSideExpressionAllowCall=parseLeftHandSideExpressionAllowCall,parseGroupExpression=trackGroupExpression,parseLeftHandSideExpression=trackLeftHandSideExpression,parseLeftHandSideExpressionAllowCall=trackLeftHandSideExpressionAllowCall,wrapTracking=wrapTrackingFunction(extra.range,extra.loc),extra.parseAdditiveExpression=parseAdditiveExpression,extra.parseAssignmentExpression=parseAssignmentExpression,extra.parseBitwiseANDExpression=parseBitwiseANDExpression,extra.parseBitwiseORExpression=parseBitwiseORExpression,extra.parseBitwiseXORExpression=parseBitwiseXORExpression,extra.parseBlock=parseBlock,extra.parseFunctionSourceElements=parseFunctionSourceElements,extra.parseCatchClause=parseCatchClause,extra.parseComputedMember=parseComputedMember,extra.parseConditionalExpression=parseConditionalExpression,extra.parseConstLetDeclaration=parseConstLetDeclaration,extra.parseEqualityExpression=parseEqualityExpression,extra.parseExpression=parseExpression,extra.parseForVariableDeclaration=parseForVariableDeclaration,extra.parseFunctionDeclaration=parseFunctionDeclaration,extra.parseFunctionExpression=parseFunctionExpression,extra.parseLogicalANDExpression=parseLogicalANDExpression,extra.parseLogicalORExpression=parseLogicalORExpression,extra.parseMultiplicativeExpression=parseMultiplicativeExpression,extra.parseNewExpression=parseNewExpression,extra.parseNonComputedProperty=parseNonComputedProperty,extra.parseObjectProperty=parseObjectProperty,extra.parseObjectPropertyKey=parseObjectPropertyKey,extra.parsePostfixExpression=parsePostfixExpression,extra.parsePrimaryExpression=parsePrimaryExpression,extra.parseProgram=parseProgram,extra.parsePropertyFunction=parsePropertyFunction,extra.parseRelationalExpression=parseRelationalExpression,extra.parseStatement=parseStatement,extra.parseShiftExpression=parseShiftExpression,extra.parseSwitchCase=parseSwitchCase,extra.parseUnaryExpression=parseUnaryExpression,extra.parseVariableDeclaration=parseVariableDeclaration,extra.parseVariableIdentifier=parseVariableIdentifier,parseAdditiveExpression=wrapTracking(extra.parseAdditiveExpression),parseAssignmentExpression=wrapTracking(extra.parseAssignmentExpression),parseBitwiseANDExpression=wrapTracking(extra.parseBitwiseANDExpression),parseBitwiseORExpression=wrapTracking(extra.parseBitwiseORExpression),parseBitwiseXORExpression=wrapTracking(extra.parseBitwiseXORExpression),parseBlock=wrapTracking(extra.parseBlock),parseFunctionSourceElements=wrapTracking(extra.parseFunctionSourceElements),parseCatchClause=wrapTracking(extra.parseCatchClause),parseComputedMember=wrapTracking(extra.parseComputedMember),parseConditionalExpression=wrapTracking(extra.parseConditionalExpression),parseConstLetDeclaration=wrapTracking(extra.parseConstLetDeclaration),parseEqualityExpression=wrapTracking(extra.parseEqualityExpression),parseExpression=wrapTracking(extra.parseExpression),parseForVariableDeclaration=wrapTracking(extra.parseForVariableDeclaration),parseFunctionDeclaration=wrapTracking(extra.parseFunctionDeclaration),parseFunctionExpression=wrapTracking(extra.parseFunctionExpression),parseLeftHandSideExpression=wrapTracking(parseLeftHandSideExpression),parseLogicalANDExpression=wrapTracking(extra.parseLogicalANDExpression),parseLogicalORExpression=wrapTracking(extra.parseLogicalORExpression),parseMultiplicativeExpression=wrapTracking(extra.parseMultiplicativeExpression),parseNewExpression=wrapTracking(extra.parseNewExpression),parseNonComputedProperty=wrapTracking(extra.parseNonComputedProperty),parseObjectProperty=wrapTracking(extra.parseObjectProperty),parseObjectPropertyKey=wrapTracking(extra.parseObjectPropertyKey),parsePostfixExpression=wrapTracking(extra.parsePostfixExpression),parsePrimaryExpression=wrapTracking(extra.parsePrimaryExpression),parseProgram=wrapTracking(extra.parseProgram),parsePropertyFunction=wrapTracking(extra.parsePropertyFunction),parseRelationalExpression=wrapTracking(extra.parseRelationalExpression),parseStatement=wrapTracking(extra.parseStatement),parseShiftExpression=wrapTracking(extra.parseShiftExpression),parseSwitchCase=wrapTracking(extra.parseSwitchCase),parseUnaryExpression=wrapTracking(extra.parseUnaryExpression),parseVariableDeclaration=wrapTracking(extra.parseVariableDeclaration),parseVariableIdentifier=wrapTracking(extra.parseVariableIdentifier)),extra.tokens!==void 0&&(extra.advance=advance,extra.scanRegExp=scanRegExp,advance=collectToken,scanRegExp=collectRegex)}function unpatch(){\"function\"==typeof extra.skipComment&&(skipComment=extra.skipComment),extra.raw&&(createLiteral=extra.createLiteral),(extra.range||extra.loc)&&(parseAdditiveExpression=extra.parseAdditiveExpression,parseAssignmentExpression=extra.parseAssignmentExpression,parseBitwiseANDExpression=extra.parseBitwiseANDExpression,parseBitwiseORExpression=extra.parseBitwiseORExpression,parseBitwiseXORExpression=extra.parseBitwiseXORExpression,parseBlock=extra.parseBlock,parseFunctionSourceElements=extra.parseFunctionSourceElements,parseCatchClause=extra.parseCatchClause,parseComputedMember=extra.parseComputedMember,parseConditionalExpression=extra.parseConditionalExpression,parseConstLetDeclaration=extra.parseConstLetDeclaration,parseEqualityExpression=extra.parseEqualityExpression,parseExpression=extra.parseExpression,parseForVariableDeclaration=extra.parseForVariableDeclaration,parseFunctionDeclaration=extra.parseFunctionDeclaration,parseFunctionExpression=extra.parseFunctionExpression,parseGroupExpression=extra.parseGroupExpression,parseLeftHandSideExpression=extra.parseLeftHandSideExpression,parseLeftHandSideExpressionAllowCall=extra.parseLeftHandSideExpressionAllowCall,parseLogicalANDExpression=extra.parseLogicalANDExpression,parseLogicalORExpression=extra.parseLogicalORExpression,parseMultiplicativeExpression=extra.parseMultiplicativeExpression,parseNewExpression=extra.parseNewExpression,parseNonComputedProperty=extra.parseNonComputedProperty,parseObjectProperty=extra.parseObjectProperty,parseObjectPropertyKey=extra.parseObjectPropertyKey,parsePrimaryExpression=extra.parsePrimaryExpression,parsePostfixExpression=extra.parsePostfixExpression,parseProgram=extra.parseProgram,parsePropertyFunction=extra.parsePropertyFunction,parseRelationalExpression=extra.parseRelationalExpression,parseStatement=extra.parseStatement,parseShiftExpression=extra.parseShiftExpression,parseSwitchCase=extra.parseSwitchCase,parseUnaryExpression=extra.parseUnaryExpression,parseVariableDeclaration=extra.parseVariableDeclaration,parseVariableIdentifier=extra.parseVariableIdentifier),\"function\"==typeof extra.scanRegExp&&(advance=extra.advance,scanRegExp=extra.scanRegExp)}function stringToArray(str){var i,length=str.length,result=[];for(i=0;length>i;++i)result[i]=str.charAt(i);return result}function parse(code,options){var program,toString;\ntoString=String,\"string\"==typeof code||code instanceof String||(code=toString(code)),source=code,index=0,lineNumber=source.length>0?1:0,lineStart=0,length=source.length,buffer=null,state={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},extra={},options!==void 0&&(extra.range=\"boolean\"==typeof options.range&&options.range,extra.loc=\"boolean\"==typeof options.loc&&options.loc,extra.raw=\"boolean\"==typeof options.raw&&options.raw,\"boolean\"==typeof options.tokens&&options.tokens&&(extra.tokens=[]),\"boolean\"==typeof options.comment&&options.comment&&(extra.comments=[]),\"boolean\"==typeof options.tolerant&&options.tolerant&&(extra.errors=[])),length>0&&source[0]===void 0&&(code instanceof String&&(source=code.valueOf()),source[0]===void 0&&(source=stringToArray(code))),patch();try{program=parseProgram(),extra.comments!==void 0&&(filterCommentLocation(),program.comments=extra.comments),extra.tokens!==void 0&&(filterTokenLocation(),program.tokens=extra.tokens),extra.errors!==void 0&&(program.errors=extra.errors),(extra.range||extra.loc)&&(program.body=filterGroup(program.body))}catch(e){throw e}finally{unpatch(),extra={}}return program}var Token,TokenName,Syntax,PropertyKind,Messages,Regex,source,strict,index,lineNumber,lineStart,length,buffer,state,extra;Token={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},TokenName={},TokenName[Token.BooleanLiteral]=\"Boolean\",TokenName[Token.EOF]=\"\u003Cend>\",TokenName[Token.Identifier]=\"Identifier\",TokenName[Token.Keyword]=\"Keyword\",TokenName[Token.NullLiteral]=\"Null\",TokenName[Token.NumericLiteral]=\"Numeric\",TokenName[Token.Punctuator]=\"Punctuator\",TokenName[Token.StringLiteral]=\"String\",Syntax={AssignmentExpression:\"AssignmentExpression\",ArrayExpression:\"ArrayExpression\",BlockStatement:\"BlockStatement\",BinaryExpression:\"BinaryExpression\",BreakStatement:\"BreakStatement\",CallExpression:\"CallExpression\",CatchClause:\"CatchClause\",ConditionalExpression:\"ConditionalExpression\",ContinueStatement:\"ContinueStatement\",DoWhileStatement:\"DoWhileStatement\",DebuggerStatement:\"DebuggerStatement\",EmptyStatement:\"EmptyStatement\",ExpressionStatement:\"ExpressionStatement\",ForStatement:\"ForStatement\",ForInStatement:\"ForInStatement\",FunctionDeclaration:\"FunctionDeclaration\",FunctionExpression:\"FunctionExpression\",Identifier:\"Identifier\",IfStatement:\"IfStatement\",Literal:\"Literal\",LabeledStatement:\"LabeledStatement\",LogicalExpression:\"LogicalExpression\",MemberExpression:\"MemberExpression\",NewExpression:\"NewExpression\",ObjectExpression:\"ObjectExpression\",Program:\"Program\",Property:\"Property\",ReturnStatement:\"ReturnStatement\",SequenceExpression:\"SequenceExpression\",SwitchStatement:\"SwitchStatement\",SwitchCase:\"SwitchCase\",ThisExpression:\"ThisExpression\",ThrowStatement:\"ThrowStatement\",TryStatement:\"TryStatement\",UnaryExpression:\"UnaryExpression\",UpdateExpression:\"UpdateExpression\",VariableDeclaration:\"VariableDeclaration\",VariableDeclarator:\"VariableDeclarator\",WhileStatement:\"WhileStatement\",WithStatement:\"WithStatement\"},PropertyKind={Data:1,Get:2,Set:4},Messages={UnexpectedToken:\"Unexpected token %0\",UnexpectedNumber:\"Unexpected number\",UnexpectedString:\"Unexpected string\",UnexpectedIdentifier:\"Unexpected identifier\",UnexpectedReserved:\"Unexpected reserved word\",UnexpectedEOS:\"Unexpected end of input\",NewlineAfterThrow:\"Illegal newline after throw\",InvalidRegExp:\"Invalid regular expression\",UnterminatedRegExp:\"Invalid regular expression: missing /\",InvalidLHSInAssignment:\"Invalid left-hand side in assignment\",InvalidLHSInForIn:\"Invalid left-hand side in for-in\",MultipleDefaultsInSwitch:\"More than one default clause in switch statement\",NoCatchOrFinally:\"Missing catch or finally after try\",UnknownLabel:\"Undefined label '%0'\",Redeclaration:\"%0 '%1' has already been declared\",IllegalContinue:\"Illegal continue statement\",IllegalBreak:\"Illegal break statement\",IllegalReturn:\"Illegal return statement\",StrictModeWith:\"Strict mode code may not include a with statement\",StrictCatchVariable:\"Catch variable may not be eval or arguments in strict mode\",StrictVarName:\"Variable name may not be eval or arguments in strict mode\",StrictParamName:\"Parameter name eval or arguments is not allowed in strict mode\",StrictParamDupe:\"Strict mode function may not have duplicate parameter names\",StrictFunctionName:\"Function name may not be eval or arguments in strict mode\",StrictOctalLiteral:\"Octal literals are not allowed in strict mode.\",StrictDelete:\"Delete of an unqualified identifier in strict mode.\",StrictDuplicateProperty:\"Duplicate data property in object literal not allowed in strict mode\",AccessorDataProperty:\"Object literal may not have data and accessor property with the same name\",AccessorGetSet:\"Object literal may not have multiple get/set accessors with the same name\",StrictLHSAssignment:\"Assignment to eval or arguments is not allowed in strict mode\",StrictLHSPostfix:\"Postfix increment/decrement may not have eval or arguments operand in strict mode\",StrictLHSPrefix:\"Prefix increment/decrement may not have eval or arguments operand in strict mode\",StrictReservedWord:\"Use of future reserved word in strict mode\"},Regex={NonAsciiIdentifierStart:RegExp(\"[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]\"),NonAsciiIdentifierPart:RegExp(\"[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]\")},\"esprima\"[0]===void 0&&(sliceSource=function(from,to){return source.slice(from,to).join(\"\")}),exports.version=\"1.0.2\",exports.parse=parse,exports.Syntax=function(){var name,types={};\"function\"==typeof Object.create&&(types=Object.create(null));for(name in Syntax)Syntax.hasOwnProperty(name)&&(types[name]=Syntax[name]);return\"function\"==typeof Object.freeze&&Object.freeze(types),types}()})})()},{}],63:[function(require,module){function isFunction(obj){return\"[object Function]\"==toString.call(obj)}var fs=require(\"fs\"),highlight=require(\"./highlight\");module.exports=function(fullPath,opts,cb){isFunction(opts)&&(cb=opts),fs.readFile(fullPath,\"utf-8\",function(err,code){if(err)return cb(err);try{cb(null,highlight(code,opts))}catch(e){cb(e)}})}},{fs:74,\"./highlight\":62}],64:[function(require,module){var fs=require(\"fs\"),highlight=require(\"./highlight\");module.exports=function(fullPath,opts){var code=fs.readFileSync(fullPath,\"utf-8\");return highlight(code,opts)}},{fs:74,\"./highlight\":62}],29:[function(require,module){\"use strict\";function fix(line,hideStrict){var fixed=line;if(commaFirstAssignment.test(line)){var idx=line.indexOf(\",\");fixed=\"var\"+fixed.slice(0,idx).trim()+\" \"+fixed.slice(idx+1).trim()}return hideStrict&&useStrict.test(line)&&(fixed=nonStrict+line),fixed}function unfix(code,hideStrict){return hideStrict&&(code=code.replace(nonStrict,\"\")),code}var parse=require(\"esprima\").parse,commaFirstAssignment=/^[\\t ]*,[\\t ]*\\S+[\\t ]*=[\\t ]*\\S+/,useStrict=/^ *['\"]use strict['\"][; ]*$/,nonStrict=\"// *** non strict snippetify fix +++***+++&&&\",snippetify=module.exports=function(script,opts){function nextChunk(code,raw){var line=(0===code.length,lines[lineno]),fixed=fix(line,opts.nonstrict);raw=line+raw,code=fixed+code;try{var ast=parse(code,opts);return code=unfix(code,opts.nonstrict),{code:code,raw:raw,ast:ast}}catch(e){if(-1===--lineno){var err=Error(\"unable to snippetify \"+code);throw err.inner=e,err}return nextChunk(\"\\n\"+code,\"\\n\"+raw)}}opts=opts||{};var snippets=[],lines=script.split(\"\\n\");if(!lines.length)return[];for(var lineno=lines.length;--lineno>-1;){var snippetEnd=lineno+1,snippet=nextChunk(\"\",\"\"),snippetStart=lineno+1;snippets.unshift({start:snippetStart,end:snippetEnd,code:snippet.code,raw:snippet.raw,ast:snippet.ast})}return snippets},code=\"function foo() {\\n\\\"use strict\\\";\\n var o = { a: 1, a: 2 };\\n}\\n\\n;function bar() {\\n'use strict';\\n var o = { a: 1, a: 2 };\\n}\";snippetify(code,{nonstrict:!0})},{esprima:70}],75:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],76:[function(require,module){var colorNums={white:37,black:30,blue:34,cyan:36,green:32,magenta:35,red:31,yellow:33,brightBlack:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97},colors={};Object.keys(colorNums).forEach(function(k){colors[k]=\"\u001b[\"+colorNums[k]+\"m:\u001b[39m\"}),module.exports=colors},{}],77:[function(require,module){require=function(e,t,n,r){function i(r){if(!n[r]){if(!t[r]){if(e)return e(r);throw Error(\"Cannot find module '\"+r+\"'\")}var s=n[r]={exports:{}};t[r][0](function(e){var n=t[r][1][e];return i(n?n:e)},s,s.exports)}return n[r].exports}for(var s=0;r.length>s;s++)i(r[s]);return i}(require!==void 0&&require,{1:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],2:[function(require,module){(function(){function objectKeys(object){if(Object.keys)return Object.keys(object);var result=[];for(var name in object)Object.prototype.hasOwnProperty.call(object,name)&&result.push(name);return result}function replacer(key,value){return void 0===value?\"\"+value:\"number\"!=typeof value||!isNaN(value)&&isFinite(value)?\"function\"==typeof value||value instanceof RegExp?\"\"+value:value:\"\"+value}function truncate(s,n){return\"string\"==typeof s?n>s.length?s:s.slice(0,n):s}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,\"==\",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(Buffer.isBuffer(actual)&&Buffer.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;actual.length>i;i++)if(actual[i]!==expected[i])return!1;return!0}return actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():\"object\"!=typeof actual&&\"object\"!=typeof expected?actual==expected:objEquiv(actual,expected)}function isUndefinedOrNull(value){return null===value||void 0===value}function isArguments(object){return\"[object Arguments]\"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?expected instanceof RegExp?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;\"string\"==typeof expected&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?\" (\"+expected.name+\").\":\".\")+(message?\" \"+message:\".\"),shouldThrow&&!actual&&fail(\"Missing expected exception\"+message),!shouldThrow&&expectedException(actual,expected)&&fail(\"Got unwanted exception\"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require(\"util\"),Buffer=require(\"buffer\").Buffer,pSlice=Array.prototype.slice,assert=module.exports=ok;assert.AssertionError=function(options){this.name=\"AssertionError\",this.message=options.message,this.actual=options.actual,this.expected=options.expected,this.operator=options.operator;var stackStartFunction=options.stackStartFunction||fail;Error.captureStackTrace&&Error.captureStackTrace(this,stackStartFunction)},util.inherits(assert.AssertionError,Error),assert.AssertionError.prototype.toString=function(){return this.message?[this.name+\":\",this.message].join(\" \"):[this.name+\":\",truncate(JSON.stringify(this.actual,replacer),128),this.operator,truncate(JSON.stringify(this.expected,replacer),128)].join(\" \")},assert.AssertionError.__proto__=Error.prototype,assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,\"==\",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,\"!=\",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,\"deepEqual\",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,\"notDeepEqual\",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,\"===\",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,\"!==\",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err}})()},{util:3,buffer:4}],\"buffer-browserify\":[function(require,module){module.exports=require(\"q9TxCC\")},{}],q9TxCC:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject instanceof Buffer?subject.readUInt8(i):subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1])):(val=buffer.parent[buffer.offset+offset],buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8)),val)}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(buffer.length>offset+1&&(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16),buffer.length>offset+2&&(val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8),buffer.length>offset+3&&(val|=buffer.parent[buffer.offset+offset+3]),val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(buffer.length>offset+2&&(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16),buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val|=buffer.parent[buffer.offset+offset],buffer.length>offset+3&&(val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0)),val)}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535));for(var i=0;Math.min(buffer.length-offset,2)>i;i++)buffer.parent[buffer.offset+offset+i]=(value&255\u003C\u003C8*(isBigEndian?1-i:i))>>>8*(isBigEndian?1-i:i)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295));for(var i=0;Math.min(buffer.length-offset,4)>i;i++)buffer.parent[buffer.offset+offset+i]=255&value>>>8*(isBigEndian?3-i:i)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":case\"binary\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.binaryWrite=SlowBuffer.prototype.asciiWrite,SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.binarySlice=SlowBuffer.prototype.asciiSlice,SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";switch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},SlowBuffer.prototype.fill=function(value,start,end){if(end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");for(var i=start;end>i;i++)this[i]=value},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;\ncase\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");if(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:(neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset])},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.length>offset&&(buffer.parent[buffer.offset+offset]=value)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:2,\"./buffer_ieee754\":1,\"base64-js\":5}],3:[function(require,module,exports){function isArray(ar){return ar instanceof Array||Array.isArray(ar)||ar&&ar!==Object.prototype&&isArray(ar.__proto__)}function isRegExp(re){return re instanceof RegExp||\"object\"==typeof re&&\"[object RegExp]\"===Object.prototype.toString.call(re)}function isDate(d){if(d instanceof Date)return!0;if(\"object\"!=typeof d)return!1;var properties=Date.prototype&&Object_getOwnPropertyNames(Date.prototype),proto=d.__proto__&&Object_getOwnPropertyNames(d.__proto__);return JSON.stringify(proto)===JSON.stringify(properties)}require(\"events\"),exports.isArray=isArray,exports.isDate=function(obj){return\"[object Date]\"===Object.prototype.toString.call(obj)},exports.isRegExp=function(obj){return\"[object RegExp]\"===Object.prototype.toString.call(obj)},exports.print=function(){},exports.puts=function(){},exports.debug=function(){},exports.inspect=function(obj,showHidden,depth,colors){function format(value,recurseTimes){if(value&&\"function\"==typeof value.inspect&&value!==exports&&(!value.constructor||value.constructor.prototype!==value))return value.inspect(recurseTimes);switch(typeof value){case\"undefined\":return stylize(\"undefined\",\"undefined\");case\"string\":var simple=\"'\"+JSON.stringify(value).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return stylize(simple,\"string\");case\"number\":return stylize(\"\"+value,\"number\");case\"boolean\":return stylize(\"\"+value,\"boolean\")}if(null===value)return stylize(\"null\",\"null\");var visible_keys=Object_keys(value),keys=showHidden?Object_getOwnPropertyNames(value):visible_keys;if(\"function\"==typeof value&&0===keys.length){if(isRegExp(value))return stylize(\"\"+value,\"regexp\");var name=value.name?\": \"+value.name:\"\";return stylize(\"[Function\"+name+\"]\",\"special\")}if(isDate(value)&&0===keys.length)return stylize(value.toUTCString(),\"date\");var base,type,braces;if(isArray(value)?(type=\"Array\",braces=[\"[\",\"]\"]):(type=\"Object\",braces=[\"{\",\"}\"]),\"function\"==typeof value){var n=value.name?\": \"+value.name:\"\";base=isRegExp(value)?\" \"+value:\" [Function\"+n+\"]\"}else base=\"\";if(isDate(value)&&(base=\" \"+value.toUTCString()),0===keys.length)return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?stylize(\"\"+value,\"regexp\"):stylize(\"[Object]\",\"special\");seen.push(value);var output=keys.map(function(key){var name,str;if(value.__lookupGetter__&&(value.__lookupGetter__(key)?str=value.__lookupSetter__(key)?stylize(\"[Getter/Setter]\",\"special\"):stylize(\"[Getter]\",\"special\"):value.__lookupSetter__(key)&&(str=stylize(\"[Setter]\",\"special\"))),0>visible_keys.indexOf(key)&&(name=\"[\"+key+\"]\"),str||(0>seen.indexOf(value[key])?(str=null===recurseTimes?format(value[key]):format(value[key],recurseTimes-1),str.indexOf(\"\\n\")>-1&&(str=isArray(value)?str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\").substr(2):\"\\n\"+str.split(\"\\n\").map(function(line){return\" \"+line}).join(\"\\n\"))):str=stylize(\"[Circular]\",\"special\")),name===void 0){if(\"Array\"===type&&key.match(/^\\d+$/))return str;name=JSON.stringify(\"\"+key),name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(name=name.substr(1,name.length-2),name=stylize(name,\"name\")):(name=name.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),name=stylize(name,\"string\"))}return name+\": \"+str});seen.pop();var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf(\"\\n\")>=0&&numLinesEst++,prev+cur.length+1},0);return output=length>50?braces[0]+(\"\"===base?\"\":base+\"\\n \")+\" \"+output.join(\",\\n \")+\" \"+braces[1]:braces[0]+base+\" \"+output.join(\", \")+\" \"+braces[1]}var seen=[],stylize=function(str,styleType){var styles={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},style={special:\"cyan\",number:\"blue\",\"boolean\":\"yellow\",undefined:\"grey\",\"null\":\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"}[styleType];return style?\"\u001b[\"+styles[style][0]+\"m\"+str+\"\u001b[\"+styles[style][1]+\"m\":str};return colors||(stylize=function(str){return str}),format(obj,depth===void 0?2:depth)},exports.log=function(){},exports.pump=null;var Object_keys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},Object_getOwnPropertyNames=Object.getOwnPropertyNames||function(obj){var res=[];for(var key in obj)Object.hasOwnProperty.call(obj,key)&&res.push(key);return res},Object_create=Object.create||function(prototype,properties){var object;if(null===prototype)object={__proto__:null};else{if(\"object\"!=typeof prototype)throw new TypeError(\"typeof prototype[\"+typeof prototype+\"] != 'object'\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return properties!==void 0&&Object.defineProperties&&Object.defineProperties(object,properties),object};exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object_create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})};var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(\"string\"!=typeof f){for(var objects=[],i=0;arguments.length>i;i++)objects.push(exports.inspect(arguments[i]));return objects.join(\" \")}for(var i=1,args=arguments,len=args.length,str=(f+\"\").replace(formatRegExp,function(x){if(\"%%\"===x)return\"%\";if(i>=len)return x;switch(x){case\"%s\":return args[i++]+\"\";case\"%d\":return Number(args[i++]);case\"%j\":return JSON.stringify(args[i++]);default:return x}}),x=args[i];len>i;x=args[++i])str+=null===x||\"object\"!=typeof x?\" \"+x:\" \"+exports.inspect(x);return str}},{events:6}],5:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}],7:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];for(i+=d,e=s&(1\u003C\u003C-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1\u003C\u003C-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1\u003C\u003CeLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),1>value*(c=Math.pow(2,-e))&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e\u003C\u003CmLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],8:[function(require,module){var process=module.exports={};process.nextTick=function(){var canSetImmediate=\"undefined\"!=typeof window&&window.setImmediate,canPost=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener(\"message\",function(ev){if(ev.source===window&&\"process-tick\"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage(\"process-tick\",\"*\")}}return function(fn){setTimeout(fn,0)}}(),process.title=\"browser\",process.browser=!0,process.env={},process.argv=[],process.binding=function(){throw Error(\"process.binding is not supported\")},process.cwd=function(){return\"/\"},process.chdir=function(){throw Error(\"process.chdir is not supported\")}},{}],6:[function(require,module,exports){(function(process){function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;xs.length>i;i++)if(x===xs[i])return i;return-1}process.EventEmitter||(process.EventEmitter=function(){});var EventEmitter=exports.EventEmitter=process.EventEmitter,isArray=\"function\"==typeof Array.isArray?Array.isArray:function(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){this._events||(this._events={}),this._events.maxListeners=n},EventEmitter.prototype.emit=function(type){if(\"error\"===type&&(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length))throw arguments[1]instanceof Error?arguments[1]:Error(\"Uncaught, unspecified 'error' event.\");if(!this._events)return!1;var handler=this._events[type];if(!handler)return!1;if(\"function\"==typeof handler){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return!0}if(isArray(handler)){for(var args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),i=0,l=listeners.length;l>i;i++)listeners[i].apply(this,args);return!0}return!1},EventEmitter.prototype.addListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"addListener only takes instances of Function\");if(this._events||(this._events={}),this.emit(\"newListener\",type,listener),this._events[type])if(isArray(this._events[type])){if(!this._events[type].warned){var m;m=void 0!==this._events.maxListeners?this._events.maxListeners:defaultMaxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[type].length),console.trace())}this._events[type].push(listener)}else this._events[type]=[this._events[type],listener];else this._events[type]=listener;return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){var self=this;return self.on(type,function g(){self.removeListener(type,g),listener.apply(this,arguments)}),this},EventEmitter.prototype.removeListener=function(type,listener){if(\"function\"!=typeof listener)throw Error(\"removeListener only takes instances of Function\");if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(0>i)return this;list.splice(i,1),0==list.length&&delete this._events[type]}else this._events[type]===listener&&delete this._events[type];return this},EventEmitter.prototype.removeAllListeners=function(type){return 0===arguments.length?(this._events={},this):(type&&this._events&&this._events[type]&&(this._events[type]=null),this)},EventEmitter.prototype.listeners=function(type){return this._events||(this._events={}),this._events[type]||(this._events[type]=[]),isArray(this._events[type])||(this._events[type]=[this._events[type]]),this._events[type]}})(require(\"__browserify_process\"))},{__browserify_process:8}],4:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset+1]):(val=buffer.parent[buffer.offset+offset],val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),isBigEndian?(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16,val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset+3],val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16,val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8,val|=buffer.parent[buffer.offset+offset],val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0),val}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535)),isBigEndian?(buffer.parent[buffer.offset+offset]=(65280&value)>>>8,buffer.parent[buffer.offset+offset+1]=255&value):(buffer.parent[buffer.offset+offset+1]=(65280&value)>>>8,buffer.parent[buffer.offset+offset]=255&value)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295)),isBigEndian?(buffer.parent[buffer.offset+offset]=255&value>>>24,buffer.parent[buffer.offset+offset+1]=255&value>>>16,buffer.parent[buffer.offset+offset+2]=255&value>>>8,buffer.parent[buffer.offset+offset+3]=255&value):(buffer.parent[buffer.offset+offset+3]=255&value>>>24,buffer.parent[buffer.offset+offset+2]=255&value>>>16,buffer.parent[buffer.offset+offset+1]=255&value>>>8,buffer.parent[buffer.offset+offset]=255&value)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";\nswitch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;case\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");if(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.parent[buffer.offset+offset]=value},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:2,\"./buffer_ieee754\":7,\"base64-js\":9}],9:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}]},{},[]),module.exports=require(\"buffer-browserify\")},{}],67:[function(require,module){(function(Buffer){function clone(parent,circular){function _clone(parent,context,child,cIndex){var i;if(\"object\"==typeof parent){if(null==parent)return parent;for(i in circularParent)if(circularParent[i]===parent)return circularReplace.push({resolveTo:i,child:child,i:cIndex}),null;if(circularParent[context]=parent,util.isArray(parent)){child=[];for(i in parent)child[i]=_clone(parent[i],context+\"[\"+i+\"]\",child,i)}else if(util.isDate(parent))child=new Date(parent.getTime());else if(util.isRegExp(parent))child=RegExp(parent.source);else if(useBuffer&&Buffer.isBuffer(parent))child=new Buffer(parent.length),parent.copy(child);else{child={},child.__proto__=parent.__proto__;for(i in parent)child[i]=_clone(parent[i],context+\"[\"+i+\"]\",child,i)}circularResolved[context]=child}else child=parent;return child}circular===void 0&&(circular=!0);var i,useBuffer=Buffer!==void 0;if(circular){var circularParent={},circularResolved={},circularReplace=[],cloned=_clone(parent,\"*\");for(i in circularReplace){var c=circularReplace[i];c&&c.child&&c.i in c.child&&(c.child[c.i]=circularResolved[c.resolveTo])}return cloned}var child;if(\"object\"==typeof parent){if(null==parent)return parent;if(\"Array\"===parent.constructor.name){child=[];for(i in parent)child[i]=clone(parent[i],circular)}else if(util.isDate(parent))child=new Date(parent.getTime());else if(util.isRegExp(parent))child=RegExp(parent.source);else{child={},child.__proto__=parent.__proto__;for(i in parent)child[i]=clone(parent[i],circular)}}else child=parent;return child}var util=require(\"util\");module.exports=clone,clone.clonePrototype=require(\"./clonePrototype.js\")})(require(\"__browserify_buffer\").Buffer)},{util:6,\"./clonePrototype.js\":78,__browserify_buffer:77}],71:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}function toHex(n){return 16>n?\"0\"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)if(127>=str.charCodeAt(i))byteArray.push(str.charCodeAt(i));else for(var h=encodeURIComponent(str.charAt(i)).substr(1).split(\"%\"),j=0;h.length>j;j++)byteArray.push(parseInt(h[j],16));return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;str.length>i;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function base64ToBytes(str){return require(\"base64-js\").toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);)dst[i+offset]=src[i],i++;return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function coerce(length){return length=~~Math.ceil(+length),0>length?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer))return new Buffer(subject,encoding,offset);var type;if(\"number\"==typeof offset)this.length=coerce(encoding),this.parent=subject,this.offset=offset;else{switch(type=typeof subject){case\"number\":this.length=coerce(subject);break;case\"string\":this.length=Buffer.byteLength(subject,encoding);break;case\"object\":this.length=coerce(subject.length);break;default:throw Error(\"First argument needs to be a number, array or string.\")}if(this.length>Buffer.poolSize?(this.parent=new SlowBuffer(this.length),this.offset=0):((!pool||pool.length-pool.used\u003Cthis.length)&&allocPool(),this.parent=pool,this.offset=pool.used,pool.used+=this.length),isArrayIsh(subject))for(var i=0;this.length>i;i++)this.parent[i+this.offset]=subject instanceof Buffer?subject.readUInt8(i):subject[i];else\"string\"==type&&(this.length=this.write(subject,0,encoding))}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&\"object\"==typeof subject&&\"number\"==typeof subject.length}function allocPool(){pool=new SlowBuffer(Buffer.poolSize),pool.used=0}function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(val=buffer.parent[buffer.offset+offset]\u003C\u003C8,buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1])):(val=buffer.parent[buffer.offset+offset],buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8)),val)}function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),offset>=buffer.length?0:(isBigEndian?(buffer.length>offset+1&&(val=buffer.parent[buffer.offset+offset+1]\u003C\u003C16),buffer.length>offset+2&&(val|=buffer.parent[buffer.offset+offset+2]\u003C\u003C8),buffer.length>offset+3&&(val|=buffer.parent[buffer.offset+offset+3]),val+=buffer.parent[buffer.offset+offset]\u003C\u003C24>>>0):(buffer.length>offset+2&&(val=buffer.parent[buffer.offset+offset+2]\u003C\u003C16),buffer.length>offset+1&&(val|=buffer.parent[buffer.offset+offset+1]\u003C\u003C8),val|=buffer.parent[buffer.offset+offset],buffer.length>offset+3&&(val+=buffer.parent[buffer.offset+offset+3]\u003C\u003C24>>>0)),val)}function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to read beyond buffer length\")),val=readUInt16(buffer,offset,isBigEndian,noAssert),neg=32768&val,neg?-1*(65535-val+1):val}function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),val=readUInt32(buffer,offset,isBigEndian,noAssert),neg=2147483648&val,neg?-1*(4294967295-val+1):val}function readFloat(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+3,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,23,4)}function readDouble(buffer,offset,isBigEndian,noAssert){return noAssert||(assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(buffer.length>offset+7,\"Trying to read beyond buffer length\")),require(\"./buffer_ieee754\").readIEEE754(buffer,offset,isBigEndian,52,8)}function verifuint(value,max){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(value>=0,\"specified a negative value for writing an unsigned value\"),assert.ok(max>=value,\"value is larger than maximum value for type\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function writeUInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"trying to write beyond buffer length\"),verifuint(value,65535));for(var i=0;Math.min(buffer.length-offset,2)>i;i++)buffer.parent[buffer.offset+offset+i]=(value&255\u003C\u003C8*(isBigEndian?1-i:i))>>>8*(isBigEndian?1-i:i)}function writeUInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"trying to write beyond buffer length\"),verifuint(value,4294967295));for(var i=0;Math.min(buffer.length-offset,4)>i;i++)buffer.parent[buffer.offset+offset+i]=255&value>>>8*(isBigEndian?3-i:i)}function verifsint(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\"),assert.ok(Math.floor(value)===value,\"value has a fractional component\")}function verifIEEE754(value,max,min){assert.ok(\"number\"==typeof value,\"cannot write a non-number as a number\"),assert.ok(max>=value,\"value larger than maximum allowed value\"),assert.ok(value>=min,\"value smaller than minimum allowed value\")}function writeInt16(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+1,\"Trying to write beyond buffer length\"),verifsint(value,32767,-32768)),value>=0?writeUInt16(buffer,value,offset,isBigEndian,noAssert):writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}function writeInt32(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifsint(value,2147483647,-2147483648)),value>=0?writeUInt32(buffer,value,offset,isBigEndian,noAssert):writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}function writeFloat(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+3,\"Trying to write beyond buffer length\"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}function writeDouble(buffer,value,offset,isBigEndian,noAssert){noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(\"boolean\"==typeof isBigEndian,\"missing or invalid endian\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset+7,\"Trying to write beyond buffer length\"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)),require(\"./buffer_ieee754\").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}var assert=require(\"assert\");exports.INSPECT_MAX_BYTES=50,SlowBuffer.byteLength=function(str,encoding){switch(encoding||\"utf8\"){case\"hex\":return str.length/2;case\"utf8\":case\"utf-8\":return utf8ToBytes(str).length;case\"ascii\":case\"binary\":return str.length;case\"base64\":return base64ToBytes(str).length;default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.utf8Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)},SlowBuffer.prototype.asciiWrite=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)},SlowBuffer.prototype.binaryWrite=SlowBuffer.prototype.asciiWrite,SlowBuffer.prototype.base64Write=function(string,offset,length){return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)},SlowBuffer.prototype.base64Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);return require(\"base64-js\").fromByteArray(bytes)},SlowBuffer.prototype.utf8Slice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),res=\"\",tmp=\"\",i=0;bytes.length>i;)127>=bytes[i]?(res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]),tmp=\"\"):tmp+=\"%\"+bytes[i].toString(16),i++;return res+decodeUtf8Char(tmp)},SlowBuffer.prototype.asciiSlice=function(){for(var bytes=Array.prototype.slice.apply(this,arguments),ret=\"\",i=0;bytes.length>i;i++)ret+=String.fromCharCode(bytes[i]);return ret},SlowBuffer.prototype.binarySlice=SlowBuffer.prototype.asciiSlice,SlowBuffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CSlowBuffer \"+out.join(\" \")+\">\"},SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out=\"\",i=start;end>i;i++)out+=toHex(this[i]);return out},SlowBuffer.prototype.toString=function(encoding,start,end){if(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start=+start||0,end===void 0&&(end=this.length),+end==start)return\"\";switch(encoding){case\"hex\":return this.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.utf8Slice(start,end);case\"ascii\":return this.asciiSlice(start,end);case\"binary\":return this.binarySlice(start,end);case\"base64\":return this.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2)throw Error(\"Invalid hex string\");length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);if(isNaN(byte))throw Error(\"Invalid hex string\");this[offset+i]=byte}return SlowBuffer._charsWritten=2*i,i},SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;switch(length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase()){case\"hex\":return this.hexWrite(string,offset,length);case\"utf8\":case\"utf-8\":return this.utf8Write(string,offset,length);case\"ascii\":return this.asciiWrite(string,offset,length);case\"binary\":return this.binaryWrite(string,offset,length);case\"base64\":return this.base64Write(string,offset,length);case\"ucs2\":case\"ucs-2\":return this.ucs2Write(string,offset,length);default:throw Error(\"Unknown encoding\")}},SlowBuffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this,end-start,+start)},SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){for(var temp=[],i=sourcestart;sourceend>i;i++)assert.ok(this[i]!==void 0,\"copying undefined buffer bytes!\"),temp.push(this[i]);for(var i=targetstart;targetstart+temp.length>i;i++)target[i]=temp[i-targetstart]},SlowBuffer.prototype.fill=function(value,start,end){if(end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");for(var i=start;end>i;i++)this[i]=value},exports.SlowBuffer=SlowBuffer,exports.Buffer=Buffer,Buffer.poolSize=8192;var pool;Buffer.isBuffer=function(b){return b instanceof Buffer||b instanceof SlowBuffer},Buffer.concat=function(list,totalLength){if(!Array.isArray(list))throw Error(\"Usage: Buffer.concat(list, [totalLength])\\n list should be an Array.\");if(0===list.length)return new Buffer(0);if(1===list.length)return list[0];if(\"number\"!=typeof totalLength){totalLength=0;for(var i=0;list.length>i;i++){var buf=list[i];totalLength+=buf.length}}for(var buffer=new Buffer(totalLength),pos=0,i=0;list.length>i;i++){var buf=list[i];buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this.parent[i+this.offset]),i==exports.INSPECT_MAX_BYTES){out[i+1]=\"...\";break}return\"\u003CBuffer \"+out.join(\" \")+\">\"},Buffer.prototype.get=function(i){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]},Buffer.prototype.set=function(i,v){if(0>i||i>=this.length)throw Error(\"oob\");return this.parent[this.offset+i]=v},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=+offset||0;var remaining=this.length-offset;length?(length=+length,length>remaining&&(length=remaining)):length=remaining,encoding=((encoding||\"utf8\")+\"\").toLowerCase();var ret;switch(encoding){case\"hex\":ret=this.parent.hexWrite(string,this.offset+offset,length);break;case\"utf8\":case\"utf-8\":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case\"ascii\":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case\"binary\":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case\"base64\":ret=this.parent.base64Write(string,this.offset+offset,length);break;case\"ucs2\":case\"ucs-2\":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw Error(\"Unknown encoding\")}return Buffer._charsWritten=SlowBuffer._charsWritten,ret},Buffer.prototype.toString=function(encoding,start,end){switch(encoding=((encoding||\"utf8\")+\"\").toLowerCase(),start===void 0||0>start?start=0:start>this.length&&(start=this.length),end===void 0||end>this.length?end=this.length:0>end&&(end=0),start+=this.offset,end+=this.offset,encoding){case\"hex\":return this.parent.hexSlice(start,end);case\"utf8\":case\"utf-8\":return this.parent.utf8Slice(start,end);case\"ascii\":return this.parent.asciiSlice(start,end);case\"binary\":return this.parent.binarySlice(start,end);case\"base64\":return this.parent.base64Slice(start,end);case\"ucs2\":case\"ucs-2\":return this.parent.ucs2Slice(start,end);default:throw Error(\"Unknown encoding\")}},Buffer.byteLength=SlowBuffer.byteLength,Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),\"string\"==typeof value&&(value=value.charCodeAt(0)),\"number\"!=typeof value||isNaN(value))throw Error(\"value is not a number\");if(start>end)throw Error(\"end \u003C start\");if(end===start)return 0;if(0==this.length)return 0;if(0>start||start>=this.length)throw Error(\"start out of bounds\");\nif(0>end||end>this.length)throw Error(\"end out of bounds\");return this.parent.fill(value,start+this.offset,end+this.offset)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||(end=this.length),target_start||(target_start=0),start>end)throw Error(\"sourceEnd \u003C sourceStart\");if(end===start)return 0;if(0==target.length||0==source.length)return 0;if(0>target_start||target_start>=target.length)throw Error(\"targetStart out of bounds\");if(0>start||start>=source.length)throw Error(\"sourceStart out of bounds\");if(0>end||end>source.length)throw Error(\"sourceEnd out of bounds\");return end>this.length&&(end=this.length),end-start>target.length-target_start&&(end=target.length-target_start+start),this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)},Buffer.prototype.slice=function(start,end){if(void 0===end&&(end=this.length),end>this.length)throw Error(\"oob\");if(start>end)throw Error(\"oob\");return new Buffer(this.parent,end-start,+start+this.offset)},Buffer.prototype.utf8Slice=function(start,end){return this.toString(\"utf8\",start,end)},Buffer.prototype.binarySlice=function(start,end){return this.toString(\"binary\",start,end)},Buffer.prototype.asciiSlice=function(start,end){return this.toString(\"ascii\",start,end)},Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,\"utf8\")},Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,\"binary\")},Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,\"ascii\")},Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:buffer.parent[buffer.offset+offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){var neg,buffer=this;return noAssert||(assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to read beyond buffer length\")),offset>=buffer.length?void 0:(neg=128&buffer.parent[buffer.offset+offset],neg?-1*(255-buffer.parent[buffer.offset+offset]+1):buffer.parent[buffer.offset+offset])},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"trying to write beyond buffer length\"),verifuint(value,255)),buffer.length>offset&&(buffer.parent[buffer.offset+offset]=value)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;noAssert||(assert.ok(void 0!==value&&null!==value,\"missing value\"),assert.ok(void 0!==offset&&null!==offset,\"missing offset\"),assert.ok(buffer.length>offset,\"Trying to write beyond buffer length\"),verifsint(value,127,-128)),value>=0?buffer.writeUInt8(value,offset,noAssert):buffer.writeUInt8(255+value+1,offset,noAssert)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,!0,noAssert)},SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8,SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE,SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE,SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE,SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE,SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8,SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE,SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE,SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE,SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE,SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE,SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE,SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE,SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE,SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8,SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE,SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE,SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE,SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE,SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8,SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE,SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE,SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE,SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE,SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE,SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE,SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE,SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:73,\"./buffer_ieee754\":75,\"base64-js\":79}],72:[function(require,module){\"use strict\";function newlinesIn(src){if(!src)return 0;var newlines=src.match(/\\n/g);return newlines?newlines.length:0}var difflet=require(\"difflet\"),prettydiff=difflet({comment:!0,indent:2}),compactdiff=difflet({comment:!0});module.exports=function(before,after,opts){opts=opts||{};var joinLinesAt=opts.joinLinesAt||20,maxLineLength=opts.maxLineLength||380,result=prettydiff.compare(before,after);return newlinesIn(result)>=joinLinesAt&&(result=compactdiff.compare(before,after)),result.split(\"\\n\").map(function(line){return line.length>=maxLineLength?line.slice(0,maxLineLength)+\"....\":line}).join(\"\\n\").replace(/\\/\\/ != undefined/g,\"\")}},{difflet:80}],78:[function(require,module){function clonePrototype(parent){if(null===parent)return null;var ctor=function(){};return ctor.prototype=parent,new ctor}module.exports=clonePrototype},{}],79:[function(require,module){(function(){\"use strict\";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw\"Invalid string. Length must be a multiple of 4\";for(placeHolders=b64.indexOf(\"=\"),placeHolders=placeHolders>0?b64.length-placeHolders:0,arr=[],l=placeHolders>0?b64.length-4:b64.length,i=0,j=0;l>i;i+=4,j+=3)tmp=lookup.indexOf(b64[i])\u003C\u003C18|lookup.indexOf(b64[i+1])\u003C\u003C12|lookup.indexOf(b64[i+2])\u003C\u003C6|lookup.indexOf(b64[i+3]),arr.push((16711680&tmp)>>16),arr.push((65280&tmp)>>8),arr.push(255&tmp);return 2===placeHolders?(tmp=lookup.indexOf(b64[i])\u003C\u003C2|lookup.indexOf(b64[i+1])>>4,arr.push(255&tmp)):1===placeHolders&&(tmp=lookup.indexOf(b64[i])\u003C\u003C10|lookup.indexOf(b64[i+1])\u003C\u003C4|lookup.indexOf(b64[i+2])>>2,arr.push(255&tmp>>8),arr.push(255&tmp)),arr}function uint8ToBase64(uint8){function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}var i,temp,length,extraBytes=uint8.length%3,output=\"\";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]\u003C\u003C16)+(uint8[i+1]\u003C\u003C8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=lookup[temp>>2],output+=lookup[63&temp\u003C\u003C4],output+=\"==\";break;case 2:temp=(uint8[uint8.length-2]\u003C\u003C8)+uint8[uint8.length-1],output+=lookup[temp>>10],output+=lookup[63&temp>>4],output+=lookup[63&temp\u003C\u003C2],output+=\"=\"}return output}var lookup=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";module.exports.toByteArray=b64ToByteArray,module.exports.fromByteArray=uint8ToBase64})()},{}],62:[function(require,module){function trimEmptyLines(lines){for(var line=lines.pop();!line||!line.length;)line=lines.pop();line&&lines.push(line)}function addLinenos(highlightedCode,firstline){function getDigits(n){return 10>n?1:100>n?2:1e3>n?3:1e4>n?4:5}function pad(n,totalDigits){var padDigits=totalDigits-getDigits(n);switch(padDigits){case 0:return\"\"+n;case 1:return\" \"+n;case 2:return\" \"+n;case 3:return\" \"+n;case 4:return\" \"+n;case 5:return\" \"+n}}var highlightedLines=highlightedCode.split(\"\\n\");trimEmptyLines(highlightedLines);var totalDigits,lineno,linesLen=highlightedLines.length,lines=[];totalDigits=getDigits(linesLen+firstline-1);for(var i=0;linesLen>i;i++)lineno=[colorSurround[0],pad(i+firstline,totalDigits),\": \",colorSurround[1]].join(\"\"),lines.push(lineno+highlightedLines[i]);return lines.join(\"\\n\")}var redeyed=require(\"redeyed\"),theme=require(\"../themes/default\"),colors=require(\"../colors\"),colorSurround=colors.brightBlack.split(\":\");module.exports=function(code,opts){opts=opts||{};try{var result=redeyed(code,opts.theme||theme),firstline=opts.firstline&&!isNaN(opts.firstline)?opts.firstline:1;return opts.linenos?addLinenos(result.code,firstline):result.code}catch(e){throw e.message=\"Unable to perform highlight. The code contained syntax errors: \"+e.message,e}}},{\"../themes/default\":81,\"../colors\":76,redeyed:82}],81:[function(require,module){var colors=require(\"../colors\");module.exports={Boolean:{\"true\":void 0,\"false\":void 0,_default:colors.brightRed},Identifier:{undefined:colors.brightBlack,self:colors.brightRed,console:colors.blue,log:colors.blue,warn:colors.red,error:colors.brightRed,_default:colors.white},Null:{_default:colors.brightBlack},Numeric:{_default:colors.blue},String:{_default:colors.brightGreen},Keyword:{\"break\":void 0,\"case\":void 0,\"catch\":colors.cyan,\"continue\":void 0,\"debugger\":void 0,\"default\":void 0,\"delete\":colors.red,\"do\":void 0,\"else\":void 0,\"finally\":colors.cyan,\"for\":void 0,\"function\":void 0,\"if\":void 0,\"in\":void 0,\"instanceof\":void 0,\"new\":colors.red,\"return\":colors.red,\"switch\":void 0,\"this\":colors.brightRed,\"throw\":void 0,\"try\":colors.cyan,\"typeof\":void 0,\"var\":colors.green,\"void\":void 0,\"while\":void 0,\"with\":void 0,_default:colors.brightBlue},Punctuator:{\";\":colors.brightBlack,\".\":colors.green,\",\":colors.green,\"{\":colors.yellow,\"}\":colors.yellow,\"(\":colors.brightBlack,\")\":colors.brightBlack,\"[\":colors.yellow,\"]\":colors.yellow,\"\u003C\":void 0,\">\":void 0,\"+\":void 0,\"-\":void 0,\"*\":void 0,\"%\":void 0,\"&\":void 0,\"|\":void 0,\"^\":void 0,\"!\":void 0,\"~\":void 0,\"?\":void 0,\":\":void 0,\"=\":void 0,\"\u003C=\":void 0,\">=\":void 0,\"==\":void 0,\"!=\":void 0,\"++\":void 0,\"--\":void 0,\"\u003C\u003C\":void 0,\">>\":void 0,\"&&\":void 0,\"||\":void 0,\"+=\":void 0,\"-=\":void 0,\"*=\":void 0,\"%=\":void 0,\"&=\":void 0,\"|=\":void 0,\"^=\":void 0,\"/=\":void 0,\"===\":void 0,\"!==\":void 0,\">>>\":void 0,\"\u003C\u003C=\":void 0,\">>=\":void 0,\">>>=\":void 0,_default:colors.brightYellow},Line:{_default:colors.brightBlack},Block:{_default:colors.brightBlack},_default:void 0}},{\"../colors\":76}],83:[function(require,module){function Traverse(obj){this.value=obj}function walk(root,cb,immutable){var path=[],parents=[],alive=!0;return function walker(node_){function updateState(){if(\"object\"==typeof state.node&&null!==state.node){state.keys&&state.node_===state.node||(state.keys=objectKeys(state.node)),state.isLeaf=0==state.keys.length;for(var i=0;parents.length>i;i++)if(parents[i].node_===node_){state.circular=parents[i];break}}else state.isLeaf=!0,state.keys=null;state.notLeaf=!state.isLeaf,state.notRoot=!state.isRoot}var node=immutable?copy(node_):node_,modifiers={},keepGoing=!0,state={node:node,node_:node_,path:[].concat(path),parent:parents[parents.length-1],parents:parents,key:path.slice(-1)[0],isRoot:0===path.length,level:path.length,circular:null,update:function(x,stopHere){state.isRoot||(state.parent.node[state.key]=x),state.node=x,stopHere&&(keepGoing=!1)},\"delete\":function(stopHere){delete state.parent.node[state.key],stopHere&&(keepGoing=!1)},remove:function(stopHere){isArray(state.parent.node)?state.parent.node.splice(state.key,1):delete state.parent.node[state.key],stopHere&&(keepGoing=!1)},keys:null,before:function(f){modifiers.before=f},after:function(f){modifiers.after=f},pre:function(f){modifiers.pre=f},post:function(f){modifiers.post=f},stop:function(){alive=!1},block:function(){keepGoing=!1}};if(!alive)return state;updateState();var ret=cb.call(state,state.node);return void 0!==ret&&state.update&&state.update(ret),modifiers.before&&modifiers.before.call(state,state.node),keepGoing?(\"object\"!=typeof state.node||null===state.node||state.circular||(parents.push(state),updateState(),forEach(state.keys,function(key,i){path.push(key),modifiers.pre&&modifiers.pre.call(state,state.node[key],key);var child=walker(state.node[key]);immutable&&Object.hasOwnProperty.call(state.node,key)&&(state.node[key]=child.node),child.isLast=i==state.keys.length-1,child.isFirst=0==i,modifiers.post&&modifiers.post.call(state,child),path.pop()}),parents.pop()),modifiers.after&&modifiers.after.call(state,state.node),state):state}(root).node}function copy(src){if(\"object\"==typeof src&&null!==src){var dst;if(isArray(src))dst=[];else if(isDate(src))dst=new Date(src);else if(isRegExp(src))dst=RegExp(src);else if(isError(src))dst={message:src.message};else if(isBoolean(src))dst=new Boolean(src);else if(isNumber(src))dst=new Number(src);else if(isString(src))dst=new String(src);else if(Object.create&&Object.getPrototypeOf)dst=Object.create(Object.getPrototypeOf(src));else if(src.constructor===Object)dst={};else{var proto=src.constructor&&src.constructor.prototype||src.__proto__||{},T=function(){};T.prototype=proto,dst=new T}return forEach(objectKeys(src),function(key){dst[key]=src[key]}),dst}return src}function toS(obj){return Object.prototype.toString.call(obj)}function isDate(obj){return\"[object Date]\"===toS(obj)}function isRegExp(obj){return\"[object RegExp]\"===toS(obj)}function isError(obj){return\"[object Error]\"===toS(obj)}function isBoolean(obj){return\"[object Boolean]\"===toS(obj)}function isNumber(obj){return\"[object Number]\"===toS(obj)}function isString(obj){return\"[object String]\"===toS(obj)}var traverse=module.exports=function(obj){return new Traverse(obj)};Traverse.prototype.get=function(ps){for(var node=this.value,i=0;ps.length>i;i++){var key=ps[i];if(!Object.hasOwnProperty.call(node,key)){node=void 0;break}node=node[key]}return node},Traverse.prototype.has=function(ps){for(var node=this.value,i=0;ps.length>i;i++){var key=ps[i];if(!Object.hasOwnProperty.call(node,key))return!1;node=node[key]}return!0},Traverse.prototype.set=function(ps,value){for(var node=this.value,i=0;ps.length-1>i;i++){var key=ps[i];Object.hasOwnProperty.call(node,key)||(node[key]={}),node=node[key]}return node[ps[i]]=value,value},Traverse.prototype.map=function(cb){return walk(this.value,cb,!0)},Traverse.prototype.forEach=function(cb){return this.value=walk(this.value,cb,!1),this.value},Traverse.prototype.reduce=function(cb,init){var skip=1===arguments.length,acc=skip?this.value:init;return this.forEach(function(x){this.isRoot&&skip||(acc=cb.call(this,acc,x))}),acc},Traverse.prototype.paths=function(){var acc=[];return this.forEach(function(){acc.push(this.path)}),acc},Traverse.prototype.nodes=function(){var acc=[];return this.forEach(function(){acc.push(this.node)}),acc},Traverse.prototype.clone=function(){var parents=[],nodes=[];return function clone(src){for(var i=0;parents.length>i;i++)if(parents[i]===src)return nodes[i];if(\"object\"==typeof src&&null!==src){var dst=copy(src);return parents.push(src),nodes.push(dst),forEach(objectKeys(src),function(key){dst[key]=clone(src[key])}),parents.pop(),nodes.pop(),dst}return src}(this.value)};var objectKeys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res},isArray=Array.isArray||function isArray(xs){return\"[object Array]\"===Object.prototype.toString.call(xs)},forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);for(var i=0;xs.length>i;i++)fn(xs[i],i,xs)};forEach(objectKeys(Traverse.prototype),function(key){traverse[key]=function(obj){var args=[].slice.call(arguments,1),t=new Traverse(obj);return t[key].apply(t,args)}})},{}],80:[function(require,module){(function(process){function difflet(opts,prev,next){function set(type){0===levels&&opts.start(type,stream),levels++}function unset(type){0===--levels&&opts.stop(type,stream)}function stringifier(insertable,node,opts){var indent=opts.indent;if(insertable)var prevNode=traverse.get(prev,this.path||[]);var indentx,inserted=insertable&&void 0===prevNode;try{indentx=indent?Array(((this.path||[]).length+1)*indent+1).join(\" \"):\"\"}catch(e){indentx=\"\"}if(commaFirst&&(indentx=indentx.slice(indent)),Array.isArray(node)){var updated=(prevNode||traverse.has(prev,this.path))&&!Array.isArray(prevNode);updated&&set(\"updated\"),opts.comment&&!Array.isArray(prevNode)&&(indent=0),this.before(function(){inserted&&set(\"inserted\"),indent&&commaFirst?0===(this.path||[]).length||Array.isArray(this.parent.node)?write(\"[ \"):write(\"\\n\"+indentx+\"[ \"):indent?write(\"[\\n\"+indentx):write(\"[\")}),this.post(function(child){child.isLast||indent&&commaFirst||write(\",\");var prev=prevNode&&prevNode[child.key];indent&&opts.comment&&child.node!==prev&&(\"object\"!=typeof child.node||\"object\"!=typeof prev)&&(set(\"comment\"),write(\" // != \"),traverse(prev).forEach(function(x){plainStringify.call(this,x,{indent:0})}),unset(\"comment\")),child.isLast||(indent&&commaFirst?write(\"\\n\"+indentx+\", \"):indent&&write(\"\\n\"+indentx))}),this.after(function(){indent&&commaFirst?write(\"\\n\"+indentx):indent&&write(\"\\n\"+indentx.slice(indent)),write(\"]\"),updated&&unset(\"updated\"),inserted&&unset(\"inserted\")})}else if(isRegExp(node))this.block(),inserted?(set(\"inserted\"),write(\"\"+node),unset(\"inserted\")):insertable&&prevNode!==node?(set(\"updated\"),write(\"\"+node),unset(\"updated\")):write(\"\"+node);else if(\"object\"==typeof node&&node&&\"function\"==typeof node.inspect)this.block(),inserted?(set(\"inserted\"),write(node.inspect()),unset(\"inserted\")):prevNode&&\"function\"==typeof prevNode.inspect&&prevNode.inspect()===node.inspect()?write(node.inspect()):(set(\"updated\"),write(node.inspect()),unset(\"updated\"));else if(\"object\"==typeof node&&null!==node){var insertedKey=!1,deleted=insertable&&\"object\"==typeof prevNode&&prevNode?Object.keys(prevNode).filter(function(key){return!Object.hasOwnProperty.call(node,key)}):[];this.before(function(){inserted&&set(\"inserted\"),write(indent&&commaFirst&&!this.isRoot?\"\\n\"+indentx+\"{ \":\"{\")}),this.pre(function(x,key){if(insertable){var obj=traverse.get(prev,this.path.concat(key));void 0===obj&&(insertedKey=!0,set(\"inserted\"))}indent&&!commaFirst&&write(\"\\n\"+indentx),plainStringify(key),write(indent?\" : \":\":\")}),this.post(function(child){child.isLast||indent&&commaFirst||write(\",\"),child.isLast&&deleted.length?(insertedKey&&unset(\"inserted\"),insertedKey=!1):insertedKey&&(unset(\"inserted\"),insertedKey=!1);var prev=prevNode&&prevNode[child.key];indent&&opts.comment&&child.node!==prev&&(\"object\"!=typeof child.node||\"object\"!=typeof prev)&&(set(\"comment\"),write(\" // != \"),traverse(prev).forEach(function(x){plainStringify.call(this,x,{indent:0})}),unset(\"comment\")),child.isLast&&deleted.length?(insertedKey&&unset(\"inserted\"),insertedKey=!1,indent&&commaFirst?write(\"\\n\"+indentx+\", \"):opts.comment&&indent?write(\"\\n\"+indentx):indent?write(\",\\n\"+indentx):write(\",\")):child.isLast||indent&&commaFirst&&write(\"\\n\"+indentx+\", \")}),this.after(function(){inserted&&unset(\"inserted\"),deleted.length&&(indent&&!commaFirst&&0===Object.keys(node).length&&write(\"\\n\"+indentx),set(\"deleted\"),deleted.forEach(function(key,ix){indent&&opts.comment&&(unset(\"deleted\"),set(\"comment\"),write(\"// \"),unset(\"comment\"),set(\"deleted\")),plainStringify(key),write(indent?\" : \":\":\"),traverse(prevNode[key]).forEach(function(x){plainStringify.call(this,x,{indent:0})});var last=ix===deleted.length-1;insertable&&!last&&(indent&&commaFirst?write(\"\\n\"+indentx+\", \"):indent?write(\",\\n\"+indentx):write(\",\"))}),unset(\"deleted\")),commaFirst&&indent?write(indentx.slice(indent)+\" }\"):indent?write(\"\\n\"+indentx.slice(indent)+\"}\"):write(\"}\")})}else{var changed=!1;inserted?set(\"inserted\"):insertable&&!deepEqual(prevNode,node)&&(changed=!0,set(\"updated\")),\"string\"==typeof node?write('\"'+(\"\"+node).replace(/\"/g,'\\\\\"')+'\"'):isRegExp(node)?write(\"\"+node):\"function\"==typeof node?write(node.name?\"[Function: \"+node.name+\"]\":\"[Function]\"):void 0===node?write(\"undefined\"):null===node?write(\"null\"):write(\"\"+node),inserted?unset(\"inserted\"):changed&&unset(\"updated\")}}var stream=opts.stream||new Stream;if(opts.stream||(stream.readable=!0,stream.writable=!0,stream.write=function(buf){this.emit(\"data\",buf)},stream.end=function(){this.emit(\"end\")}),opts||(opts={}),void 0===opts.start&&void 0===opts.stop){var c=charm(stream);opts.start=function(type){c.foreground({inserted:\"green\",updated:\"blue\",deleted:\"red\",comment:\"cyan\"}[type]),c.display(\"bright\")},opts.stop=function(){c.display(\"reset\")}}var write=function(buf){opts.write?opts.write(buf,stream):stream.write(buf)},commaFirst=\"first\"===opts.comma,stringify=function(node,params){return stringifier.call(this,!0,node,params||opts)},plainStringify=function(node,params){return stringifier.call(this,!1,node,params||opts)},levels=0;return opts.stream?traverse(next).forEach(stringify):process.nextTick(function(){traverse(next).forEach(stringify),stream.emit(\"end\")}),stream}function isRegExp(node){return node instanceof RegExp||node&&\"function\"==typeof node.test&&\"function\"==typeof node.exec&&\"function\"==typeof node.compile&&node.constructor&&\"RegExp\"===node.constructor.name}var traverse=require(\"traverse\"),Stream=require(\"stream\").Stream,charm=require(\"charm\"),deepEqual=require(\"deep-is\"),exports=module.exports=function(opts_){var fn=difflet.bind(null,opts_);return fn.compare=function(prev,next){var opts=Object.keys(opts_||{}).reduce(function(acc,key){return acc[key]=opts_[key],acc},{}),s=opts.stream=new Stream,data=\"\";return s.write=function(buf){data+=buf},s.end=function(){},s.readable=!0,s.writable=!0,difflet(opts,prev,next),data},fn};exports.compare=function(prev,next){return exports({}).compare(prev,next)}})(require(\"__browserify_process\"))},{stream:58,traverse:83,charm:84,\"deep-is\":69,__browserify_process:16}],85:[function(require,module,exports){exports.isatty=function(){},exports.setRawMode=function(){}},{}],84:[function(require,module){(function(process){var tty=require(\"tty\"),encode=require(\"./lib/encode\"),EventEmitter=require(\"events\").EventEmitter,exports=module.exports=function(){function setInput(s){if(input)throw Error(\"multiple inputs specified\");input=s}function setOutput(s){if(output)throw Error(\"multiple outputs specified\");output=s}for(var input=null,output=null,i=0;arguments.length>i;i++){var arg=arguments[i];arg&&(arg.readable?setInput(arg):(arg.stdin||arg.input)&&setInput(arg.stdin||arg.input),arg.writable?setOutput(arg):(arg.stdout||arg.output)&&setOutput(arg.stdout||arg.output))}return new Charm(input,output)},Charm=exports.Charm=function(input,output){var self=this;self.input=input,self.output=output,self.pending=[],output||self.emit(\"error\",Error(\"output stream required\")),input&&\"number\"==typeof input.fd&&tty.isatty(input.fd)&&(process.stdin.setRawMode?process.stdin.setRawMode(!0):tty.setRawMode(!0),input.resume()),input&&input.on(\"data\",function(buf){if(self.pending.length){for(var codes=extractCodes(buf),matched=!1,i=0;codes.length>i;i++)for(var j=0;self.pending.length>j;j++){var cb=self.pending[j];if(cb(codes[i])){matched=!0,self.pending.splice(j,1);break}}if(matched)return}self.emit(\"data\",buf),1===buf.length&&(3===buf[0]&&self.emit(\"^C\"),4===buf[0]&&self.emit(\"^D\"))})};Charm.prototype=new EventEmitter,Charm.prototype.destroy=function(){this.input&&this.input.destroy()},Charm.prototype.write=function(msg){return this.output.write(msg),this},Charm.prototype.reset=function(){return this.write(encode(\"c\")),this},Charm.prototype.position=function(x,y){if(\"function\"==typeof x){var cb=x;this.pending.push(function(buf){if(27===buf[0]&&buf[1]===encode.ord(\"[\")&&buf[buf.length-1]===encode.ord(\"R\")){var pos=(\"\"+buf).slice(2,-1).split(\";\").map(Number);return cb(pos[1],pos[0]),!0}}),this.write(encode(\"[6n\"))}else this.write(encode(\"[\"+Math.floor(y)+\";\"+Math.floor(x)+\"f\"));return this},Charm.prototype.move=function(x,y){return 0>y?this.up(-y):y>0&&this.down(y),x>0?this.right(x):0>x&&this.left(-x),this},Charm.prototype.up=function(y){return void 0===y&&(y=1),this.write(encode(\"[\"+Math.floor(y)+\"A\")),this},Charm.prototype.down=function(y){return void 0===y&&(y=1),this.write(encode(\"[\"+Math.floor(y)+\"B\")),this},Charm.prototype.right=function(x){return void 0===x&&(x=1),this.write(encode(\"[\"+Math.floor(x)+\"C\")),this},Charm.prototype.left=function(x){return void 0===x&&(x=1),this.write(encode(\"[\"+Math.floor(x)+\"D\")),this},Charm.prototype.column=function(x){return this.write(encode(\"[\"+Math.floor(x)+\"G\")),this},Charm.prototype.push=function(withAttributes){return this.write(encode(withAttributes?\"7\":\"[s\")),this},Charm.prototype.pop=function(withAttributes){return this.write(encode(withAttributes?\"8\":\"[u\")),this},Charm.prototype.erase=function(s){return\"end\"===s||\"$\"===s?this.write(encode(\"[K\")):\"start\"===s||\"^\"===s?this.write(encode(\"[1K\")):\"line\"===s?this.write(encode(\"[2K\")):\"down\"===s?this.write(encode(\"[J\")):\"up\"===s?this.write(encode(\"[1J\")):\"screen\"===s?this.write(encode(\"[1J\")):this.emit(\"error\",Error(\"Unknown erase type: \"+s)),this},Charm.prototype.display=function(attr){var c={reset:0,bright:1,dim:2,underscore:4,blink:5,reverse:7,hidden:8}[attr];return void 0===c&&this.emit(\"error\",Error(\"Unknown attribute: \"+attr)),this.write(encode(\"[\"+c+\"m\")),this},Charm.prototype.foreground=function(color){if(\"number\"==typeof color)(0>color||color>=256)&&this.emit(\"error\",Error(\"Color out of range: \"+color)),this.write(encode(\"[38;5;\"+color+\"m\"));else{var c={black:30,red:31,green:32,yellow:33,blue:34,magenta:35,cyan:36,white:37}[color.toLowerCase()];c||this.emit(\"error\",Error(\"Unknown color: \"+color)),this.write(encode(\"[\"+c+\"m\"))}return this},Charm.prototype.background=function(color){if(\"number\"==typeof color)(0>color||color>=256)&&this.emit(\"error\",Error(\"Color out of range: \"+color)),this.write(encode(\"[48;5;\"+color+\"m\"));else{var c={black:40,red:41,green:42,yellow:43,blue:44,magenta:45,cyan:46,white:47}[color.toLowerCase()];c||this.emit(\"error\",Error(\"Unknown color: \"+color)),this.write(encode(\"[\"+c+\"m\"))}return this},Charm.prototype.cursor=function(visible){return this.write(encode(visible?\"[?25h\":\"[?25l\")),this};var extractCodes=exports.extractCodes=function(buf){for(var codes=[],start=-1,i=0;buf.length>i;i++)27===buf[i]?(start>=0&&codes.push(buf.slice(start,i)),start=i):start>=0&&i===buf.length-1&&codes.push(buf.slice(start));return codes}})(require(\"__browserify_process\"))},{tty:85,events:15,\"./lib/encode\":86,__browserify_process:16}],82:[function(require,module){(function(){(function(){\"use strict\";function bootstrap(esprima,exportFn){function isFunction(obj){return\"[object Function]\"===toString.call(obj)}function isString(obj){return\"[object String]\"===toString.call(obj)}function isObject(obj){return\"[object Object]\"===toString.call(obj)}function surroundWith(before,after){return function(s){return before+s+after}}function isNonCircular(key){return\"_parent\"!==key}function objectizeString(value){var vals=value.split(\":\");if(0===vals.length||vals.length>2)throw Error(\"illegal string config: \"+value+'\\nShould be of format \"before:after\"');return 1===vals.length||0===vals[1].length?0>vals.indexOf(\":\")?{_before:vals[0]}:{_after:vals[0]}:{_before:vals[0],_after:vals[1]}}function objectize(node){function resolve(value,key){if(!value._parent)return void 0;if(value._parent._default&&value._parent._default[key])return value._parent._default[key];var root=value._parent._parent;return root?root._default?root._default[key]:void 0:void 0}function process(key){var value=node[key];if(value&&!isFunction(value)){if(isString(value)&&(node[key]=value=objectizeString(value)),value._parent=node,isObject(value))return value._before||value._after?(value._before=value._before||resolve(value,\"_before\"),value._after=value._after||resolve(value,\"_after\"),void 0):objectize(value);throw Error(\"nodes need to be either {String}, {Object} or {Function}.\"+value+\" is neither.\")}}node._default&&process(\"_default\"),Object.keys(node).filter(function(key){return isNonCircular(key)&&node.hasOwnProperty(key)&&\"_before\"!==key&&\"_after\"!==key&&\"_default\"!==key}).forEach(process)}function functionize(node){Object.keys(node).filter(function(key){return isNonCircular(key)&&node.hasOwnProperty(key)}).forEach(function(key){var value=node[key];if(!isFunction(value)&&isObject(value)){if(!value._before&&!value._after)return functionize(value);var before=value._before||\"\",after=value._after||\"\";return node[key]=surroundWith(before,after)}})}function normalize(root){objectize(root),functionize(root)}function mergeTokensAndComments(tokens,comments){function addToAllByRangeStart(t){all[t.range[0]]=t}var all={};return tokens.forEach(addToAllByRangeStart),comments.forEach(addToAllByRangeStart),Object.keys(all).map(function(k){return all[k]})}function redeyed(code,config,opts){function tokenIndex(tokens,tkn,start){var current,rangeStart=tkn.range[0];for(current=start;tokens.length>current;current++)if(tokens[current].range[0]===rangeStart)return current;throw Error(\"Token %s not found at or after index: %d\",tkn,start)}function process(surround){var result,currentIndex,nextIndex,splitEnd,skip=0;return result=surround(code.slice(start,end),info),isObject(result)?(splits.push(result.replacement),currentIndex=info.tokenIndex,nextIndex=tokenIndex(info.tokens,result.skipPastToken,currentIndex),skip=nextIndex-currentIndex,splitEnd=skip>0?tokens[nextIndex-1].range[1]:end):(splits.push(result),splitEnd=end),{skip:skip,splitEnd:splitEnd}}function addSplit(start,end,surround){var result,skip=0;if(!(start>=end))return surround?(result=process(surround),skip=result.skip,lastSplitEnd=result.splitEnd):(splits.push(code.slice(start,end)),lastSplitEnd=end),skip}opts=opts||{},code=code.replace(/^\\#\\!.*/,\"\");var transformedCode,all,info,ast=esprima.parse(code,{tokens:!0,comment:!0,range:!0,tolerant:!0}),tokens=ast.tokens,comments=ast.comments,lastSplitEnd=0,splits=[];\nnormalize(config),all=mergeTokensAndComments(tokens,comments);for(var tokenIdx=0;all.length>tokenIdx;tokenIdx++){var surround,start,end,token=all[tokenIdx],surroundForType=config[token.type];surroundForType&&(surround=surroundForType&&surroundForType.hasOwnProperty(token.value)&&surroundForType[token.value]&&isFunction(surroundForType[token.value])?surroundForType[token.value]:surroundForType._default,start=token.range[0],end=token.range[1],addSplit(lastSplitEnd,start),info={tokenIndex:tokenIdx,tokens:all,ast:ast,code:code},tokenIdx+=addSplit(start,end,surround,info))}return code.length>lastSplitEnd&&addSplit(lastSplitEnd,code.length),transformedCode=opts.nojoin?void 0:splits.join(\"\"),{ast:ast,tokens:tokens,comments:comments,splits:splits,code:transformedCode}}return exportFn?exportFn(redeyed):redeyed}var esprima,exportFn,toString=Object.prototype.toString;\"object\"==typeof module&&\"object\"==typeof module.exports&&\"function\"==typeof require?(esprima=require(\"esprima\"),exportFn=function(redeyed){module.exports=redeyed},bootstrap(esprima,exportFn)):\"function\"==typeof define&&define.amd?define([\"esprima\"],function(esprima){return bootstrap(esprima)}):\"object\"==typeof window&&(window.redeyed=bootstrap(window.esprima))})()})()},{esprima:70}],86:[function(require,module){(function(Buffer){var encode=module.exports=function(xs){function bytes(s){return\"string\"==typeof s?s.split(\"\").map(ord):Array.isArray(s)?s.reduce(function(acc,c){return acc.concat(bytes(c))},[]):void 0}return new Buffer([27].concat(bytes(xs)))},ord=encode.ord=function ord(c){return c.charCodeAt(0)}})(require(\"__browserify_buffer\").Buffer)},{__browserify_buffer:77}]},{},[1]);\n\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/scriptie-talkie-embed.js","modified":"20230427072656645"}, {"created":"20230426064319911","text":"\n\u003C!-- shader-doodle.js -->\n\u003Cscript>\n'use strict';(function(z,A){\"object\"===typeof exports&&\"undefined\"!==typeof module?A(exports):\"function\"===typeof define&&define.amd?define([\"exports\"],A):(z=z||self,A(z.ShaderDoodle={}))})(this,function(z){function A(a){function b(a){console.log(a);e.add(a.targetElement)}function d(b){e.has(b.targetElement)?e.delete(b.targetElement):(b=a.createBufferSource(),b.buffer=a.createBuffer(1,1,a.sampleRate),b.connect(a.destination),b.start(0),\"function\"===typeof a.resume&&a.resume().then(c),f())}function c(){v.forEach(a=>\n{a()})}function f(){p.forEach(a=>{a.removeEventListener(\"touchstart\",d);a.removeEventListener(\"touchmove\",b);a.removeEventListener(\"touchend\",d);a.removeEventListener(\"mouseup\",d)});p.clear();e.clear()}let e=new Set,p=new Set,v=[];return{onStart:function(b){\"running\"===a.state?(console.log(\"already\"),b()):v.push(b)},register:function(a){a.addEventListener(\"touchstart\",d);a.addEventListener(\"touchmove\",b);a.addEventListener(\"touchend\",d);a.addEventListener(\"mouseup\",d);p.add(a)},dispose:f}}function ca(){function a(a){d[0].value[0]=\na.alpha;d[0].value[1]=a.beta;d[0].value[2]=a.gamma}let b=!1,d=JSON.parse(JSON.stringify(L));return{get ustate(){return d},setup:function(){b||(b=!0,\"object\"===typeof DeviceOrientationEvent&&\"function\"===typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then(b=>{\"granted\"===b&&window.addEventListener(\"deviceorientation\",a)}).catch(console.error):window.addEventListener(\"deviceorientation\",a))},dispose:function(){window.removeEventListener(\"deviceorientation\",\na)}}}function da(a){let b={},d=a.getExtension.bind(a);return{get:function(a){if(void 0!==b[a])return b[a];let c=d(a)||d(\"MOZ_\".concat(a))||d(\"WEBKIT_\".concat(a));null===c&&console.warn(\"\u003Cshader-doodle /> \".concat(a,\" extension not supported.\"));return b[a]=c}}}function C(){function a(a,b){if(a>n||b>h)a=Math.max(a,n),b=Math.max(b,h),a!==n&&(n=a,c.width=Math.floor(1*n)),b!==h&&(h=b,c.height=Math.floor(1*h))}function b(a){let b=l?(a-l)/1E3:0;l=a;k[0].value+=b;k[1].value=b;k[3].value++;a=new Date;k[2].value[0]=\na.getFullYear();k[2].value[1]=a.getMonth()+1;k[2].value[2]=a.getDate();k[2].value[3]=3600*a.getHours()+60*a.getMinutes()+a.getSeconds()+.001*a.getMilliseconds()}function d(f){if(m.size){b(f);var u=[...k,...e.ustate];m.forEach(b=>b.render(c,a,n,h,1,u));q=requestAnimationFrame(d)}else q=void 0}let c=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),f=c.getContext(\"webgl\")||c.getContext(\"experimental-webgl\"),e=ca(),p=new (window.AudioContext||window.webkitAudioContext),v=new A(p);p.onStart=\nv.onStart;f.blendFunc(f.SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA);f.enable(f.BLEND);let n=0,h=0,q,l,m=new Set,k=JSON.parse(JSON.stringify(M)),w=da(f);w.get(\"OES_texture_float\");w.get(\"OES_texture_float_linear\");w.get(\"OES_texture_half_float\");w.get(\"OES_texture_half_float_linear\");f.clearColor(0,0,0,0);return Object.freeze({get gl(){return f},get wa(){return p},addSurface:function(a){v.register(a.dom);a.addClick(e.setup);m.add(a);q||(q=requestAnimationFrame(d))},removeSurface:function(a){m.delete(a)},addUniform:function(a,\nb,c){for(let d=0;d\u003Ck.length;d++)if(k[d].name===a){k[d].value=b;k[d].type=c;return}k.push({name:a,value:b,type:c,toyname:a})},setUniform:function(a,b){for(let c=0;c\u003Ck.length;c++)if(k[c].name===a){k[c].value=b;break}},dispose:function(){m.forEach(a=>a.dispose());m.clear();m=void 0;cancelAnimationFrame(q);e.dispose();v.dispose()}})}function ea(a,b){let d={},c=a.getProgramParameter(b,a.ACTIVE_ATTRIBUTES);for(let f=0;f\u003Cc;f++){let {name:c}=a.getActiveAttrib(b,f);d[c]=a.getAttribLocation(b,c)}return d}function N(a){function b(b){a.texParameteri(a.TEXTURE_2D,\na.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,b?a.NEAREST:a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,b?a.NEAREST:a.LINEAR)}let d,c,f=a.createFramebuffer();a.bindFramebuffer(a.FRAMEBUFFER,f);let e=a.createTexture();if(!e)throw Error(\"createTexture returned null\");a.bindTexture(a.TEXTURE_2D,e);b(!0);a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e,0);return{get handle(){return f},\nget texture(){return e},updateTexture:b,bind:function(){a.bindFramebuffer(a.FRAMEBUFFER,f);a.viewport(0,0,d,c)},updateResolution:function(b,f){if(b!==d||f!==c)d=b,c=f,a.bindTexture(a.TEXTURE_2D,e),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,b,f,0,a.RGBA,a.FLOAT,null)},dispose:function(){a.deleteFramebuffer(f);a.deleteTexture(e)}}}function O(a,b,d){b=a.createShader(b);a.shaderSource(b,d);a.compileShader(b);if(!a.getShaderParameter(b,a.COMPILE_STATUS)){let c=a.getShaderInfoLog(b);a.deleteShader(b);console.warn(c,\n\"\\nin shader:\\n\",d)}return b}function H(a,b){if(a.length!==b.length)return!1;for(let d=0,c=a.length;d\u003Cc;d++)if(a[d]!==b[d])return!1;return!0}function I(a,b){for(let d=0,c=b.length;d\u003Cc;d++)a[d]=b[d]}function fa(a,b,d,c){a[0]!==c&&(d.uniform1f(b,c),a[0]=c)}function ha(a,b,d,c){H(a,c)||(d.uniform2fv(b,c),I(a,c))}function ia(a,b,d,c){H(a,c)||(d.uniform3fv(b,c),I(a,c))}function ja(a,b,d,c){H(a,c)||(d.uniform4fv(b,c),I(a,c))}function ka(a,b,d,c){a[0]!==c&&(d.uniform1i(b,c),a[0]=c)}function la(a){switch(a){case 5126:return fa;\ncase 35664:return ha;case 35665:return ia;case 35666:return ja;case 35678:case 36198:return ka}}function ma(a,b,d){let c=[],f=la(b.type);return{get location(){return d},get name(){return b.name},setValue:function(...b){f(c,d,a,...b)}}}function na(a,b){let d={},c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(let e=0;e\u003Cc;e++){var f=a.getActiveUniform(b,e);let c=a.getUniformLocation(b,f.name);f=ma(a,f,c);d[f.name]=f}return d}function oa(a,b){if(b){let b=a.match(P);a=a.replace(\"mainImage\",\"main\");a=\na.replace(P,\"()\");a=(b?\"#define \".concat(b[1],\" gl_FragColor\\n#define \").concat(b[2],\" gl_FragCoord.xy\\n\"):\"\")+a}a=pa(qa,b)+a;return\"precision highp float;\\n\"+a}function ra(a,b,d,c,f=!1){function e(a){let b=r[F(a,f,\"name\")];b&&b.setValue(F(a,f,\"value\"))}function p(b){b.forEach(e);t.forEach(a=>a.update(e));k&&r.u_prevbuffer&&(b=r.u_prevbuffer)&&(b.setValue(w),a.activeTexture(a[\"TEXTURE\".concat(w)]),a.bindTexture(a.TEXTURE_2D,k.texture),k.updateTexture());g.forEach(b=>{r[b.name].setValue(b.u);a.activeTexture(a[\"TEXTURE\".concat(b.u)]);\na.bindTexture(a.TEXTURE_2D,b.fbo.texture);b.fbo.updateTexture()})}let v=sa++,n=a.createProgram(),h=a.createBuffer();b=O(a,a.VERTEX_SHADER,b);d=O(a,a.FRAGMENT_SHADER,oa(d,f));a.attachShader(n,b);a.attachShader(n,d);a.linkProgram(n);let q,l,m,k,w,u=ea(a,n),r=na(a,n),g=new Set,t=new Set,x=0;if(!a.getProgramParameter(n,a.LINK_STATUS)){let b=a.getProgramInfoLog(n);console.warn(b)}a.detachShader(n,b);a.detachShader(n,d);a.deleteShader(b);a.deleteShader(d);b=u.position;a.bindBuffer(a.ARRAY_BUFFER,h);a.bufferData(a.ARRAY_BUFFER,\nc,a.STATIC_DRAW);a.enableVertexAttribArray(b);a.vertexAttribPointer(b,2,a.FLOAT,!1,0,0);return{get id(){return v},get nodes(){return g},get fbo(){return m},get name(){return q},get u(){return l},render:function(b,c,d){g.size&&g.forEach(a=>a.render(b,c,d));if(m){if(k){let a=m;m=k;k=a;k.bind();k.updateResolution(b,c)}m.updateResolution(b,c);m.bind()}else a.bindFramebuffer(a.FRAMEBUFFER,null),a.viewport(0,0,b,c);a.clear(a.COLOR_BUFFER_BIT);a.useProgram(n);p(d);a.drawArrays(a.TRIANGLES,0,6)},addNode:function(a,\nb,c){a.toFbo(b,x++,c);g.add(a)},removeNode:function(a){g.delete(a)},addTexture:function(a){t.add(a)},removeTexture:function(a){t.delete(a)},getTexUnit:function(){return x++},update:p,toFbo:function(b,c,d){q=b;l=c;m=N(a);d&&(k=N(a),w=x++)},dispose:function(){t.forEach(a=>a.dispose());t.clear();a.deleteProgram(n)}}}function Q(a){if(!a)return[0,0];let b=(a.tagName||\"\").toLowerCase();return\"video\"===b?[a.videoWidth,a.videoHeight]:\"img\"===b?[a.naturalWidth,a.naturalHeight]:[a.width,a.height]}function R(a,\nb,d={}){function c(){a.getParameter(a.ACTIVE_TEXTURE)!==b&&a.activeTexture(a[\"TEXTURE\".concat(b)])}function f(){h.forEach(b=>{a.texParameteri(p,b[0],b[1])})}function e(b){if(\"object\"===typeof b){Object.assign(n,b);c();a.bindTexture(p,v);var {level:d,internalFormat:e,offsetX:h,offsetY:r,width:g,height:t,border:m,format:B,type:D,flipY:z,buffer:y,pixels:A}=n;f();a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,z);if(A){let [c,d]=Q(A);if(0===c||0===d){console.warn(\"Texture size is invalid \".concat(c,\" x \").concat(d,\n\". Update is skipped;\"));return}{({pixels:b}=n);var J=a.getTexParameter(p,a.TEXTURE_WRAP_S);let c=a.getTexParameter(p,a.TEXTURE_WRAP_T),d=a.getTexParameter(p,a.TEXTURE_MIN_FILTER),f=G(b.width)&&G(b.height);(J=J!==a.CLAMP_TO_EDGE||c!==a.CLAMP_TO_EDGE||d!==a.LINEAR&&d!==a.NEAREST)&&!f&&(l||(l=document.createElement(\"canvas\"),l.width=2**Math.floor(Math.log(b.width)/Math.LN2),l.height=2**Math.floor(Math.log(b.height)/Math.LN2),console.warn(\"Texture is not power of two \".concat(b.width,\" x \").concat(b.height,\n\". Resized to \").concat(l.width,\" x \").concat(l.height,\";\"))),l.getContext(\"2d\").drawImage(b,0,0,l.width,l.height));q=J&&l||b}}\"number\"===typeof h&&\"number\"===typeof r?q?a.texSubImage2D(p,d,h,r,B,D,q):a.texSubImage2D(p,d,h,r,g,t,B,D,y):q?a.texImage2D(p,d,e,B,D,q):a.texImage2D(p,d,e,g,t,m,B,D,y);q&&G(q.width)&&G(q.height)&&(b=a.getTexParameter(p,a.TEXTURE_MIN_FILTER),b!==a.LINEAR&&b!==a.NEAREST&&a.generateMipmap(p))}}let p=a.TEXTURE_2D,v=a.createTexture(),n={},h=[],q,l;e(Object.assign({level:0,internalFormat:a.RGBA,\noffsetX:null,offsetY:null,width:1,height:1,border:0,format:a.RGBA,type:a.UNSIGNED_BYTE,flipY:!0,buffer:ta,pixels:null},\"object\"===typeof d?d:{}));return{setParameters:function(b){c();h.length=0;b.forEach(b=>{h.push(b);a.texParameteri(p,b[0],b[1])})},shallow:function(){c();a.bindTexture(p,v);f()},update:e,dispose:function(){a.deleteTexture(v)}}}function ua(a){return new Promise((b,d)=>{let c=new XMLHttpRequest;c.open(\"GET\",a,!0);c.responseType=\"arraybuffer\";c.onreadystatechange=()=>{c.readyState===\nXMLHttpRequest.DONE&&(200===c.status||206===c.status?b(c.response):(console.log(c),d(c.status)))};c.send()})}function va(a,b){return new Promise((d,c)=>{b.decodeAudioData(a,d,c)})}function wa(a,b,d,c,f,e,p,v){async function n(){g=l.createBufferSource();g.buffer=await va(await ua(c),l);g.loop=e;g.start();t=!0}function h(){let a=document.querySelector(c);a&&a instanceof HTMLAudioElement&&(r=a,g=l.createMediaElementSource(a))}function q(a,b){a.connect(m);m.connect(b)}f=a.gl;let l=a.wa,m=l.createAnalyser();\nm.fftSize=1024;let k=new Uint8Array(m.frequencyBinCount),w=new Uint8Array(m.frequencyBinCount),u=R(f,b,{internalFormat:f.LUMINANCE,width:w.length,height:2,format:f.LUMINANCE,buffer:null});u.setParameters([[f.TEXTURE_WRAP_S,f.CLAMP_TO_EDGE],[f.TEXTURE_WRAP_T,f.CLAMP_TO_EDGE],[f.TEXTURE_MIN_FILTER,f.NEAREST]]);let r,g,t=!1,x=[{name:d,value:b}];\"#\"===c[0]?h():c&&n();g&&q(g,l.destination);return{dispose:function(){u.dispose()},update:function(a){x.forEach(a);if(t||r&&2\u003Cr.readyState&&!r.paused&&!r.ended&&\nr.currentTime)m.getByteFrequencyData(k),m.getByteTimeDomainData(w),u.update({offsetX:0,offsetY:0,height:1,buffer:k}),u.update({offsetX:0,offsetY:1,height:1,buffer:w})}}}function S(a,b){var d=Object.keys(a);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(a);b&&(c=c.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable}));d.push.apply(d,c)}return d}function T(a){let b=document.createElement(\"div\");b.style.width=b.style.height=\"1px\";b.style.overflow=\"hidden\";b.style.position=\n\"absolute\";b.style.opacity=\"0\";b.style.pointerEvents=\"none\";b.style.zIndex=\"-1000\";b.appendChild(a);document.body.appendChild(b)}function xa(a,b,d,c,f,e,p,v,n,h){function q(){t=0;g=new Image;g.crossOrigin=\"anonymous\";g.onload=l;g.onerror=()=>{console.warn(\"failed loading src: \".concat(c))};g.src=c}function l(){k();r.setParameters([[u.TEXTURE_WRAP_S,e],[u.TEXTURE_WRAP_T,p],[u.TEXTURE_MIN_FILTER,v],[u.TEXTURE_MAG_FILTER,n]]);r.update({pixels:g})}function m(){t=2;let a=navigator.getUserMedia||navigator.webkitGetUserMedia||\nnavigator.mozGetUserMedia,b=a=>{g=document.createElement(\"video\");g.width=320;g.height=240;g.autoplay=!0;g.srcObject=a;T(g)},c=()=>{navigator.mediaDevices.getUserMedia({video:!0}).then(b).catch(a=>console.log(a.name+\": \"+a.message))},d=()=>{a({video:!0},b,a=>a)};navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?c():a&&d()}function k(){if(g){let [a,b]=Q(g);x[1].value[0]=a;x[1].value[1]=b}}function w(){return(2===t||1===t)&&g instanceof HTMLVideoElement}let u=a.gl,r=R(u,b),g,t,x=[{name:d,\nvalue:b},{name:d+\"_resolution\",value:[0,0]}],B=!1;if(f)m();else if(ya.test(c))t=1,g=document.createElement(\"video\"),g.autoplay=!0,g.muted=!0,g.loop=!0,g.playsInline=!0,g.crossOrigin=\"anonymous\",g.src=c,T(g),g.play();else if(za.test(c))q();else{try{g=document.querySelector(c)}catch(D){console.warn(\"src: \".concat(c,\": invalid selector\"))}g?g instanceof HTMLImageElement?(t=0,g.complete?l():g.addEventListener(\"load\",l)):g instanceof HTMLVideoElement?t=1:g instanceof HTMLCanvasElement?(t=3,l()):g instanceof\nK?(g=g.surface.dom,t=3,l()):console.warn(\"src: \".concat(c,\": element is not a valid texture source\")):console.warn(\"src: \".concat(c,\": no element could be selected\"))}return{dispose:function(){r.dispose()},update:function(a){x.forEach(a);h||w()&&g.readyState===g.HAVE_ENOUGH_DATA?(w()&&(B||(B=!0,k(),r.setParameters([[u.TEXTURE_WRAP_S,u.CLAMP_TO_EDGE],[u.TEXTURE_WRAP_T,u.CLAMP_TO_EDGE],[u.TEXTURE_MIN_FILTER,u.LINEAR]]))),r.update({pixels:g})):r.shallow()}}}function Aa(a){function b(a){n.forEach(a=>\n\"function\"===typeof a&&a());k=!0;a=U(a);let {top:b,left:c,height:d}=q;h[2].value[0]=h[2].value[2]=a[0]-Math.floor(c);h[2].value[1]=h[2].value[3]=Math.floor(d)-(a[1]-Math.floor(b))}function d(a){if(!m){a=U(a);let {top:b,left:c,height:d}=q;h[1].value[0]=a[0]-Math.floor(c);h[1].value[1]=Math.floor(d)-(a[1]-Math.floor(b));k&&(h[2].value[0]=h[1].value[0],h[2].value[1]=h[1].value[1]);m=!0}}function c(a){k=!1;1===Math.sign(h[2].value[2])&&(h[2].value[2]*=-1);1===Math.sign(h[2].value[3])&&(h[2].value[3]*=\n-1)}function f(){let b=e.getBoundingClientRect();l=0\u003C=b.top+b.height&&0\u003C=b.left+b.width&&b.bottom-b.height\u003C=(window.innerHeight||document.documentElement.clientHeight)&&b.right-b.width\u003C=(window.innerWidth||document.documentElement.clientWidth);let c=0\u003Ca.height?a.height:b.height,d=0\u003Ca.width?a.width:b.width;d!==h[0].value[0]&&(e.width=h[0].value[0]=d);c!==h[0].value[1]&&(e.height=h[0].value[1]=c);q=b}let e=a.canvas instanceof HTMLCanvasElement?a.canvas:document.createElementNS(\"http://www.w3.org/1999/xhtml\",\n\"canvas\"),p=e.getContext(\"2d\"),v=a.program,n=new Set,h=JSON.parse(JSON.stringify(V)),q={},l,m,k;e.addEventListener(\"mousedown\",b);e.addEventListener(\"mousemove\",d);e.addEventListener(\"mouseup\",c);e.addEventListener(\"mouseout\",c);e.addEventListener(\"touchstart\",b);e.addEventListener(\"touchmove\",d);e.addEventListener(\"touchend\",c);f();return Object.freeze({get dom(){return e},render:function(a,b,c,d,e,k){f();m=!1;if(l&&v){var g=h[0].value[0]||0;c=h[0].value[1]||0;b(g,c);v.render(g,c,[...k,...h]);b=\ng*e;e*=c;p.clearRect(0,0,b,e);p.drawImage(a,0,d-e,b,e,0,0,b,e)}},addClick:function(a){n.add(a)},dispose:function(){n.clear();e.removeEventListener(\"mousedown\",b);e.removeEventListener(\"mousemove\",d);e.removeEventListener(\"mouseup\",c);e.removeEventListener(\"mouseout\",c);e.removeEventListener(\"touchstart\",b);e.removeEventListener(\"touchmove\",d);e.removeEventListener(\"touchend\",c)}})}var W={render(a,b){return\"\".concat(this.css(a,b),\"\\n \").concat(this.html())},map(a){return{canvas:a.querySelector(\"canvas\")}},\nhtml(a){return\"\u003Ccanvas>\u003C/canvas>\"},css(a,b){return\"\u003Cstyle>\\n :host {\\n position: relative;\\n display: inline-block;\\n width: \".concat(a||250,\"px;\\n height: \").concat(b||250,\"px;\\n }\\n :host > canvas {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n border-radius: inherit;\\n }\\n \u003C/style>\")}};let M=[{name:\"u_time\",toyname:\"iTime\",type:\"float\",value:0},{name:\"u_delta\",toyname:\"iTimeDelta\",\ntype:\"float\",value:0},{name:\"u_date\",toyname:\"iDate\",type:\"vec4\",value:[0,0,0,0]},{name:\"u_frame\",toyname:\"iFrame\",type:\"int\",value:0}],V=[{name:\"u_resolution\",toyname:\"iResolution\",type:\"vec2\",value:[0,0]},{name:\"u_mouse\",toyname:\"iCurrentMouse\",type:\"vec2\",value:[0,0]},{name:\"u_mousedrag\",toyname:\"iMouse\",type:\"vec4\",value:[0,0,0,0]}],L=[{name:\"u_orientation\",toyname:\"iOrientation\",type:\"vec3\",value:[0,0,0]}],qa=[...M,...L,...V],P=/\\(\\s*out\\s+vec4\\s+(\\S+)\\s*,\\s*in\\s+vec2\\s+(\\S+)\\s*\\)/,y;C.singleton=\nfunction(){y||(y=C());return y};C.resetSingleton=function(){y&&y.dispose();y=C()};class E extends HTMLElement{get renderer(){return C.singleton()}get name(){return this.getAttribute(\"name\")}set name(a){this.setAttribute(\"name\",a)}}var F=(a,b,d)=>{if(!b)return a[d];b=\"toy\".concat(d);return a.hasOwnProperty(b)?a[b]:a[d]},pa=(a,b)=>Object.values(a).reduce((a,c)=>a+\"uniform \".concat(F(c,b,\"type\"),\" \").concat(F(c,b,\"name\"),\";\\n\"),\"\");let sa=0;var Ba=a=>new Promise((b,d)=>{let c=new XMLHttpRequest;c.open(\"GET\",\na);c.onreadystatechange=()=>{c.readyState===XMLHttpRequest.DONE&&(200===c.status?b(c.responseText):d(c.status))};c.send()}),X=async a=>a.src?Ba(a.src):a.text;let Y=new Float32Array([-1,1,1,1,1,-1,-1,1,1,-1,-1,-1]),Ca=0;class Z extends E{disconnectedCallback(){this.program.dispose();this.program=void 0}get shadertoy(){return this.hasAttribute(\"shadertoy\")}set shadertoy(a){a?this.setAttribute(\"shadertoy\",\"\"):this.removeAttribute(\"shadertoy\")}get prevbuffer(){return this.hasAttribute(\"prevbuffer\")}set prevbuffer(a){a?\nthis.setAttribute(\"prevbuffer\",\"\"):this.removeAttribute(\"prevbuffer\")}get vertices(){let a=this.getAttribute(\"vertices\");if(!a)return Y;a=JSON.parse(a);return Array.isArray(a)?new Float32Array(a):Y}set vertices(a){a&&Array.isArray(a)&&this.setAttribute(\"vertices\",JSON.stringify(a))}async init(a){a&&!this.name&&(this.name=\"\".concat(\"u_node\").concat(Ca++));let b=[],d,c;for(let a=0;a\u003Cthis.children.length;a++){let e=this.children[a];if(e instanceof E)b.push(e);else switch(e.getAttribute(\"type\")){case \"x-shader/x-fragment\":c=\nawait X(e);break;case \"x-shader/x-vertex\":d=await X(e)}}this.program=ra(this.renderer.gl,d||\"attribute vec2 position;\\nvoid main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n}\",c,this.vertices,this.shadertoy);b.forEach(a=>{a.init(this.program)});a&&a.addNode(this.program,this.name,this.prevbuffer)}}customElements.get(\"sd-node\")||customElements.define(\"sd-node\",Z);let ta=new Uint8Array([0,0,0,255]),G=a=>!(a&a-1)&&!!a,Da=0;class Ea extends E{disconnectedCallback(){this.program.removeTexture(this.texture);\nthis.texture.dispose()}get src(){return this.getAttribute(\"src\")}set src(a){this.setAttribute(\"src\",a)}get autoplay(){return this.hasAttribute(\"autoplay\")}set autoplay(a){a?this.setAttribute(\"autoplay\",\"\"):this.removeAttribute(\"autoplay\")}get loop(){return this.hasAttribute(\"loop\")}set loop(a){a?this.setAttribute(\"loop\",\"\"):this.removeAttribute(\"loop\")}get crossOrigin(){return this.getAttribute(\"crossorigin\")}set crossOrigin(a){this.setAttribute(\"crossorigin\",a)}get mic(){return this.hasAttribute(\"mic\")}set mic(a){a?\nthis.setAttribute(\"mic\",\"\"):this.removeAttribute(\"mic\")}init(a){this.name||(this.name=\"\".concat(\"u_audio\").concat(Da++));this.src&&(this.program=a,this.texture=wa(this.renderer,a.getTexUnit(),this.name,this.src,this.mic,this.loop,this.autoplay,this.crossOrigin),a.addTexture(this.texture))}}customElements.get(\"sd-audio\")||customElements.define(\"sd-audio\",Ea);let za=/\\w+\\.(jpg|jpeg|png|gif|bmp)(?=\\?|$)/i,ya=/\\w+\\.(mp4|3gp|webm|ogv)(?=\\?|$)/i,aa={NEAREST:9728,LINEAR:9729},Fa=function(a){for(var b=1;b\u003C\narguments.length;b++){var d=null!=arguments[b]?arguments[b]:{};b%2?S(d,!0).forEach(function(b){var c=d[b];b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(d)):S(d).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(d,b))})}return a}({},aa,{NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987}),\nba={REPEAT:10497,MIRRORED_REPEAT:33648,CLAMP_TO_EDGE:33071},Ga=0;class Ha extends E{static get observedAttributes(){return\"mag-filter min-filter name src wrap-s wrap-t\".split(\" \")}disconnectedCallback(){this.program.removeTexture(this.texture);this.texture.dispose()}get forceUpdate(){return this.hasAttribute(\"force-update\")}set forceUpdate(a){a?this.setAttribute(\"force-update\",\"\"):this.removeAttribute(\"force-update\")}get magFilter(){return aa[this.getAttribute(\"mag-filter\")]||9729}get minFilter(){return Fa[this.getAttribute(\"min-filter\")]||\n9987}get src(){return this.getAttribute(\"src\")}set src(a){this.setAttribute(\"src\",a)}get webcam(){return this.hasAttribute(\"webcam\")}set webcam(a){a?this.setAttribute(\"webcam\",\"\"):this.removeAttribute(\"webcam\")}get wrapS(){return ba[this.getAttribute(\"wrap-s\")]||10497}get wrapT(){return ba[this.getAttribute(\"wrap-t\")]||10497}init(a){this.name||(this.name=\"\".concat(\"u_texture\").concat(Ga++));if(this.src||this.webcam)this.program=a,this.texture=xa(this.renderer,a.getTexUnit(),this.name,this.src,this.webcam,\nthis.wrapS,this.wrapT,this.minFilter,this.magFilter,this.forceUpdate),a.addTexture(this.texture)}}customElements.get(\"sd-texture\")||customElements.define(\"sd-texture\",Ha);class Ia extends E{disconnectedCallback(){}get x(){return parseFloat(this.getAttribute(\"x\"))}set x(a){null!=a?this.setAttribute(\"x\",a):this.removeAttribute(\"x\")}get y(){return parseFloat(this.getAttribute(\"y\"))}set y(a){null!=a?this.setAttribute(\"y\",a):this.removeAttribute(\"y\")}get z(){return parseFloat(this.getAttribute(\"z\"))}set z(a){null!=\na?this.setAttribute(\"z\",a):this.removeAttribute(\"z\")}get w(){return parseFloat(this.getAttribute(\"w\"))}set w(a){null!=a?this.setAttribute(\"w\",a):this.removeAttribute(\"w\")}getValue(){switch(this.type){case \"vec2\":return[this.x,this.y];case \"vec3\":return[this.x,this.y,this.z];case \"vec4\":return[this.x,this.y,this.z,this.w];default:return this.x}}get type(){return this.getAttribute(\"type\")}set type(a){null!=a?this.setAttribute(\"type\",a):this.removeAttribute(\"type\")}static get observedAttributes(){return[\"x\",\n\"y\",\"z\",\"w\"]}attributeChangedCallback(a,b,d){switch(a){case \"x\":case \"y\":case \"z\":case \"w\":null!=d&&this.renderer.setUniform(this.name,this.getValue())}}init(a){this.name?(this.program=a,this.renderer.addUniform(this.name,this.getValue(),this.type)):console.warn(\"sd-uniform created without a name.\")}}customElements.get(\"sd-uniform\")||customElements.define(\"sd-uniform\",Ia);let Ja=new Set([\"touchstart\",\"touchmove\",\"touchend\"]);var U=a=>{a=Ja.has(a.type)&&\"object\"===typeof a.touches[0]?a.touches[0]:\na;return[a.clientX||0,a.clientY||0]};class K extends Z{static get observedAttributes(){return[\"height\",\"width\"]}constructor(){super();this.shadow=this.attachShadow({mode:\"open\"})}connectedCallback(){this.shadow.innerHTML=W.render(this.width,this.height);this.canvas=W.map(this.shadow).canvas;setTimeout(()=>{try{this.init()}catch(a){console.error(a&&a.message||\"Error in shader-doodle.\")}})}disconnectedCallback(){super.disconnectedCallback();this.renderer.removeSurface(this.surface);this.surface.dispose();\nthis.surface=void 0}attributeChangedCallback(a){let b=this.shadow.styleSheets;if((\"height\"===a||\"width\"===a)&&0\u003Cb.length){let d=this[a];b[0].cssRules[0].style[a]=Number.isInteger(d)?\"\".concat(d,\"px\"):\"250px\"}}get height(){let a=parseInt(this.getAttribute(\"height\"));return Number.isInteger(a)?a:void 0}set height(a){let b=parseInt(a);Number.isInteger(b)&&this.setAttribute(\"height\",a)}get width(){let a=parseInt(this.getAttribute(\"width\"));return Number.isInteger(a)?a:void 0}set width(a){a=parseInt(a);\nNumber.isInteger(a)&&this.setAttribute(\"width\",a)}async init(){await super.init();this.surface=Aa(this);this.renderer.addSurface(this.surface)}}customElements.get(\"shader-doodle\")||customElements.define(\"shader-doodle\",K);z.ShaderDoodleElement=K;Object.defineProperty(z,\"__esModule\",{value:!0})})\n\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/webxr-notebook/shader-doodle.js","modified":"20230426064515285"}, -{"created":"20230428121310382","text":"\u003Cbr>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"https://coderofsalvation.codeberg.page/xrfragment-haxe/example/aframe/sandbox/?./../../assets/website.glb\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">» Example 3D-file Browser\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"doc/RFC_XR_Fragments.html\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Spec\u003C/a> | \u003Ca href=\"https://codeberg.org/coderofsalvation/xrfragment\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Source\u003C/a> | \u003Ca href=\"https://matrix.to/#/#xrfragments:matrix.org\" class=\"tc-btn-invisible label\" target=\"_blank\" style=\"display:inline;font-weight:bold;padding:0; text-decoration:none\">Community\u003C/a> | \u003Ca href=\"https://codeberg.org/coderofsalvation/xrfragment.rss\" target=\"_blank\">RSS\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv id=\"nlnet\">\n \u003Ca href=\"https://nlnet.nl\" target=\"_blank\">\n [img width=100 [nlnet.png]]\n\t\u003C/a>\n\u003C/div>\n\n\u003Cstyle type=\"text/css\">\n #nlnet img{\n\t\topacity:0.4;\n\t}\n\u003C/style>\n","tags":"","title":"$:/xrfragment/topmenu","modified":"20250926180343424"}, +{"created":"20230428121310382","text":"\u003Cbr>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"https://coderofsalvation.codeberg.page/xrfragment-haxe/example/aframe/sandbox/?./../../assets/website.glb\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"font-weight:bold;padding:0; text-decoration:none\">» Example 3D-file\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv class=\"section\">\n \u003Ca href=\"doc/RFC_XR_Fragments.html\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Spec\u003C/a> | \u003Ca href=\"https://codeberg.org/coderofsalvation/xrfragment\" target=\"_blank\" class=\"tc-btn-invisible label\" style=\"display:inline; font-weight:bold;padding:0; text-decoration:none\">Source\u003C/a> | \u003Ca href=\"https://matrix.to/#/#xrfragments:matrix.org\" class=\"tc-btn-invisible label\" target=\"_blank\" style=\"display:inline;font-weight:bold;padding:0; text-decoration:none\">Community\u003C/a> | \u003Ca href=\"https://codeberg.org/coderofsalvation/xrfragment.rss\" target=\"_blank\">RSS\u003C/a>\n\u003C/div>\n\u003Cbr>\n\u003Cdiv id=\"nlnet\">\n \u003Ca href=\"https://nlnet.nl\" target=\"_blank\">\n [img width=100 [nlnet.png]]\n\t\u003C/a>\n\u003C/div>\n\n\u003Cstyle type=\"text/css\">\n #nlnet img{\n\t\topacity:0.4;\n\t}\n\u003C/style>\n","tags":"","title":"$:/xrfragment/topmenu","modified":"20250926181640640"}, {"created":"20230427155228509","text":"\u003Cscript src=\"dist/xrfragment.js\">\u003C/script>","tags":"$:/tags/RawMarkup","title":"$:/xrfragment/xrfragment.js","modified":"20230627082106120"}, {"created":"20230530121012871","text":"16:04:16 From Leon van Kammen : https://xrf.isvery.ninja/example/aframe/sandbox\n16:04:51 From Frode Hegland : https://futuretextlab.info\n16:04:54 From Leon van Kammen : https://xrf.isvery.ninja\n16:05:21 From Frode Hegland : https://futuretextlab.info/category/vr-resource/\n16:15:08 From Peter Wasilko : What is MR in the center of the diagram?\n16:15:28 From Brandel Zachernuk : “Mixed Reality”\n16:15:54 From Peter Wasilko : How is it distinguished from AR?\n16:17:09 From Brandel Zachernuk : It’s a term that people use to encompass the lot. Many people claimed that Google Glass-style AR with no ‘world registration’ as AR, which drove people to coining an additional term\n16:17:30 From Frode Hegland : Ah… thanks Brandel\n16:19:05 From Patrick Lichty : MR, XR, AR, VR, it seems these are used rather fungible, it’d be good to have a small discussion about the Venn diagram here after the talk.\n16:19:24 From Frode Hegland : Yes exactly http://community.cim3.net/wiki/PurpleNumbers.html\n16:19:39 From Frode Hegland : Doug’s paragraph level addressing made live on the web through this\n16:19:52 From Karl Hebenstreit, Jr. : Reacted to “MR, XR, AR, VR, it s…” with 👍\n16:22:14 From Peter Wasilko : I particularly loved Doug’s deep linking distinction between a location in a document whose content might change vs. content in a document whose location might change. We need anchors to both.\n16:22:43 From Frode Hegland : Reacted to “I particularly loved…” with 👍\n16:24:17 From Frode Hegland : Hi Dene\n16:24:36 From Patrick Lichty : Reacted to “I particularly loved…” with 👏\n16:25:08 From Dene Grigar To Frode Hegland(privately) : Good moring\n16:25:12 From Dene Grigar To Frode Hegland(privately) : morning\n16:25:27 From Frode Hegland To Dene Grigar(privately) : 🙂\n16:30:25 From Frode Hegland : Hi Matthias\n16:31:40 From Patrick Lichty : This is amazing, actually.\n16:31:51 From Peter Wasilko : It looked like the image on the surface of the portal object was changing with one’s relative position to it.\n16:33:09 From Dene Grigar : Is there an example of how this has been used for art?\n16:33:25 From Patrick Lichty : Yes.\n16:36:22 From Karl Hebenstreit, Jr. : Future of Interface Workshop (February 15-16), https://futureofinterface.org/info-center/accessibility/ and there’s an XR Accessibility community, https://xraccess.org/\n16:40:15 From Peter Wasilko : https://en.wikipedia.org/wiki/TouchDesigner\n16:40:47 From Peter Wasilko : https://derivative.ca\n16:45:25 From Fabien : addressability of the known universe with infinite resolution\n16:47:49 From Frode Hegland : Fabien, infinite resolution depends on stated context, so cool\n16:47:50 From Frode Hegland : Can this generate a link to a specific location and view by the user performing an action in that location and sharing it? Like a GPS coordinate maybe.\n16:50:22 From Brandel Zachernuk : This is the W3C TPAC: https://www.w3.org/2023/09/TPAC/, and the IW WG (webXR etc) is here: https://www.w3.org/immersive-web/\n16:50:28 From Fabien : Reacted to “This is the W3C TP…” with 👍\n16:51:33 From Matthias mprove : The TPAC link says ”Sorry, Insufficient Access Privileges”\n16:51:34 From Karl Hebenstreit, Jr. : I see XR accessibility as one of the most complex challenges. How can we make it accessible so people with disabilities are not excluded from virtual worlds?\n16:52:22 From Matthias mprove : Oh, the comma was playing a trick on me: https://www.w3.org/2023/09/TPAC/\n16:53:45 From Peter Wasilko : De Bruijn Indices! https://en.wikipedia.org/wiki/De_Bruijn_index\n17:01:36 From Dene Grigar : Yes, I do\n17:02:14 From Dene Grigar : VR poses a challenge for conservation\n17:02:39 From Frode Hegland : 1 second sorry\n17:02:49 From Fabien : indeed, participated to Not Time To Wait specifically for that https://mediaarea.net/NoTimeToWait6\n17:03:13 From Fabien : (for conservation, in art or not)\n17:03:28 From Daveed Benjamin : Love it Peter! Bit.ly for XR fragments\n17:03:55 From Matthias mprove : paraphrasing Jef Raskin: the beginning of a document should be usable as a filename to refer to the document itself\n17:04:43 From Leon van Kammen : Jeff Rascin\n17:04:51 From Peter Wasilko : https://en.wikipedia.org/wiki/The_Humane_Interface\n17:04:56 From Matthias mprove : /from his book The Humane Interface\n17:05:37 From Dene Grigar To Frode Hegland(privately) : I need to go to another meeting. Thanks for today!\n17:09:32 From Peter Wasilko : Just to play it safe, you might need to query IPFS for the URI phrase before using it on the extremely odd chance some else had previously generated it. In Law, we actually deal with this in naming corporations by breaking out an explicit Name Reservation step.\n17:09:37 From Fabien : for ref https://en.wikipedia.org/wiki/World_Geodetic_System\n17:12:06 From Karl Hebenstreit, Jr. : @Fabien are you talking about a universal (UTC) timestamp?\n17:13:03 From Fabien : was thinking more of the spatial aspect but timestamp could be an example too as we do have to be able to “convert” from one timezone to another or have different timescales too\n17:15:26 From Fabien : other example https://en.wikipedia.org/wiki/Web_Mercator_projection most of us might be familiar with, without being aware of it, point being that with its name and https://en.wikipedia.org/wiki/Well-known_text_representation_of_coordinate_reference_systems it’s explicited and thus can be converted from and to, basically avoiding “the one solution” that we lately notice just doesn’t cover all cases\n17:15:34 From Peter Wasilko : @Patrick, do you have any favorite Brutalist Architecture resources?\n17:17:02 From Patrick Lichty : Brutalism appreciation society on FB, sci fi movie Sankofa and Last Men,\n17:22:14 From Peter Wasilko : One can’t help contemplate Brutalism in VR.\n17:22:38 From Patrick Lichty : Book – Soviet Bus Stops\n17:26:38 From Peter Wasilko : @Brandel do you have a link to that work?\n17:29:02 From Karl Hebenstreit, Jr. : List of speakers from Future of Interface workshop: https://docs.google.com/document/d/1tUjMRyLHEtyzHotfAmQUnDsdMHuMWdBkmuG8TlRKEqs/edit\n17:29:54 From Brandel Zachernuk : https://zachernuk.neocities.org/2016/beestConfigurator/#wr=38&bl=170&ta=272&tb=157&ba=210&bb=94&fl=200&fa=1.371&\n17:30:00 From Karl Hebenstreit, Jr. : @Dene will want to view the Exploratorium: https://futureofinterface.org/exploratorium/\n17:30:15 From Karl Hebenstreit, Jr. : Thank you everyone, on to my next meeting…\n17:30:44 From Leon van Kammen : https://xrf.isvery.ninja/#List%20of%20fragments\n17:31:25 From Matthias mprove : Flashback: URLs were never meant to be seen by the end-user. This just happened some years after Berners-Lee/Cailliau have introduced their browser w/o visible links. Very insightful interview with Robert Cailliau (1999) at https://www.youtube.com/watch?v=x2GylLq59rI\n17:36:04 From Matthias mprove : related to Leons wonderful work :: my ChronoLinks contain perspective and and zoom and time and old map identifier. Example: click the 5 buttons below at EXPEDITION AUF TENERIFFA https://mprove.de/chronolab/world/humboldt/index.html#teneriffa\n(This is a 3d mapbox world)\n17:36:44 From Fabien : Reacted to “Flashback: URLs we…” with 👀\n17:43:44 From Fabien : see also https://git.benetou.fr/utopiah/text-code-xr-engine/issues/24 on “in 3D” screenshot (as glTF snapshot) from defined perspective, tried with “friends” via Immers and had a working version\n17:44:24 From Frode Hegland : Reacted to “see also https://git…” with 👍\n17:45:19 From Patrick Lichty : I have to go to another meeting soon. This was great. Thank you!\n17:46:21 From Matthias mprove : Bonus info: Chronoscope’s ChronoLinks can also contain commands that are executed once the link is loaded by a browser. Example: this animation is just one link. Video: https://twitter.com/chronohh/status/1551203958730985472\nDIY ChonoLink inside here https://twitter.com/chronohh/status/1550876398960709638\n17:47:15 From Fabien : https://wicg.github.io/scroll-to-text-fragment/\n17:48:12 From Matthias mprove : @Leon set a marker on something: This is again Jef Raskin, the distinction between focus of attention and locus of attention. /also from The Humane Interface\n17:48:22 From Fabien : https://markjs.io\n17:50:42 From Brandel Zachernuk : Just like SMS, never intended to be exposed as an end-user capability\n17:51:25 From Brandel Zachernuk : But there’s an explicit line from SMS to Twitter and many (most?) other social media platforms\n17:53:36 From Fabien : code related to federated share moment/position https://git.benetou.fr/utopiah/text-code-xr-engine/src/branch/federation/index.html#L222 that is accessible as a URL e.g https://immers.benetou.fr/s/639cb4171757b8382c120da1\n17:56:54 From Fabien : related on “pointing” at things in the real life with MR/AR/XR, this a “layer” of the “real” world https://git.benetou.fr/utopiah/text-code-xr-engine/issues/73\n18:09:04 From Matthias mprove : My sort of fun: Connecting the Colosseum with Stonehenge https://mprove.de/chrono?q=41.89018,12.49231&z=17.11&r=20&t=14&m=SZAT7400-MIII40-8&o=0.8&s=1&c=z,-5,9,vIAb28777542-16,h,z,-22,9,vIAb22010294-26,z,-7,9,9\n18:09:34 From Fabien : Reacted to “My sort of fun: Co…” with 👍\n18:15:44 From Peter Wasilko : We could exfiltrate data as a Visual Meta blipvert in VR. Rez a placard with the VM for 10th of a second. https://en.wikipedia.org/wiki/Blipvert\n\njeff rascins, phrases not urls purle-elk-mount-fuji (ipfs)\nlike that\n\nhyperbolic browsers, mindmaps\n\nfragment: highlight point of interest\n\npolitical cultural implications, who is it excluding, obligations, worst thing to apply\n\nXR Fragments,\nBrandel, url as authorisation (client decodes url, logic)\n\nvisual meta\n\nmauve: matrix, \n\nhttps://github.com/omigroup/gltf-extensions\n \nMauve (they/it) says:\nhttps://github.com/omigroup/gltf-extensions/pulls\n \nMauve (they/it) says:\nhttps://github.com/omigroup/gltf-extensions/pull/85\n \nMauve (they/it) says:\nhttps://blog.mauve.moe/slides/p2p-spatial-indexes/#1\n \nMauve (they/it) says:\nhttps://github.com/omigroup/omi-scripting-group\n \nMauve (they/it) says:\nhttps://unit.land/\n \n21:58\nme says:\nhttps://searxr.me\n \n22:06\nMT\nMauve (they/it)\nMauve (they/it) says:\nhttps://stardustxr.org/\n\n22:12\nme says:\nhttps://github.com/copy/v86\n \nMauve (they/it) says:\nhttps://webassembly.sh/\n \nMauve (they/it) says:\nhttps://matrix.to/#/#LoFirCy:mauve.moe","title":"29th May 2023 future of text presentation notes","tags":"Journal","modified":"20230530121043650","type":"text/plain"}, {"title":"4d3.jpg","text":"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kkkkkkkkkgEgkgEkkgAgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEkEkkkkkkgkAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEgkEkkkgAAkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAAkkkkkgEAgEEEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklkkkkkkkkk8kkkkDkkkkkkkkkkkkkggkAEkkgkkAkAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjkkkknYkkkxv0kkkEkkkkkkkkkkkgkkggAkkkEkgkkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhkkBuNXLypU1O4ByfgakkkkkkkkkkkgEEAkkgEkgkkAkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhpAkkkXwnlfNqtjj8CA8kkkkkkkkkkkkkEAkkgEkkEkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklgYkndnjzk8RZzB0ACK0kkkkkkkkkkkgEkkkkkEkgkgkkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkBkEkCjPUAG0kkkkkkkkkkkkkkkkEkkkEgEkgAEAkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkknEkkgpUkkkkkkkkkkkkkkkkkkkkkgAAEgkkkgkkEgEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkjkkkkAkkkkkkkkkkkkkkkkkkkkkkkkgkkkkkkkkkEkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEgkkEkkAggkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkgAAkEAAAgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkykkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkGkkkknkkikkmckEk8kkkggmAkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkH0kkkloskCEk5k7koFkkk9DaskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkigAcp5V9kgLjUHrE+F6iklxsJxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkg9CcTPjEn1yxEkMknKUuknwlI0kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhVC8ThpkgjePaTUkhDUcj0WK8kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkhfeQUGkkcmEEVvknIYEkZEjfkkgkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkAkkkkkkkkkkkkkkkkkkkkkkkkZkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk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","type":"image/jpeg"}, @@ -1302,7 +1306,7 @@ button.sidebar-toggle{ {"created":"20230427204906096","text":"comma-separated coordinates e.g. which after parsing can be accessed using `.x`, `.y`, `.z` etc.\n\n| type | example |\n|-|-|\n| vector2 | `1.2,3` or `0.4,0.6` | \n| vector3 | `1.2,3,4` or `0.4,0.6,5` | \n\nhere are some interactive examples:\n\n\u003Cdiv>\n \u003Ctextarea spellcheck=\"false\" autofocus class=\"sandboxify\">frags = {}\nok = xrfragment.Parser.parse('pos','1.2,2,3',frags)\nconsole.log( frags.pos.z )\n\n\u003C/textarea>\n\t\u003Cpre class=\"result\">\u003C/pre>\n\u003C/div>\n","tags":"","title":"vector","modified":"20230427205327718","type":"text/markdown"}, {"created":"20250904105246150","text":"> **NOTE**: a subtitle-file allows for hasslefree [XR movies](#XR%20Movies) optimized for accessibility (screenreader, text-to-speech)\n\nSubtitle files must be provided as [sidecar-files](#📜%20level0:%20File) either in:\n\n* standard SRT format (with the header renamed to WEBVTT, and `.srt` to `.vtt`)\n* WebVTT format (`.vtt`), in which case only the SRT-equivalent subset of features will be processed. Specifically, the parser recognizes plain cue blocks consisting of an optional identifier, a start --> end timestamp line, and unstyled text. Any additional WebVTT features such as styling, positioning, regions, notes, or metadata will be ignored.\n\n## Example .vtt file\n\n```\nWEBVTT\n\n1\n00:00:01.000 --> 00:00:04.000\nHello, world!\n\n2\n00:00:05.000 --> 00:00:07.000\nThis is an example subtitle.\n```\n\n","tags":"","title":"WebVTT subtitles","modified":"20250904105904428","type":"text/markdown"}, {"created":"20230427103350051","text":"","tags":"","title":"WebXR","modified":"20230427103400217"}, -{"created":"20230424092557827","text":"\u003Cb>Hyperlink the 3D world\u003C/b>.\u003Cbr>\nA standard for (deep)linking 3D files.\u003Cbr>\n''Turn'' 3D files ''into'' local-first, interactive, accessible \u003Ca href=\"#XR%Movies\">XR movies\u003C/a>,\u003Cbr>E-learnings & 3D websites.\n\u003Cbr>\u003Cbr>\n\n\u003Cdiv style=\"max-width:800px;box-shadow:none\" class=\"border\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/hyperlinking-the-3d-world.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\n\u003Cbr>\nEmpower existing 3D\n\u003Cu tabindex=\"0\">fileformats\n \u003Cspan>like \u003Cb>glTF\u003C/b>, \u003Cb>usdz\u003C/b>, \u003Cb>obj\u003C/b>, \u003Cb>collada\u003C/b> which are used in websites, Game Engines, and like \u003Ca href=\"#Edit%20a%203D%20scene%20file\">3D editors\u003C/a>.\u003Cbr>XR Fragments makes 3D files interactive \u003C/span>\n\u003C/u> via \n\u003Cu tabindex=\"0\">URLS\n \u003Cspan>, using any \n \u003Cu tabindex=\"0\">protocol\n \u003Cspan>, not necessarily served via HTTP, but also \u003Ca href=\"https://ipfs.com\" target=\"_blank\">IPFS\u003C/a>, \u003Ca href=\"https://hypercore-protocol.github.io/new-website/guides/getting-started/\" target=\"_blank\">hypercore\u003C/a>, \u003Ca href=\"https://github.com/webtorrent/webtorrent\" target=\"_blank\">webtorrent\u003C/a> e.g\u003C/span>\n\t \u003C/u>\n\t\u003C/span>\n\u003C/u>.\nThis allows spatial\n \u003Cu tabindex=\"0\">interactions \n\t \u003Cspan>, like browser-navigation, teleportation, importing scenes, spatial hypermedia, allowing useful audiovisual immersive\u003C/span>\n\t\t\u003Cu tabindex=\"0\">experiences\n\t\t \u003Cspan>like e-learnings, quiz, realtime-rendered 3D movies, and audiovisual storytelling\u003C/span>\n\t\t\u003C/u>\n\t\u003C/u>\nvia 3D \n\u003Cu tabindex=\"0\">metadata\n \u003Cspan>, so called 'extras' embedded in 3D files ('custom properties' in \u003Ca href=\"https://blender.org\" target=\"_blank\">Blender\u003C/a>)\u003C/span>\n\u003C/u>\nand promote URI's and \n\u003Cu tabindex=\"0\">Local-First\n \u003Cspan> data, which lives local, and ideally only syncs/shares elsewhere via ''open user-operated internet'' protocols.\u003C/span>\n\u003C/u>\n.\n\n\n\u003Cdiv style=\"text-align:center\">\n\u003Cb style=\"font-size:11px\">~10 mins podcast introduction\u003C/b>\u003Cbr>\n\u003Caudio controls src=\"https://coderofsalvation.codeberg.page/xrfragment.media/podcast-xrfragments-intro.mp3\" type=\"audio/mpeg\">\n\u003C/audio>\n\u003C/div>\n\u003Cbr>\nAvoid \u003Cb>cloud lock-in\u003C/b>, by making your 3D experiences \u003Cb>portable\u003C/b> to \u003Cb>outlast\u003C/b> current technologies.\n\n\u003Cdiv style=\"display:inline-block; padding:0px 20px; border-radius:5px 5px 0px 0px; border:2px solid #555;background: #ededed;font-weight: bold;font-size: 16px;border-bottom: none;\">website.glb#scene1\u003C/div>\n\u003Ca href=\"/example/aframe/sandbox?./../../assets/website.glb\" target=\"_blank\">\n \u003Cimg src=\"https://coderofsalvation.codeberg.page/xrfragment.media/images/website.glb.jpg\" style=\"border-left: 2px solid #555; cursor:pointer\">\n\u003C/a>\n\u003Ccenter>\n \u003Ca class=\"btn\" href=\"https://coderofsalvation.codeberg.page/xrfragment-haxe/example/aframe/sandbox/?./../../assets/website.glb\" target=\"_blank\" style=\"padding:10px 30px\">Try 3D file\u003C/a>\n\u003C/center>\n\n\u003Cbr>\n\u003Cdiv style=\"max-width:800px;box-shadow:none\" class=\"border\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/showreel_2024.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\n\u003Cdiv>#spatialweb #openinternet #interoperable #accessibility #3Dhypermedia\u003C/div>\n\u003Ccenter>\n \u003Ca class=\"btn\" href=\"https://matrix.to/#/#xrfragments:matrix.org\" target=\"_blank\" style=\"padding:10px 30px\">Join Matrix Community\u003C/a>\n\u003C/center>\n\u003Cbr>\n\n\u003Ctable style=\"border:none\">\n \u003Ctr>\n\t \u003Ctd style=\"border:none;vertical-align:top; width:49%\">\n\t\t\t\u003Cb>🎨 no-code design-first\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>🏄 surf 3D scenes in AR/VR\u003C/b>\u003Cbr/>\n\t \u003Cb>📎 embeddable\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>🤝 interoperable\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>⛔ network-agnostic, local-first\u003C/b>\u003Cbr/>\n \u003Cb>💾 compatible with glTF FBX USDZ OBJ and more\u003C/b>\u003Cbr/>\t\t\t\t\t\n\t\t\u003C/td>\n\t\t\u003Ctd style=\"border:none;vertical-align:top\">\n\t\t\t\u003Cb>🔮 99% compatible with \u003Cb>future fileformats\u003C/b>\u003C/b>\u003Cbr/>\n \u003Cb>🌱 friendly to opensource & corporations\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>❤️ \u003Cb>no\u003C/b> fileformat or editor lock-in\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>🧑‍🌾 solo-user read-only 3D content\u003C/b>\u003Cbr/>\n\t\t\u003C/td>\n\t\u003C/tr>\n\u003C/table>\n\u003Cbr>\n\n\u003Ch2>Made for 3D designers\u003C/h2>\n[img[xrfragment.jpg]]\n\u003Cbr>\u003CBr>\n\n\n\u003C\u003C\u003C\nSee [[How it works]]\n\u003C\u003C\u003C\n\n\n\u003Ch2>TLDR\u003C/h2>\n\nThe \u003Cb>TLDR\u003C/b> of processing 3D files with XR Fragments [pseudocode]:\n\u003Cbr>\u003Cbr>\n\u003Cdiv>\n \u003Ctextarea spellcheck=\"false\" class=\"sandboxify noresult\" style=\"min-height:190px;width:100%;max-width:800px;\">foreach object in scene:\n if object.extra.href:\n\t object.onClick = updateCameraFromURL(object.extra.href, camera, timeline)\n \nif changed(app.URL):\n camera.updateCameraFromURL(app.URL)\n \t\ndocument.location.href = 'my.org/foo.glb#roomC'\n\n\u003C/textarea>\n\u003C/div> \n\u003Cbr>\n\u003Ch2>Virtual worlds without lock-in\u003C/h2>\n\nScale beyond companies, appstores, network protocols and file-formats:\n\n\u003Cdiv style=\"max-width:600px;box-shadow:none;padding:15px\" class=\"border\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/xrfragment.bumper2.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\u003Cbr>\n\n\u003Ch3>Virtual worlds connected via URLs\u003C/h3>\n\n[img[urls.svg]]\n\n\u003Cbr>\n\nXR Fragments is a spec to link 3D models into a basic interactive XR experience.\u003Cbr>\nThink of it as bundling virtual worlds into a \u003Cb>spatial book\u003C/b>.\u003Cbr>\n\u003Cb>Basically:\u003C/b> 3D hypermedia files (the middle greenzone below).\u003Cbr>\n\u003Cbr>\u003Cbr>\n\u003Cdiv style=\"width:100%;max-width:900px;border-radius:15px;box-shadow:none;padding:20px\" class=\"border\">\n[img[xrfsweetspot.jpg]]\n\u003C/div>\n\u003Cbr>\u003Cbr>\nXR Fragments \u003Cb>empowers designers\u003C/b> to embed \u003Cb>simple interactions & navigation\u003C/b> inside a \u003Cb>3D file\u003C/b>.\u003Cbr>\nThis \u003Cb>no longer\u003C/b> requires developers to implement trivial interactive stuff.\u003Cbr>\nIt promotes \u003Cb>design-first, secure, durable and interoperable\u003C/b> XR experiences from \u003Cb>3D models\u003C/b>, basically 3D hypermedia, mitigating \u003Cb>handcoded-XR-apps-as-3D-content-burial-sites\u003C/b>.\u003Cbr>\n\u003Cbr>\n\u003Ch2>Why focus on designers and 3D files?\u003C/h2>\n\u003Cbr>\n\u003Cquote>\u003Ci>\"Future 3D file formats commoditize yesterdays 3D engines\"\u003C/i> ~ Leon van Kammen\u003C/quote>\n\u003Cbr>\u003Cbr>\nDevelopers tend to fall in love with \u003Cb>specific shiny\u003C/b> 3D technologies, which typically \u003Cb>buries\u003C/b> 3D content inside them.\u003Cbr>\nThese however, still lack \u003Cb>addressibility\u003C/b> and \u003Cb>interoperability\u003C/b> unlike \u003Cb>3D Models\u003C/b>, which can use XR Fragments \u003Cb>URLs\u003C/b> as a basic primitive.\n\u003Cbr>\u003Cbr>\n\u003Ch2>Getting Started\u003C/h2>\n\nJust get your hands on a 3D editor and follow the steps in the video:\n\u003Cbr>\u003Cbr>\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/gettingstarted2024.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\u003Cbr>\u003CBr>\nCheck [[How it works|How it works]], or \u003Ca href=\"https://coderofsalvation.codeberg.page/xrfragment-haxe/example/aframe/sandbox/?./../../assets/website.glb\" target=\"_blank\">view a \u003Cb>demo.glb\u003C/b> scene right now\u003C/a>, or see the menu in the left corner for more.\n\u003Cbr>\u003Cbr>\n\u003Ch2>Presentation\u003C/h2>\n\u003Cbr>\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/bfxqm1q_GXw?start=1445\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen>\u003C/iframe>\n\n\u003C!-- persist telescopic unfolds -->\n\u003C\u003Cscript>>\n\u003Cscript>\n([...document.querySelectorAll('u')]).map( (u) => {\n u.addEventListener('click', e => e.target.className = 'show' )\n});\n\u003C/script>\n\u003C\u003Cscript 0>>\n","tags":"Home","title":"XR Fragments","modified":"20250926173734489","list-before":"How it works"}, +{"created":"20230424092557827","text":"\u003Cb>Hyperlink the 3D world\u003C/b>.\u003Cbr>\nA standard for (deep)linking 3D files.\u003Cbr>\n''Turn'' 3D files ''into'' local-first, interactive, accessible \u003Ca href=\"#XR%Movies\">XR movies\u003C/a>,\u003Cbr>E-learnings & 3D websites.\n\u003Cbr>\u003Cbr>\n\n\u003Cdiv style=\"max-width:800px;box-shadow:none\" class=\"border\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/hyperlinking-the-3d-world.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\n\u003Cbr>\nEmpower existing 3D\n\u003Cu tabindex=\"0\">fileformats\n \u003Cspan>like \u003Cb>glTF\u003C/b>, \u003Cb>usdz\u003C/b>, \u003Cb>obj\u003C/b>, \u003Cb>collada\u003C/b> which are used in websites, Game Engines, and like \u003Ca href=\"#Edit%20a%203D%20scene%20file\">3D editors\u003C/a>.\u003Cbr>XR Fragments makes 3D files interactive \u003C/span>\n\u003C/u> via \n\u003Cu tabindex=\"0\">URLS\n \u003Cspan>, using any \n \u003Cu tabindex=\"0\">protocol\n \u003Cspan>, not necessarily served via HTTP, but also \u003Ca href=\"https://ipfs.com\" target=\"_blank\">IPFS\u003C/a>, \u003Ca href=\"https://hypercore-protocol.github.io/new-website/guides/getting-started/\" target=\"_blank\">hypercore\u003C/a>, \u003Ca href=\"https://github.com/webtorrent/webtorrent\" target=\"_blank\">webtorrent\u003C/a> e.g\u003C/span>\n\t \u003C/u>\n\t\u003C/span>\n\u003C/u>.\nThis allows spatial\n \u003Cu tabindex=\"0\">interactions \n\t \u003Cspan>, like browser-navigation, teleportation, importing scenes, spatial hypermedia, allowing useful audiovisual immersive\u003C/span>\n\t\t\u003Cu tabindex=\"0\">experiences\n\t\t \u003Cspan>like e-learnings, quiz, realtime-rendered 3D movies, and audiovisual storytelling\u003C/span>\n\t\t\u003C/u>\n\t\u003C/u>\nvia 3D \n\u003Cu tabindex=\"0\">metadata\n \u003Cspan>, so called 'extras' embedded in 3D files ('custom properties' in \u003Ca href=\"https://blender.org\" target=\"_blank\">Blender\u003C/a>)\u003C/span>\n\u003C/u>\nand promote URI's and \n\u003Cu tabindex=\"0\">Local-First\n \u003Cspan> data, which lives local, and ideally only syncs/shares elsewhere via ''open user-operated internet'' protocols.\u003C/span>\n\u003C/u>\n.\n\n\n\u003Cdiv style=\"text-align:center\">\n\u003Cb style=\"font-size:11px\">~10 mins podcast introduction\u003C/b>\u003Cbr>\n\u003Caudio controls src=\"https://coderofsalvation.codeberg.page/xrfragment.media/podcast-xrfragments-intro.mp3\" type=\"audio/mpeg\">\n\u003C/audio>\n\u003C/div>\n\u003Cbr>\nAvoid \u003Cb>cloud lock-in\u003C/b>, by making your 3D experiences \u003Cb>portable\u003C/b> to \u003Cb>outlast\u003C/b> current technologies.\n\n\u003Cdiv style=\"display:inline-block; padding:0px 20px; border-radius:5px 5px 0px 0px; border:2px solid #555;background: #ededed;font-weight: bold;font-size: 16px;border-bottom: none;\">website.glb#scene1\u003C/div>\n\u003Ca href=\"https://coderofsalvation.codeberg.page/xrfragment-haxe/example/aframe/sandbox/?./../../assets/website.glb\" target=\"_blank\">\n \u003Cimg src=\"https://coderofsalvation.codeberg.page/xrfragment.media/images/website.glb.jpg\" style=\"border-left: 2px solid #555; cursor:pointer\">\n\u003C/a>\n\u003Ccenter>\n \u003Ca class=\"btn\" href=\"https://coderofsalvation.codeberg.page/xrfragment-haxe/example/aframe/sandbox/?./../../assets/website.glb\" target=\"_blank\" style=\"padding:10px 30px\">Try 3D file\u003C/a>\n\u003C/center>\n\n\u003Cbr>\n\u003Cdiv style=\"max-width:800px;box-shadow:none\" class=\"border\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/showreel_2024.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\n\u003Cdiv>#spatialweb #openinternet #interoperable #accessibility #3Dhypermedia\u003C/div>\n\u003Ccenter>\n \u003Ca class=\"btn\" href=\"https://matrix.to/#/#xrfragments:matrix.org\" target=\"_blank\" style=\"padding:10px 30px\">Join Matrix Community\u003C/a>\n\u003C/center>\n\u003Cbr>\n\n\u003Ctable style=\"border:none\">\n \u003Ctr>\n\t \u003Ctd style=\"border:none;vertical-align:top; width:49%\">\n\t\t\t\u003Cb>🎨 no-code design-first\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>🏄 surf 3D scenes in AR/VR\u003C/b>\u003Cbr/>\n\t \u003Cb>📎 embeddable\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>🤝 interoperable\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>⛔ network-agnostic, local-first\u003C/b>\u003Cbr/>\n \u003Cb>💾 compatible with glTF FBX USDZ OBJ and more\u003C/b>\u003Cbr/>\t\t\t\t\t\n\t\t\u003C/td>\n\t\t\u003Ctd style=\"border:none;vertical-align:top\">\n\t\t\t\u003Cb>🔮 99% compatible with \u003Cb>future fileformats\u003C/b>\u003C/b>\u003Cbr/>\n \u003Cb>🌱 friendly to opensource & corporations\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>❤️ \u003Cb>no\u003C/b> fileformat or editor lock-in\u003C/b>\u003Cbr/>\n\t\t\t\u003Cb>🧑‍🌾 solo-user read-only 3D content\u003C/b>\u003Cbr/>\n\t\t\u003C/td>\n\t\u003C/tr>\n\u003C/table>\n\u003Cbr>\n\n\u003Ch2>Made for 3D designers\u003C/h2>\n[img[xrfragment.jpg]]\n\u003Cbr>\u003CBr>\n\n\n\u003C\u003C\u003C\nSee [[How it works]]\n\u003C\u003C\u003C\n\n\n\u003Ch2>TLDR\u003C/h2>\n\nThe \u003Cb>TLDR\u003C/b> of processing 3D files with XR Fragments [pseudocode]:\n\u003Cbr>\u003Cbr>\n\u003Cdiv>\n \u003Ctextarea spellcheck=\"false\" class=\"sandboxify noresult\" style=\"min-height:190px;width:100%;max-width:800px;\">foreach object in scene:\n if object.extra.href:\n\t object.onClick = updateCameraFromURL(object.extra.href, camera, timeline)\n \nif changed(app.URL):\n camera.updateCameraFromURL(app.URL)\n \t\ndocument.location.href = 'my.org/foo.glb#roomC'\n\n\u003C/textarea>\n\u003C/div> \n\u003Cbr>\n\u003Ch2>Virtual worlds without lock-in\u003C/h2>\n\nScale beyond companies, appstores, network protocols and file-formats:\n\n\u003Cdiv style=\"max-width:600px;box-shadow:none;padding:15px\" class=\"border\">\n\u003C$videojs _autoplay controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/xrfragment.bumper2.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\u003Cbr>\n\n\u003Ch3>Virtual worlds connected via URLs\u003C/h3>\n\n[img[urls.svg]]\n\n\u003Cbr>\n\nXR Fragments is a spec to link 3D models into a basic interactive XR experience.\u003Cbr>\nThink of it as bundling virtual worlds into a \u003Cb>spatial book\u003C/b>.\u003Cbr>\n\u003Cb>Basically:\u003C/b> 3D hypermedia files (the middle greenzone below).\u003Cbr>\n\u003Cbr>\u003Cbr>\n\u003Cdiv style=\"width:100%;max-width:900px;border-radius:15px;box-shadow:none;padding:20px\" class=\"border\">\n[img[xrfsweetspot.jpg]]\n\u003C/div>\n\u003Cbr>\u003Cbr>\nXR Fragments \u003Cb>empowers designers\u003C/b> to embed \u003Cb>simple interactions & navigation\u003C/b> inside a \u003Cb>3D file\u003C/b>.\u003Cbr>\nThis \u003Cb>no longer\u003C/b> requires developers to implement trivial interactive stuff.\u003Cbr>\nIt promotes \u003Cb>design-first, secure, durable and interoperable\u003C/b> XR experiences from \u003Cb>3D models\u003C/b>, basically 3D hypermedia, mitigating \u003Cb>handcoded-XR-apps-as-3D-content-burial-sites\u003C/b>.\u003Cbr>\n\u003Cbr>\n\u003Ch2>Why focus on designers and 3D files?\u003C/h2>\n\u003Cbr>\n\u003Cquote>\u003Ci>\"Future 3D file formats commoditize yesterdays 3D engines\"\u003C/i> ~ Leon van Kammen\u003C/quote>\n\u003Cbr>\u003Cbr>\nDevelopers tend to fall in love with \u003Cb>specific shiny\u003C/b> 3D technologies, which typically \u003Cb>buries\u003C/b> 3D content inside them.\u003Cbr>\nThese however, still lack \u003Cb>addressibility\u003C/b> and \u003Cb>interoperability\u003C/b> unlike \u003Cb>3D Models\u003C/b>, which can use XR Fragments \u003Cb>URLs\u003C/b> as a basic primitive.\n\u003Cbr>\u003Cbr>\n\u003Ch2>Getting Started\u003C/h2>\n\nJust get your hands on a 3D editor and follow the steps in the video:\n\u003Cbr>\u003Cbr>\n\u003Cdiv style=\"max-width:600px\">\n\u003C$videojs controls=\"controls\" aspectratio=\"16:9\" preload=\"auto\" poster=\"\" fluid=\"fluid\" class=\"vjs-big-play-centered\">\n \u003Csource src=\"https://coderofsalvation.codeberg.page/xrfragment.media/gettingstarted2024.mp4\" type=\"video/mp4\"/>\n\u003C/$videojs>\n\u003C/div>\n\u003Cbr>\u003CBr>\nCheck [[How it works|How it works]], or \u003Ca href=\"https://coderofsalvation.codeberg.page/xrfragment-haxe/example/aframe/sandbox/?./../../assets/website.glb\" target=\"_blank\">view a \u003Cb>demo.glb\u003C/b> scene right now\u003C/a>, or see the menu in the left corner for more.\n\u003Cbr>\u003Cbr>\n\u003Ch2>Presentation\u003C/h2>\n\u003Cbr>\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/bfxqm1q_GXw?start=1445\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen>\u003C/iframe>\n\n\u003C!-- persist telescopic unfolds -->\n\u003C\u003Cscript>>\n\u003Cscript>\n([...document.querySelectorAll('u')]).map( (u) => {\n u.addEventListener('click', e => e.target.className = 'show' )\n});\n\u003C/script>\n\u003C\u003Cscript 0>>\n","tags":"Home","title":"XR Fragments","modified":"20250926181611631","list-before":"How it works"}, {"created":"20250903111630328","text":"The viewer should ideally \u003Cb>presents a play-button\u003C/b> when:\n\n* at least one animationdata-item is defined in the 3D file\n* and/or when a timeline file (soundtrack or subtitle) sidecar-file is detected\n\nSee [complementary file](#📜%20level0:%20File) for detection of sidecar-files, for enhanced accessibility via [WebVTT subtitles](#WebVTT%20subtitles), thumbnails, soundtrack e.g.\n\n\n\n","tags":"","title":"XR Movies","modified":"20250904105805727","type":"text/markdown"}, {"created":"20250516081212327","text":"How can applications discover 3D experiences on a network?\n\n> Answer: the **XRF microformat** \n\nThe XRF microformat are **OPTIONAL** network heuristics which applications can detect across various usecases.\n\n## via HTML webpage\n\nIf the browser/application requests an webpage (`https://nlnet.nl` e.g.) it should check for the [rel-me microformat](https://gmpg.org/xfn/) :\n\n```\n\u003Clink rel=\"me\" href=\"scene.xrf.glb\"/>\n```\n\nThis way the application loads `https://nlnet.nl/scene.glb` when the user types `nlnet.nl` into the URLbar.\u003Cbr>\nOptionally, `type` can be specified for dynamically generated 3D files:\n\n```\n\u003Clink rel=\"me\" href=\"https://worlds.org/scene.php\" type=\"model/gltf+binary\" />\n```\n\nThe `type`-attribute is for fallback-purposes.\u003Cbr>\nViewer-supported 3D file-extensions (`.glb` e.g.) will **ALWAYS** take precedence over the (non)presence of the `type` attribute.\u003Cbr>\nThe reason is that platforms (Mastodon 'labels' e.g.) don't allow specifying type-attributes.\u003Cbr>\nAnother reason is that XR Fragments is filetype-agnostic, so flexibility is expected on the viewer-side.\n\n> NOTE: in case of multiple 3D files mentioned in `\u003Clink rel=\"me\"`, only the first (supported 3D filetype) will be chosen.\n\n## via WebFinger\n\nWhen John has an account on foo.com, how can other applications request his 3D homepage by simply entering `john@foo.com`?\n\n> Answer: it can be requested at `https://foo.com/.well-known/webfinger?resource=acct:john@foo.com`, resulting in:\n\n```\n{\n \"subject\": \"acct:john@foo.com\",\n \"aliases\": [\n \"https://mastodon.example/social/john\",\n \"https://john.foo.com\",\n \"https://3d.john.foo.com/model/scene.glb\"\n ],\n \"properties\": {\n \"http://schema.org/name\": \"John Doe\",\n \"http://schema.org/description\": \"Developer, 3D Enthusiast, and Social Explorer\"\n },\n \"links\": [\n {\n \"rel\": \"http://ostatus.org/schema/1.0/subscribe\",\n \"template\": \"https://mastodon.example/social/john/{uri}\"\n },\n {\n \"rel\": \"self\",\n \"type\": \"text/html\",\n \"href\": \"https://john.foo.com\"\n },\n {\n \"rel\": \"me\",\n \"type\": \"text/html\",\n \"href\": \"https://john.foo.com\"\n },\n {\n \"rel\": \"me\",\n \"type\": \"model/gltf+binary\",\n \"href\": \"https://3d.john.foo.com/model/scene.xrf.glb\"\n }\n ]\n}\n```\n\nThis way the application will load `https://3d.john.foo.com/model/scene.glb` when the user types `john@foo.com` into the user field.\n\n## via Text (URI)\n\nAnother way for an application to trigger loading a 3D scene is by detecting URI's of 3D scene-files any text:\n\n* `foo.glb` (or any other popular 3D extension)\n* `https://foo.com/scene.glb` (or any other popular protocol)\n\nThis way, the application can highlight the link whenever it detects the URI (in a text-file or text-section of a 3D model)","tags":"[[📜 level1: URL]]","title":"XRF microformat","modified":"20250922171213120","type":"text/markdown"}, {"created":"20250910100333866","text":"Prefixing the `xrf:` to [href](#href)-values **will prevent** [level2](#📜%20level2:%20explicit%20links) [href](#href)-values from changing the top-Level URL.\n\n> **Usecase**: for non-shareable URLs like `href: xrf:#t=4,5`, to display a stateful msg e.g.).\n\n**Reason:** XR Fragments is inspired by HTML's [href-attribute](https://en.wikipedia.org/wiki/Hyperlink), which does various things:\n\n1. it updates the browser-location\n2. it makes something clickable\n3. it jumps to another document / elsewhere in the same document\n4. and more\n\nThe `xrf:` scheme will just do 2 & 3 (so the URL-values will not leak into the top-level URL).\n\n## compliance with RFC 3986\n\n* unimplemented/unknown URI schemes (`xrf:...` e.g.) will not update the top-level URL","tags":"[[📜 level4: prefix operators]] level4","title":"xrf: URI scheme","modified":"20250910100955904","type":"text/markdown"},