/** vim: et:ts=4:sw=4:sts=4 * @license RequireJS 2.1.22 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/requirejs for details */ /* ==================================================================== | | Amber Smalltalk | http://amber-lang.net | ====================================================================== ====================================================================== | | Copyright (c) 2010-2014 | Nicolas Petton | | Copyright (c) 2012-2014 | The Amber team https://github.com/amber-smalltalk?tab=members | Amber contributors https://github.com/amber-smalltalk/amber/graphs/contributors | | Amber is released under the MIT license | | Permission is hereby granted, free of charge, to any person obtaining | a copy of this software and associated documentation files (the | 'Software'), to deal in the Software without restriction, including | without limitation the rights to use, copy, modify, merge, publish, | distribute, sublicense, and/or sell copies of the Software, and to | permit persons to whom the Software is furnished to do so, subject to | the following conditions: | | The above copyright notice and this permission notice shall be | included in all copies or substantial portions of the Software. | | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ==================================================================== */ // CodeMirror, copyright (c) by Marijn Haverbeke and others // Distributed under an MIT license: http://codemirror.net/LICENSE /*! * jQuery JavaScript Library v2.0.3 * http://jquery.com/ * * Includes Sizzle.js * http://sizzlejs.com/ * * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2013-07-03T13:30Z */ /*! * Sizzle CSS Selector Engine v1.9.4-pre * http://sizzlejs.com/ * * Copyright 2013 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2013-06-03 */ /*! jQuery UI - v1.11.4 - 2015-03-11 * http://jqueryui.com * Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ /*! * jQuery UI Core 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/category/ui-core/ */ /*! * jQuery UI Widget 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/jQuery.widget/ */ /*! * jQuery UI Mouse 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/mouse/ */ /*! * jQuery UI Position 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/position/ */ /*! * jQuery UI Accordion 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/accordion/ */ /*! * jQuery UI Menu 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/menu/ */ /*! * jQuery UI Autocomplete 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/autocomplete/ */ /*! * jQuery UI Button 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/button/ */ /*! * jQuery UI Datepicker 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/datepicker/ */ /*! * jQuery UI Draggable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/draggable/ */ /*! * jQuery UI Resizable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/resizable/ */ /*! * jQuery UI Dialog 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/dialog/ */ /*! * jQuery UI Droppable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/droppable/ */ /*! * jQuery UI Effects 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/category/effects-core/ */ /*! * jQuery Color Animations v2.1.2 * https://github.com/jquery/jquery-color * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * Date: Wed Jan 16 08:47:09 2013 -0600 */ /*! * jQuery UI Effects Blind 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/blind-effect/ */ /*! * jQuery UI Effects Bounce 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/bounce-effect/ */ /*! * jQuery UI Effects Clip 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/clip-effect/ */ /*! * jQuery UI Effects Drop 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/drop-effect/ */ /*! * jQuery UI Effects Explode 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/explode-effect/ */ /*! * jQuery UI Effects Fade 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/fade-effect/ */ /*! * jQuery UI Effects Fold 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/fold-effect/ */ /*! * jQuery UI Effects Highlight 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/highlight-effect/ */ /*! * jQuery UI Effects Size 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/size-effect/ */ /*! * jQuery UI Effects Scale 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/scale-effect/ */ /*! * jQuery UI Effects Puff 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/puff-effect/ */ /*! * jQuery UI Effects Pulsate 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/pulsate-effect/ */ /*! * jQuery UI Effects Shake 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/shake-effect/ */ /*! * jQuery UI Effects Slide 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/slide-effect/ */ /*! * jQuery UI Effects Transfer 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/transfer-effect/ */ /*! * jQuery UI Progressbar 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/progressbar/ */ /*! * jQuery UI Selectable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/selectable/ */ /*! * jQuery UI Selectmenu 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/selectmenu */ /*! * jQuery UI Slider 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/slider/ */ /*! * jQuery UI Sortable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/sortable/ */ /*! * jQuery UI Spinner 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/spinner/ */ /*! * jQuery UI Tabs 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/tabs/ */ /*! * jQuery UI Tooltip 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/tooltip/ */ var requirejs,require,define;!function(global){function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var o;for(o=0;o-1&&(!e[o]||!t(e[o],o,e));o-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var o;for(o in e)if(hasProp(e,o)&&t(e[o],o))break}function mixin(e,t,o,r){return t&&eachProp(t,function(t,n){(o||!hasProp(e,n))&&(!r||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[n]=t:(e[n]||(e[n]={}),mixin(e[n],t,o,r)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,o,r){var n=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return n.requireType=e,n.requireModules=r,o&&(n.originalError=o),n}function newContext(e){function t(e){var t,o;for(t=0;t0&&(e.splice(t-1,2),t-=2)}}function o(e,o,r){var n,s,i,a,l,c,d,u,h,f,p,g,m=o&&o.split("/"),v=C.map,_=v&&v["*"];if(e&&(e=e.split("/"),d=e.length-1,C.nodeIdCompat&&jsSuffixRegExp.test(e[d])&&(e[d]=e[d].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&m&&(g=m.slice(0,m.length-1),e=g.concat(e)),t(e),e=e.join("/")),r&&v&&(m||_)){i=e.split("/");e:for(a=i.length;a>0;a-=1){if(c=i.slice(0,a).join("/"),m)for(l=m.length;l>0;l-=1)if(s=getOwn(v,m.slice(0,l).join("/")),s&&(s=getOwn(s,c))){u=s,h=a;break e}!f&&_&&getOwn(_,c)&&(f=getOwn(_,c),p=a)}!u&&f&&(u=f,h=p),u&&(i.splice(0,h,u),e=i.join("/"))}return n=getOwn(C.pkgs,e),n?n:e}function r(e){isBrowser&&each(scripts(),function(t){return t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===b.contextName?(t.parentNode.removeChild(t),!0):void 0})}function n(e){var t=getOwn(C.paths,e);return t&&isArray(t)&&t.length>1?(t.shift(),b.require.undef(e),b.makeRequire(null,{skipMap:!0})([e]),!0):void 0}function s(e){var t,o=e?e.indexOf("!"):-1;return o>-1&&(t=e.substring(0,o),e=e.substring(o+1,e.length)),[t,e]}function i(e,t,r,n){var i,a,l,c,d=null,u=t?t.name:null,h=e,f=!0,p="";return e||(f=!1,e="_@r"+(N+=1)),c=s(e),d=c[0],e=c[1],d&&(d=o(d,u,n),a=getOwn(T,d)),e&&(d?p=a&&a.normalize?a.normalize(e,function(e){return o(e,u,n)}):-1===e.indexOf("!")?o(e,u,n):e:(p=o(e,u,n),c=s(p),d=c[0],p=c[1],r=!0,i=b.nameToUrl(p))),l=!d||a||r?"":"_unnormalized"+(O+=1),{prefix:d,name:p,parentMap:t,unnormalized:!!l,url:i,originalName:h,isDefine:f,id:(d?d+"!"+p:p)+l}}function a(e){var t=e.id,o=getOwn(w,t);return o||(o=w[t]=new b.Module(e)),o}function l(e,t,o){var r=e.id,n=getOwn(w,r);!hasProp(T,r)||n&&!n.defineEmitComplete?(n=a(e),n.error&&"error"===t?o(n.error):n.on(t,o)):"defined"===t&&o(T[r])}function c(e,t){var o=e.requireModules,r=!1;t?t(e):(each(o,function(t){var o=getOwn(w,t);o&&(o.error=e,o.events.error&&(r=!0,o.emit("error",e)))}),r||req.onError(e))}function d(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(b.defQueueMap[t]=!0),k.push(e)}),globalDefQueue=[])}function u(e){delete w[e],delete M[e]}function h(e,t,o){var r=e.map.id;e.error?e.emit("error",e.error):(t[r]=!0,each(e.depMaps,function(r,n){var s=r.id,i=getOwn(w,s);!i||e.depMatched[n]||o[s]||(getOwn(t,s)?(e.defineDep(n,T[s]),e.check()):h(i,t,o))}),o[r]=!0)}function f(){var e,t,o=1e3*C.waitSeconds,s=o&&b.startTime+o<(new Date).getTime(),i=[],a=[],l=!1,d=!0;if(!_){if(_=!0,eachProp(M,function(e){var o=e.map,c=o.id;if(e.enabled&&(o.isDefine||a.push(e),!e.error))if(!e.inited&&s)n(c)?(t=!0,l=!0):(i.push(c),r(c));else if(!e.inited&&e.fetched&&o.isDefine&&(l=!0,!o.prefix))return d=!1}),s&&i.length)return e=makeError("timeout","Load timeout for modules: "+i,null,i),e.contextName=b.contextName,c(e);d&&each(a,function(e){h(e,{},{})}),s&&!t||!l||!isBrowser&&!isWebWorker||S||(S=setTimeout(function(){S=0,f()},50)),_=!1}}function p(e){hasProp(T,e[0])||a(i(e[0],null,!0)).init(e[1],e[2])}function g(e,t,o,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(o,t,!1)}function m(e){var t=e.currentTarget||e.srcElement;return g(t,b.onScriptLoad,"load","onreadystatechange"),g(t,b.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function v(){var e;for(d();k.length;){if(e=k.shift(),null===e[0])return c(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));p(e)}b.defQueueMap={}}var _,$,b,y,S,C={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},w={},M={},x={},k=[],T={},A={},P={},N=1,O=1;return y={require:function(e){return e.require?e.require:e.require=b.makeRequire(e.map)},exports:function(e){return e.usingExports=!0,e.map.isDefine?e.exports?T[e.map.id]=e.exports:e.exports=T[e.map.id]={}:void 0},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(C.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},$=function(e){this.events=getOwn(x,e.id)||{},this.map=e,this.shim=getOwn(C.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},$.prototype={init:function(e,t,o,r){r=r||{},this.inited||(this.factory=t,o?this.on("error",o):this.events.error&&(o=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=o,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,b.startTime=(new Date).getTime();var e=this.map;return this.shim?void b.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()})):e.prefix?this.callPlugin():this.load()}},load:function(){var e=this.map.url;A[e]||(A[e]=!0,b.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,o=this.map.id,r=this.depExports,n=this.exports,s=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(s)){try{n=b.execCb(o,s,r,n)}catch(i){e=i}if(this.map.isDefine&&void 0===n&&(t=this.module,t?n=t.exports:this.usingExports&&(n=this.exports)),e){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",c(this.error=e);"undefined"!=typeof console&&console.error?console.error(e):req.onError(e)}}else n=s;if(this.exports=n,this.map.isDefine&&!this.ignore&&(T[o]=n,req.onResourceLoad)){var a=[];each(this.depMaps,function(e){a.push(e.normalizedMap||e)}),req.onResourceLoad(b,this.map,a)}u(o),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(b.defQueueMap,o)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,r=i(e.prefix);this.depMaps.push(r),l(r,"defined",bind(this,function(r){var n,s,d,h=getOwn(P,this.map.id),f=this.map.name,p=this.map.parentMap?this.map.parentMap.name:null,g=b.makeRequire(e.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(r.normalize&&(f=r.normalize(f,function(e){return o(e,p,!0)})||""),s=i(e.prefix+"!"+f,this.map.parentMap),l(s,"defined",bind(this,function(e){this.map.normalizedMap=s,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),d=getOwn(w,s.id),void(d&&(this.depMaps.push(s),this.events.error&&d.on("error",bind(this,function(e){this.emit("error",e)})),d.enable()))):h?(this.map.url=b.nameToUrl(h),void this.load()):(n=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})}),n.error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(w,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&u(e.map.id)}),c(e)}),n.fromText=bind(this,function(o,r){var s=e.name,l=i(s),d=useInteractive;r&&(o=r),d&&(useInteractive=!1),a(l),hasProp(C.config,t)&&(C.config[s]=C.config[t]);try{req.exec(o)}catch(u){return c(makeError("fromtexteval","fromText eval for "+t+" failed: "+u,u,[t]))}d&&(useInteractive=!0),this.depMaps.push(l),b.completeLoad(s),g([s],n)}),void r.load(e.name,g,n,C))})),b.enable(r,this),this.pluginMaps[r.id]=r},enable:function(){M[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var o,r,n;if("string"==typeof e){if(e=i(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(y,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,l(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?l(e,"error",bind(this,this.errback)):this.events.error&&l(e,"error",bind(this,function(e){this.emit("error",e)}))}o=e.id,r=w[o],hasProp(y,o)||!r||r.enabled||b.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(w,e.id);t&&!t.enabled&&b.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var o=this.events[e];o||(o=this.events[e]=[]),o.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},b={config:C,contextName:e,registry:w,defined:T,urlFetched:A,defQueue:k,defQueueMap:{},Module:$,makeModuleMap:i,nextTick:req.nextTick,onError:c,configure:function(e){e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/");var t=C.shim,o={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){o[t]?(C[t]||(C[t]={}),mixin(C[t],e,!0,!0)):C[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(P[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,o){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=b.makeShimExports(e)),t[o]=e}),C.shim=t),e.packages&&each(e.packages,function(e){var t,o;e="string"==typeof e?{name:e}:e,o=e.name,t=e.location,t&&(C.paths[o]=e.location),C.pkgs[o]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(w,function(e,t){e.inited||e.map.unnormalized||(e.map=i(t,null,!0))}),(e.deps||e.callback)&&b.require(e.deps||[],e.callback)},makeShimExports:function(e){function t(){var t;return e.init&&(t=e.init.apply(global,arguments)),t||e.exports&&getGlobal(e.exports)}return t},makeRequire:function(t,n){function s(o,r,l){var d,u,h;return n.enableBuildCallback&&r&&isFunction(r)&&(r.__requireJsBuild=!0),"string"==typeof o?isFunction(r)?c(makeError("requireargs","Invalid require call"),l):t&&hasProp(y,o)?y[o](w[t.id]):req.get?req.get(b,o,t,s):(u=i(o,t,!1,!0),d=u.id,hasProp(T,d)?T[d]:c(makeError("notloaded",'Module name "'+d+'" has not been loaded yet for context: '+e+(t?"":". Use require([])")))):(v(),b.nextTick(function(){v(),h=a(i(null,t)),h.skipMap=n.skipMap,h.init(o,r,l,{enabled:!0}),f()}),s)}return n=n||{},mixin(s,{isBrowser:isBrowser,toUrl:function(e){var r,n=e.lastIndexOf("."),s=e.split("/")[0],i="."===s||".."===s;return-1!==n&&(!i||n>1)&&(r=e.substring(n,e.length),e=e.substring(0,n)),b.nameToUrl(o(e,t&&t.id,!0),r,!0)},defined:function(e){return hasProp(T,i(e,t,!1,!0).id)},specified:function(e){return e=i(e,t,!1,!0).id,hasProp(T,e)||hasProp(w,e)}}),t||(s.undef=function(e){d();var o=i(e,t,!0),n=getOwn(w,e);n.undefed=!0,r(e),delete T[e],delete A[o.url],delete x[e],eachReverse(k,function(t,o){t[0]===e&&k.splice(o,1)}),delete b.defQueueMap[e],n&&(n.events.defined&&(x[e]=n.events),u(e))}),s},enable:function(e){var t=getOwn(w,e.id);t&&a(e).enable()},completeLoad:function(e){var t,o,r,s=getOwn(C.shim,e)||{},i=s.exports;for(d();k.length;){if(o=k.shift(),null===o[0]){if(o[0]=e,t)break;t=!0}else o[0]===e&&(t=!0);p(o)}if(b.defQueueMap={},r=getOwn(w,e),!t&&!hasProp(T,e)&&r&&!r.inited){if(!(!C.enforceDefine||i&&getGlobal(i)))return n(e)?void 0:c(makeError("nodefine","No define call for "+e,null,[e]));p([e,s.deps||[],s.exportsFn])}f()},nameToUrl:function(e,t,o){var r,n,s,i,a,l,c,d=getOwn(C.pkgs,e);if(d&&(e=d),c=getOwn(P,e))return b.nameToUrl(c,t,o);if(req.jsExtRegExp.test(e))a=e+(t||"");else{for(r=C.paths,n=e.split("/"),s=n.length;s>0;s-=1)if(i=n.slice(0,s).join("/"),l=getOwn(r,i)){isArray(l)&&(l=l[0]),n.splice(0,s,l);break}a=n.join("/"),a+=t||(/^data\:|\?/.test(a)||o?"":".js"),a=("/"===a.charAt(0)||a.match(/^[\w\+\.\-]+:/)?"":C.baseUrl)+a}return C.urlArgs?a+((-1===a.indexOf("?")?"?":"&")+C.urlArgs):a},load:function(e,t){req.load(b,e,t)},execCb:function(e,t,o,r){return t.apply(r,o)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=m(e);b.completeLoad(t.id)}},onScriptError:function(e){var t=m(e);if(!n(t.id)){var o=[];return eachProp(w,function(e,r){0!==r.indexOf("_@r")&&each(e.depMaps,function(e){return e.id===t.id&&o.push(r),!0})}),c(makeError("scripterror",'Script error for "'+t.id+(o.length?'", needed by: '+o.join(", "):'"'),e,[t.id]))}}},b.require=b.makeRequire(),b}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(e){return"interactive"===e.readyState?interactiveScript=e:void 0}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.22",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,o,r){var n,s,i=defContextName;return isArray(e)||"string"==typeof e||(s=e,isArray(t)?(e=t,t=o,o=r):e=[]),s&&s.context&&(i=s.context),n=getOwn(contexts,i),n||(n=contexts[i]=req.s.newContext(i)),s&&n.configure(s),n.require(e,t,o)},req.config=function(e){return req(e)},req.nextTick="undefined"!=typeof setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,o){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,o){var r,n=e&&e.config||{};if(isBrowser)return r=req.createNode(n,t,o),n.onNodeCreated&&n.onNodeCreated(r,n,t,o),r.setAttribute("data-requirecontext",e.contextName),r.setAttribute("data-requiremodule",t),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||isOpera?(r.addEventListener("load",e.onScriptLoad,!1),r.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,r.attachEvent("onreadystatechange",e.onScriptLoad)),r.src=o,currentlyAddingScript=r,baseElement?head.insertBefore(r,baseElement):head.appendChild(r),currentlyAddingScript=null,r;if(isWebWorker)try{importScripts(o),e.completeLoad(t)}catch(s){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+o,s,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){return head||(head=e.parentNode),dataMain=e.getAttribute("data-main"),dataMain?(mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0):void 0}),define=function(e,t,o){var r,n;"string"!=typeof e&&(o=t,t=e,e=null),isArray(t)||(o=t,t=null),!t&&isFunction(o)&&(t=[],o.length&&(o.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(e,o){t.push(o)}),t=(1===o.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),n=contexts[r.getAttribute("data-requirecontext")])),n?(n.defQueue.push([e,t,o]),n.defQueueMap[e]=!0):globalDefQueue.push([e,t,o])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this),define("node_modules/requirejs/require",function(){});var require;require||(require={config:function(e){require=e}}),require.config({paths:{"require-css":"bower_components/require-css","helios/showdown":"bower_components/showdown/src/showdown",requireJS:"node_modules/requirejs/require",jquery:"bower_components/jquery/jquery","jquery-ui":"bower_components/jquery-ui/jquery-ui",codemirror:"bower_components/codemirror","bootstrap2.3.2":"bower_components/bootstrap2.3.2/bootstrap",mousetrap:"bower_components/mousetrap/mousetrap","jquery.blockUI":"bower_components/blockui/jquery.blockUI","amber-trysmalltalk":"bower_components/trysmalltalk/src",helios:"bower_components/helios/src","helios/resources":"bower_components/helios/resources","helios/index":"bower_components/helios/index","amber/web":"bower_components/amber-contrib-web/src","amber-ide-starter-dialog":"bower_components/amber-ide-starter-dialog/lib/idestarter","amber/legacy":"bower_components/amber-contrib-legacy/src","amber/legacy/resources":"bower_components/amber-contrib-legacy/resources","amber/jquery":"bower_components/amber-contrib-jquery/src",amber:"bower_components/amber/support",amber_core:"bower_components/amber/src","amber-trysmalltalkdemo":"src"},map:{"*":{css:"require-css/css","00comment":"These are backward compatibility pointers.","amber-contrib-web/Web":"amber/web/Web","amber_core/Web":"amber/web/Web","amber_core/Canvas":"amber/web/Web","amber-attic/Benchfib":"amber/legacy/Benchfib","amber-attic/Examples":"amber/legacy/Examples","amber-attic/IDE":"amber/legacy/IDE","amber-contrib-jquery/Wrappers-JQuery":"amber/jquery/Wrappers-JQuery","amber_core/Kernel-ImportExport":"amber_core/Platform-ImportExport"}},rjs_comment1:"require.min should be removed",rjs_comment2:"it's backward compatibility hack if config finds",rjs_comment3:"support/requirejs before node_modules/requirejs;",rjs_comment4:"the former will go away in 0.14.0",shim:{"jquery-ui":{deps:["jquery","jquery"]},"codemirror/lib/codemirror":{deps:["css!codemirror/lib/codemirror","css!codemirror/lib/codemirror"]},"bootstrap2.3.2/js/bootstrap":{deps:["jquery","css!bootstrap2.3.2/css/bootstrap"]},"ensure-console":{exports:"console"}}}),require.config({map:{"*":{app:"deploy"}}}),define("config",function(){}),"undefined"==typeof console&&(this.console={log:function(){},warn:function(){},info:function(){},debug:function(){},error:function(){}}),define("amber/browser-compatibility",function(){}),define("amber/boot",["require","./browser-compatibility"],function(e){function t(e,t,o){function r(e,t,o){for(var r=Object.keys(o||e),n=r.length,s=0;n>s;++s)if(null==e)t[r[s]]=void 0;else{var i=e[r[s]];"undefined"!=typeof i&&(t[r[s]]=i)}return t}var n=this,s={};t=t||"exports",o=o||"__init__";var i={value:null,enumerable:!1,configurable:!0,writable:!0};Object.defineProperties(this,{ensure:i,rebuild:i});var a=r(this,{});this.rebuild=function(){Object.keys(s).forEach(function(o){r(null,e,(s[o]||0)[t]||{})});var i=r(e,{}),l=[],c={};n.ensure=function(o){if(o in a)return null;var i=n[o],d=s[o];for(r(null,e,e);"function"==typeof i;)i=new i(n,e,d);return i&&!c[o]&&(c[o]=!0,l.push(i)),i&&!i[t]&&(i[t]=r(e,{})),n[o]=i,i},Object.keys(n).forEach(function(e){n.ensure(e)}),n.ensure=null,r(i,r(null,e,e)),l.forEach(function(o){r(o[t]||{},e)}),l.forEach(function(e){e[o]&&e[o]()}),s=r(n,{})}}function o(e,t){return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,configurable:!0,writable:!0}}),e}function r(e,t){function r(){}function n(){}function s(){}function i(){}o(n,r),o(s,n),o(i,s),this.Object=s,this.nil=new i,Object.defineProperty(this.nil,"isNil",{value:!0,enumerable:!1,configurable:!1,writable:!1}),this.rootAsClass={fn:r},this.__init__=function(){t.addPackage("Kernel-Objects"),t.wrapClassName("ProtoObject","Kernel-Objects",n,void 0,!1),t.wrapClassName("Object","Kernel-Objects",s,b.ProtoObject,!1),t.wrapClassName("UndefinedObject","Kernel-Objects",i,b.Object,!1)}}function n(e,t){function r(){}function n(){this.elements=[]}function s(){this.elements=[]}e.ensure("augments");var i=e.ensure("root").Object;o(r,i),o(n,r),o(s,r),this.__init__=function(){t.addPackage("Kernel-Infrastructure"),t.wrapClassName("Organizer","Kernel-Infrastructure",r,b.Object,!1),t.wrapClassName("PackageOrganizer","Kernel-Infrastructure",n,b.Organizer,!1),t.wrapClassName("ClassOrganizer","Kernel-Infrastructure",s,b.Organizer,!1)},this.setupClassOrganization=function(e){e.organization=new s,e.organization.theClass=e},this.setupPackageOrganization=function(e){e.organization=new n},this.addOrganizationElement=function(e,t){e.organization.elements.addElement(t)},this.removeOrganizationElement=function(e,t){e.organization.elements.removeElement(t)}}function s(e,t){function o(t){return function(){return e.messageSend.messageNotUnderstood(this,t,arguments)}}e.ensure("selectorConversion"),e.ensure("messageSend");var r=e.ensure("manipulation"),n=e.ensure("root").rootAsClass,s=[],i=Object.create(null);this.selectors=[],this.jsSelectors=[],this.make=function(e,a){var l=i[e];if(!l){var c=t.st2js(e);return this.selectors.push(e),this.jsSelectors.push(c),l={jsSelector:c,fn:o(e)},i[e]=l,s.push(l),r.installMethod(l,n),a.forEach(function(e){r.installMethod(l,e)}),l}}}function i(e,t){function o(e){e.wrapped&&r(e)}function r(e){var t=e.superclass,o=e.methods,r={};Object.keys(o).forEach(function(e){var t=o[e];r[t.jsSelector]=t});var i=e.fn.prototype,a=t.fn.prototype;n.jsSelectors.forEach(function(t){r[t]?i[t]||s.installMethod(r[t],e):s.installMethod({jsSelector:t,fn:a[t]},e)})}var n=e.ensure("dnu"),s=e.ensure("manipulation");t.init=function(e){o(e),e.klass&&!e.meta&&o(e.klass)},this.initClass=o}function a(e,t){this.installMethod=function(e,t){Object.defineProperty(t.fn.prototype,e.jsSelector,{value:e.fn,enumerable:!1,configurable:!0,writable:!0})}}function l(e,t){function r(){}function n(e){var t=new r;return t.pkgName=e.pkgName,s.setupPackageOrganization(t),t.properties=e.properties||{},t}var s=e.ensure("organize"),i=e.ensure("root"),a=i.nil,l=i.Object;o(r,l),this.__init__=function(){t.addPackage("Kernel-Infrastructure"),t.wrapClassName("Package","Kernel-Infrastructure",r,b.Object,!1)},t.packages={},t.addPackage=function(e,o){return e?(t.packages[e]?o&&(t.packages[e].properties=o):t.packages[e]=n({pkgName:e,properties:o}),t.packages[e]):a}}function c(e,t){function r(){}function n(){}function s(){}function i(e){e=e||{};var t=e.superclass;e.superclass||(e.superclass=v);var r=a(e),n=r.instanceClass;return n.superclass=t,n.fn=e.fn||o(function(){},e.superclass.fn),n.subclasses=[],c(n,e),n.className=e.className,n.wrapped=e.wrapped||!1,r.className=e.className+" class",r.superclass=e.superclass.klass,n}function a(e){e=e||{};var t=new s;return t.fn=o(function(){},e.superclass.klass.fn),t.instanceClass=new t.fn,c(t),t}function l(e){Object.defineProperty(e.fn.prototype,"klass",{value:e,enumerable:!1,configurable:!0,writable:!0})}function c(e,t){t=t||{},e.iVarNames=t.iVarNames||[],e.pkg=t.pkg,f.setupClassOrganization(e),Object.defineProperty(e,"methods",{value:Object.create(null),enumerable:!1,configurable:!0,writable:!0}),l(e)}function d(e,o,r,n,s,a){var l=t.packages[e];if(!l)throw new Error("Missing package "+e);r&&r!=m||(r=null),b[o]&&b[o].superclass==r?(b[o].iVarNames=n||[],l&&(b[o].pkg=l),a&&(a.prototype=b[o].fn.prototype,b[o].fn=a,a.prototype.constructor=a)):(b[o]&&t.removeClass(b[o]),b[o]=i({className:o,superclass:r,pkg:l,iVarNames:n,fn:a,wrapped:s}),u(b[o])),$.addElement(b[o]),f.addOrganizationElement(l,b[o])}function u(e){e.superclass&&e.superclass.subclasses.addElement(e)}function h(e){e.superclass&&e.superclass.subclasses.removeElement(e)}var f=e.ensure("organize"),p=e.ensure("root"),g=e.ensure("classInit"),m=p.nil,v=p.rootAsClass,_=p.Object;v.klass={fn:n},o(r,_),o(n,r),o(s,r),s.prototype.meta=!0,this.__init__=function(){t.addPackage("Kernel-Classes"),t.wrapClassName("Behavior","Kernel-Classes",r,b.Object,!1),t.wrapClassName("Metaclass","Kernel-Classes",s,b.Behavior,!1),t.wrapClassName("Class","Kernel-Classes",n,b.Behavior,!1),b.ProtoObject.klass.superclass=v.klass=b.Class,u(b.ProtoObject.klass)};var $=[],y=[];r.prototype.toString=function(){return"Smalltalk "+this.className},t.addClass=function(e,t,o,r){("undefined"==typeof t||t==m)&&console.warn("Compiling "+e+" as a subclass of `nil`. A dependency might be missing."),d(r,e,t,o,!1,null)},t.removeClass=function(e){f.removeOrganizationElement(e.pkg,e),$.removeElement(e),h(e),delete b[e.className]},t.wrapClassName=function(e,t,o,r,n){n=n!==!1,d(t,e,r,b[e]&&b[e].iVarNames,n,o),n&&y.addElement(b[e])},t.setClassConstructor=function(e,t){y.addElement(e),e.wrapped=!0,e.fn=t,l(e),g.initClass(e)},t.alias=function(e,t){b[t]=e},t.classes=function(){return $},t.wrappedClasses=function(){return y},t.allSubclasses=function(e){return e._allSubclasses()}}function d(e,t){function r(){}function n(e){e.jsSelector||(e.jsSelector=t.st2js(e.selector))}function s(e,o){c.initialized()&&t.allSubclasses(e).forEach(function(e){i(e,o)})}function i(e,t){if(e.wrapped&&!e.methods[t.selector]){var o=t.jsSelector;a.installMethod({jsSelector:o,fn:e.superclass.fn.prototype[o]},e)}}var a=e.ensure("manipulation"),l=e.ensure("organize"),c=e.ensure("stInit"),d=e.ensure("dnu"),u=e.ensure("root").Object;e.ensure("selectorConversion"),e.ensure("classes"),o(r,u),this.__init__=function(){t.addPackage("Kernel-Methods"),t.wrapClassName("CompiledMethod","Kernel-Methods",r,b.Object,!1)},t.method=function(e){var t=new r;return t.selector=e.selector,t.jsSelector=e.jsSelector,t.args=e.args||{},t.protocol=e.protocol,t.source=e.source,t.messageSends=e.messageSends||[],t.referencedClasses=e.referencedClasses||[],t.fn=e.fn,t},t.addMethod=function(e,o){n(e),a.installMethod(e,o),o.methods[e.selector]=e,e.methodClass=o,l.addOrganizationElement(o,e.protocol),s(o,e);var r=e.messageSends,i=c.initialized()?t.wrappedClasses():[];d.make(e.selector,i);for(var u=0;u>"+e.selector+" from different class "+t.className);n(e),delete t.fn.prototype[e.jsSelector],delete t.methods[e.selector],i(t,e),s(t,e)},t.allSelectors=function(){return d.selectors}}function u(e,t){Array.prototype.addElement=function(e){"undefined"!=typeof e&&-1==this.indexOf(e)&&this.push(e)},Array.prototype.removeElement=function(e){var t=this.indexOf(e);-1!==t&&this.splice(t,1)}}function h(e,t){e.ensure("classInit"),e.ensure("classes");var o=!1;t.initialize=function(){o||(t.classes().forEach(function(e){t.init(e)}),$(),t.classes().forEach(function(e){e._initialize()}),o=!0)},this.initialized=function(){return o},this.__init__=function(){t.addPackage("Kernel-Methods"),t.wrapClassName("Number","Kernel-Objects",Number,b.Object),t.wrapClassName("BlockClosure","Kernel-Methods",Function,b.Object),t.wrapClassName("Boolean","Kernel-Objects",Boolean,b.Object),t.wrapClassName("Date","Kernel-Objects",Date,b.Object),t.addPackage("Kernel-Collections"),t.addClass("Collection",b.Object,null,"Kernel-Collections"),t.addClass("IndexableCollection",b.Collection,null,"Kernel-Collections"),t.addClass("SequenceableCollection",b.IndexableCollection,null,"Kernel-Collections"),t.addClass("CharacterArray",b.SequenceableCollection,null,"Kernel-Collections"),t.wrapClassName("String","Kernel-Collections",String,b.CharacterArray),t.wrapClassName("Array","Kernel-Collections",Array,b.SequenceableCollection),t.wrapClassName("RegularExpression","Kernel-Collections",RegExp,b.Object),t.addPackage("Kernel-Exceptions"),t.wrapClassName("Error","Kernel-Exceptions",Error,b.Object),t.alias(b.Array,"OrderedCollection"),t.alias(b.Date,"Time")}}function f(e,t){var o=0;t.nextId=function(){return o+=1},t.readJSObject=function(e){var o=e.constructor===Object,r=e.constructor===Array,n=o?b.Dictionary._new():r?[]:e;for(var s in e)o&&n._at_put_(s,t.readJSObject(e[s])),r&&(n[s]=t.readJSObject(e[s]));return n},t.assert=function(e){return"boolean"==typeof e?e:null!=e&&"object"==typeof e&&(e=e.valueOf(),"boolean"==typeof e)?e:void b.NonBooleanReceiver._new()._object_(e)._signal()},t.reservedWords=["break","case","catch","continue","debugger","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","arguments","class","const","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield"],t.globalJsVariables=["window","document","process","global"]}function p(e,t){function r(e,t){this.sendIdx={},this.homeContext=e,this.setup=t||function(){},this.supercall=!1}function n(e,t){try{return s(e,t)}catch(o){throw c(o),f=null,o.amberHandled=!0,o}}function s(e,t){var o=f;f=new r(f,t);var n=e(f);return f=o,n}function i(e){var o=b.JavaScriptException._on_(e);try{o._signal()}catch(r){}var n=t.getThisContext();return l(e)&&a(n),o._context_(n),o}function a(e){for(var t=e,o=0;100>o;)t&&(t=t.homeContext),o++;t&&(t.homeContext=void 0)}function l(e){return e instanceof RangeError}function c(e){e.smalltalkError||(e=i(e)),b.ErrorHandler._handleError_(e)}e.ensure("selectorConversion");var d=e.ensure("root"),u=d.nil,h=d.Object;o(r,h),this.__init__=function(){t.addPackage("Kernel-Methods"),t.wrapClassName("MethodContext","Kernel-Methods",r,b.Object,!1),r.prototype.locals={},r.prototype.receiver=null,r.prototype.selector=null,r.prototype.lookupClass=null,r.prototype.fill=function(e,t,o,r){this.receiver=e,this.selector=t,this.locals=o||{},this.lookupClass=r,this.homeContext&&(this.homeContext.evaluatedSelector=t)},r.prototype.fillBlock=function(e,t,o){this.locals=e||{},this.outerContext=t,this.index=o||0},r.prototype.init=function(){var e=this.homeContext;e&&e.init(),this.setup(this)},r.prototype.method=function(){for(var e,o=this.lookupClass||this.receiver.klass;!e&&o;)e=o.methods[t.js2st(this.selector)],o=o.superclass;return e}};var f=null;t.withContext=function(e,t){return f?s(e,t):n(e,t)},t.getThisContext=function(){return f?(f.init(),f):u}}function g(e,t){function o(e,t,o){return e._doesNotUnderstand_(b.Message._new()._selector_(t)._arguments_([].slice.call(o)))}function r(e,r,s){if(null!=e.klass&&!e.allowJavaScriptCalls)return o(e,r,s);var i=t.st2prop(r);return i in e?n(e,i,s):o(b.JSObjectProxy._on_(e),r,s)}function n(e,t,o){var r=e[t];return"function"!=typeof r||/^[A-Z]/.test(t)?o.length>0?(e[t]=o[0],s):r:r.apply(e,o||[])}e.ensure("selectorConversion");var s=e.ensure("root").nil;t.send=function(e,o,n,i){var a;return null==e&&(e=s), a=i?i.fn.prototype[o]:e.klass&&e[o],a?a.apply(e,n||[]):r(e,t.js2st(o),n)},t.accessJavaScript=n,this.messageNotUnderstood=r}function m(e,t){function o(e){return e.replace(/^_/,"").replace(/_/g,":")}function r(e){return e.replace(/^_/,"").replace(/_and/g,"&").replace(/_or/g,"|").replace(/_plus/g,"+").replace(/_minus/g,"-").replace(/_star/g,"*").replace(/_slash/g,"/").replace(/_backslash/g,"\\").replace(/_tild/g,"~").replace(/_gt/g,">").replace(/_lt/g,"<").replace(/_eq/g,"=").replace(/_comma/g,",").replace(/_at/g,"@")}t.st2js=function(e){var t="_"+e;return t=t.replace(/:/g,"_"),t=t.replace(/[\&]/g,"_and"),t=t.replace(/[\|]/g,"_or"),t=t.replace(/[+]/g,"_plus"),t=t.replace(/-/g,"_minus"),t=t.replace(/[*]/g,"_star"),t=t.replace(/[\/]/g,"_slash"),t=t.replace(/[\\]/g,"_backslash"),t=t.replace(/[\~]/g,"_tild"),t=t.replace(/>/g,"_gt"),t=t.replace(/",protocol:"converting",fn:function(e){function t(){return $globals.Association||("undefined"==typeof Association?nil:Association)}var o,r=this;return o=$recv(t())._key_value_(r,e)},messageSends:["key:value:"]}),$globals.Object),$core.addMethod($core.method({selector:"asJSON",protocol:"converting",fn:function(){function e(){return $globals.HashedCollection||("undefined"==typeof HashedCollection?nil:HashedCollection)}var t,o,r=this;return t=$recv(e())._new(),$recv($recv(r._class())._allInstanceVariableNames())._do_(function(e){return $recv(t)._at_put_(e,$recv(r._instVarAt_(e))._asJSON())}),o=t},messageSends:["new","do:","allInstanceVariableNames","class","at:put:","asJSON","instVarAt:"]}),$globals.Object),$core.addMethod($core.method({selector:"asJSONString",protocol:"converting",fn:function(){function e(){return $globals.JSON||("undefined"==typeof JSON?nil:JSON)}var t,o=this;return t=$recv(e())._stringify_(o._asJSON())},messageSends:["stringify:","asJSON"]}),$globals.Object),$core.addMethod($core.method({selector:"asJavascript",protocol:"converting",fn:function(){var e,t=this;return e=t._asString()},messageSends:["asString"]}),$globals.Object),$core.addMethod($core.method({selector:"basicAt:",protocol:"accessing",fn:function(e){var t=this;return t[e]},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"basicAt:put:",protocol:"accessing",fn:function(e,t){var o=this;return o[e]=t},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"basicDelete:",protocol:"accessing",fn:function(e){var t=this;return delete t[e],e},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"basicPerform:",protocol:"message handling",fn:function(e){var t,o=this;return t=o._basicPerform_withArguments_(e,[])},messageSends:["basicPerform:withArguments:"]}),$globals.Object),$core.addMethod($core.method({selector:"basicPerform:withArguments:",protocol:"message handling",fn:function(e,t){var o=this;return o[e].apply(o,t)},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"browse",protocol:"browsing",fn:function(){function e(){return $globals.Finder||("undefined"==typeof Finder?nil:Finder)}var t=this;return $recv(e())._findClass_(t._class()),t},messageSends:["findClass:","class"]}),$globals.Object),$core.addMethod($core.method({selector:"copy",protocol:"copying",fn:function(){var e,t=this;return e=$recv(t._shallowCopy())._postCopy()},messageSends:["postCopy","shallowCopy"]}),$globals.Object),$core.addMethod($core.method({selector:"deepCopy",protocol:"copying",fn:function(){var e=this,t=e.klass._new();return Object.keys(e).forEach(function(o){/^@.+/.test(o)&&(t[o]=e[o]._deepCopy())}),t},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"deprecatedAPI",protocol:"error handling",fn:function(){var e,t,o,r,n,s,i,a,l=this;return e=console,t=$core.getThisContext()._home(),o=$recv(t)._asString(),r=$recv(o).__comma(" is deprecated! (in "),n=$recv($core.getThisContext()._home())._home(),s=$recv(n)._asString(),i=$recv(r).__comma(s),a=$recv(i).__comma(")"),$recv(e)._warn_(a),l},messageSends:["warn:",",","asString","home"]}),$globals.Object),$core.addMethod($core.method({selector:"deprecatedAPI:",protocol:"error handling",fn:function(e){var t,o,r,n,s,i,a,l,c=this;return t=console,o=$core.getThisContext()._home(),r=$recv(o)._asString(),n=$recv(r).__comma(" is deprecated! (in "),s=$recv($core.getThisContext()._home())._home(),i=$recv(s)._asString(),a=$recv(n).__comma(i),l=$recv(a).__comma(")"),$recv(t)._warn_(l),$recv(console)._warn_(e),c},messageSends:["warn:",",","asString","home"]}),$globals.Object),$core.addMethod($core.method({selector:"error:",protocol:"error handling",fn:function(e){function t(){return $globals.Error||("undefined"==typeof Error?nil:Error)}var o=this;return $recv(t())._signal_(e),o},messageSends:["signal:"]}),$globals.Object),$core.addMethod($core.method({selector:"halt",protocol:"error handling",fn:function(){function e(){return $globals.Halt||("undefined"==typeof Halt?nil:Halt)}var t=this;return $recv(e())._signal(),t},messageSends:["signal"]}),$globals.Object),$core.addMethod($core.method({selector:"in:",protocol:"evaluating",fn:function(e){var t,o=this;return t=$recv(e)._value_(o)},messageSends:["value:"]}),$globals.Object),$core.addMethod($core.method({selector:"isBehavior",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isBoolean",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isClass",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isCompiledMethod",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isImmutable",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isMemberOf:",protocol:"testing",fn:function(e){var t,o=this;return t=$recv(o._class()).__eq(e)},messageSends:["=","class"]}),$globals.Object),$core.addMethod($core.method({selector:"isMetaclass",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isNumber",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isPackage",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isParseFailure",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isString",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"isSymbol",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"postCopy",protocol:"copying",fn:function(){var e=this;return e},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"putOn:",protocol:"streaming",fn:function(e){var t=this;return $recv(e)._nextPut_(t),t},messageSends:["nextPut:"]}),$globals.Object),$core.addMethod($core.method({selector:"respondsTo:",protocol:"testing",fn:function(e){var t,o=this;return t=$recv(o._class())._canUnderstand_(e)},messageSends:["canUnderstand:","class"]}),$globals.Object),$core.addMethod($core.method({selector:"shallowCopy",protocol:"copying",fn:function(){var e=this,t=e.klass._new();return Object.keys(e).forEach(function(o){/^@.+/.test(o)&&(t[o]=e[o])}),t},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"shouldNotImplement",protocol:"error handling",fn:function(){var e=this;return e._error_("This method should not be implemented in ".__comma($recv(e._class())._name())),e},messageSends:["error:",",","name","class"]}),$globals.Object),$core.addMethod($core.method({selector:"size",protocol:"accessing",fn:function(){var e=this;return e._error_("Object not indexable"),e},messageSends:["error:"]}),$globals.Object),$core.addMethod($core.method({selector:"subclassResponsibility",protocol:"error handling",fn:function(){var e=this;return e._error_("This method is a responsibility of a subclass"),e},messageSends:["error:"]}),$globals.Object),$core.addMethod($core.method({selector:"throw:",protocol:"error handling",fn:function(e){throw e},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"value",protocol:"evaluating",fn:function(){var e=this;return e.valueOf()},messageSends:[]}),$globals.Object),$core.addMethod($core.method({selector:"accessorProtocolWith:",protocol:"helios",fn:function(e){var t=this;return $recv(e)._accessorProtocolForObject(),t},messageSends:["accessorProtocolForObject"]}),$globals.Object.klass),$core.addMethod($core.method({selector:"accessorsSourceCodesWith:",protocol:"helios",fn:function(e){var t=this;return $recv(e)._accessorsForObject(),t},messageSends:["accessorsForObject"]}),$globals.Object.klass),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){var e=this;return e},messageSends:[]}),$globals.Object.klass),$core.addMethod($core.method({selector:"initializeProtocolWith:",protocol:"helios",fn:function(e){var t=this;return $recv(e)._initializeProtocolForObject(),t},messageSends:["initializeProtocolForObject"]}),$globals.Object.klass),$core.addMethod($core.method({selector:"initializeSourceCodesWith:",protocol:"helios",fn:function(e){var t=this;return $recv(e)._initializeForObject(),t},messageSends:["initializeForObject"]}),$globals.Object.klass),$core.addClass("Boolean",$globals.Object,[],"Kernel-Objects"),$core.addMethod($core.method({selector:"&",protocol:"controlling",fn:function(e){var t=this;return 1==t?e:!1},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"==",protocol:"comparing",fn:function(e){var t=this;return null!=e&&t.valueOf()===("boolean"==typeof e?e:e.valueOf())},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"and:",protocol:"controlling",fn:function(e){var t,o,r=this;return t=r.__eq(!0),o=$recv(t)._ifTrue_ifFalse_(e,function(){return!1})},messageSends:["ifTrue:ifFalse:","="]}),$globals.Boolean),$core.addMethod($core.method({selector:"asBit",protocol:"converting",fn:function(){var e,t=this;return e=$core.assert(t)?1:0},messageSends:["ifTrue:ifFalse:"]}),$globals.Boolean),$core.addMethod($core.method({selector:"asJSON",protocol:"converting",fn:function(){var e=this;return e},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"asString",protocol:"converting",fn:function(){var e=this;return e.toString()},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"deepCopy",protocol:"copying",fn:function(){var e=this;return e},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"ifFalse:",protocol:"controlling",fn:function(e){var t,o=this;return t=o._ifTrue_ifFalse_(function(){},e)},messageSends:["ifTrue:ifFalse:"]}),$globals.Boolean),$core.addMethod($core.method({selector:"ifFalse:ifTrue:",protocol:"controlling",fn:function(e,t){var o,r=this;return o=r._ifTrue_ifFalse_(t,e)},messageSends:["ifTrue:ifFalse:"]}),$globals.Boolean),$core.addMethod($core.method({selector:"ifTrue:",protocol:"controlling",fn:function(e){var t,o=this;return t=o._ifTrue_ifFalse_(e,function(){})},messageSends:["ifTrue:ifFalse:"]}),$globals.Boolean),$core.addMethod($core.method({selector:"ifTrue:ifFalse:",protocol:"controlling",fn:function(e,t){var o=this;return 1==o?e._value():t._value()},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"isBoolean",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"isImmutable",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"not",protocol:"controlling",fn:function(){var e,t=this;return e=t.__eq(!1)},messageSends:["="]}),$globals.Boolean),$core.addMethod($core.method({selector:"or:",protocol:"controlling",fn:function(e){var t,o,r=this;return t=r.__eq(!0),o=$recv(t)._ifTrue_ifFalse_(function(){return!0},e)},messageSends:["ifTrue:ifFalse:","="]}),$globals.Boolean),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t=this;return $recv(e)._nextPutAll_(t._asString()),t},messageSends:["nextPutAll:","asString"]}),$globals.Boolean),$core.addMethod($core.method({selector:"shallowCopy",protocol:"copying",fn:function(){var e=this;return e},messageSends:[]}),$globals.Boolean),$core.addMethod($core.method({selector:"|",protocol:"controlling",fn:function(e){var t=this;return 1==t?!0:e},messageSends:[]}),$globals.Boolean),$core.addClass("Date",$globals.Object,[],"Kernel-Objects"),$core.addMethod($core.method({selector:"+",protocol:"arithmetic",fn:function(e){var t=this;return t+e},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"-",protocol:"arithmetic",fn:function(e){var t=this;return t-e},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"<",protocol:"comparing",fn:function(e){var t=this;return e>t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"<=",protocol:"comparing",fn:function(e){var t=this;return e>=t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"=",protocol:"comparing",fn:function(e){var t,o,r,n,s=this;return t=$recv(e)._class(),o=$recv(t).__eq_eq(s._class()),n=$recv(o)._and_(function(){return r=s._asMilliseconds(),$recv(r).__eq_eq($recv(e)._asMilliseconds())})},messageSends:["and:","==","class","asMilliseconds"]}),$globals.Date),$core.addMethod($core.method({selector:">",protocol:"comparing",fn:function(e){var t=this;return t>e},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:">=",protocol:"comparing",fn:function(e){var t=this;return t>=e},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"asDateString",protocol:"converting",fn:function(){var e=this;return e.toDateString()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"asLocaleString",protocol:"converting",fn:function(){var e=this;return e.toLocaleString()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"asMilliseconds",protocol:"converting",fn:function(){var e,t=this;return e=t._time()},messageSends:["time"]}),$globals.Date),$core.addMethod($core.method({selector:"asNumber",protocol:"converting",fn:function(){var e,t=this;return e=t._asMilliseconds()},messageSends:["asMilliseconds"]}),$globals.Date),$core.addMethod($core.method({selector:"asString",protocol:"converting",fn:function(){var e=this;return e.toString()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"asTimeString",protocol:"converting",fn:function(){var e=this;return e.toTimeString()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"day",protocol:"accessing",fn:function(){var e,t=this;return e=t._dayOfWeek()},messageSends:["dayOfWeek"]}),$globals.Date),$core.addMethod($core.method({selector:"day:",protocol:"accessing",fn:function(e){var t=this;return t._dayOfWeek_(e),t},messageSends:["dayOfWeek:"]}),$globals.Date),$core.addMethod($core.method({selector:"dayOfMonth",protocol:"accessing",fn:function(){var e=this;return e.getDate()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"dayOfMonth:",protocol:"accessing",fn:function(e){var t=this;return t.setDate(e),t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"dayOfWeek",protocol:"accessing",fn:function(){var e=this;return e.getDay()+1},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"dayOfWeek:",protocol:"accessing",fn:function(e){var t=this;return t.setDay(e-1)},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"hours",protocol:"accessing",fn:function(){var e=this;return e.getHours()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"hours:",protocol:"accessing",fn:function(e){var t=this;return t.setHours(e),t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"milliseconds",protocol:"accessing",fn:function(){var e=this;return e.getMilliseconds()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"milliseconds:",protocol:"accessing",fn:function(e){var t=this;return t.setMilliseconds(e),t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"minutes",protocol:"accessing",fn:function(){var e=this;return e.getMinutes()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"minutes:",protocol:"accessing",fn:function(e){var t=this;return t.setMinutes(e),t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"month",protocol:"accessing",fn:function(){var e=this;return e.getMonth()+1},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"month:",protocol:"accessing",fn:function(e){var t=this;return t.setMonth(e-1),t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t=this;return $recv(e)._nextPutAll_(t._asString()),t},messageSends:["nextPutAll:","asString"]}),$globals.Date),$core.addMethod($core.method({selector:"seconds",protocol:"accessing",fn:function(){var e=this;return e.getSeconds()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"seconds:",protocol:"accessing",fn:function(e){var t=this;return t.setSeconds(e),t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"time",protocol:"accessing",fn:function(){var e=this;return e.getTime()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"time:",protocol:"accessing",fn:function(e){var t=this;return t.setTime(e),t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"year",protocol:"accessing",fn:function(){var e=this;return e.getFullYear()},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"year:",protocol:"accessing",fn:function(e){var t=this;return t.setFullYear(e),t},messageSends:[]}),$globals.Date),$core.addMethod($core.method({selector:"classTag",protocol:"accessing",fn:function(){return"magnitude"},messageSends:[]}),$globals.Date.klass),$core.addMethod($core.method({selector:"fromMilliseconds:",protocol:"instance creation",fn:function(e){var t,o=this;return t=o._new_(e)},messageSends:["new:"]}),$globals.Date.klass),$core.addMethod($core.method({selector:"fromSeconds:",protocol:"instance creation",fn:function(e){var t,o=this;return t=o._fromMilliseconds_($recv(e).__star(1e3))},messageSends:["fromMilliseconds:","*"]}),$globals.Date.klass),$core.addMethod($core.method({selector:"fromString:",protocol:"instance creation",fn:function(e){var t,o=this;return t=o._new_(e)},messageSends:["new:"]}),$globals.Date.klass),$core.addMethod($core.method({selector:"millisecondsToRun:",protocol:"instance creation",fn:function(e){function t(){return $globals.Date||("undefined"==typeof Date?nil:Date)}var o,r;return o=$recv(t())._now(),$recv(e)._value(),r=$recv($recv(t())._now()).__minus(o)},messageSends:["now","value","-"]}),$globals.Date.klass),$core.addMethod($core.method({selector:"new:",protocol:"instance creation",fn:function(e){return new Date(e)},messageSends:[]}),$globals.Date.klass),$core.addMethod($core.method({selector:"now",protocol:"instance creation",fn:function(){var e,t=this;return e=t._today()},messageSends:["today"]}),$globals.Date.klass),$core.addMethod($core.method({selector:"today",protocol:"instance creation",fn:function(){var e,t=this;return e=t._new()},messageSends:["new"]}),$globals.Date.klass),$core.addClass("Number",$globals.Object,[],"Kernel-Objects"),$core.addMethod($core.method({selector:"&",protocol:"converting",fn:function(e){var t=this;return t&e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"*",protocol:"arithmetic",fn:function(e){var t=this;return t*e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"**",protocol:"mathematical functions",fn:function(e){var t,o=this;return t=o._raisedTo_(e)},messageSends:["raisedTo:"]}),$globals.Number),$core.addMethod($core.method({selector:"+",protocol:"arithmetic",fn:function(e){var t=this;return t+e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"-",protocol:"arithmetic",fn:function(e){var t=this;return t-e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"/",protocol:"arithmetic",fn:function(e){var t=this;return t/e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"//",protocol:"arithmetic",fn:function(e){var t,o=this;return t=$recv(o.__slash(e))._floor()},messageSends:["floor","/"]}),$globals.Number),$core.addMethod($core.method({selector:"<",protocol:"comparing",fn:function(e){var t=this;return e>t},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"<=",protocol:"comparing",fn:function(e){var t=this;return e>=t},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"==",protocol:"comparing",fn:function(e){var t=this;return null!=e&&Number(t)===("number"==typeof e?e:e.valueOf())},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:">",protocol:"comparing",fn:function(e){var t=this;return t>e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:">=",protocol:"comparing",fn:function(e){var t=this;return t>=e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"@",protocol:"converting",fn:function(e){function t(){return $globals.Point||("undefined"==typeof Point?nil:Point)}var o,r=this;return o=$recv(t())._x_y_(r,e)},messageSends:["x:y:"]}),$globals.Number),$core.addMethod($core.method({selector:"\\\\",protocol:"arithmetic",fn:function(e){var t=this;return t%e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"abs",protocol:"arithmetic",fn:function(){var e=this;return Math.abs(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"arcCos",protocol:"mathematical functions",fn:function(){var e=this;return Math.acos(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"arcSin",protocol:"mathematical functions",fn:function(){var e=this;return Math.asin(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"arcTan",protocol:"mathematical functions",fn:function(){var e=this;return Math.atan(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"asJSON",protocol:"converting",fn:function(){var e=this;return e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"asJavascript",protocol:"converting",fn:function(){var e,t=this;return e=$recv("(".__comma(t._printString())).__comma(")")},messageSends:[",","printString"]}),$globals.Number),$core.addMethod($core.method({selector:"asNumber",protocol:"converting",fn:function(){var e=this;return e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"asPoint",protocol:"converting",fn:function(){function e(){return $globals.Point||("undefined"==typeof Point?nil:Point)}var t,o=this;return t=$recv(e())._x_y_(o,o)},messageSends:["x:y:"]}),$globals.Number),$core.addMethod($core.method({selector:"asString",protocol:"converting",fn:function(){var e=this;return String(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"atRandom",protocol:"converting",fn:function(){function e(){return $globals.Random||("undefined"==typeof Random?nil:Random)}var t,o=this;return t=$recv($recv($recv($recv($recv(e())._new())._next()).__star(o))._truncated()).__plus(1); },messageSends:["+","truncated","*","next","new"]}),$globals.Number),$core.addMethod($core.method({selector:"ceiling",protocol:"converting",fn:function(){var e=this;return Math.ceil(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"copy",protocol:"copying",fn:function(){var e=this;return e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"cos",protocol:"mathematical functions",fn:function(){var e=this;return Math.cos(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"deepCopy",protocol:"copying",fn:function(){var e,t=this;return e=t._copy()},messageSends:["copy"]}),$globals.Number),$core.addMethod($core.method({selector:"even",protocol:"testing",fn:function(){var e,t=this;return e=0..__eq(t.__backslash_backslash(2))},messageSends:["=","\\\\"]}),$globals.Number),$core.addMethod($core.method({selector:"floor",protocol:"converting",fn:function(){var e=this;return Math.floor(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"isImmutable",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"isNumber",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"isZero",protocol:"testing",fn:function(){var e,t=this;return e=t.__eq(0)},messageSends:["="]}),$globals.Number),$core.addMethod($core.method({selector:"ln",protocol:"mathematical functions",fn:function(){var e=this;return Math.log(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"log",protocol:"mathematical functions",fn:function(){var e=this;return Math.log(e)/Math.LN10},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"log:",protocol:"mathematical functions",fn:function(e){var t=this;return Math.log(t)/Math.log(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"max:",protocol:"arithmetic",fn:function(e){var t=this;return Math.max(t,e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"min:",protocol:"arithmetic",fn:function(e){var t=this;return Math.min(t,e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"negated",protocol:"arithmetic",fn:function(){var e,t=this;return e=0..__minus(t)},messageSends:["-"]}),$globals.Number),$core.addMethod($core.method({selector:"negative",protocol:"testing",fn:function(){var e,t=this;return e=t.__lt(0)},messageSends:["<"]}),$globals.Number),$core.addMethod($core.method({selector:"odd",protocol:"testing",fn:function(){var e,t=this;return e=$recv(t._even())._not()},messageSends:["not","even"]}),$globals.Number),$core.addMethod($core.method({selector:"positive",protocol:"testing",fn:function(){var e,t=this;return e=t.__gt_eq(0)},messageSends:[">="]}),$globals.Number),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t=this;return $recv(e)._nextPutAll_(t._asString()),t},messageSends:["nextPutAll:","asString"]}),$globals.Number),$core.addMethod($core.method({selector:"printShowingDecimalPlaces:",protocol:"printing",fn:function(e){var t=this;return t.toFixed(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"raisedTo:",protocol:"mathematical functions",fn:function(e){var t=this;return Math.pow(t,e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"rounded",protocol:"converting",fn:function(){var e=this;return Math.round(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"sign",protocol:"mathematical functions",fn:function(){var e,t,o=this;return e=o._isZero(),$core.assert(e)?0:(t=o._positive(),$core.assert(t)?1:-1)},messageSends:["ifTrue:","isZero","ifTrue:ifFalse:","positive"]}),$globals.Number),$core.addMethod($core.method({selector:"sin",protocol:"mathematical functions",fn:function(){var e=this;return Math.sin(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"sqrt",protocol:"mathematical functions",fn:function(){var e=this;return Math.sqrt(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"squared",protocol:"mathematical functions",fn:function(){var e,t=this;return e=t.__star(t)},messageSends:["*"]}),$globals.Number),$core.addMethod($core.method({selector:"tan",protocol:"mathematical functions",fn:function(){var e=this;return Math.tan(e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"timesRepeat:",protocol:"enumerating",fn:function(e){var t,o=this;return t=1,$recv(function(){return $recv(t).__gt(o)})._whileFalse_(function(){return $recv(e)._value(),t=$recv(t).__plus(1)}),o},messageSends:["whileFalse:",">","value","+"]}),$globals.Number),$core.addMethod($core.method({selector:"to:",protocol:"converting",fn:function(e){function t(){return $globals.Array||("undefined"==typeof Array?nil:Array)}var o,r,n,s,i,a=this;return r=a._truncated(),n=$recv($recv(e)._truncated()).__plus(1),s=1,o=$recv(t())._new(),$recv($recv(n).__minus(r))._timesRepeat_(function(){return $recv(o)._at_put_(s,r),s=$recv(s).__plus(1),r=$recv(r).__plus(1)}),i=o},messageSends:["truncated","+","new","timesRepeat:","-","at:put:"]}),$globals.Number),$core.addMethod($core.method({selector:"to:by:",protocol:"converting",fn:function(e,t){function o(){return $globals.Array||("undefined"==typeof Array?nil:Array)}var r,n,s,i,a,l,c=this;return n=c,r=$recv(o())._new(),s=1,i=$recv(t).__eq(0),$core.assert(i)&&c._error_("step must be non-zero"),a=$recv(t).__lt(0),$core.assert(a)?$recv(function(){return $recv(n).__gt_eq(e)})._whileTrue_(function(){return $recv(r)._at_put_(s,n),s=$recv(s).__plus(1),n=$recv(n).__plus(t)}):$recv(function(){return $recv(n).__lt_eq(e)})._whileTrue_(function(){return $recv(r)._at_put_(s,n),s=$recv(s).__plus(1),n=$recv(n).__plus(t)}),l=r},messageSends:["new","ifTrue:","=","error:","ifTrue:ifFalse:","<","whileTrue:",">=","at:put:","+","<="]}),$globals.Number),$core.addMethod($core.method({selector:"to:by:do:",protocol:"enumerating",fn:function(e,t,o){var r,n,s,i=this;return r=i,n=$recv(t).__eq(0),$core.assert(n)&&i._error_("step must be non-zero"),s=$recv(t).__lt(0),$core.assert(s)?$recv(function(){return $recv(r).__gt_eq(e)})._whileTrue_(function(){return $recv(o)._value_(r),r=$recv(r).__plus(t)}):$recv(function(){return $recv(r).__lt_eq(e)})._whileTrue_(function(){return $recv(o)._value_(r),r=$recv(r).__plus(t)}),i},messageSends:["ifTrue:","=","error:","ifTrue:ifFalse:","<","whileTrue:",">=","value:","+","<="]}),$globals.Number),$core.addMethod($core.method({selector:"to:do:",protocol:"enumerating",fn:function(e,t){var o,r=this;return o=r,$recv(function(){return $recv(o).__lt_eq(e)})._whileTrue_(function(){return $recv(t)._value_(o),o=$recv(o).__plus(1)}),r},messageSends:["whileTrue:","<=","value:","+"]}),$globals.Number),$core.addMethod($core.method({selector:"truncated",protocol:"converting",fn:function(){var e=this;return e>=0?Math.floor(e):-1*Math.floor(-1*e)},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"|",protocol:"converting",fn:function(e){var t=this;return t|e},messageSends:[]}),$globals.Number),$core.addMethod($core.method({selector:"classTag",protocol:"accessing",fn:function(){return"magnitude"},messageSends:[]}),$globals.Number.klass),$core.addMethod($core.method({selector:"e",protocol:"instance creation",fn:function(){return Math.E},messageSends:[]}),$globals.Number.klass),$core.addMethod($core.method({selector:"pi",protocol:"instance creation",fn:function(){return Math.PI},messageSends:[]}),$globals.Number.klass),$core.addClass("Point",$globals.Object,["x","y"],"Kernel-Objects"),$core.addMethod($core.method({selector:"*",protocol:"arithmetic",fn:function(e){function t(){return $globals.Point||("undefined"==typeof Point?nil:Point)}var o,r,n,s,i,a,l,c=this;return o=c._x(),r=$recv(e)._asPoint(),n=$recv(r)._x(),s=$recv(o).__star(n),i=c._y(),a=$recv(i).__star($recv($recv(e)._asPoint())._y()),l=$recv(t())._x_y_(s,a)},messageSends:["x:y:","*","x","asPoint","y"]}),$globals.Point),$core.addMethod($core.method({selector:"+",protocol:"arithmetic",fn:function(e){function t(){return $globals.Point||("undefined"==typeof Point?nil:Point)}var o,r,n,s,i,a,l,c=this;return o=c._x(),r=$recv(e)._asPoint(),n=$recv(r)._x(),s=$recv(o).__plus(n),i=c._y(),a=$recv(i).__plus($recv($recv(e)._asPoint())._y()),l=$recv(t())._x_y_(s,a)},messageSends:["x:y:","+","x","asPoint","y"]}),$globals.Point),$core.addMethod($core.method({selector:"-",protocol:"arithmetic",fn:function(e){function t(){return $globals.Point||("undefined"==typeof Point?nil:Point)}var o,r,n,s,i,a,l,c=this;return o=c._x(),r=$recv(e)._asPoint(),n=$recv(r)._x(),s=$recv(o).__minus(n),i=c._y(),a=$recv(i).__minus($recv($recv(e)._asPoint())._y()),l=$recv(t())._x_y_(s,a)},messageSends:["x:y:","-","x","asPoint","y"]}),$globals.Point),$core.addMethod($core.method({selector:"/",protocol:"arithmetic",fn:function(e){function t(){return $globals.Point||("undefined"==typeof Point?nil:Point)}var o,r,n,s,i,a,l,c=this;return o=c._x(),r=$recv(e)._asPoint(),n=$recv(r)._x(),s=$recv(o).__slash(n),i=c._y(),a=$recv(i).__slash($recv($recv(e)._asPoint())._y()),l=$recv(t())._x_y_(s,a)},messageSends:["x:y:","/","x","asPoint","y"]}),$globals.Point),$core.addMethod($core.method({selector:"<",protocol:"comparing",fn:function(e){var t,o,r,n,s=this;return t=s._x(),o=$recv(t).__lt($recv(e)._x()),n=$recv(o)._and_(function(){return r=s._y(),$recv(r).__lt($recv(e)._y())})},messageSends:["and:","<","x","y"]}),$globals.Point),$core.addMethod($core.method({selector:"<=",protocol:"comparing",fn:function(e){var t,o,r,n,s=this;return t=s._x(),o=$recv(t).__lt_eq($recv(e)._x()),n=$recv(o)._and_(function(){return r=s._y(),$recv(r).__lt_eq($recv(e)._y())})},messageSends:["and:","<=","x","y"]}),$globals.Point),$core.addMethod($core.method({selector:"=",protocol:"comparing",fn:function(e){var t,o,r,n,s,i,a,l=this;return t=$recv(e)._class(),o=$recv(t).__eq(l._class()),a=$recv(o)._and_(function(){return r=$recv(e)._x(),n=$recv(r).__eq(l._x()),s=$recv(e)._y(),i=$recv(s).__eq(l._y()),$recv(n).__and(i)})},messageSends:["and:","=","class","&","x","y"]}),$globals.Point),$core.addMethod($core.method({selector:">",protocol:"comparing",fn:function(e){var t,o,r,n,s=this;return t=s._x(),o=$recv(t).__gt($recv(e)._x()),n=$recv(o)._and_(function(){return r=s._y(),$recv(r).__gt($recv(e)._y())})},messageSends:["and:",">","x","y"]}),$globals.Point),$core.addMethod($core.method({selector:">=",protocol:"comparing",fn:function(e){var t,o,r,n,s=this;return t=s._x(),o=$recv(t).__gt_eq($recv(e)._x()),n=$recv(o)._and_(function(){return r=s._y(),$recv(r).__gt_eq($recv(e)._y())})},messageSends:["and:",">=","x","y"]}),$globals.Point),$core.addMethod($core.method({selector:"asPoint",protocol:"converting",fn:function(){var e=this;return e},messageSends:[]}),$globals.Point),$core.addMethod($core.method({selector:"dist:",protocol:"transforming",fn:function(e){var t,o,r,n,s,i=this;return t=$recv($recv(e)._x()).__minus(i["@x"]),o=$recv($recv(e)._y()).__minus(i["@y"]),r=$recv(t).__star(t),n=$recv(r).__plus($recv(o).__star(o)),s=$recv(n)._sqrt()},messageSends:["-","x","y","sqrt","+","*"]}),$globals.Point),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t,o=this;return $recv(o["@x"])._printOn_(e),$recv(e)._nextPutAll_("@"),t=$recv($recv(o["@y"])._notNil())._and_(function(){return $recv(o["@y"])._negative()}),$core.assert(t)&&$recv(e)._space(),$recv(o["@y"])._printOn_(e),o},messageSends:["printOn:","nextPutAll:","ifTrue:","and:","notNil","negative","space"]}),$globals.Point),$core.addMethod($core.method({selector:"translateBy:",protocol:"transforming",fn:function(e){var t,o,r=this;return t=$recv($recv(e)._x()).__plus(r["@x"]),o=$recv(t).__at($recv($recv(e)._y()).__plus(r["@y"]))},messageSends:["@","+","x","y"]}),$globals.Point),$core.addMethod($core.method({selector:"x",protocol:"accessing",fn:function(){var e,t=this;return e=t["@x"]},messageSends:[]}),$globals.Point),$core.addMethod($core.method({selector:"x:",protocol:"accessing",fn:function(e){var t=this;return t["@x"]=e,t},messageSends:[]}),$globals.Point),$core.addMethod($core.method({selector:"y",protocol:"accessing",fn:function(){var e,t=this;return e=t["@y"]},messageSends:[]}),$globals.Point),$core.addMethod($core.method({selector:"y:",protocol:"accessing",fn:function(e){var t=this;return t["@y"]=e,t},messageSends:[]}),$globals.Point),$core.addMethod($core.method({selector:"classTag",protocol:"accessing",fn:function(){return"magnitude"},messageSends:[]}),$globals.Point.klass),$core.addMethod($core.method({selector:"x:y:",protocol:"instance creation",fn:function(e,t){var o,r,n,s=this;return o=s._new(),$recv(o)._x_(e),$recv(o)._y_(t),r=$recv(o)._yourself(),n=r},messageSends:["x:","new","y:","yourself"]}),$globals.Point.klass),$core.addClass("Random",$globals.Object,[],"Kernel-Objects"),$core.addMethod($core.method({selector:"next",protocol:"accessing",fn:function(){return Math.random()},messageSends:[]}),$globals.Random),$core.addMethod($core.method({selector:"next:",protocol:"accessing",fn:function(e){var t,o=this;return t=$recv(1.._to_(e))._collect_(function(e){return o._next()})},messageSends:["collect:","to:","next"]}),$globals.Random),$core.addClass("UndefinedObject",$globals.Object,[],"Kernel-Objects"),$core.addMethod($core.method({selector:"asJSON",protocol:"converting",fn:function(){var e;return e=null},messageSends:[]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"deepCopy",protocol:"copying",fn:function(){var e=this;return e},messageSends:[]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"ifNil:",protocol:"testing",fn:function(e){var t,o=this;return t=o._ifNil_ifNotNil_(e,function(){})},messageSends:["ifNil:ifNotNil:"]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"ifNil:ifNotNil:",protocol:"testing",fn:function(e,t){var o;return o=$recv(e)._value()},messageSends:["value"]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"ifNotNil:",protocol:"testing",fn:function(e){var t=this;return t},messageSends:[]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"ifNotNil:ifNil:",protocol:"testing",fn:function(e,t){var o;return o=$recv(t)._value()},messageSends:["value"]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"isImmutable",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"isNil",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"notNil",protocol:"testing",fn:function(){return!1},messageSends:[]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t=this;return $recv(e)._nextPutAll_("nil"),t},messageSends:["nextPutAll:"]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"shallowCopy",protocol:"copying",fn:function(){var e=this;return e},messageSends:[]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"subclass:instanceVariableNames:",protocol:"class creation",fn:function(e,t){var o,r=this;return o=r._subclass_instanceVariableNames_package_(e,t,nil)},messageSends:["subclass:instanceVariableNames:package:"]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"subclass:instanceVariableNames:category:",protocol:"class creation",fn:function(e,t,o){var r,n=this;return r=n._subclass_instanceVariableNames_package_(e,t,o)},messageSends:["subclass:instanceVariableNames:package:"]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",protocol:"class creation",fn:function(e,t,o,r,n){var s,i=this;return s=i._subclass_instanceVariableNames_package_(e,t,n)},messageSends:["subclass:instanceVariableNames:package:"]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"subclass:instanceVariableNames:package:",protocol:"class creation",fn:function(e,t,o){function r(){return $globals.ClassBuilder||("undefined"==typeof ClassBuilder?nil:ClassBuilder)}var n,s=this;return n=$recv($recv(r())._new())._superclass_subclass_instanceVariableNames_package_(s,$recv(e)._asString(),t,o)},messageSends:["superclass:subclass:instanceVariableNames:package:","new","asString"]}),$globals.UndefinedObject),$core.addMethod($core.method({selector:"new",protocol:"instance creation",fn:function(){var e=this;return e._error_("You cannot create new instances of UndefinedObject. Use nil"),e},messageSends:["error:"]}),$globals.UndefinedObject.klass)}),define("amber_core/Kernel-Classes",["amber/boot","amber_core/Kernel-Objects"],function($boot){"use strict";var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;$core.addPackage("Kernel-Classes"),$core.packages["Kernel-Classes"].innerEval=function(expr){return eval(expr)},$core.packages["Kernel-Classes"].transport={type:"amd",amdNamespace:"amber_core"},$core.addClass("Behavior",$globals.Object,[],"Kernel-Classes"),$core.addMethod($core.method({selector:">>",protocol:"accessing",fn:function(e){var t,o=this;return t=o._methodAt_(e)},messageSends:["methodAt:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"addCompiledMethod:",protocol:"compiling",fn:function(e){function t(){return $globals.MethodAdded||("undefined"==typeof MethodAdded?nil:MethodAdded)}function o(){return $globals.MethodModified||("undefined"==typeof MethodModified?nil:MethodModified)}function r(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}var n,s,i,a,l,c,d,u,h,f,p,g,m,v,_=this;return n=$recv(_._methodDictionary())._at_ifAbsent_($recv(e)._selector(),function(){return nil}),i=_._protocols(),a=$recv(e)._protocol(),l=$recv(i)._includes_(a),$core.assert(l)||(c=_._organization(),d=$recv(e)._protocol(),$recv(c)._addElement_(d)),_._basicAddCompiledMethod_(e),u=n,null==(v=u)||v.isNil||_._removeProtocolIfEmpty_($recv(n)._protocol()),h=n,null==(v=h)||v.isNil?(f=$recv(t())._new(),$recv(f)._method_(e),p=$recv(f)._yourself(),s=p):(g=$recv(o())._new(),$recv(g)._oldMethod_(n),$recv(g)._method_(e),m=$recv(g)._yourself(),s=m),$recv($recv(r())._current())._announce_(s),_},messageSends:["at:ifAbsent:","methodDictionary","selector","ifFalse:","includes:","protocols","protocol","addElement:","organization","basicAddCompiledMethod:","ifNotNil:","removeProtocolIfEmpty:","ifNil:ifNotNil:","method:","new","yourself","oldMethod:","announce:","current"]}),$globals.Behavior),$core.addMethod($core.method({selector:"allInstanceVariableNames",protocol:"accessing",fn:function(){var e,t,o,r,n=this;return e=$recv(n._instanceVariableNames())._copy(),t=n._superclass(),null==(r=t)||r.isNil||$recv(e)._addAll_($recv(n._superclass())._allInstanceVariableNames()),o=e},messageSends:["copy","instanceVariableNames","ifNotNil:","superclass","addAll:","allInstanceVariableNames"]}),$globals.Behavior),$core.addMethod($core.method({selector:"allSelectors",protocol:"accessing",fn:function(){var e,t,o,r,n=this;return e=n._allSuperclasses(),t=n._selectors(),r=$recv(e)._inject_into_(t,function(e,t){return $recv(e)._addAll_($recv(t)._selectors()),o=$recv(e)._yourself()})},messageSends:["inject:into:","allSuperclasses","selectors","addAll:","yourself"]}),$globals.Behavior),$core.addMethod($core.method({selector:"allSubclasses",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r._subclasses(),t=1,$recv(function(){return $recv(t).__gt($recv(e)._size())})._whileFalse_(function(){return $recv(e)._addAll_($recv($recv(e)._at_(t))._subclasses()),t=$recv(t).__plus(1)}),o=e},messageSends:["subclasses","whileFalse:",">","size","addAll:","at:","+"]}),$globals.Behavior),$core.addMethod($core.method({selector:"allSubclassesDo:",protocol:"enumerating",fn:function(e){var t=this;return $recv(t._allSubclasses())._do_(function(t){return $recv(e)._value_(t)}),t},messageSends:["do:","allSubclasses","value:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"allSuperclasses",protocol:"accessing",fn:function(){function e(){return $globals.OrderedCollection||("undefined"==typeof OrderedCollection?nil:OrderedCollection)}var t,o,r,n,s,i,a,l=this;return t=l._superclass(),null==(a=t)||a.isNil?o=[]:(r=l._superclass(),n=$recv(e())._with_(r),$recv(n)._addAll_($recv(l._superclass())._allSuperclasses()),s=$recv(n)._yourself(),i=s)},messageSends:["ifNil:","superclass","addAll:","with:","allSuperclasses","yourself"]}),$globals.Behavior),$core.addMethod($core.method({selector:"basicAddCompiledMethod:",protocol:"private",fn:function(e){var t=this;return $core.addMethod(e,t),t},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"basicNew",protocol:"instance creation",fn:function(){var e=this;return new e.fn},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"basicRemoveCompiledMethod:",protocol:"private",fn:function(e){var t=this;return $core.removeMethod(e,t),t},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"canUnderstand:",protocol:"testing",fn:function(e){var t,o,r,n=this;return r=$recv(n._includesSelector_($recv(e)._asString()))._or_(function(){return t=n._superclass(),o=$recv(t)._notNil(),$recv(o)._and_(function(){return $recv(n._superclass())._canUnderstand_(e)})})},messageSends:["or:","includesSelector:","asString","and:","notNil","superclass","canUnderstand:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"comment",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r._basicAt_("comment"),t=null==(o=e)||o.isNil?"":e},messageSends:["ifNil:","basicAt:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"comment:",protocol:"accessing",fn:function(e){function t(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function o(){return $globals.ClassCommentChanged||("undefined"==typeof ClassCommentChanged?nil:ClassCommentChanged)}var r,n,s=this;return s._basicAt_put_("comment",e),r=$recv(o())._new(),$recv(r)._theClass_(s),n=$recv(r)._yourself(),$recv($recv(t())._current())._announce_(n),s},messageSends:["basicAt:put:","announce:","current","theClass:","new","yourself"]}),$globals.Behavior),$core.addMethod($core.method({selector:"compile:protocol:",protocol:"compiling",fn:function(e,t){function o(){return $globals.Compiler||("undefined"==typeof Compiler?nil:Compiler)}var r,n=this;return r=$recv($recv(o())._new())._install_forClass_protocol_(e,n,t)},messageSends:["install:forClass:protocol:","new"]}),$globals.Behavior),$core.addMethod($core.method({selector:"definition",protocol:"accessing",fn:function(){return""},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"includesBehavior:",protocol:"testing",fn:function(e){var t,o=this;return t=$recv(o.__eq_eq(e))._or_(function(){return o._inheritsFrom_(e)})},messageSends:["or:","==","inheritsFrom:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"includesSelector:",protocol:"testing",fn:function(e){var t,o=this;return t=$recv(o._methodDictionary())._includesKey_(e)},messageSends:["includesKey:","methodDictionary"]}),$globals.Behavior),$core.addMethod($core.method({selector:"inheritsFrom:",protocol:"testing",fn:function(e){var t,o,r,n,s,i=this;return t=i._superclass(),null==(s=t)||s.isNil?!1:(o=i._superclass(),r=$recv(e).__eq_eq(o),n=$recv(r)._or_(function(){return $recv(i._superclass())._inheritsFrom_(e)}))},messageSends:["ifNil:","superclass","or:","==","inheritsFrom:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"instanceVariableNames",protocol:"accessing",fn:function(){var e=this;return e.iVarNames},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"isBehavior",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"javascriptConstructor",protocol:"accessing",fn:function(){var e=this;return e.fn},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"javascriptConstructor:",protocol:"accessing",fn:function(e){var t=this;return $core.setClassConstructor(t,e),t},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"lookupSelector:",protocol:"accessing",fn:function(e){var t,o,r,n=this,s={};try{return t=n,$recv(function(){return $recv(t).__eq(nil)})._whileFalse_(function(){if(o=$recv(t)._includesSelector_(e),$core.assert(o))throw r=$recv(t)._methodAt_(e),s=[r];return t=$recv(t)._superclass()}),nil}catch(i){if(i===s)return i[0];throw i}},messageSends:["whileFalse:","=","ifTrue:","includesSelector:","methodAt:","superclass"]}),$globals.Behavior),$core.addMethod($core.method({selector:"methodAt:",protocol:"accessing",fn:function(e){var t,o=this;return t=$recv(o._methodDictionary())._at_(e)},messageSends:["at:","methodDictionary"]}),$globals.Behavior),$core.addMethod($core.method({selector:"methodDictionary",protocol:"accessing",fn:function(){var e=this,t=$globals.HashedCollection._new(),o=e.methods;return Object.keys(o).forEach(function(e){o[e].selector&&t._at_put_(o[e].selector,o[e])}),t},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"methodTemplate",protocol:"accessing",fn:function(){function e(){return $globals.String||("undefined"==typeof String?nil:String)}var t,o,r,n,s,i,a,l,c,d;return d=$recv(e())._streamContents_(function(d){return $recv(d)._nextPutAll_("messageSelectorAndArgumentNames"),t=$recv(e())._lf(),o=$recv(e())._tab(),r=$recv(t).__comma(o),$recv(d)._nextPutAll_(r),$recv(d)._nextPutAll_('"comment stating purpose of message"'),n=$recv(e())._lf(),s=$recv(e())._lf(),i=$recv(n).__comma(s),a=$recv(e())._tab(),l=$recv(i).__comma(a),$recv(d)._nextPutAll_(l),$recv(d)._nextPutAll_("| temporary variable names |"),$recv(d)._nextPutAll_($recv($recv(e())._lf()).__comma($recv(e())._tab())),c=$recv(d)._nextPutAll_("statements")})},messageSends:["streamContents:","nextPutAll:",",","lf","tab"]}),$globals.Behavior),$core.addMethod($core.method({selector:"methods",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t._methodDictionary())._values()},messageSends:["values","methodDictionary"]}),$globals.Behavior),$core.addMethod($core.method({selector:"methodsInProtocol:",protocol:"accessing",fn:function(e){var t,o=this;return t=$recv(o._methods())._select_(function(t){return $recv($recv(t)._protocol()).__eq(e)})},messageSends:["select:","methods","=","protocol"]}),$globals.Behavior),$core.addMethod($core.method({selector:"name",protocol:"accessing",fn:function(){var e=this;return e.className||nil},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"new",protocol:"instance creation",fn:function(){var e,t=this;return e=$recv(t._basicNew())._initialize()},messageSends:["initialize","basicNew"]}),$globals.Behavior),$core.addMethod($core.method({selector:"organization",protocol:"accessing",fn:function(){var e,t=this;return e=t._basicAt_("organization")},messageSends:["basicAt:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"ownMethods",protocol:"accessing",fn:function(){function e(){return $globals.OrderedCollection||("undefined"==typeof OrderedCollection?nil:OrderedCollection)}var t,o,r=this;return o=$recv($recv(r._ownProtocols())._inject_into_($recv(e())._new(),function(e,t){return $recv(e).__comma(r._methodsInProtocol_(t))}))._sorted_(function(e,o){return t=$recv(e)._selector(),$recv(t).__lt_eq($recv(o)._selector())})},messageSends:["sorted:","inject:into:","ownProtocols","new",",","methodsInProtocol:","<=","selector"]}),$globals.Behavior),$core.addMethod($core.method({selector:"ownProtocols",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t._protocols())._reject_(function(e){return $recv(e)._match_("^\\*")})},messageSends:["reject:","protocols","match:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"packageOfProtocol:",protocol:"accessing",fn:function(e){function t(){return $globals.Package||("undefined"==typeof Package?nil:Package)}var o,r,n,s=this;return o=$recv(e)._beginsWith_("*"),$core.assert(o)?n=$recv(t())._named_ifAbsent_($recv(e)._allButFirst(),function(){return nil}):r=s._package()},messageSends:["ifFalse:","beginsWith:","package","named:ifAbsent:","allButFirst"]}),$globals.Behavior),$core.addMethod($core.method({selector:"protocols",protocol:"accessing",fn:function(){var e,t=this;return e=$recv($recv(t._organization())._elements())._sorted()},messageSends:["sorted","elements","organization"]}),$globals.Behavior),$core.addMethod($core.method({selector:"protocolsDo:",protocol:"enumerating",fn:function(e){function t(){return $globals.HashedCollection||("undefined"==typeof HashedCollection?nil:HashedCollection)}function o(){return $globals.Array||("undefined"==typeof Array?nil:Array)}var r,n=this;return r=$recv(t())._new(),$recv(n._methodDictionary())._valuesDo_(function(e){return $recv($recv(r)._at_ifAbsentPut_($recv(e)._protocol(),function(){return $recv(o())._new()}))._add_(e)}),$recv(n._protocols())._do_(function(t){return $recv(e)._value_value_(t,$recv(r)._at_(t))}),n},messageSends:["new","valuesDo:","methodDictionary","add:","at:ifAbsentPut:","protocol","do:","protocols","value:value:","at:"]}),$globals.Behavior),$core.addMethod($core.method({selector:"prototype",protocol:"accessing",fn:function(){var e=this;return e.fn.prototype},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"recompile",protocol:"compiling",fn:function(){function e(){return $globals.Compiler||("undefined"==typeof Compiler?nil:Compiler)}var t,o=this;return t=$recv($recv(e())._new())._recompile_(o)},messageSends:["recompile:","new"]}),$globals.Behavior),$core.addMethod($core.method({selector:"removeCompiledMethod:",protocol:"compiling",fn:function(e){function t(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function o(){return $globals.MethodRemoved||("undefined"==typeof MethodRemoved?nil:MethodRemoved)}var r,n,s=this;return s._basicRemoveCompiledMethod_(e),s._removeProtocolIfEmpty_($recv(e)._protocol()),r=$recv(o())._new(),$recv(r)._method_(e),n=$recv(r)._yourself(),$recv($recv(t())._current())._announce_(n),s},messageSends:["basicRemoveCompiledMethod:","removeProtocolIfEmpty:","protocol","announce:","current","method:","new","yourself"]}),$globals.Behavior),$core.addMethod($core.method({selector:"removeProtocolIfEmpty:",protocol:"accessing",fn:function(e){var t=this;return $recv(t._methods())._detect_ifNone_(function(t){return $recv($recv(t)._protocol()).__eq(e)},function(){return $recv(t._organization())._removeElement_(e)}),t},messageSends:["detect:ifNone:","methods","=","protocol","removeElement:","organization"]}),$globals.Behavior),$core.addMethod($core.method({selector:"selectors",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t._methodDictionary())._keys()},messageSends:["keys","methodDictionary"]}),$globals.Behavior),$core.addMethod($core.method({selector:"subclasses",protocol:"accessing",fn:function(){var e=this;return e._subclassResponsibility(),e},messageSends:["subclassResponsibility"]}),$globals.Behavior),$core.addMethod($core.method({selector:"superclass",protocol:"accessing",fn:function(){var e=this;return e.superclass||nil},messageSends:[]}),$globals.Behavior),$core.addMethod($core.method({selector:"theMetaClass",protocol:"accessing",fn:function(){var e=this;return e._subclassResponsibility(),e},messageSends:["subclassResponsibility"]}),$globals.Behavior),$core.addMethod($core.method({selector:"theNonMetaClass",protocol:"accessing",fn:function(){var e=this;return e._subclassResponsibility(),e},messageSends:["subclassResponsibility"]}),$globals.Behavior),$core.addMethod($core.method({selector:"withAllSubclasses",protocol:"accessing",fn:function(){function e(){return $globals.Array||("undefined"==typeof Array?nil:Array)}var t,o,r,n=this;return t=$recv(e())._with_(n), $recv(t)._addAll_(n._allSubclasses()),o=$recv(t)._yourself(),r=o},messageSends:["addAll:","with:","allSubclasses","yourself"]}),$globals.Behavior),$core.addClass("Class",$globals.Behavior,[],"Kernel-Classes"),$core.addMethod($core.method({selector:"asJavascript",protocol:"converting",fn:function(){var e,t=this;return e="$globals.".__comma(t._name())},messageSends:[",","name"]}),$globals.Class),$core.addMethod($core.method({selector:"browse",protocol:"browsing",fn:function(){function e(){return $globals.Finder||("undefined"==typeof Finder?nil:Finder)}var t=this;return $recv(e())._findClass_(t),t},messageSends:["findClass:"]}),$globals.Class),$core.addMethod($core.method({selector:"category",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r._package(),t=null==(o=e)||o.isNil?"Unclassified":$recv(r._package())._name()},messageSends:["ifNil:ifNotNil:","package","name"]}),$globals.Class),$core.addMethod($core.method({selector:"classTag",protocol:"accessing",fn:function(){return"class"},messageSends:[]}),$globals.Class),$core.addMethod($core.method({selector:"definition",protocol:"accessing",fn:function(){function e(){return $globals.String||("undefined"==typeof String?nil:String)}var t,o,r,n,s,i,a,l=this;return a=$recv(e())._streamContents_(function(a){return $recv(a)._nextPutAll_($recv(l._superclass())._asString()),$recv(a)._nextPutAll_(" subclass: #"),$recv(a)._nextPutAll_(l._name()),t=$recv(e())._lf(),o=$recv(e())._tab(),r=$recv(t).__comma(o),$recv(a)._nextPutAll_(r),n=$recv(a)._nextPutAll_("instanceVariableNames: '"),$recv(l._instanceVariableNames())._do_separatedBy_(function(e){return $recv(a)._nextPutAll_(e)},function(){return $recv(a)._nextPutAll_(" ")}),s=$recv("'".__comma($recv(e())._lf())).__comma($recv(e())._tab()),$recv(a)._nextPutAll_(s),$recv(a)._nextPutAll_("package: '"),$recv(a)._nextPutAll_(l._category()),i=$recv(a)._nextPutAll_("'")})},messageSends:["streamContents:","nextPutAll:","asString","superclass","name",",","lf","tab","do:separatedBy:","instanceVariableNames","category"]}),$globals.Class),$core.addMethod($core.method({selector:"isClass",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.Class),$core.addMethod($core.method({selector:"package",protocol:"accessing",fn:function(){var e,t=this;return e=t._basicAt_("pkg")},messageSends:["basicAt:"]}),$globals.Class),$core.addMethod($core.method({selector:"package:",protocol:"accessing",fn:function(e){function t(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function o(){return $globals.ClassMoved||("undefined"==typeof ClassMoved?nil:ClassMoved)}var r,n,s,i,a,l,c=this;return n=c._package(),s=$recv(n).__eq(e),$core.assert(s)?c:(r=c._package(),c._basicAt_put_("pkg",e),i=$recv(r)._organization(),$recv(i)._removeElement_(c),$recv($recv(e)._organization())._addElement_(c),a=$recv(o())._new(),$recv(a)._theClass_(c),$recv(a)._oldPackage_(r),l=$recv(a)._yourself(),$recv($recv(t())._current())._announce_(l),c)},messageSends:["ifTrue:","=","package","basicAt:put:","removeElement:","organization","addElement:","announce:","current","theClass:","new","oldPackage:","yourself"]}),$globals.Class),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t=this;return $recv(e)._nextPutAll_(t._name()),t},messageSends:["nextPutAll:","name"]}),$globals.Class),$core.addMethod($core.method({selector:"rename:",protocol:"accessing",fn:function(e){function t(){return $globals.ClassBuilder||("undefined"==typeof ClassBuilder?nil:ClassBuilder)}var o=this;return $recv($recv(t())._new())._renameClass_to_(o,e),o},messageSends:["renameClass:to:","new"]}),$globals.Class),$core.addMethod($core.method({selector:"subclass:instanceVariableNames:",protocol:"class creation",fn:function(e,t){var o,r=this;return o=r._subclass_instanceVariableNames_package_(e,t,nil)},messageSends:["subclass:instanceVariableNames:package:"]}),$globals.Class),$core.addMethod($core.method({selector:"subclass:instanceVariableNames:category:",protocol:"class creation",fn:function(e,t,o){var r,n=this;return r=n._subclass_instanceVariableNames_package_(e,t,o)},messageSends:["subclass:instanceVariableNames:package:"]}),$globals.Class),$core.addMethod($core.method({selector:"subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",protocol:"class creation",fn:function(e,t,o,r,n){var s,i=this;return s=i._subclass_instanceVariableNames_package_(e,t,n)},messageSends:["subclass:instanceVariableNames:package:"]}),$globals.Class),$core.addMethod($core.method({selector:"subclass:instanceVariableNames:package:",protocol:"class creation",fn:function(e,t,o){function r(){return $globals.ClassBuilder||("undefined"==typeof ClassBuilder?nil:ClassBuilder)}var n,s=this;return n=$recv($recv(r())._new())._superclass_subclass_instanceVariableNames_package_(s,$recv(e)._asString(),t,o)},messageSends:["superclass:subclass:instanceVariableNames:package:","new","asString"]}),$globals.Class),$core.addMethod($core.method({selector:"subclasses",protocol:"accessing",fn:function(){var e=this;return e.subclasses._copy()},messageSends:[]}),$globals.Class),$core.addMethod($core.method({selector:"theMetaClass",protocol:"accessing",fn:function(){var e,t=this;return e=t._class()},messageSends:["class"]}),$globals.Class),$core.addMethod($core.method({selector:"theNonMetaClass",protocol:"accessing",fn:function(){var e=this;return e},messageSends:[]}),$globals.Class),$core.addClass("Metaclass",$globals.Behavior,[],"Kernel-Classes"),$core.addMethod($core.method({selector:"asJavascript",protocol:"converting",fn:function(){var e,t=this;return e=$recv("$globals.".__comma($recv(t._instanceClass())._name())).__comma(".klass")},messageSends:[",","name","instanceClass"]}),$globals.Metaclass),$core.addMethod($core.method({selector:"definition",protocol:"accessing",fn:function(){function e(){return $globals.String||("undefined"==typeof String?nil:String)}var t,o,r=this;return o=$recv(e())._streamContents_(function(e){return $recv(e)._nextPutAll_(r._asString()),t=$recv(e)._nextPutAll_(" instanceVariableNames: '"),$recv(r._instanceVariableNames())._do_separatedBy_(function(t){return $recv(e)._nextPutAll_(t)},function(){return $recv(e)._nextPutAll_(" ")}),$recv(e)._nextPutAll_("'")})},messageSends:["streamContents:","nextPutAll:","asString","do:separatedBy:","instanceVariableNames"]}),$globals.Metaclass),$core.addMethod($core.method({selector:"instanceClass",protocol:"accessing",fn:function(){var e=this;return e.instanceClass},messageSends:[]}),$globals.Metaclass),$core.addMethod($core.method({selector:"instanceVariableNames:",protocol:"accessing",fn:function(e){function t(){return $globals.ClassBuilder||("undefined"==typeof ClassBuilder?nil:ClassBuilder)}var o=this;return $recv($recv(t())._new())._class_instanceVariableNames_(o,e),o},messageSends:["class:instanceVariableNames:","new"]}),$globals.Metaclass),$core.addMethod($core.method({selector:"isMetaclass",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.Metaclass),$core.addMethod($core.method({selector:"package",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t._instanceClass())._package()},messageSends:["package","instanceClass"]}),$globals.Metaclass),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t,o=this;return $recv(e)._nextPutAll_($recv(o._instanceClass())._name()),t=$recv(e)._nextPutAll_(" class"),o},messageSends:["nextPutAll:","name","instanceClass"]}),$globals.Metaclass),$core.addMethod($core.method({selector:"subclasses",protocol:"accessing",fn:function(){var e,t=this;return e=$recv($recv($recv(t._instanceClass())._subclasses())._select_(function(e){return $recv($recv(e)._isMetaclass())._not()}))._collect_(function(e){return $recv(e)._theMetaClass()})},messageSends:["collect:","select:","subclasses","instanceClass","not","isMetaclass","theMetaClass"]}),$globals.Metaclass),$core.addMethod($core.method({selector:"theMetaClass",protocol:"accessing",fn:function(){var e=this;return e},messageSends:[]}),$globals.Metaclass),$core.addMethod($core.method({selector:"theNonMetaClass",protocol:"accessing",fn:function(){var e,t=this;return e=t._instanceClass()},messageSends:["instanceClass"]}),$globals.Metaclass),$core.addClass("ClassBuilder",$globals.Object,[],"Kernel-Classes"),$core.addMethod($core.method({selector:"addSubclassOf:named:instanceVariableNames:package:",protocol:"class definition",fn:function(e,t,o,r){function n(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}function s(){return $globals.Package||("undefined"==typeof Package?nil:Package)}var i,a,l,c,d,u,h,f=this;if(i=$recv($recv(n())._globals())._at_(t),a=$recv(s())._named_(r),l=i,null==(h=l)||h.isNil);else if($recv(i)._package_(a),c=$recv($recv(i)._superclass()).__eq_eq(e),!$core.assert(c))return d=f._migrateClassNamed_superclass_instanceVariableNames_package_(t,e,o,r);return u=f._basicAddSubclassOf_named_instanceVariableNames_package_(e,t,o,r)},messageSends:["at:","globals","named:","ifNotNil:","package:","ifFalse:","==","superclass","migrateClassNamed:superclass:instanceVariableNames:package:","basicAddSubclassOf:named:instanceVariableNames:package:"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"basicAddSubclassOf:named:instanceVariableNames:package:",protocol:"private",fn:function(e,t,o,r){return $core.addClass(t,e,o,r),$globals[t]},messageSends:[]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"basicClass:instanceVariableNames:",protocol:"private",fn:function(e,t){var o=this;return o._basicClass_instanceVariables_(e,o._instanceVariableNamesFor_(t)),o},messageSends:["basicClass:instanceVariables:","instanceVariableNamesFor:"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"basicClass:instanceVariables:",protocol:"private",fn:function(e,t){var o,r=this;return o=$recv(e)._isMetaclass(),$core.assert(o)||r._error_($recv($recv(e)._name()).__comma(" is not a metaclass")),$recv(e)._basicAt_put_("iVarNames",t),r},messageSends:["ifFalse:","isMetaclass","error:",",","name","basicAt:put:"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"basicRemoveClass:",protocol:"private",fn:function(e){var t=this;return $core.removeClass(e),t},messageSends:[]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"basicRenameClass:to:",protocol:"private",fn:function(e,t){var o=this;return $globals[t]=e,delete $globals[e.className],e.className=t,o},messageSends:[]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"basicSwapClassNames:with:",protocol:"private",fn:function(e,t){var o=this,r=e.className;return e.className=t.className,t.className=r,o},messageSends:[]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"class:instanceVariableNames:",protocol:"class definition",fn:function(e,t){function o(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function r(){return $globals.ClassDefinitionChanged||("undefined"==typeof ClassDefinitionChanged?nil:ClassDefinitionChanged)}var n,s,i=this;return i._basicClass_instanceVariableNames_(e,t),i._setupClass_(e),n=$recv(r())._new(),$recv(n)._theClass_(e),s=$recv(n)._yourself(),$recv($recv(o())._current())._announce_(s),i},messageSends:["basicClass:instanceVariableNames:","setupClass:","announce:","current","theClass:","new","yourself"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"copyClass:named:",protocol:"copying",fn:function(e,t){function o(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function r(){return $globals.ClassAdded||("undefined"==typeof ClassAdded?nil:ClassAdded)}var n,s,i,a,l=this;return n=l._addSubclassOf_named_instanceVariableNames_package_($recv(e)._superclass(),t,$recv(e)._instanceVariableNames(),$recv($recv(e)._package())._name()),l._copyClass_to_(e,n),s=$recv(r())._new(),$recv(s)._theClass_(n),i=$recv(s)._yourself(),$recv($recv(o())._current())._announce_(i),a=n},messageSends:["addSubclassOf:named:instanceVariableNames:package:","superclass","instanceVariableNames","name","package","copyClass:to:","announce:","current","theClass:","new","yourself"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"copyClass:to:",protocol:"copying",fn:function(e,t){function o(){return $globals.Compiler||("undefined"==typeof Compiler?nil:Compiler)}var r,n,s,i,a,l,c,d,u,h=this;return $recv(t)._comment_($recv(e)._comment()),r=$recv(e)._methodDictionary(),$recv(r)._valuesDo_(function(e){return n=$recv(o())._new(),s=$recv(e)._source(),i=$recv(e)._protocol(),$recv(n)._install_forClass_protocol_(s,t,i)}),a=$recv(t)._class(),l=$recv(e)._class(),c=$recv(l)._instanceVariableNames(),h._basicClass_instanceVariables_(a,c),d=$recv(e)._class(),u=$recv(d)._methodDictionary(),$recv(u)._valuesDo_(function(e){return $recv($recv(o())._new())._install_forClass_protocol_($recv(e)._source(),$recv(t)._class(),$recv(e)._protocol())}),h._setupClass_(t),h},messageSends:["comment:","comment","valuesDo:","methodDictionary","install:forClass:protocol:","new","source","protocol","basicClass:instanceVariables:","class","instanceVariableNames","setupClass:"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"installMethod:forClass:protocol:",protocol:"method definition",fn:function(e,t,o){return $recv(e)._protocol_(o),$recv(t)._addCompiledMethod_(e),e},messageSends:["protocol:","addCompiledMethod:"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"instanceVariableNamesFor:",protocol:"accessing",fn:function(e){var t;return t=$recv($recv(e)._tokenize_(" "))._reject_(function(e){return $recv(e)._isEmpty()})},messageSends:["reject:","tokenize:","isEmpty"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"migrateClass:superclass:",protocol:"class migration",fn:function(e,t){var o,r,n=this;return o=$recv(e)._name(),r=n._migrateClassNamed_superclass_instanceVariableNames_package_(o,t,$recv(e)._instanceVariableNames(),$recv($recv(e)._package())._name())},messageSends:["migrateClassNamed:superclass:instanceVariableNames:package:","name","instanceVariableNames","package"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"migrateClassNamed:superclass:instanceVariableNames:package:",protocol:"class migration",fn:function(e,t,o,r){function n(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}function s(){return $globals.Error||("undefined"==typeof Error?nil:Error)}function i(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function a(){return $globals.ClassMigrated||("undefined"==typeof ClassMigrated?nil:ClassMigrated)}var l,c,d,u,h,f,p,g,m=this;return d="new*".__comma(e),l=$recv($recv(n())._globals())._at_(e),c=m._addSubclassOf_named_instanceVariableNames_package_(t,d,o,r),m._basicSwapClassNames_with_(l,c),$recv(function(){return m._copyClass_to_(l,c)})._on_do_(s(),function(e){return m._basicSwapClassNames_with_(l,c),u=m._basicRemoveClass_(c),$recv(e)._resignal()}),m._rawRenameClass_to_(l,d),h=m._rawRenameClass_to_(c,e),$recv($recv(l)._subclasses())._do_(function(e){return m._migrateClass_superclass_(e,c)}),m._basicRemoveClass_(l),f=$recv(a())._new(),$recv(f)._theClass_(c),$recv(f)._oldClass_(l),p=$recv(f)._yourself(),$recv($recv(i())._current())._announce_(p),g=c},messageSends:[",","at:","globals","addSubclassOf:named:instanceVariableNames:package:","basicSwapClassNames:with:","on:do:","copyClass:to:","basicRemoveClass:","resignal","rawRenameClass:to:","do:","subclasses","migrateClass:superclass:","announce:","current","theClass:","new","oldClass:","yourself"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"rawRenameClass:to:",protocol:"private",fn:function(e,t){var o=this;return $globals[t]=e,o},messageSends:[]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"renameClass:to:",protocol:"class migration",fn:function(e,t){function o(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function r(){return $globals.ClassRenamed||("undefined"==typeof ClassRenamed?nil:ClassRenamed)}var n,s,i=this;return i._basicRenameClass_to_(e,t),$recv(e)._recompile(),n=$recv(r())._new(),$recv(n)._theClass_(e),s=$recv(n)._yourself(),$recv($recv(o())._current())._announce_(s),i},messageSends:["basicRenameClass:to:","recompile","announce:","current","theClass:","new","yourself"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"setupClass:",protocol:"public",fn:function(e){var t=this;return $core.init(e),t},messageSends:[]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"superclass:subclass:",protocol:"class definition",fn:function(e,t){var o,r=this;return o=r._superclass_subclass_instanceVariableNames_package_(e,t,"",nil)},messageSends:["superclass:subclass:instanceVariableNames:package:"]}),$globals.ClassBuilder),$core.addMethod($core.method({selector:"superclass:subclass:instanceVariableNames:package:",protocol:"class definition",fn:function(e,t,o,r){function n(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function s(){return $globals.ClassAdded||("undefined"==typeof ClassAdded?nil:ClassAdded)}var i,a,l,c,d,u,h,f=this;return a=f._instanceVariableNamesFor_(o),l=null==(h=r)||h.isNil?"unclassified":r,i=f._addSubclassOf_named_instanceVariableNames_package_(e,t,a,l),f._setupClass_(i),c=$recv(s())._new(),$recv(c)._theClass_(i),d=$recv(c)._yourself(),$recv($recv(n())._current())._announce_(d),u=i},messageSends:["addSubclassOf:named:instanceVariableNames:package:","instanceVariableNamesFor:","ifNil:","setupClass:","announce:","current","theClass:","new","yourself"]}),$globals.ClassBuilder),$core.addClass("ClassSorterNode",$globals.Object,["theClass","level","nodes"],"Kernel-Classes"),$core.addMethod($core.method({selector:"getNodesFrom:",protocol:"accessing",fn:function(e){function t(){return $globals.ClassSorterNode||("undefined"==typeof ClassSorterNode?nil:ClassSorterNode)}var o,r,n,s=this;return o=[],r=[],$recv(e)._do_(function(e){return n=$recv($recv(e)._superclass()).__eq(s._theClass()),$core.assert(n)?$recv(o)._add_(e):$recv(r)._add_(e)}),s["@nodes"]=$recv(o)._collect_(function(e){return $recv(t())._on_classes_level_(e,r,$recv(s._level()).__plus(1))}),s},messageSends:["do:","ifTrue:ifFalse:","=","superclass","theClass","add:","collect:","on:classes:level:","+","level"]}),$globals.ClassSorterNode),$core.addMethod($core.method({selector:"level",protocol:"accessing",fn:function(){var e,t=this;return e=t["@level"]},messageSends:[]}),$globals.ClassSorterNode),$core.addMethod($core.method({selector:"level:",protocol:"accessing",fn:function(e){var t=this;return t["@level"]=e,t},messageSends:[]}),$globals.ClassSorterNode),$core.addMethod($core.method({selector:"nodes",protocol:"accessing",fn:function(){var e,t=this;return e=t["@nodes"]},messageSends:[]}),$globals.ClassSorterNode),$core.addMethod($core.method({selector:"theClass",protocol:"accessing",fn:function(){var e,t=this;return e=t["@theClass"]},messageSends:[]}),$globals.ClassSorterNode),$core.addMethod($core.method({selector:"theClass:",protocol:"accessing",fn:function(e){var t=this;return t["@theClass"]=e,t},messageSends:[]}),$globals.ClassSorterNode),$core.addMethod($core.method({selector:"traverseClassesWith:",protocol:"visiting",fn:function(e){var t,o,r,n=this;return t=n._theClass(),$recv(e)._add_(t),$recv($recv(n._nodes())._sorted_(function(e,t){return o=$recv(e)._theClass(),r=$recv(o)._name(),$recv(r).__lt_eq($recv($recv(t)._theClass())._name())}))._do_(function(t){return $recv(t)._traverseClassesWith_(e)}),n},messageSends:["add:","theClass","do:","sorted:","nodes","<=","name","traverseClassesWith:"]}),$globals.ClassSorterNode),$core.addMethod($core.method({selector:"on:classes:level:",protocol:"instance creation",fn:function(e,t,o){var r,n,s,i=this;return r=i._new(),$recv(r)._theClass_(e),$recv(r)._level_(o),$recv(r)._getNodesFrom_(t),n=$recv(r)._yourself(),s=n},messageSends:["theClass:","new","level:","getNodesFrom:","yourself"]}),$globals.ClassSorterNode.klass)}),define("amber_core/Kernel-Methods",["amber/boot","amber_core/Kernel-Objects"],function($boot){"use strict";var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;$core.addPackage("Kernel-Methods"),$core.packages["Kernel-Methods"].innerEval=function(expr){return eval(expr)},$core.packages["Kernel-Methods"].transport={type:"amd",amdNamespace:"amber_core"},$core.addClass("BlockClosure",$globals.Object,[],"Kernel-Methods"),$core.addMethod($core.method({selector:"applyTo:arguments:",protocol:"evaluating",fn:function(e,t){var o=this;return o.apply(e,t)},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"asCompiledMethod:",protocol:"converting",fn:function(e){var t=this;return $core.method({selector:e,fn:t})},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"compiledSource",protocol:"accessing",fn:function(){var e=this;return e.toString()},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"currySelf",protocol:"converting",fn:function(){var e=this;return function(){var t=[this];return t.push.apply(t,arguments),e.apply(null,t)}},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"ensure:",protocol:"evaluating",fn:function(e){var t=this;try{return t._value()}finally{e._value()}return t},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"fork",protocol:"timeout/interval",fn:function(){function e(){return $globals.ForkPool||("undefined"==typeof ForkPool?nil:ForkPool)}var t=this;return $recv($recv(e())._default())._fork_(t),t},messageSends:["fork:","default"]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"new",protocol:"evaluating",fn:function(){var e=this;return new e},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"newValue:",protocol:"evaluating",fn:function(e){var t,o=this;return t=o._newWithValues_([e])},messageSends:["newWithValues:"]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"newValue:value:",protocol:"evaluating",fn:function(e,t){var o,r=this;return o=r._newWithValues_([e,t])},messageSends:["newWithValues:"]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"newValue:value:value:",protocol:"evaluating",fn:function(e,t,o){var r,n=this;return r=n._newWithValues_([e,t,o])},messageSends:["newWithValues:"]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"newWithValues:",protocol:"evaluating",fn:function(e){var t=this,o=Object.create(t.prototype),r=t.apply(o,e);return"object"==typeof r?r:o},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"numArgs",protocol:"accessing",fn:function(){var e=this;return e.length},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"on:do:",protocol:"error handling",fn:function(e,t){function o(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var r,n,s=this;return n=s._tryCatch_(function(n){var s;return s=$recv(o())._asSmalltalkException_(n),r=$recv(s)._isKindOf_(e),$core.assert(r)?$recv(t)._value_(s):$recv(s)._resignal()})},messageSends:["tryCatch:","asSmalltalkException:","ifTrue:ifFalse:","isKindOf:","value:","resignal"]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"receiver",protocol:"accessing",fn:function(){return nil},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"timeToRun",protocol:"evaluating",fn:function(){function e(){return $globals.Date||("undefined"==typeof Date?nil:Date)}var t,o=this;return t=$recv(e())._millisecondsToRun_(o)},messageSends:["millisecondsToRun:"]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"tryCatch:",protocol:"error handling",fn:function(e){var t=this;try{return t._value()}catch(o){if(Array.isArray(o)&&1===o.length)throw o;return e._value_(o)}return t},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"value",protocol:"evaluating",fn:function(){var e=this;return e()},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"value:",protocol:"evaluating",fn:function(e){var t=this;return t(e)},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"value:value:",protocol:"evaluating",fn:function(e,t){var o=this;return o(e,t)},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"value:value:value:",protocol:"evaluating",fn:function(e,t,o){var r=this;return r(e,t,o)},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"valueWithInterval:",protocol:"timeout/interval",fn:function(e){var t=this,o=setInterval(t,e);return $globals.Timeout._on_(o)},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"valueWithPossibleArguments:",protocol:"evaluating",fn:function(e){var t=this;return t.apply(null,e)},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"valueWithTimeout:",protocol:"timeout/interval",fn:function(e){var t=this,o=setTimeout(t,e);return $globals.Timeout._on_(o)},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"whileFalse",protocol:"controlling",fn:function(){var e=this;return e._whileFalse_(function(){}),e},messageSends:["whileFalse:"]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"whileFalse:",protocol:"controlling",fn:function(e){for(var t=this;!$core.assert(t._value());)e._value();return t},messageSends:[]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"whileTrue",protocol:"controlling",fn:function(){var e=this;return e._whileTrue_(function(){}),e},messageSends:["whileTrue:"]}),$globals.BlockClosure),$core.addMethod($core.method({selector:"whileTrue:",protocol:"controlling",fn:function(e){for(var t=this;$core.assert(t._value());)e._value();return t},messageSends:[]}),$globals.BlockClosure),$core.addClass("CompiledMethod",$globals.Object,[],"Kernel-Methods"),$core.addMethod($core.method({selector:"arguments",protocol:"accessing",fn:function(){var e=this;return e.args||[]},messageSends:[]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"browse",protocol:"browsing",fn:function(){function e(){return $globals.Finder||("undefined"==typeof Finder?nil:Finder)}var t=this;return $recv(e())._findMethod_(t),t},messageSends:["findMethod:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"category",protocol:"accessing",fn:function(){var e,t=this;return e=t._protocol()},messageSends:["protocol"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"defaultProtocol",protocol:"defaults",fn:function(){return"as yet unclassified"},messageSends:[]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"fn",protocol:"accessing",fn:function(){var e,t=this;return e=t._basicAt_("fn")},messageSends:["basicAt:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"fn:",protocol:"accessing",fn:function(e){var t=this;return t._basicAt_put_("fn",e),t},messageSends:["basicAt:put:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"isCompiledMethod",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"isOverridden",protocol:"testing",fn:function(){var e,t,o=this,r={};try{return e=o._selector(),$recv(o._methodClass())._allSubclassesDo_(function(o){if(t=$recv(o)._includesSelector_(e),$core.assert(t))throw r=[!0]}),!1}catch(n){if(n===r)return n[0];throw n}},messageSends:["selector","allSubclassesDo:","methodClass","ifTrue:","includesSelector:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"isOverride",protocol:"testing",fn:function(){var e,t,o,r,n,s=this;return t=s._methodClass(),e=$recv(t)._superclass(),o=e,null==(n=o)||n.isNil?!1:r=$recv($recv($recv(s._methodClass())._superclass())._lookupSelector_(s._selector()))._notNil()},messageSends:["superclass","methodClass","ifNil:","notNil","lookupSelector:","selector"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"messageSends",protocol:"accessing",fn:function(){var e,t=this;return e=t._basicAt_("messageSends")},messageSends:["basicAt:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"methodClass",protocol:"accessing",fn:function(){var e,t=this;return e=t._basicAt_("methodClass")},messageSends:["basicAt:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"package",protocol:"accessing",fn:function(){var e,t,o,r=this;if(e=r._methodClass(),null==(o=e)||o.isNil)t=e;else{var n;n=o,t=$recv(n)._packageOfProtocol_(r._protocol())}return t},messageSends:["ifNotNil:","methodClass","packageOfProtocol:","protocol"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"protocol",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r._basicAt_("protocol"),t=null==(o=e)||o.isNil?r._defaultProtocol():e},messageSends:["ifNil:","basicAt:","defaultProtocol"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"protocol:",protocol:"accessing",fn:function(e){function t(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function o(){return $globals.MethodMoved||("undefined"==typeof MethodMoved?nil:MethodMoved)}var r,n,s,i,a,l=this;if(r=l._protocol(),l._basicAt_put_("protocol",e),n=$recv(o())._new(),$recv(n)._method_(l),$recv(n)._oldProtocol_(r),s=$recv(n)._yourself(),$recv($recv(t())._current())._announce_(s),i=l._methodClass(),null==(a=i)||a.isNil);else{var c;c=a,$recv($recv(c)._organization())._addElement_(e),$recv(c)._removeProtocolIfEmpty_(r)}return l},messageSends:["protocol","basicAt:put:","announce:","current","method:","new","oldProtocol:","yourself","ifNotNil:","methodClass","addElement:","organization","removeProtocolIfEmpty:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"referencedClasses",protocol:"accessing",fn:function(){var e,t=this;return e=t._basicAt_("referencedClasses")},messageSends:["basicAt:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"selector",protocol:"accessing",fn:function(){var e,t=this;return e=t._basicAt_("selector")},messageSends:["basicAt:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"selector:",protocol:"accessing",fn:function(e){var t=this;return t._basicAt_put_("selector",e),t},messageSends:["basicAt:put:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"sendTo:arguments:",protocol:"evaluating",fn:function(e,t){var o,r=this;return o=$recv(r._fn())._applyTo_arguments_(e,t)},messageSends:["applyTo:arguments:","fn"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"source",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r._basicAt_("source"),t=null==(o=e)||o.isNil?"":e},messageSends:["ifNil:","basicAt:"]}),$globals.CompiledMethod),$core.addMethod($core.method({selector:"source:",protocol:"accessing",fn:function(e){var t=this;return t._basicAt_put_("source",e),t},messageSends:["basicAt:put:"]}),$globals.CompiledMethod),$core.addClass("ForkPool",$globals.Object,["poolSize","maxPoolSize","queue","worker"],"Kernel-Methods"),$core.addMethod($core.method({selector:"addWorker",protocol:"private",fn:function(){var e=this;return $recv(e["@worker"])._valueWithTimeout_(0),e["@poolSize"]=$recv(e["@poolSize"]).__plus(1),e},messageSends:["valueWithTimeout:","+"]}),$globals.ForkPool),$core.addMethod($core.method({selector:"defaultMaxPoolSize",protocol:"defaults",fn:function(){var e,t=this;return e=$recv(t._class())._defaultMaxPoolSize()},messageSends:["defaultMaxPoolSize","class"]}),$globals.ForkPool),$core.addMethod($core.method({selector:"fork:",protocol:"actions",fn:function(e){var t,o=this;return t=$recv(o["@poolSize"]).__lt(o._maxPoolSize()), $core.assert(t)&&o._addWorker(),$recv(o["@queue"])._nextPut_(e),o},messageSends:["ifTrue:","<","maxPoolSize","addWorker","nextPut:"]}),$globals.ForkPool),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){function e(){return $globals.Queue||("undefined"==typeof Queue?nil:Queue)}var t=this;return $globals.ForkPool.superclass.fn.prototype._initialize.apply($recv(t),[]),t["@poolSize"]=0,t["@queue"]=$recv(e())._new(),t["@worker"]=t._makeWorker(),t},messageSends:["initialize","new","makeWorker"]}),$globals.ForkPool),$core.addMethod($core.method({selector:"makeWorker",protocol:"initialization",fn:function(){function e(){return $globals.Object||("undefined"==typeof Object?nil:Object)}var t,o,r,n=this;return t=$recv(e())._new(),r=function(){var e;return n["@poolSize"]=$recv(n["@poolSize"]).__minus(1),n["@poolSize"],e=$recv(n["@queue"])._nextIfAbsent_(function(){return t}),o=$recv(e).__eq_eq(t),$core.assert(o)?void 0:$recv(function(){return $recv(e)._value()})._ensure_(function(){return n._addWorker()})}},messageSends:["new","-","nextIfAbsent:","ifFalse:","==","ensure:","value","addWorker"]}),$globals.ForkPool),$core.addMethod($core.method({selector:"maxPoolSize",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r["@maxPoolSize"],t=null==(o=e)||o.isNil?r._defaultMaxPoolSize():e},messageSends:["ifNil:","defaultMaxPoolSize"]}),$globals.ForkPool),$core.addMethod($core.method({selector:"maxPoolSize:",protocol:"accessing",fn:function(e){var t=this;return t["@maxPoolSize"]=e,t},messageSends:[]}),$globals.ForkPool),$globals.ForkPool.klass.iVarNames=["default"],$core.addMethod($core.method({selector:"default",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r["@default"],null==(o=e)||o.isNil?(r["@default"]=r._new(),t=r["@default"]):t=e,t},messageSends:["ifNil:","new"]}),$globals.ForkPool.klass),$core.addMethod($core.method({selector:"defaultMaxPoolSize",protocol:"accessing",fn:function(){return 100},messageSends:[]}),$globals.ForkPool.klass),$core.addMethod($core.method({selector:"resetDefault",protocol:"accessing",fn:function(){var e=this;return e["@default"]=nil,e},messageSends:[]}),$globals.ForkPool.klass),$core.addClass("Message",$globals.Object,["selector","arguments"],"Kernel-Methods"),$core.addMethod($core.method({selector:"arguments",protocol:"accessing",fn:function(){var e,t=this;return e=t["@arguments"]},messageSends:[]}),$globals.Message),$core.addMethod($core.method({selector:"arguments:",protocol:"accessing",fn:function(e){var t=this;return t["@arguments"]=e,t},messageSends:[]}),$globals.Message),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t,o=this;return $globals.Message.superclass.fn.prototype._printOn_.apply($recv(o),[e]),$recv(e)._nextPutAll_("("),$recv(e)._nextPutAll_(o._selector()),t=$recv(e)._nextPutAll_(")"),o},messageSends:["printOn:","nextPutAll:","selector"]}),$globals.Message),$core.addMethod($core.method({selector:"selector",protocol:"accessing",fn:function(){var e,t=this;return e=t["@selector"]},messageSends:[]}),$globals.Message),$core.addMethod($core.method({selector:"selector:",protocol:"accessing",fn:function(e){var t=this;return t["@selector"]=e,t},messageSends:[]}),$globals.Message),$core.addMethod($core.method({selector:"sendTo:",protocol:"actions",fn:function(e){var t,o=this;return t=$recv(e)._perform_withArguments_(o._selector(),o._arguments())},messageSends:["perform:withArguments:","selector","arguments"]}),$globals.Message),$core.addMethod($core.method({selector:"selector:arguments:",protocol:"instance creation",fn:function(e,t){var o,r,n,s=this;return o=s._new(),$recv(o)._selector_(e),$recv(o)._arguments_(t),r=$recv(o)._yourself(),n=r},messageSends:["selector:","new","arguments:","yourself"]}),$globals.Message.klass),$core.addClass("MessageSend",$globals.Object,["receiver","message"],"Kernel-Methods"),$core.addMethod($core.method({selector:"arguments",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t["@message"])._arguments()},messageSends:["arguments"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"arguments:",protocol:"accessing",fn:function(e){var t=this;return $recv(t["@message"])._arguments_(e),t},messageSends:["arguments:"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){function e(){return $globals.Message||("undefined"==typeof Message?nil:Message)}var t=this;return $globals.MessageSend.superclass.fn.prototype._initialize.apply($recv(t),[]),t["@message"]=$recv(e())._new(),t},messageSends:["initialize","new"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t,o=this;return $globals.MessageSend.superclass.fn.prototype._printOn_.apply($recv(o),[e]),$recv(e)._nextPutAll_("("),$recv(e)._nextPutAll_(o._receiver()),$recv(e)._nextPutAll_(" >> "),$recv(e)._nextPutAll_(o._selector()),t=$recv(e)._nextPutAll_(")"),o},messageSends:["printOn:","nextPutAll:","receiver","selector"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"receiver",protocol:"accessing",fn:function(){var e,t=this;return e=t["@receiver"]},messageSends:[]}),$globals.MessageSend),$core.addMethod($core.method({selector:"receiver:",protocol:"accessing",fn:function(e){var t=this;return t["@receiver"]=e,t},messageSends:[]}),$globals.MessageSend),$core.addMethod($core.method({selector:"selector",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t["@message"])._selector()},messageSends:["selector"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"selector:",protocol:"accessing",fn:function(e){var t=this;return $recv(t["@message"])._selector_(e),t},messageSends:["selector:"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"value",protocol:"evaluating",fn:function(){var e,t=this;return e=$recv(t["@message"])._sendTo_(t._receiver())},messageSends:["sendTo:","receiver"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"value:",protocol:"evaluating",fn:function(e){var t,o,r,n=this;return t=n["@message"],$recv(t)._arguments_([e]),o=$recv(t)._sendTo_(n._receiver()),r=o},messageSends:["arguments:","sendTo:","receiver"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"value:value:",protocol:"evaluating",fn:function(e,t){var o,r,n,s=this;return o=s["@message"],$recv(o)._arguments_([e,t]),r=$recv(o)._sendTo_(s._receiver()),n=r},messageSends:["arguments:","sendTo:","receiver"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"value:value:value:",protocol:"evaluating",fn:function(e,t,o){var r,n,s,i=this;return r=i["@message"],$recv(r)._arguments_([e,t,o]),n=$recv(r)._sendTo_(i._receiver()),s=n},messageSends:["arguments:","sendTo:","receiver"]}),$globals.MessageSend),$core.addMethod($core.method({selector:"valueWithPossibleArguments:",protocol:"evaluating",fn:function(e){var t,o=this;return o._arguments_(e),t=o._value()},messageSends:["arguments:","value"]}),$globals.MessageSend),$core.addClass("MethodContext",$globals.Object,[],"Kernel-Methods"),$core.addMethod($core.method({selector:"asString",protocol:"converting",fn:function(){var e,t,o,r,n,s,i,a,l,c,d,u,h,f,p,g,m=this;if(e=m._isBlockContext(),$core.assert(e))t="a block (in ".__comma($recv(m._methodContext())._asString()),g=$recv(t).__comma(")");else{var v;v=$recv(m._method())._methodClass(),o=v,r=m._receiver(),n=$recv(r)._class(),s=$recv(o).__eq(n),$core.assert(s)?(i=m._receiver(),a=$recv(i)._class(),l=$recv(a)._name(),c=$recv(l).__comma(" >> "),d=m._selector(),g=$recv(c).__comma(d)):(u=$recv($recv(m._receiver())._class())._name(),h=$recv(u).__comma("("),f=$recv(h).__comma($recv(v)._name()),p=$recv(f).__comma(") >> "),g=$recv(p).__comma(m._selector()))}return g},messageSends:["ifTrue:ifFalse:","isBlockContext",",","asString","methodContext","methodClass","method","=","class","receiver","name","selector"]}),$globals.MethodContext),$core.addMethod($core.method({selector:"basicReceiver",protocol:"accessing",fn:function(){var e=this;return e.receiver},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"evaluatedSelector",protocol:"accessing",fn:function(){var e=this;return e.evaluatedSelector},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"findContextSuchThat:",protocol:"accessing",fn:function(e){var t,o,r,n=this,s={};try{return t=n,$recv(function(){return $recv(t)._isNil()})._whileFalse_(function(){if(o=$recv(e)._value_(t),$core.assert(o))throw r=t,s=[r];return t=$recv(t)._outerContext()}),nil}catch(i){if(i===s)return i[0];throw i}},messageSends:["whileFalse:","isNil","ifTrue:","value:","outerContext"]}),$globals.MethodContext),$core.addMethod($core.method({selector:"home",protocol:"accessing",fn:function(){var e=this;return e.homeContext},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"index",protocol:"accessing",fn:function(){var e=this;return e.index||0},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"isBlockContext",protocol:"testing",fn:function(){var e,t=this;return e=$recv(t._selector())._isNil()},messageSends:["isNil","selector"]}),$globals.MethodContext),$core.addMethod($core.method({selector:"locals",protocol:"accessing",fn:function(){var e=this;return e.locals||{}},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"method",protocol:"accessing",fn:function(){var e,t,o,r,n,s,i,a,l,c,d,u,h,f=this;if(r=f._methodContext(),null==(h=r)||h.isNil)return nil;if(n=f._methodContext(),s=$recv(n)._receiver(),t=$recv(s)._class(),i=t,a=f._methodContext(),l=$recv(a)._selector(),e=$recv(i)._lookupSelector_(l),c=f._outerContext(),null==(h=c)||h.isNil)o=!1;else{var p;p=h,o=$recv(p)._supercall()}return d=o,u=$core.assert(d)?$recv($recv($recv(e)._methodClass())._superclass())._lookupSelector_($recv(f._methodContext())._selector()):e},messageSends:["ifNil:","methodContext","class","receiver","lookupSelector:","selector","ifNil:ifNotNil:","outerContext","supercall","ifFalse:ifTrue:","superclass","methodClass"]}),$globals.MethodContext),$core.addMethod($core.method({selector:"methodContext",protocol:"accessing",fn:function(){var e,t,o,r,n=this;if(e=n._isBlockContext(),!$core.assert(e))return n;if(t=n._outerContext(),null==(r=t)||r.isNil)o=t;else{var s;s=r,o=$recv(s)._methodContext()}return o},messageSends:["ifFalse:","isBlockContext","ifNotNil:","outerContext","methodContext"]}),$globals.MethodContext),$core.addMethod($core.method({selector:"outerContext",protocol:"accessing",fn:function(){var e=this;return e.outerContext||e.homeContext},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t,o=this;return $globals.MethodContext.superclass.fn.prototype._printOn_.apply($recv(o),[e]),$recv(e)._nextPutAll_("("),$recv(e)._nextPutAll_(o._asString()),t=$recv(e)._nextPutAll_(")"),o},messageSends:["printOn:","nextPutAll:","asString"]}),$globals.MethodContext),$core.addMethod($core.method({selector:"receiver",protocol:"accessing",fn:function(){var e,t,o,r=this;return t=$recv(r._isBlockContext())._and_(function(){return e=r._outerContext(),$recv(e)._notNil()}),o=$core.assert(t)?$recv(r._outerContext())._receiver():r._basicReceiver()},messageSends:["ifTrue:ifFalse:","and:","isBlockContext","notNil","outerContext","receiver","basicReceiver"]}),$globals.MethodContext),$core.addMethod($core.method({selector:"selector",protocol:"accessing",fn:function(){var e=this;return e.selector?$core.js2st(e.selector):nil},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"sendIndexAt:",protocol:"accessing",fn:function(e){var t=this;return t.sendIdx[e]||0},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"sendIndexes",protocol:"accessing",fn:function(){var e=this;return e.sendIdx},messageSends:[]}),$globals.MethodContext),$core.addMethod($core.method({selector:"supercall",protocol:"accessing",fn:function(){var e=this;return 1==e.supercall},messageSends:[]}),$globals.MethodContext),$core.addClass("NativeFunction",$globals.Object,[],"Kernel-Methods"),$core.addMethod($core.method({selector:"constructor:",protocol:"instance creation",fn:function(aString){var self=this;self._deprecatedAPI_("Use constructorNamed:");var nativeFunc=eval(aString);return new nativeFunc},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructor:value:",protocol:"instance creation",fn:function(aString,anObject){var self=this;self._deprecatedAPI_("Use constructorNamed:value:");var nativeFunc=eval(aString);return new nativeFunc(anObject)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructor:value:value:",protocol:"instance creation",fn:function(aString,anObject,anObject2){var self=this;self._deprecatedAPI_("Use constructorNamed:value:value:");var nativeFunc=eval(aString);return new nativeFunc(anObject,anObject2)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructor:value:value:value:",protocol:"instance creation",fn:function(aString,anObject,anObject2,anObject3){var self=this;self._deprecatedAPI_("Use constructorNamed:value:value:value");var nativeFunc=eval(aString);return new nativeFunc(anObject,anObject2,anObject3)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructorNamed:",protocol:"instance creation",fn:function(e){var t=new Function("return this")()[e];return new t},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructorNamed:value:",protocol:"instance creation",fn:function(e,t){var o=new Function("return this")()[e];return new o(t)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructorNamed:value:value:",protocol:"instance creation",fn:function(e,t,o){var r=new Function("return this")()[e];return new r(t,o)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructorNamed:value:value:value:",protocol:"instance creation",fn:function(e,t,o,r){var n=new Function("return this")()[e];return new n(t,o,r)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructorOf:",protocol:"instance creation",fn:function(e){return new e},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructorOf:value:",protocol:"instance creation",fn:function(e,t){return new e(t)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructorOf:value:value:",protocol:"instance creation",fn:function(e,t,o){return new e(t,o)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"constructorOf:value:value:value:",protocol:"instance creation",fn:function(e,t,o,r){return new e(t,o,r)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"exists:",protocol:"testing",fn:function(e){function t(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var o;return o=$recv(t())._existsJsGlobal_(e)},messageSends:["existsJsGlobal:"]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionNamed:",protocol:"function calling",fn:function(e){var t=new Function("return this")()[e];return t()},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionNamed:value:",protocol:"function calling",fn:function(e,t){var o=new Function("return this")()[e];return o(t)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionNamed:value:value:",protocol:"function calling",fn:function(e,t,o){var r=new Function("return this")()[e];return r(t,o)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionNamed:value:value:value:",protocol:"function calling",fn:function(e,t,o,r){var n=new Function("return this")()[e];return n(t,o,r)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionNamed:valueWithArgs:",protocol:"function calling",fn:function(e,t){var o=new Function("return this")()[e];return Function.prototype.apply.call(o,null,t)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionOf:",protocol:"function calling",fn:function(e){return e()},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionOf:value:",protocol:"function calling",fn:function(e,t){return e(t)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionOf:value:value:",protocol:"function calling",fn:function(e,t,o){return e(t,o)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionOf:value:value:value:",protocol:"function calling",fn:function(e,t,o,r){return e(t,o,r)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"functionOf:valueWithArgs:",protocol:"function calling",fn:function(e,t){return Function.prototype.apply.call(e,null,t)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"methodOf:this:",protocol:"method calling",fn:function(e,t){return Function.prototype.call.call(e,t)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"methodOf:this:value:",protocol:"method calling",fn:function(e,t,o){return Function.prototype.call.call(e,t,o)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"methodOf:this:value:value:",protocol:"method calling",fn:function(e,t,o,r){return Function.prototype.call.call(e,t,o,r)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"methodOf:this:value:value:value:",protocol:"method calling",fn:function(e,t,o,r,n){return Function.prototype.call.call(e,t,o,r,n)},messageSends:[]}),$globals.NativeFunction.klass),$core.addMethod($core.method({selector:"methodOf:this:valueWithArgs:",protocol:"method calling",fn:function(e,t,o){return Function.prototype.apply.call(e,t,o)},messageSends:[]}),$globals.NativeFunction.klass),$core.addClass("Timeout",$globals.Object,["rawTimeout"],"Kernel-Methods"),$core.addMethod($core.method({selector:"clearInterval",protocol:"timeout/interval",fn:function(){var e=this,t=e["@rawTimeout"];return clearInterval(t),e},messageSends:[]}),$globals.Timeout),$core.addMethod($core.method({selector:"clearTimeout",protocol:"timeout/interval",fn:function(){var e=this,t=e["@rawTimeout"];return clearTimeout(t),e},messageSends:[]}),$globals.Timeout),$core.addMethod($core.method({selector:"rawTimeout:",protocol:"accessing",fn:function(e){var t=this;return t["@rawTimeout"]=e,t},messageSends:[]}),$globals.Timeout),$core.addMethod($core.method({selector:"on:",protocol:"instance creation",fn:function(e){var t,o,r,n=this;return t=n._new(),$recv(t)._rawTimeout_(e),o=$recv(t)._yourself(),r=o},messageSends:["rawTimeout:","new","yourself"]}),$globals.Timeout.klass)}),define("amber_core/Kernel-Collections",["amber/boot","amber_core/Kernel-Objects"],function($boot){"use strict";var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;$core.addPackage("Kernel-Collections"),$core.packages["Kernel-Collections"].innerEval=function(expr){return eval(expr)},$core.packages["Kernel-Collections"].transport={type:"amd",amdNamespace:"amber_core"},$core.addClass("Association",$globals.Object,["key","value"],"Kernel-Collections"),$core.addMethod($core.method({selector:"=",protocol:"comparing",fn:function(e){var t,o,r,n,s,i,a=this;return t=a._class(),o=$recv(t).__eq($recv(e)._class()),i=$recv(o)._and_(function(){return r=a._key(),n=$recv(r).__eq($recv(e)._key()),$recv(n)._and_(function(){return s=a._value(),$recv(s).__eq($recv(e)._value())})})},messageSends:["and:","=","class","key","value"]}),$globals.Association),$core.addMethod($core.method({selector:"key",protocol:"accessing",fn:function(){var e,t=this;return e=t["@key"]},messageSends:[]}),$globals.Association),$core.addMethod($core.method({selector:"key:",protocol:"accessing",fn:function(e){var t=this;return t["@key"]=e,t},messageSends:[]}),$globals.Association),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t=this;return $recv(t._key())._printOn_(e),$recv(e)._nextPutAll_(" -> "),$recv(t._value())._printOn_(e),t},messageSends:["printOn:","key","nextPutAll:","value"]}),$globals.Association),$core.addMethod($core.method({selector:"value",protocol:"accessing",fn:function(){var e,t=this;return e=t["@value"]},messageSends:[]}),$globals.Association),$core.addMethod($core.method({selector:"value:",protocol:"accessing",fn:function(e){var t=this;return t["@value"]=e,t},messageSends:[]}),$globals.Association),$core.addMethod($core.method({selector:"key:value:",protocol:"instance creation",fn:function(e,t){var o,r,n,s=this;return o=s._new(),$recv(o)._key_(e),$recv(o)._value_(t),r=$recv(o)._yourself(),n=r},messageSends:["key:","new","value:","yourself"]}),$globals.Association.klass),$core.addClass("BucketStore",$globals.Object,["buckets","hashBlock"],"Kernel-Collections"),$core.addMethod($core.method({selector:"bucketOfElement:",protocol:"accessing",fn:function(e){var t=this,o=t["@hashBlock"](e);if(!o)return null;var r=t["@buckets"],n=r[o];return n||(n=r[o]=t._newBucket()),n},messageSends:[]}),$globals.BucketStore),$core.addMethod($core.method({selector:"do:",protocol:"enumerating",fn:function(e){for(var t=this,o=t["@buckets"],r=Object.keys(o),n=0;n=0?o["@values"][r]:t._value()},messageSends:[]}),$globals.Dictionary),$core.addMethod($core.method({selector:"at:put:",protocol:"accessing",fn:function(e,t){var o=this,r=o._positionOfKey_(e);if(-1===r){var n=o["@keys"];r=n.length,n.push(e)}return o["@values"][r]=t},messageSends:[]}),$globals.Dictionary),$core.addMethod($core.method({selector:"includesKey:",protocol:"testing",fn:function(e){var t=this;return t._positionOfKey_(e)>=0},messageSends:[]}),$globals.Dictionary),$core.addMethod($core.method({selector:"indexOf:ifAbsent:",protocol:"accessing",fn:function(e,t){var o,r,n,s=this;return o=$recv(s["@values"])._indexOf_ifAbsent_(e,function(){return 0}),r=$recv(o).__eq(0),n=$core.assert(r)?$recv(t)._value():$recv(s["@keys"])._at_(o)},messageSends:["indexOf:ifAbsent:","ifTrue:ifFalse:","=","value","at:"]}),$globals.Dictionary),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){var e=this;return $globals.Dictionary.superclass.fn.prototype._initialize.apply($recv(e),[]),e["@keys"]=[],e["@values"]=[],e},messageSends:["initialize"]}),$globals.Dictionary),$core.addMethod($core.method({selector:"keys",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t["@keys"])._copy()},messageSends:["copy"]}),$globals.Dictionary),$core.addMethod($core.method({selector:"keysAndValuesDo:",protocol:"enumerating",fn:function(e){var t,o=this;return t=$recv(o["@keys"])._with_do_(o["@values"],e)},messageSends:["with:do:"]}),$globals.Dictionary),$core.addMethod($core.method({selector:"keysDo:",protocol:"enumerating",fn:function(e){var t,o=this;return t=$recv(o["@keys"])._do_(e)},messageSends:["do:"]}),$globals.Dictionary),$core.addMethod($core.method({selector:"positionOfKey:",protocol:"private",fn:function(e){for(var t=this,o=t["@keys"],r=0;r=1&&e<=o.length?o[e-1]:t._value()},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"at:ifPresent:ifAbsent:",protocol:"accessing",fn:function(e,t,o){var r=this;return e>=1&&e<=r.length?t._value_(r[e-1]):o._value()},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"at:put:",protocol:"accessing",fn:function(e,t){var o=this;return o[e-1]=t},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"collect:",protocol:"enumerating",fn:function(e){var t=this;return t.map(function(t){return e._value_(t)})},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"join:",protocol:"enumerating",fn:function(e){var t=this;return t.join(e)},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"numericallyIndexable",protocol:"private",fn:function(){var e=this;return e},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t=this;return $globals.Array.superclass.fn.prototype._printOn_.apply($recv(t),[e]),$recv(e)._nextPutAll_(" ("),t._do_separatedBy_(function(t){return $recv(t)._printOn_(e)},function(){return $recv(e)._nextPutAll_(" ")}),$recv(e)._nextPutAll_(")"),t},messageSends:["printOn:","nextPutAll:","do:separatedBy:"]}),$globals.Array),$core.addMethod($core.method({selector:"remove:ifAbsent:",protocol:"adding/removing",fn:function(e,t){var o,r,n,s=this;return o=s._indexOf_ifAbsent_(e,function(){return 0}),r=$recv(o).__eq(0),$core.assert(r)?n=$recv(t)._value():(s._removeIndex_(o),n=e),n},messageSends:["indexOf:ifAbsent:","ifFalse:ifTrue:","=","removeIndex:","value"]}),$globals.Array),$core.addMethod($core.method({selector:"removeAll",protocol:"adding/removing",fn:function(){var e=this;return e.length=0,e},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"removeFrom:to:",protocol:"adding/removing",fn:function(e,t){var o=this;return o.splice(e-1,t-e+1),o},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"removeIndex:",protocol:"adding/removing",fn:function(e){var t=this;return t.splice(e-1,1),t},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"removeLast",protocol:"adding/removing",fn:function(){var e=this;return e.pop()},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"reversed",protocol:"converting",fn:function(){var e=this;return e._copy().reverse()},messageSends:[]}),$globals.Array),$core.addMethod($core.method({selector:"select:",protocol:"enumerating",fn:function(e){for(var t=this,o=t.klass._new(),r=0;r",protocol:"comparing",fn:function(e){var t=this;return String(t)>e._asString()},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:">=",protocol:"comparing",fn:function(e){var t=this;return String(t)>=e._asString()},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asJSON",protocol:"converting",fn:function(){var e=this;return e},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asJavaScriptMethodName",protocol:"converting",fn:function(){var e=this;return $core.st2js(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asJavascript",protocol:"converting",fn:function(){var e=this;return-1==e.search(/^[a-zA-Z0-9_:.$ ]*$/)?'"'+e.replace(/[\x00-\x1f"\\\x7f-\x9f]/g,function(e){var t=e.charCodeAt(0);return"\\x"+("0"+t.toString(16)).slice(-2)})+'"':'"'+e+'"'},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asLowercase",protocol:"converting",fn:function(){var e=this;return e.toLowerCase()},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asMutator",protocol:"converting",fn:function(){var e,t,o=this;return e=$recv(o._last()).__eq(":"),$core.assert(e)?o:t=o.__comma(":")},messageSends:["ifFalse:","=","last",","]}),$globals.String),$core.addMethod($core.method({selector:"asNumber",protocol:"converting",fn:function(){var e=this;return Number(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asRegexp",protocol:"converting",fn:function(){function e(){return $globals.RegularExpression||("undefined"==typeof RegularExpression?nil:RegularExpression)}var t,o=this;return t=$recv(e())._fromString_(o)},messageSends:["fromString:"]}),$globals.String),$core.addMethod($core.method({selector:"asString",protocol:"converting",fn:function(){var e=this;return e},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asSymbol",protocol:"converting",fn:function(){var e=this;return e},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asUppercase",protocol:"converting",fn:function(){var e=this;return e.toUpperCase()},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asciiValue",protocol:"accessing",fn:function(){var e=this;return e.charCodeAt(0)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"at:ifAbsent:",protocol:"accessing",fn:function(e,t){var o=this;return String(o)[e-1]||t._value()},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"at:ifPresent:ifAbsent:",protocol:"accessing",fn:function(e,t,o){var r=this,n=String(r)[e-1];return n?t._value_(n):o._value()},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"capitalized",protocol:"converting",fn:function(){var e,t,o=this;return e=o._isEmpty(),t=$core.assert(e)?o:$recv($recv(o._first())._asUppercase()).__comma(o._allButFirst())},messageSends:["ifTrue:ifFalse:","isEmpty",",","asUppercase","first","allButFirst"]}),$globals.String),$core.addMethod($core.method({selector:"charCodeAt:",protocol:"accessing",fn:function(e){var t=this;return t.charCodeAt(e-1)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"copyFrom:to:",protocol:"copying",fn:function(e,t){var o=this;return o.substring(e-1,t)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"crlfSanitized",protocol:"converting",fn:function(){function e(){return $globals.String||("undefined"==typeof String?nil:String)}var t,o=this;return t=$recv(o._lines())._join_($recv(e())._lf())},messageSends:["join:","lines","lf"]}),$globals.String),$core.addMethod($core.method({selector:"deepCopy",protocol:"copying",fn:function(){var e,t=this;return e=t._shallowCopy()},messageSends:["shallowCopy"]}),$globals.String),$core.addMethod($core.method({selector:"escaped",protocol:"converting",fn:function(){var e=this;return escape(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"includesSubString:",protocol:"testing",fn:function(e){var t=this;return-1!=t.indexOf(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"isCapitalized",protocol:"testing",fn:function(){var e,t,o,r=this;return e=r._first(),t=$recv(e)._asUppercase(),o=$recv(t).__eq_eq(r._first())},messageSends:["==","asUppercase","first"]}),$globals.String),$core.addMethod($core.method({selector:"isImmutable",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"isString",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"isVowel",protocol:"testing",fn:function(){var e,t=this;return e=$recv($recv(t._size()).__eq(1))._and_(function(){return"aeiou"._includes_(t._asLowercase())})},messageSends:["and:","=","size","includes:","asLowercase"]}),$globals.String),$core.addMethod($core.method({selector:"join:",protocol:"split join",fn:function(e){function t(){return $globals.String||("undefined"==typeof String?nil:String)}var o,r=this;return o=$recv(t())._streamContents_(function(t){return $recv(e)._do_separatedBy_(function(e){return $recv(t)._nextPutAll_($recv(e)._asString())},function(){return $recv(t)._nextPutAll_(r)})})},messageSends:["streamContents:","do:separatedBy:","nextPutAll:","asString"]}),$globals.String),$core.addMethod($core.method({selector:"lineIndicesDo:",protocol:"split join",fn:function(e){function t(){return $globals.String||("undefined"==typeof String?nil:String)}var o,r,n,s,i,a,l,c,d,u,h,f,p,g,m,v,_,$=this,b={};try{return n=1,s=$._size(),o=$recv(t())._cr(),a=$._indexOf_startingAt_(o,1),r=$recv(t())._lf(),i=$._indexOf_startingAt_(r,1),$recv(function(){return $recv(n).__lt_eq(s)})._whileTrue_(function(){if(l=$recv(i).__eq(0),c=$recv(l)._and_(function(){return $recv(a).__eq(0)}),$core.assert(c))throw $recv(e)._value_value_value_(n,s,s),b=[$];return d=$recv(a).__eq(0),h=$recv(d)._or_(function(){return u=0..__lt(i),$recv(u)._and_(function(){return $recv(i).__lt(a)})}),$core.assert(h)?(f=n,p=$recv(i).__minus(1),$recv(e)._value_value_value_(f,p,i),n=1..__plus(i),i=$._indexOf_startingAt_(r,n)):(g=1..__plus(a),m=$recv(g).__eq(i),$core.assert(m)?(v=n,_=$recv(a).__minus(1),$recv(e)._value_value_value_(v,_,i),n=1..__plus(i),a=$._indexOf_startingAt_(o,n),i=$._indexOf_startingAt_(r,n)):($recv(e)._value_value_value_(n,$recv(a).__minus(1),a),n=1..__plus(a),a=$._indexOf_startingAt_(o,n)))}),$}catch(y){if(y===b)return y[0];throw y}},messageSends:["size","cr","indexOf:startingAt:","lf","whileTrue:","<=","ifTrue:","and:","=","value:value:value:","ifTrue:ifFalse:","or:","<","-","+"]}),$globals.String),$core.addMethod($core.method({selector:"lineNumber:",protocol:"split join",fn:function(e){var t,o,r,n,s=this,i={};try{return t=0,s._lineIndicesDo_(function(a,l,c){if(t=$recv(t).__plus(1),o=t,r=$recv(o).__eq(e),$core.assert(r))throw n=s._copyFrom_to_(a,l),i=[n]}),nil}catch(a){if(a===i)return a[0];throw a}},messageSends:["lineIndicesDo:","ifTrue:","=","+","copyFrom:to:"]}),$globals.String),$core.addMethod($core.method({selector:"lines",protocol:"split join",fn:function(){function e(){return $globals.Array||("undefined"==typeof Array?nil:Array)}var t,o,r=this;return t=$recv(e())._new(),r._linesDo_(function(e){return $recv(t)._add_(e)}),o=t},messageSends:["new","linesDo:","add:"]}),$globals.String),$core.addMethod($core.method({selector:"linesDo:",protocol:"split join",fn:function(e){var t=this;return t._lineIndicesDo_(function(o,r,n){return $recv(e)._value_(t._copyFrom_to_(o,r))}),t},messageSends:["lineIndicesDo:","value:","copyFrom:to:"]}),$globals.String),$core.addMethod($core.method({selector:"match:",protocol:"regular expressions",fn:function(e){var t=this;return-1!=t.search(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"matchesOf:",protocol:"regular expressions",fn:function(e){var t=this;return t.match(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"numericallyIndexable",protocol:"private",fn:function(){var e=this;return String(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"printNl",protocol:"printing",fn:function(){var e=this;return console.log(e),e},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t,o=this;return $recv(e)._nextPutAll_("'"),$recv(e)._nextPutAll_(o),t=$recv(e)._nextPutAll_("'"),o},messageSends:["nextPutAll:"]}),$globals.String),$core.addMethod($core.method({selector:"replace:with:",protocol:"regular expressions",fn:function(e,t){function o(){return $globals.RegularExpression||("undefined"==typeof RegularExpression?nil:RegularExpression)}var r,n=this;return r=n._replaceRegexp_with_($recv(o())._fromString_flag_(e,"g"),t)},messageSends:["replaceRegexp:with:","fromString:flag:"]}),$globals.String),$core.addMethod($core.method({selector:"replaceRegexp:with:",protocol:"regular expressions",fn:function(e,t){var o=this;return o.replace(e,t)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"reversed",protocol:"converting",fn:function(){var e=this;return e.split("").reverse().join("")},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"shallowCopy",protocol:"copying",fn:function(){var e,t=this;return e=$recv(t._class())._fromString_(t)},messageSends:["fromString:","class"]}),$globals.String),$core.addMethod($core.method({selector:"size",protocol:"accessing",fn:function(){var e=this;return e.length},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"subStrings:",protocol:"split join",fn:function(e){var t,o=this;return t=o._tokenize_(e)},messageSends:["tokenize:"]}),$globals.String),$core.addMethod($core.method({selector:"tokenize:",protocol:"split join",fn:function(e){var t=this;return t.split(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"trimBoth",protocol:"regular expressions",fn:function(){var e,t=this;return e=t._trimBoth_("\\s")},messageSends:["trimBoth:"]}),$globals.String),$core.addMethod($core.method({selector:"trimBoth:",protocol:"regular expressions",fn:function(e){var t,o=this;return t=$recv(o._trimLeft_(e))._trimRight_(e)},messageSends:["trimRight:","trimLeft:"]}),$globals.String),$core.addMethod($core.method({selector:"trimLeft",protocol:"regular expressions",fn:function(){var e,t=this;return e=t._trimLeft_("\\s")},messageSends:["trimLeft:"]}),$globals.String),$core.addMethod($core.method({selector:"trimLeft:",protocol:"regular expressions",fn:function(e){function t(){return $globals.RegularExpression||("undefined"==typeof RegularExpression?nil:RegularExpression)}var o,r,n,s=this;return o=$recv("^[".__comma(e)).__comma("]+"),r=$recv(t())._fromString_flag_(o,"g"),n=s._replaceRegexp_with_(r,"")},messageSends:["replaceRegexp:with:","fromString:flag:",","]}),$globals.String),$core.addMethod($core.method({selector:"trimRight",protocol:"regular expressions",fn:function(){var e,t=this;return e=t._trimRight_("\\s")},messageSends:["trimRight:"]}),$globals.String),$core.addMethod($core.method({selector:"trimRight:",protocol:"regular expressions",fn:function(e){function t(){return $globals.RegularExpression||("undefined"==typeof RegularExpression?nil:RegularExpression)}var o,r,n,s=this;return o=$recv("[".__comma(e)).__comma("]+$"),r=$recv(t())._fromString_flag_(o,"g"),n=s._replaceRegexp_with_(r,"")},messageSends:["replaceRegexp:with:","fromString:flag:",","]}),$globals.String),$core.addMethod($core.method({selector:"unescaped",protocol:"converting",fn:function(){var e=this;return unescape(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"uriComponentDecoded",protocol:"converting",fn:function(){var e=this;return decodeURIComponent(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"uriComponentEncoded",protocol:"converting",fn:function(){var e=this;return encodeURIComponent(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"uriDecoded",protocol:"converting",fn:function(){var e=this;return decodeURI(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"uriEncoded",protocol:"converting",fn:function(){var e=this;return encodeURI(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"value:",protocol:"evaluating",fn:function(e){var t,o=this;return t=$recv(e)._perform_(o)},messageSends:["perform:"]}),$globals.String),$core.addMethod($core.method({selector:"cr",protocol:"accessing",fn:function(){return"\r"},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"crlf",protocol:"accessing",fn:function(){return"\r\n"},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"esc",protocol:"accessing",fn:function(){var e,t=this;return e=t._fromCharCode_(27)},messageSends:["fromCharCode:"]}),$globals.String.klass),$core.addMethod($core.method({selector:"fromCharCode:",protocol:"instance creation",fn:function(e){return String.fromCharCode(e)},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"fromString:",protocol:"instance creation",fn:function(e){return String(e)},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"lf",protocol:"accessing",fn:function(){return"\n"},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"random",protocol:"random",fn:function(){return(.6875*Math.random()+.3125).toString(32).slice(2)},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"randomNotIn:",protocol:"random",fn:function(e){var t,o,r=this;return $recv(function(){return t=r._random(),$recv(e)._includesSubString_(t)})._whileTrue(),o=t},messageSends:["whileTrue","random","includesSubString:"]}),$globals.String.klass),$core.addMethod($core.method({selector:"space",protocol:"accessing",fn:function(){return" "},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"streamClass",protocol:"accessing",fn:function(){function e(){return $globals.StringStream||("undefined"==typeof StringStream?nil:StringStream)}return e()},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"tab",protocol:"accessing",fn:function(){return" "},messageSends:[]}),$globals.String.klass),$core.addMethod($core.method({selector:"value:",protocol:"instance creation",fn:function(e){return String.fromCharCode(e)},messageSends:[]}),$globals.String.klass),$core.addClass("Set",$globals.Collection,["defaultBucket","slowBucketStores","fastBuckets","size"],"Kernel-Collections"),$core.addMethod($core.method({selector:"=",protocol:"comparing",fn:function(e){var t,o,r,n,s,i=this,a={};try{return t=i._class(),o=$recv(t).__eq($recv(e)._class()),$core.assert(o)?(r=i._size(),n=$recv(r).__eq($recv(e)._size()),$core.assert(n)?(i._do_(function(t){if(s=$recv(e)._includes_(t),!$core.assert(s))throw a=[!1]}),!0):!1):!1}catch(l){if(l===a)return l[0];throw l}},messageSends:["ifFalse:","=","class","size","do:","includes:"]}),$globals.Set),$core.addMethod($core.method({selector:"add:",protocol:"adding/removing",fn:function(e){var t,o,r,n,s=this;if(t=s._bucketsOfElement_(e),o=$recv(t)._second(),null==(n=o)||n.isNil){var i,a;i=$recv(t)._first(),a=$recv(t)._third(),$recv(a)._indexOf_ifAbsent_(i,function(){return $recv(a)._add_(i),s["@size"]=$recv(s["@size"]).__plus(1),s["@size"]}),r=i}else{var l;l=n,r=s._add_in_($recv(t)._first(),l)}return r},messageSends:["bucketsOfElement:","ifNil:ifNotNil:","second","first","third","indexOf:ifAbsent:","add:","+","add:in:"]}),$globals.Set),$core.addMethod($core.method({selector:"add:in:",protocol:"private",fn:function(e,t){var o=this;return e in t.store?!1:(o["@size"]++,t.store[e]=!0)},messageSends:[]}),$globals.Set),$core.addMethod($core.method({selector:"bucketsOfElement:",protocol:"private",fn:function(e){var t,o,r=this,n=null==e?e=nil:e.valueOf();if("object"==(t=typeof n)){if(e!==nil)return o=null,r["@slowBucketStores"].some(function(t){return o=t._bucketOfElement_(e)}),[e,null,o||r["@defaultBucket"]];n=null,t="boolean"}return[n,r["@fastBuckets"][t]]},messageSends:[]}),$globals.Set),$core.addMethod($core.method({selector:"classNameOf:",protocol:"private",fn:function(e){return null!=e.klass&&e.klass.className},messageSends:[]}),$globals.Set),$core.addMethod($core.method({selector:"collect:",protocol:"enumerating",fn:function(e){var t,o,r=this;return t=$recv(r._class())._new(),r._do_(function(o){return $recv(t)._add_($recv(e)._value_(o))}),o=t},messageSends:["new","class","do:","add:","value:"]}),$globals.Set),$core.addMethod($core.method({selector:"detect:ifNone:",protocol:"enumerating",fn:function(e,t){var o,r,n=this,s={};try{return n._do_(function(t){if(o=$recv(e)._value_(t),$core.assert(o))throw s=[t]}),r=$recv(t)._value()}catch(i){if(i===s)return i[0];throw i}},messageSends:["do:","ifTrue:","value:","value"]}),$globals.Set),$core.addMethod($core.method({selector:"do:",protocol:"enumerating",fn:function(e){var t,o,r,n=this;for(t=n["@fastBuckets"],o=Object.keys(t),r=0;r","value","new","first","at:put:","+"]}),$globals.Queue),$core.addMethod($core.method({selector:"nextPut:",protocol:"accessing",fn:function(e){var t=this;return $recv(t["@write"])._add_(e),t},messageSends:["add:"]}),$globals.Queue),$core.addClass("RegularExpression",$globals.Object,[],"Kernel-Collections"),$core.addMethod($core.method({selector:"compile:",protocol:"evaluating",fn:function(e){var t=this;return t.compile(e)},messageSends:[]}),$globals.RegularExpression),$core.addMethod($core.method({selector:"exec:",protocol:"evaluating",fn:function(e){var t=this;return t.exec(e)||nil},messageSends:[]}),$globals.RegularExpression),$core.addMethod($core.method({selector:"test:",protocol:"evaluating",fn:function(e){var t=this;return t.test(e)},messageSends:[]}),$globals.RegularExpression),$core.addMethod($core.method({selector:"fromString:",protocol:"instance creation",fn:function(e){var t,o=this;return t=o._fromString_flag_(e,"")},messageSends:["fromString:flag:"]}),$globals.RegularExpression.klass),$core.addMethod($core.method({selector:"fromString:flag:",protocol:"instance creation",fn:function(e,t){return new RegExp(e,t)},messageSends:[]}),$globals.RegularExpression.klass)}),define("amber_core/Kernel-Infrastructure",["amber/boot","amber_core/Kernel-Objects","amber_core/Kernel-Collections"],function($boot){"use strict";var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;$core.addPackage("Kernel-Infrastructure"),$core.packages["Kernel-Infrastructure"].innerEval=function(expr){return eval(expr)},$core.packages["Kernel-Infrastructure"].transport={type:"amd",amdNamespace:"amber_core"},$core.addClass("JSObjectProxy",$globals.ProtoObject,["jsObject"],"Kernel-Infrastructure"),$core.addMethod($core.method({selector:"=",protocol:"comparing",fn:function(e){function t(){return $globals.JSObjectProxy||("undefined"==typeof JSObjectProxy?nil:JSObjectProxy)}var o,r,n,s=this;return o=$recv(e)._class(),r=$recv(o).__eq_eq(s._class()),$core.assert(r)?n=$recv(t())._compareJSObjectOfProxy_withProxy_(s,e):!1},messageSends:["ifFalse:","==","class","compareJSObjectOfProxy:withProxy:"]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"asJSON",protocol:"enumerating",fn:function(){var e,t=this;return e=t["@jsObject"]},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"at:",protocol:"accessing",fn:function(e){var t=this;return t["@jsObject"][e]},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"at:ifAbsent:",protocol:"accessing",fn:function(e,t){var o=this,r=o["@jsObject"];return e in r?r[e]:t._value()},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"at:ifPresent:",protocol:"accessing",fn:function(e,t){var o=this,r=o["@jsObject"];return e in r?t._value_(r[e]):nil},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"at:ifPresent:ifAbsent:",protocol:"accessing",fn:function(e,t,o){var r=this,n=r["@jsObject"];return e in n?t._value_(n[e]):o._value()},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"at:put:",protocol:"accessing",fn:function(e,t){var o=this;return o["@jsObject"][e]=t},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"doesNotUnderstand:",protocol:"proxy",fn:function(e){function t(){return $globals.JSObjectProxy||("undefined"==typeof JSObjectProxy?nil:JSObjectProxy)}var o,r,n,s=this;if(o=$recv(t())._lookupProperty_ofProxy_($recv($recv(e)._selector())._asJavaScriptPropertyName(),s),null==(n=o)||n.isNil)r=$globals.JSObjectProxy.superclass.fn.prototype._doesNotUnderstand_.apply($recv(s),[e]);else{var i;i=n,r=$recv(t())._forwardMessage_withArguments_ofProxy_(i,$recv(e)._arguments(),s)}return r},messageSends:["ifNil:ifNotNil:","lookupProperty:ofProxy:","asJavaScriptPropertyName","selector","doesNotUnderstand:","forwardMessage:withArguments:ofProxy:","arguments"]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"in:",protocol:"accessing",fn:function(e){var t,o=this;return t=$recv(e)._value_(o["@jsObject"])},messageSends:["value:"]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"jsObject",protocol:"accessing",fn:function(){var e,t=this;return e=t["@jsObject"]},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"keysAndValuesDo:",protocol:"enumerating",fn:function(e){var t=this,o=t["@jsObject"];for(var r in o)e._value_value_(r,o[r]);return t},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t=this;return $recv(e)._nextPutAll_(t._printString()),t},messageSends:["nextPutAll:","printString"]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"printString",protocol:"printing",fn:function(){var e=this,t=e["@jsObject"];return t.toString?t.toString():Object.prototype.toString.call(t)},messageSends:[]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"putOn:",protocol:"streaming",fn:function(e){var t=this;return $recv(e)._nextPutJSObject_(t["@jsObject"]),t},messageSends:["nextPutJSObject:"]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"addObjectVariablesTo:ofProxy:",protocol:"proxy",fn:function(e,t){var o=this,r=t["@jsObject"];for(var n in r)e._at_put_(n,r[n]);return o},messageSends:[]}),$globals.JSObjectProxy.klass),$core.addMethod($core.method({selector:"compareJSObjectOfProxy:withProxy:",protocol:"proxy",fn:function(e,t){var o=t.klass?t["@jsObject"]:t;return e["@jsObject"]===o},messageSends:[]}),$globals.JSObjectProxy.klass),$core.addMethod($core.method({selector:"forwardMessage:withArguments:ofProxy:",protocol:"proxy",fn:function(e,t,o){return $core.accessJavaScript(o._jsObject(),e,t)},messageSends:[]}),$globals.JSObjectProxy.klass),$core.addMethod($core.method({selector:"jsObject:ofProxy:",protocol:"proxy",fn:function(e,t){var o=this;return t["@jsObject"]=e,o},messageSends:[]}),$globals.JSObjectProxy.klass),$core.addMethod($core.method({selector:"lookupProperty:ofProxy:",protocol:"proxy",fn:function(e,t){return e in t._jsObject()?e:nil},messageSends:[]}),$globals.JSObjectProxy.klass),$core.addMethod($core.method({selector:"on:",protocol:"instance creation",fn:function(e){var t,o,r=this;return t=r._new(),r._jsObject_ofProxy_(e,t),o=t},messageSends:["new","jsObject:ofProxy:"]}),$globals.JSObjectProxy.klass),$core.addClass("Organizer",$globals.Object,[],"Kernel-Infrastructure"),$core.addMethod($core.method({selector:"addElement:",protocol:"accessing",fn:function(e){var t=this;return t.elements.addElement(e),t},messageSends:[]}),$globals.Organizer),$core.addMethod($core.method({selector:"elements",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t._basicAt_("elements"))._copy()},messageSends:["copy","basicAt:"]}),$globals.Organizer),$core.addMethod($core.method({selector:"removeElement:",protocol:"accessing",fn:function(e){var t=this;return t.elements.removeElement(e),t},messageSends:[]}),$globals.Organizer),$core.addClass("ClassOrganizer",$globals.Organizer,[],"Kernel-Infrastructure"),$core.addMethod($core.method({selector:"addElement:",protocol:"accessing",fn:function(e){function t(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function o(){return $globals.ProtocolAdded||("undefined"==typeof ProtocolAdded?nil:ProtocolAdded)}var r,n,s=this;return $globals.ClassOrganizer.superclass.fn.prototype._addElement_.apply($recv(s),[e]),r=$recv(o())._new(),$recv(r)._protocol_(e),$recv(r)._theClass_(s._theClass()),n=$recv(r)._yourself(),$recv($recv(t())._current())._announce_(n),s},messageSends:["addElement:","announce:","current","protocol:","new","theClass:","theClass","yourself"]}),$globals.ClassOrganizer),$core.addMethod($core.method({selector:"removeElement:",protocol:"accessing",fn:function(e){function t(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function o(){return $globals.ProtocolRemoved||("undefined"==typeof ProtocolRemoved?nil:ProtocolRemoved)}var r,n,s=this;return $globals.ClassOrganizer.superclass.fn.prototype._removeElement_.apply($recv(s),[e]),r=$recv(o())._new(),$recv(r)._protocol_(e),$recv(r)._theClass_(s._theClass()),n=$recv(r)._yourself(),$recv($recv(t())._current())._announce_(n),s},messageSends:["removeElement:","announce:","current","protocol:","new","theClass:","theClass","yourself"]}),$globals.ClassOrganizer),$core.addMethod($core.method({selector:"theClass",protocol:"accessing",fn:function(){var e=this;return e.theClass},messageSends:[]}),$globals.ClassOrganizer),$core.addClass("PackageOrganizer",$globals.Organizer,[],"Kernel-Infrastructure"),$core.addClass("Package",$globals.Object,["transport","imports","dirty"],"Kernel-Infrastructure"),$core.addMethod($core.method({selector:"basicImports",protocol:"private",fn:function(){var e=this;return e.imports||[]},messageSends:[]}),$globals.Package),$core.addMethod($core.method({selector:"basicName:",protocol:"private",fn:function(e){var t=this;return t.pkgName=e,t},messageSends:[]}),$globals.Package),$core.addMethod($core.method({selector:"basicTransport",protocol:"private",fn:function(){var e=this;return e.transport},messageSends:[]}),$globals.Package),$core.addMethod($core.method({selector:"beClean",protocol:"accessing",fn:function(){function e(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function t(){return $globals.PackageClean||("undefined"==typeof PackageClean?nil:PackageClean)}var o,r,n=this;return n["@dirty"]=!1,o=$recv(t())._new(),$recv(o)._package_(n),r=$recv(o)._yourself(),$recv($recv(e())._current())._announce_(r),n},messageSends:["announce:","current","package:","new","yourself"]}),$globals.Package),$core.addMethod($core.method({selector:"beDirty",protocol:"accessing",fn:function(){function e(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function t(){return $globals.PackageDirty||("undefined"==typeof PackageDirty?nil:PackageDirty)}var o,r,n=this;return n["@dirty"]=!0,o=$recv(t())._new(),$recv(o)._package_(n),r=$recv(o)._yourself(),$recv($recv(e())._current())._announce_(r),n},messageSends:["announce:","current","package:","new","yourself"]}),$globals.Package),$core.addMethod($core.method({selector:"classTemplate",protocol:"accessing",fn:function(){function e(){return $globals.String||("undefined"==typeof String?nil:String)}var t,o,r,n,s,i,a,l=this;return a=$recv(e())._streamContents_(function(a){return $recv(a)._nextPutAll_("Object"),$recv(a)._nextPutAll_(" subclass: #NameOfSubclass"),t=$recv(e())._lf(),o=$recv(e())._tab(),r=$recv(t).__comma(o),$recv(a)._nextPutAll_(r),n=$recv(a)._nextPutAll_("instanceVariableNames: ''"),s=$recv("'".__comma($recv(e())._lf())).__comma($recv(e())._tab()),$recv(a)._nextPutAll_(s),$recv(a)._nextPutAll_("package: '"),$recv(a)._nextPutAll_(l._name()),i=$recv(a)._nextPutAll_("'")})},messageSends:["streamContents:","nextPutAll:",",","lf","tab","name"]}),$globals.Package),$core.addMethod($core.method({selector:"classes",protocol:"classes",fn:function(){var e,t=this;return e=$recv(t._organization())._elements()},messageSends:["elements","organization"]}),$globals.Package),$core.addMethod($core.method({selector:"definition",protocol:"accessing",fn:function(){function e(){return $globals.String||("undefined"==typeof String?nil:String)}var t,o,r,n,s,i,a,l,c,d,u,h,f=this;return h=$recv(e())._streamContents_(function(h){return t=$recv(f._class())._name(),$recv(h)._nextPutAll_(t),o=$recv(e())._lf(),r=$recv(e())._tab(),n=$recv(o).__comma(r),$recv(h)._nextPutAll_(n),$recv(h)._nextPutAll_("named: "),s="'".__comma(f._name()),i=$recv(s).__comma("'"),$recv(h)._nextPutAll_(i),a=$recv(e())._lf(),l=$recv(e())._tab(),c=$recv(a).__comma(l),$recv(h)._nextPutAll_(c),$recv(h)._nextPutAll_("imports: "),$recv(h)._nextPutAll_(f._importsDefinition()),d=$recv($recv(e())._lf()).__comma($recv(e())._tab()),$recv(h)._nextPutAll_(d),$recv(h)._nextPutAll_("transport: ("),u=$recv(h)._nextPutAll_($recv($recv(f._transport())._definition()).__comma(")"))})},messageSends:["streamContents:","nextPutAll:","name","class",",","lf","tab","importsDefinition","definition","transport"]}),$globals.Package),$core.addMethod($core.method({selector:"imports",protocol:"accessing",fn:function(){var e,t,o,r=this;if(e=r["@imports"],null==(o=e)||o.isNil){var n;n=r._importsFromJson_(r._basicImports()),r._imports_(n),t=r["@imports"]}else t=e;return t},messageSends:["ifNil:","importsFromJson:","basicImports","imports:"]}),$globals.Package),$core.addMethod($core.method({selector:"imports:",protocol:"accessing",fn:function(e){var t=this;return t._validateImports_(e),t["@imports"]=$recv(e)._asSet(),t},messageSends:["validateImports:","asSet"]}),$globals.Package),$core.addMethod($core.method({selector:"importsAsJson",protocol:"converting",fn:function(){var e,t,o=this;return t=$recv(o._sortedImportsAsArray())._collect_(function(t){return e=$recv(t)._isString(),$core.assert(e)?t:$recv($recv($recv(t)._key()).__comma("=")).__comma($recv(t)._value())})},messageSends:["collect:","sortedImportsAsArray","ifTrue:ifFalse:","isString",",","key","value"]}),$globals.Package),$core.addMethod($core.method({selector:"importsDefinition",protocol:"accessing",fn:function(){function e(){return $globals.String||("undefined"==typeof String?nil:String)}var t,o=this;return t=$recv(e())._streamContents_(function(e){return $recv(e)._nextPutAll_("{"),$recv(o._sortedImportsAsArray())._do_separatedBy_(function(t){return $recv(e)._nextPutAll_($recv(t)._importsString())},function(){return $recv(e)._nextPutAll_(". ")}),$recv(e)._nextPutAll_("}")})},messageSends:["streamContents:","nextPutAll:","do:separatedBy:","sortedImportsAsArray","importsString"]}),$globals.Package),$core.addMethod($core.method({selector:"importsFromJson:",protocol:"converting",fn:function(e){var t,o;return o=$recv(e)._collect_(function(e){var o;return o=$recv(e)._tokenize_("="),t=$recv($recv(o)._size()).__eq(1),$core.assert(t)?$recv(o)._first():$recv($recv(o)._first()).__minus_gt($recv(o)._second())})},messageSends:["collect:","tokenize:","ifTrue:ifFalse:","=","size","first","->","second"]}),$globals.Package),$core.addMethod($core.method({selector:"isDirty",protocol:"testing",fn:function(){var e,t,o,r=this;return e=r["@dirty"],t=null==(o=e)||o.isNil?!1:e},messageSends:["ifNil:"]}),$globals.Package),$core.addMethod($core.method({selector:"isPackage",protocol:"testing",fn:function(){return!0},messageSends:[]}),$globals.Package),$core.addMethod($core.method({selector:"loadDependencies",protocol:"dependencies",fn:function(){var e,t,o,r,n=this;return e=n._loadDependencyClasses(),t=$recv($recv(e)._collect_(function(e){return $recv(e)._package()}))._asSet(),$recv(t)._remove_ifAbsent_(n,function(){}),o=$recv(t)._yourself(),r=o},messageSends:["loadDependencyClasses","remove:ifAbsent:","asSet","collect:","package","yourself"]}),$globals.Package),$core.addMethod($core.method({selector:"loadDependencyClasses",protocol:"dependencies",fn:function(){function e(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var t,o,r,n,s,i,a,l,c=this;return t="*".__comma(c._name()),o=c._classes(),r=$recv(o)._collect_(function(e){return $recv(e)._superclass()}),n=$recv(r)._asSet(),$recv(n)._remove_ifAbsent_(nil,function(){}),$recv(n)._addAll_($recv($recv(e())._classes())._select_(function(e){return s=$recv(e)._protocols(),i=$recv(s).__comma($recv($recv(e)._class())._protocols()),$recv(i)._includes_(t)})),a=$recv(n)._yourself(),l=a},messageSends:[",","name","remove:ifAbsent:","asSet","collect:","classes","superclass","addAll:","select:","includes:","protocols","class","yourself"]}),$globals.Package),$core.addMethod($core.method({selector:"name",protocol:"accessing",fn:function(){var e=this;return e.pkgName},messageSends:[]}),$globals.Package),$core.addMethod($core.method({selector:"name:",protocol:"accessing",fn:function(e){var t=this;return t._basicName_(e),t._beDirty(),t},messageSends:["basicName:","beDirty"]}),$globals.Package),$core.addMethod($core.method({selector:"organization",protocol:"accessing",fn:function(){var e,t=this;return e=t._basicAt_("organization")},messageSends:["basicAt:"]}),$globals.Package),$core.addMethod($core.method({selector:"printOn:",protocol:"printing",fn:function(e){var t,o=this;return $globals.Package.superclass.fn.prototype._printOn_.apply($recv(o),[e]),$recv(e)._nextPutAll_(" ("),$recv(e)._nextPutAll_(o._name()),t=$recv(e)._nextPutAll_(")"),o},messageSends:["printOn:","nextPutAll:","name"]}),$globals.Package),$core.addMethod($core.method({selector:"setupClasses",protocol:"classes",fn:function(){function e(){return $globals.ClassBuilder||("undefined"==typeof ClassBuilder?nil:ClassBuilder)}var t,o,r=this;return t=r._classes(),$recv(t)._do_(function(t){return $recv($recv(e())._new())._setupClass_(t)}),o=$recv(t)._do_(function(e){return $recv(e)._initialize()}),r},messageSends:["do:","classes","setupClass:","new","initialize"]}),$globals.Package),$core.addMethod($core.method({selector:"sortedClasses",protocol:"classes",fn:function(){var e,t=this;return e=$recv(t._class())._sortedClasses_(t._classes())},messageSends:["sortedClasses:","class","classes"]}),$globals.Package),$core.addMethod($core.method({selector:"sortedImportsAsArray",protocol:"private",fn:function(){var e,t,o,r,n,s,i,a,l=this;return a=$recv($recv(l._imports())._asArray())._sorted_(function(a,l){return e=$recv(a)._isString(),t=$recv(e)._not(),o=$recv(l)._isString(),r=$recv(t).__and(o),$recv(r)._or_(function(){return n=$recv(a)._isString(),s=$recv(n).__eq($recv(l)._isString()),$recv(s)._and_(function(){return i=$recv(a)._value(),$recv(i).__lt_eq($recv(l)._value())})})})},messageSends:["sorted:","asArray","imports","or:","&","not","isString","and:","=","<=","value"]}),$globals.Package),$core.addMethod($core.method({selector:"transport",protocol:"accessing",fn:function(){function e(){return $globals.PackageTransport||("undefined"==typeof PackageTransport?nil:PackageTransport)}var t,o,r,n,s,i=this;return t=i["@transport"],null==(s=t)||s.isNil?(o=$recv(e())._fromJson_(i._basicTransport()),$recv(o)._package_(i),r=$recv(o)._yourself(),i["@transport"]=r,n=i["@transport"]):n=t,n},messageSends:["ifNil:","package:","fromJson:","basicTransport","yourself"]}),$globals.Package),$core.addMethod($core.method({selector:"transport:",protocol:"accessing",fn:function(e){var t=this;return t["@transport"]=e,$recv(e)._package_(t),t},messageSends:["package:"]}),$globals.Package),$core.addMethod($core.method({selector:"validateImports:",protocol:"validation",fn:function(e){var t,o,r,n,s,i,a=this;return $recv(e)._do_(function(e){return t=$recv(e)._isString(),$core.assert(t)||(o=$recv(e)._respondsTo_("key"),$core.assert(o)||a._error_("Imports must be Strings or Associations"),r=$recv(e)._key(),n=$recv(r)._isString(),s=$recv(n).__and($recv($recv(e)._value())._isString()),$core.assert(s)||a._error_("Key and value must be Strings"),i=$recv($recv(e)._key())._match_("^[a-zA-Z][a-zA-Z0-9]*$"),$core.assert(i))?void 0:a._error_("Keys must be identifiers")}),a},messageSends:["do:","ifFalse:","isString","respondsTo:","error:","&","key","value","match:"]}),$globals.Package),$globals.Package.klass.iVarNames=["defaultCommitPathJs","defaultCommitPathSt"],$core.addMethod($core.method({selector:"named:",protocol:"accessing",fn:function(e){function t(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var o;return o=$recv(t())._packageAt_ifAbsent_(e,function(){return $recv(t())._createPackage_(e)})},messageSends:["packageAt:ifAbsent:","createPackage:"]}),$globals.Package.klass),$core.addMethod($core.method({selector:"named:ifAbsent:",protocol:"accessing",fn:function(e,t){function o(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var r;return r=$recv(o())._packageAt_ifAbsent_(e,t)},messageSends:["packageAt:ifAbsent:"]}),$globals.Package.klass),$core.addMethod($core.method({selector:"named:imports:transport:",protocol:"accessing",fn:function(e,t,o){var r,n,s=this;return r=s._named_(e),$recv(r)._imports_(t),$recv(r)._transport_(o),n=r},messageSends:["named:","imports:","transport:"]}),$globals.Package.klass),$core.addMethod($core.method({selector:"named:transport:",protocol:"accessing",fn:function(e,t){var o,r,n=this;return o=n._named_(e),$recv(o)._transport_(t),r=o},messageSends:["named:","transport:"]}),$globals.Package.klass),$core.addMethod($core.method({selector:"sortedClasses:",protocol:"sorting",fn:function(e){function t(){return $globals.ClassSorterNode||("undefined"==typeof ClassSorterNode?nil:ClassSorterNode)}function o(){return $globals.Array||("undefined"==typeof Array?nil:Array)}var r,n,s,i,a,l,c,d;return r=[],n=[],$recv(e)._do_(function(t){return a=$recv(e)._includes_($recv(t)._superclass()),$core.assert(a)?$recv(n)._add_(t):$recv(r)._add_(t)}),s=$recv(r)._collect_(function(e){return $recv(t())._on_classes_level_(e,n,0)}),s=$recv(s)._sorted_(function(e,t){return l=$recv(e)._theClass(),c=$recv(l)._name(),$recv(c).__lt_eq($recv($recv(t)._theClass())._name())}),i=$recv(o())._new(),$recv(s)._do_(function(e){return $recv(e)._traverseClassesWith_(i)}),d=i},messageSends:["do:","ifFalse:ifTrue:","includes:","superclass","add:","collect:","on:classes:level:","sorted:","<=","name","theClass","new","traverseClassesWith:"]}),$globals.Package.klass),$core.addClass("PackageStateObserver",$globals.Object,[],"Kernel-Infrastructure"),$core.addMethod($core.method({selector:"announcer",protocol:"accessing",fn:function(){function e(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}var t;return t=$recv(e())._current()},messageSends:["current"]}),$globals.PackageStateObserver),$core.addMethod($core.method({selector:"observeSystem",protocol:"actions",fn:function(){function e(){return $globals.PackageAdded||("undefined"==typeof PackageAdded?nil:PackageAdded)}function t(){return $globals.ClassAnnouncement||("undefined"==typeof ClassAnnouncement?nil:ClassAnnouncement)}function o(){return $globals.MethodAnnouncement||("undefined"==typeof MethodAnnouncement?nil:MethodAnnouncement)}function r(){return $globals.ProtocolAnnouncement||("undefined"==typeof ProtocolAnnouncement?nil:ProtocolAnnouncement)}var n,s,i=this;return n=i._announcer(),$recv(n)._on_send_to_(e(),"onPackageAdded:",i),$recv(n)._on_send_to_(t(),"onClassModification:",i),$recv(n)._on_send_to_(o(),"onMethodModification:",i),s=$recv(n)._on_send_to_(r(),"onProtocolModification:",i),i},messageSends:["on:send:to:","announcer"]}),$globals.PackageStateObserver),$core.addMethod($core.method({selector:"onClassModification:",protocol:"reactions",fn:function(e){var t,o,r=this;if(t=$recv(e)._theClass(),null==(o=t)||o.isNil);else{var n;n=o,$recv($recv(n)._package())._beDirty()}return r},messageSends:["ifNotNil:","theClass","beDirty","package"]}),$globals.PackageStateObserver),$core.addMethod($core.method({selector:"onMethodModification:",protocol:"reactions",fn:function(e){var t,o,r=this;if(t=$recv($recv(e)._method())._package(),null==(o=t)||o.isNil);else{var n;n=o,$recv(n)._beDirty()}return r},messageSends:["ifNotNil:","package","method","beDirty"]}),$globals.PackageStateObserver),$core.addMethod($core.method({selector:"onPackageAdded:",protocol:"reactions",fn:function(e){var t=this;return $recv($recv(e)._package())._beDirty(),t},messageSends:["beDirty","package"]}),$globals.PackageStateObserver),$core.addMethod($core.method({selector:"onProtocolModification:",protocol:"reactions",fn:function(e){var t,o,r=this;if(t=$recv(e)._package(),null==(o=t)||o.isNil);else{var n;n=o,$recv(n)._beDirty()}return r},messageSends:["ifNotNil:","package","beDirty"]}),$globals.PackageStateObserver),$globals.PackageStateObserver.klass.iVarNames=["current"],$core.addMethod($core.method({selector:"current",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r["@current"],null==(o=e)||o.isNil?(r["@current"]=r._new(), t=r["@current"]):t=e,t},messageSends:["ifNil:","new"]}),$globals.PackageStateObserver.klass),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){var e=this;return $recv(e._current())._observeSystem(),e},messageSends:["observeSystem","current"]}),$globals.PackageStateObserver.klass),$core.addClass("Setting",$globals.Object,["key","value","defaultValue"],"Kernel-Infrastructure"),$core.addMethod($core.method({selector:"defaultValue",protocol:"accessing",fn:function(){var e,t=this;return e=t["@defaultValue"]},messageSends:[]}),$globals.Setting),$core.addMethod($core.method({selector:"defaultValue:",protocol:"accessing",fn:function(e){var t=this;return t["@defaultValue"]=e,t},messageSends:[]}),$globals.Setting),$core.addMethod($core.method({selector:"key",protocol:"accessing",fn:function(){var e,t=this;return e=t["@key"]},messageSends:[]}),$globals.Setting),$core.addMethod($core.method({selector:"key:",protocol:"accessing",fn:function(e){var t=this;return t["@key"]=e,t},messageSends:[]}),$globals.Setting),$core.addMethod($core.method({selector:"value",protocol:"accessing",fn:function(){function e(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var t,o=this;return t=$recv($recv(e())._settings())._at_ifAbsent_(o._key(),function(){return o._defaultValue()})},messageSends:["at:ifAbsent:","settings","key","defaultValue"]}),$globals.Setting),$core.addMethod($core.method({selector:"value:",protocol:"accessing",fn:function(e){function t(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var o,r=this;return o=$recv($recv(t())._settings())._at_put_(r._key(),e)},messageSends:["at:put:","settings","key"]}),$globals.Setting),$core.addMethod($core.method({selector:"at:ifAbsent:",protocol:"instance creation",fn:function(e,t){var o,r,n,s=this;return o=$globals.Setting.klass.superclass.fn.prototype._new.apply($recv(s),[]),$recv(o)._key_(e),$recv(o)._defaultValue_(t),r=$recv(o)._yourself(),n=r},messageSends:["key:","new","defaultValue:","yourself"]}),$globals.Setting.klass),$core.addMethod($core.method({selector:"new",protocol:"instance creation",fn:function(){var e=this;return e._shouldNotImplement(),e},messageSends:["shouldNotImplement"]}),$globals.Setting.klass),$core.addClass("SmalltalkImage",$globals.Object,[],"Kernel-Infrastructure"),$core.addMethod($core.method({selector:"addGlobalJsVariable:",protocol:"globals",fn:function(e){var t=this;return $recv(t._globalJsVariables())._add_(e),t},messageSends:["add:","globalJsVariables"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"amdRequire",protocol:"accessing amd",fn:function(){var e,t=this;return e=$recv(t._core())._at_("amdRequire")},messageSends:["at:","core"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"asSmalltalkException:",protocol:"error handling",fn:function(e){function t(){return $globals.Error||("undefined"==typeof Error?nil:Error)}function o(){return $globals.JavaScriptException||("undefined"==typeof JavaScriptException?nil:JavaScriptException)}var r,n,s=this;return r=$recv(s._isSmalltalkObject_(e))._and_(function(){return $recv(e)._isKindOf_(t())}),n=$core.assert(r)?e:$recv(o())._on_(e)},messageSends:["ifTrue:ifFalse:","and:","isSmalltalkObject:","isKindOf:","on:"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"basicCreatePackage:",protocol:"private",fn:function(e){return $core.addPackage(e)},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"basicParse:",protocol:"private",fn:function(e){function t(){return $globals.SmalltalkParser||("undefined"==typeof SmalltalkParser?nil:SmalltalkParser)}var o;return o=$recv(t())._parse_(e)},messageSends:["parse:"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"basicRegisterPackage:",protocol:"private",fn:function(e){var t=this;return $core.packages[e.pkgName]=e,t},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"cancelOptOut:",protocol:"accessing",fn:function(e){var t=this;return delete e.klass,t},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"classes",protocol:"classes",fn:function(){return $core.classes()},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"core",protocol:"accessing",fn:function(){return $core},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"createPackage:",protocol:"packages",fn:function(e){function t(){return $globals.PackageAdded||("undefined"==typeof PackageAdded?nil:PackageAdded)}function o(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}var r,n,s,i,a,l=this;return r=l._basicCreatePackage_(e),s=$recv(t())._new(),$recv(s)._package_(r),i=$recv(s)._yourself(),n=i,$recv($recv(o())._current())._announce_(n),a=r},messageSends:["basicCreatePackage:","package:","new","yourself","announce:","current"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"defaultAmdNamespace",protocol:"accessing amd",fn:function(){var e;return e="transport.defaultAmdNamespace"._settingValue()},messageSends:["settingValue"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"defaultAmdNamespace:",protocol:"accessing amd",fn:function(e){var t=this;return"transport.defaultAmdNamespace"._settingValue_(e),t},messageSends:["settingValue:"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"deleteClass:",protocol:"private",fn:function(e){var t=this;return $core.removeClass(e),t},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"deleteGlobalJsVariable:",protocol:"globals",fn:function(e){var t=this;return $recv(t._globalJsVariables())._remove_ifAbsent_(e,function(){}),t},messageSends:["remove:ifAbsent:","globalJsVariables"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"deletePackage:",protocol:"private",fn:function(e){var t=this;return delete $core.packages[e],t},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"existsJsGlobal:",protocol:"testing",fn:function(e){function t(){return $globals.Platform||("undefined"==typeof Platform?nil:Platform)}var o;return o=$recv($recv(t())._globals())._at_ifPresent_ifAbsent_(e,function(){return!0},function(){return!1})},messageSends:["at:ifPresent:ifAbsent:","globals"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"globalJsVariables",protocol:"globals",fn:function(){return $core.globalJsVariables},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"globals",protocol:"accessing",fn:function(){return $globals},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"includesKey:",protocol:"accessing",fn:function(e){return $core.hasOwnProperty(e)},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"isSmalltalkObject:",protocol:"testing",fn:function(e){return null!=e.klass},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"optOut:",protocol:"accessing",fn:function(e){var t=this;return e.klass=null,t},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"packageAt:",protocol:"packages",fn:function(e){return $core.packages[e]},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"packageAt:ifAbsent:",protocol:"packages",fn:function(e,t){var o,r,n=this;return o=n._packageAt_(e),r=$recv(o)._ifNil_(t)},messageSends:["ifNil:","packageAt:"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"packages",protocol:"packages",fn:function(){return Object.keys($core.packages).map(function(e){return $core.packages[e]})},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"parse:",protocol:"accessing",fn:function(e){var t,o,r,n,s=this;return $recv(function(){return t=s._basicParse_(e)})._tryCatch_(function(t){return $recv(s._parseError_parsing_(t,e))._signal()}),o=t,$recv(o)._source_(e),r=$recv(o)._yourself(),n=r},messageSends:["tryCatch:","basicParse:","signal","parseError:parsing:","source:","yourself"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"parseError:parsing:",protocol:"error handling",fn:function(e,t){function o(){return $globals.ParseError||("undefined"==typeof ParseError?nil:ParseError)}var r,n,s,i,a,l,c,d,u;return r=$recv(o())._new(),n=$recv(e)._basicAt_("line"),s="Parse error on line ".__comma(n),i=$recv(s).__comma(" column "),a=$recv(e)._basicAt_("column"),l=$recv(i).__comma(a),c=$recv(l).__comma(" : Unexpected character "),d=$recv(c).__comma($recv(e)._basicAt_("found")),u=$recv(r)._messageText_(d)},messageSends:["messageText:","new",",","basicAt:"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"pseudoVariableNames",protocol:"accessing",fn:function(){var e;return e=["self","super","nil","true","false","thisContext"]},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"readJSObject:",protocol:"accessing",fn:function(e){return $core.readJSObject(e)},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"removeClass:",protocol:"classes",fn:function(e){function t(){return $globals.SystemAnnouncer||("undefined"==typeof SystemAnnouncer?nil:SystemAnnouncer)}function o(){return $globals.ClassRemoved||("undefined"==typeof ClassRemoved?nil:ClassRemoved)}var r,n,s,i=this;return r=$recv(e)._isMetaclass(),$core.assert(r)&&i._error_($recv($recv(e)._asString()).__comma(" is a Metaclass and cannot be removed!")),i._deleteClass_(e),n=$recv(o())._new(),$recv(n)._theClass_(e),s=$recv(n)._yourself(),$recv($recv(t())._current())._announce_(s),i},messageSends:["ifTrue:","isMetaclass","error:",",","asString","deleteClass:","announce:","current","theClass:","new","yourself"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"removePackage:",protocol:"packages",fn:function(e){var t,o=this;return t=o._packageAt_ifAbsent_(e,function(){return o._error_("Missing package: ".__comma(e))}),$recv($recv(t)._classes())._do_(function(e){return o._removeClass_(e)}),o._deletePackage_(e),o},messageSends:["packageAt:ifAbsent:","error:",",","do:","classes","removeClass:","deletePackage:"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"renamePackage:to:",protocol:"packages",fn:function(e,t){var o,r,n,s,i=this;return o=i._packageAt_ifAbsent_(e,function(){return r="Missing package: ".__comma(e),i._error_(r)}),n=i._packageAt_(t),null==(s=n)||s.isNil||i._error_("Already exists a package called: ".__comma(t)),$recv(o)._name_(t),i._basicRegisterPackage_(o),i._deletePackage_(e),i},messageSends:["packageAt:ifAbsent:","error:",",","ifNotNil:","packageAt:","name:","basicRegisterPackage:","deletePackage:"]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"reservedWords",protocol:"accessing",fn:function(){return $core.reservedWords},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"settings",protocol:"accessing",fn:function(){function e(){return $globals.SmalltalkSettings||("undefined"==typeof SmalltalkSettings?nil:SmalltalkSettings)}return e()},messageSends:[]}),$globals.SmalltalkImage),$core.addMethod($core.method({selector:"version",protocol:"accessing",fn:function(){return"0.14.16"},messageSends:[]}),$globals.SmalltalkImage),$globals.SmalltalkImage.klass.iVarNames=["current"],$core.addMethod($core.method({selector:"current",protocol:"instance creation",fn:function(){var e,t,o,r=this;return e=r["@current"],null==(o=e)||o.isNil?(r["@current"]=$globals.SmalltalkImage.klass.superclass.fn.prototype._new.apply($recv(r),[]),t=r["@current"]):(r._deprecatedAPI(),t=r["@current"]),t},messageSends:["ifNil:ifNotNil:","new","deprecatedAPI"]}),$globals.SmalltalkImage.klass),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){var e,t=this;return e=t._current(),$recv($recv(e)._globals())._at_put_("Smalltalk",e),t},messageSends:["current","at:put:","globals"]}),$globals.SmalltalkImage.klass),$core.addMethod($core.method({selector:"new",protocol:"instance creation",fn:function(){var e=this;return e._shouldNotImplement(),e},messageSends:["shouldNotImplement"]}),$globals.SmalltalkImage.klass),$core.addMethod($core.method({selector:"importsString",protocol:"*Kernel-Infrastructure",fn:function(){var e,t,o,r=this;return e=$recv(r._key())._importsString(),t=$recv(e).__comma(" -> "),o=$recv(t).__comma($recv(r._value())._importsString())},messageSends:[",","importsString","key","value"]}),$globals.Association),$core.addMethod($core.method({selector:"asJavaScriptPropertyName",protocol:"*Kernel-Infrastructure",fn:function(){var e=this;return $core.st2prop(e)},messageSends:[]}),$globals.String),$core.addMethod($core.method({selector:"asSetting",protocol:"*Kernel-Infrastructure",fn:function(){function e(){return $globals.Setting||("undefined"==typeof Setting?nil:Setting)}var t,o=this;return t=$recv(e())._at_ifAbsent_(o,nil)},messageSends:["at:ifAbsent:"]}),$globals.String),$core.addMethod($core.method({selector:"asSettingIfAbsent:",protocol:"*Kernel-Infrastructure",fn:function(e){function t(){return $globals.Setting||("undefined"==typeof Setting?nil:Setting)}var o,r=this;return o=$recv(t())._at_ifAbsent_(r,e)},messageSends:["at:ifAbsent:"]}),$globals.String),$core.addMethod($core.method({selector:"importsString",protocol:"*Kernel-Infrastructure",fn:function(){var e,t=this;return e=$recv("'".__comma(t._replace_with_("'","''"))).__comma("'")},messageSends:[",","replace:with:"]}),$globals.String),$core.addMethod($core.method({selector:"settingValue",protocol:"*Kernel-Infrastructure",fn:function(){var e,t=this;return e=$recv(t._asSetting())._value()},messageSends:["value","asSetting"]}),$globals.String),$core.addMethod($core.method({selector:"settingValue:",protocol:"*Kernel-Infrastructure",fn:function(e){var t,o=this;return t=$recv(o._asSetting())._value_(e)},messageSends:["value:","asSetting"]}),$globals.String),$core.addMethod($core.method({selector:"settingValueIfAbsent:",protocol:"*Kernel-Infrastructure",fn:function(e){var t,o=this;return t=$recv(o._asSettingIfAbsent_(e))._value()},messageSends:["value","asSettingIfAbsent:"]}),$globals.String)}),define("amber_core/Kernel-Exceptions",["amber/boot","amber_core/Kernel-Objects"],function($boot){"use strict";var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;$core.addPackage("Kernel-Exceptions"),$core.packages["Kernel-Exceptions"].innerEval=function(expr){return eval(expr)},$core.packages["Kernel-Exceptions"].transport={type:"amd",amdNamespace:"amber_core"},$core.addClass("Error",$globals.Object,["messageText"],"Kernel-Exceptions"),$core.addMethod($core.method({selector:"beHandled",protocol:"accessing",fn:function(){var e=this;return e.amberHandled=!0,e},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"beUnhandled",protocol:"accessing",fn:function(){var e=this;return e.amberHandled=!1,e},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"context",protocol:"accessing",fn:function(){var e=this;return e.context},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){var e=this;return e._messageText_("Errorclass: ".__comma($recv(e._class())._name())),e},messageSends:["messageText:",",","name","class"]}),$globals.Error),$core.addMethod($core.method({selector:"isSmalltalkError",protocol:"testing",fn:function(){var e=this;return e.smalltalkError===!0},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"jsStack",protocol:"accessing",fn:function(){var e=this;return e.stack},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"messageText",protocol:"accessing",fn:function(){var e,t=this;return e=t["@messageText"]},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"messageText:",protocol:"accessing",fn:function(e){var t=this;return t["@messageText"]=e,t},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"resignal",protocol:"signaling",fn:function(){var e=this;throw e.amberHandled=!1,e},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"signal",protocol:"signaling",fn:function(){var e=this;throw e.amberHandled=!1,e.context=$core.getThisContext(),e.smalltalkError=!0,e},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"signal:",protocol:"signaling",fn:function(e){var t=this;return t._messageText_(e),t._signal(),t},messageSends:["messageText:","signal"]}),$globals.Error),$core.addMethod($core.method({selector:"signalerContext",protocol:"accessing",fn:function(){var e,t=this;return e=t._signalerContextFrom_(t._context())},messageSends:["signalerContextFrom:","context"]}),$globals.Error),$core.addMethod($core.method({selector:"signalerContextFrom:",protocol:"accessing",fn:function(e){var t,o,r,n,s=this;return n=$recv(e)._findContextSuchThat_(function(e){return t=$recv(e)._receiver(),o=$recv(t).__eq_eq(s),r=$recv(o)._or_(function(){return $recv($recv(e)._receiver()).__eq_eq(s._class())}),$recv(r)._not()})},messageSends:["findContextSuchThat:","not","or:","==","receiver","class"]}),$globals.Error),$core.addMethod($core.method({selector:"wasHandled",protocol:"testing",fn:function(){var e=this;return e.amberHandled||!1},messageSends:[]}),$globals.Error),$core.addMethod($core.method({selector:"classTag",protocol:"accessing",fn:function(){return"exception"},messageSends:[]}),$globals.Error.klass),$core.addMethod($core.method({selector:"signal",protocol:"instance creation",fn:function(){var e,t=this;return e=$recv(t._new())._signal()},messageSends:["signal","new"]}),$globals.Error.klass),$core.addMethod($core.method({selector:"signal:",protocol:"instance creation",fn:function(e){var t,o=this;return t=$recv(o._new())._signal_(e)},messageSends:["signal:","new"]}),$globals.Error.klass),$core.addClass("Halt",$globals.Error,[],"Kernel-Exceptions"),$core.addMethod($core.method({selector:"messageText",protocol:"accessing",fn:function(){return"Halt encountered"},messageSends:[]}),$globals.Halt),$core.addMethod($core.method({selector:"signalerContextFrom:",protocol:"accessing",fn:function(e){var t,o,r,n,s=this;return n=$recv(e)._findContextSuchThat_(function(e){return t=$recv(e)._receiver(),o=$recv(t).__eq_eq(s),r=$recv(o)._or_(function(){return $recv($recv($recv(e)._receiver()).__eq_eq(s._class()))._or_(function(){return $recv($recv($recv(e)._method())._selector()).__eq("halt")})}),$recv(r)._not()})},messageSends:["findContextSuchThat:","not","or:","==","receiver","class","=","selector","method"]}),$globals.Halt),$core.addClass("JavaScriptException",$globals.Error,["exception"],"Kernel-Exceptions"),$core.addMethod($core.method({selector:"context:",protocol:"accessing",fn:function(e){var t=this;return t.context=e,t},messageSends:[]}),$globals.JavaScriptException),$core.addMethod($core.method({selector:"exception",protocol:"accessing",fn:function(){var e,t=this;return e=t["@exception"]},messageSends:[]}),$globals.JavaScriptException),$core.addMethod($core.method({selector:"exception:",protocol:"accessing",fn:function(e){var t=this;return t["@exception"]=e,t},messageSends:[]}),$globals.JavaScriptException),$core.addMethod($core.method({selector:"messageText",protocol:"accessing",fn:function(){var e=this;return"JavaScript exception: "+e["@exception"].toString()},messageSends:[]}),$globals.JavaScriptException),$core.addMethod($core.method({selector:"on:",protocol:"instance creation",fn:function(e){var t,o,r,n=this;return t=n._new(),$recv(t)._exception_(e),o=$recv(t)._yourself(),r=o},messageSends:["exception:","new","yourself"]}),$globals.JavaScriptException.klass),$core.addMethod($core.method({selector:"on:context:",protocol:"instance creation",fn:function(e,t){var o,r,n,s=this;return o=s._new(),$recv(o)._exception_(e),$recv(o)._context_(t),r=$recv(o)._yourself(),n=r},messageSends:["exception:","new","context:","yourself"]}),$globals.JavaScriptException.klass),$core.addClass("MessageNotUnderstood",$globals.Error,["message","receiver"],"Kernel-Exceptions"),$core.addMethod($core.method({selector:"message",protocol:"accessing",fn:function(){var e,t=this;return e=t["@message"]},messageSends:[]}),$globals.MessageNotUnderstood),$core.addMethod($core.method({selector:"message:",protocol:"accessing",fn:function(e){var t=this;return t["@message"]=e,t},messageSends:[]}),$globals.MessageNotUnderstood),$core.addMethod($core.method({selector:"messageText",protocol:"accessing",fn:function(){var e,t=this;return e=$recv($recv($recv(t._receiver())._asString()).__comma(" does not understand #")).__comma($recv(t._message())._selector())},messageSends:[",","asString","receiver","selector","message"]}),$globals.MessageNotUnderstood),$core.addMethod($core.method({selector:"receiver",protocol:"accessing",fn:function(){var e,t=this;return e=t["@receiver"]},messageSends:[]}),$globals.MessageNotUnderstood),$core.addMethod($core.method({selector:"receiver:",protocol:"accessing",fn:function(e){var t=this;return t["@receiver"]=e,t},messageSends:[]}),$globals.MessageNotUnderstood),$core.addClass("NonBooleanReceiver",$globals.Error,["object"],"Kernel-Exceptions"),$core.addMethod($core.method({selector:"object",protocol:"accessing",fn:function(){var e,t=this;return e=t["@object"]},messageSends:[]}),$globals.NonBooleanReceiver),$core.addMethod($core.method({selector:"object:",protocol:"accessing",fn:function(e){var t=this;return t["@object"]=e,t},messageSends:[]}),$globals.NonBooleanReceiver)}),define("amber_core/Kernel-Announcements",["amber/boot","amber_core/Kernel-Objects"],function($boot){"use strict";var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;$core.addPackage("Kernel-Announcements"),$core.packages["Kernel-Announcements"].innerEval=function(expr){return eval(expr)},$core.packages["Kernel-Announcements"].transport={type:"amd",amdNamespace:"amber_core"},$core.addClass("AnnouncementSubscription",$globals.Object,["valuable","announcementClass"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"announcementClass",protocol:"accessing",fn:function(){var e,t=this;return e=t["@announcementClass"]},messageSends:[]}),$globals.AnnouncementSubscription),$core.addMethod($core.method({selector:"announcementClass:",protocol:"accessing",fn:function(e){var t=this;return t["@announcementClass"]=e,t},messageSends:[]}),$globals.AnnouncementSubscription),$core.addMethod($core.method({selector:"deliver:",protocol:"announcing",fn:function(e){var t,o=this;return t=o._handlesAnnouncement_(e),$core.assert(t)&&$recv(o._valuable())._value_(e),o},messageSends:["ifTrue:","handlesAnnouncement:","value:","valuable"]}),$globals.AnnouncementSubscription),$core.addMethod($core.method({selector:"handlesAnnouncement:",protocol:"announcing",fn:function(e){function t(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var o,r,n,s,i,a=this;if(o=$recv(t())._globals(),r=$recv(a._announcementClass())._name(),n=$recv(o)._at_(r),null==(i=n)||i.isNil)return!1;var l;return l=i,s=$recv($recv($recv(t())._globals())._at_($recv($recv($recv(e)._class())._theNonMetaClass())._name()))._includesBehavior_(l)},messageSends:["ifNil:ifNotNil:","at:","globals","name","announcementClass","includesBehavior:","theNonMetaClass","class"]}),$globals.AnnouncementSubscription),$core.addMethod($core.method({selector:"receiver",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t._valuable())._receiver()},messageSends:["receiver","valuable"]}),$globals.AnnouncementSubscription),$core.addMethod($core.method({selector:"valuable",protocol:"accessing",fn:function(){var e,t=this;return e=t["@valuable"]},messageSends:[]}),$globals.AnnouncementSubscription),$core.addMethod($core.method({selector:"valuable:",protocol:"accessing",fn:function(e){var t=this;return t["@valuable"]=e,t},messageSends:[]}),$globals.AnnouncementSubscription),$core.addClass("AnnouncementValuable",$globals.Object,["valuable","receiver"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"receiver",protocol:"accessing",fn:function(){var e,t=this;return e=t["@receiver"]},messageSends:[]}),$globals.AnnouncementValuable),$core.addMethod($core.method({selector:"receiver:",protocol:"accessing",fn:function(e){var t=this;return t["@receiver"]=e,t},messageSends:[]}),$globals.AnnouncementValuable),$core.addMethod($core.method({selector:"valuable",protocol:"accessing",fn:function(){var e,t=this;return e=t["@valuable"]},messageSends:[]}),$globals.AnnouncementValuable),$core.addMethod($core.method({selector:"valuable:",protocol:"accessing",fn:function(e){var t=this;return t["@valuable"]=e,t},messageSends:[]}),$globals.AnnouncementValuable),$core.addMethod($core.method({selector:"value",protocol:"evaluating",fn:function(){var e,t=this;return e=$recv(t._valuable())._value()},messageSends:["value","valuable"]}),$globals.AnnouncementValuable),$core.addMethod($core.method({selector:"value:",protocol:"evaluating",fn:function(e){var t,o=this;return t=$recv(o._valuable())._value_(e)},messageSends:["value:","valuable"]}),$globals.AnnouncementValuable),$core.addClass("Announcer",$globals.Object,["registry","subscriptions"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"announce:",protocol:"announcing",fn:function(e){var t=this;return $recv(t["@subscriptions"])._do_(function(t){return $recv(t)._deliver_(e)}),t},messageSends:["do:","deliver:"]}),$globals.Announcer),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){function e(){return $globals.OrderedCollection||("undefined"==typeof OrderedCollection?nil:OrderedCollection)}var t=this;return $globals.Announcer.superclass.fn.prototype._initialize.apply($recv(t),[]),t["@subscriptions"]=$recv(e())._new(),t},messageSends:["initialize","new"]}),$globals.Announcer),$core.addMethod($core.method({selector:"on:do:",protocol:"subscribing",fn:function(e,t){var o=this;return o._on_do_for_(e,t,nil),o},messageSends:["on:do:for:"]}),$globals.Announcer),$core.addMethod($core.method({selector:"on:do:for:",protocol:"subscribing",fn:function(e,t,o){function r(){return $globals.AnnouncementSubscription||("undefined"==typeof AnnouncementSubscription?nil:AnnouncementSubscription)}function n(){return $globals.AnnouncementValuable||("undefined"==typeof AnnouncementValuable?nil:AnnouncementValuable)}var s,i,a,l,c,d,u,h,f=this;return s=f["@subscriptions"],i=$recv(r())._new(),a=i,l=$recv(n())._new(),$recv(l)._valuable_(t),$recv(l)._receiver_(o),c=$recv(l)._yourself(),d=c,$recv(a)._valuable_(d),$recv(i)._announcementClass_(e),u=$recv(i)._yourself(),h=u,$recv(s)._add_(h),f},messageSends:["add:","valuable:","new","receiver:","yourself","announcementClass:"]}),$globals.Announcer),$core.addMethod($core.method({selector:"on:doOnce:",protocol:"subscribing",fn:function(e,t){function o(){return $globals.AnnouncementSubscription||("undefined"==typeof AnnouncementSubscription?nil:AnnouncementSubscription)}var r,n,s,i=this;return n=$recv(o())._new(),$recv(n)._announcementClass_(e),s=$recv(n)._yourself(),r=s,$recv(r)._valuable_(function(e){return $recv(i["@subscriptions"])._remove_(r),$recv(t)._value_(e)}),$recv(i["@subscriptions"])._add_(r),i},messageSends:["announcementClass:","new","yourself","valuable:","remove:","value:","add:"]}),$globals.Announcer),$core.addMethod($core.method({selector:"on:send:to:",protocol:"subscribing",fn:function(e,t,o){function r(){return $globals.AnnouncementSubscription||("undefined"==typeof AnnouncementSubscription?nil:AnnouncementSubscription)}function n(){return $globals.MessageSend||("undefined"==typeof MessageSend?nil:MessageSend)}var s,i,a,l,c,d,u,h,f=this;return s=f["@subscriptions"],i=$recv(r())._new(),a=i,l=$recv(n())._new(),$recv(l)._receiver_(o),$recv(l)._selector_(t),c=$recv(l)._yourself(),d=c,$recv(a)._valuable_(d),$recv(i)._announcementClass_(e),u=$recv(i)._yourself(),h=u,$recv(s)._add_(h),f},messageSends:["add:","valuable:","new","receiver:","selector:","yourself","announcementClass:"]}),$globals.Announcer),$core.addMethod($core.method({selector:"unsubscribe:",protocol:"subscribing",fn:function(e){var t=this;return t["@subscriptions"]=$recv(t["@subscriptions"])._reject_(function(t){return $recv($recv(t)._receiver()).__eq(e)}),t},messageSends:["reject:","=","receiver"]}),$globals.Announcer),$core.addClass("SystemAnnouncer",$globals.Announcer,[],"Kernel-Announcements"),$globals.SystemAnnouncer.klass.iVarNames=["current"],$core.addMethod($core.method({selector:"current",protocol:"accessing",fn:function(){var e,t,o,r=this;return e=r["@current"],null==(o=e)||o.isNil?(r["@current"]=$globals.SystemAnnouncer.klass.superclass.fn.prototype._new.apply($recv(r),[]),t=r["@current"]):t=e,t},messageSends:["ifNil:","new"]}),$globals.SystemAnnouncer.klass),$core.addMethod($core.method({selector:"new",protocol:"instance creation",fn:function(){var e=this;return e._shouldNotImplement(),e},messageSends:["shouldNotImplement"]}),$globals.SystemAnnouncer.klass),$core.addClass("SystemAnnouncement",$globals.Object,[],"Kernel-Announcements"),$core.addMethod($core.method({selector:"classTag",protocol:"accessing",fn:function(){return"announcement"},messageSends:[]}),$globals.SystemAnnouncement.klass),$core.addClass("ClassAnnouncement",$globals.SystemAnnouncement,["theClass"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"theClass",protocol:"accessing",fn:function(){var e,t=this;return e=t["@theClass"]},messageSends:[]}),$globals.ClassAnnouncement),$core.addMethod($core.method({selector:"theClass:",protocol:"accessing",fn:function(e){var t=this;return t["@theClass"]=e,t},messageSends:[]}),$globals.ClassAnnouncement),$core.addClass("ClassAdded",$globals.ClassAnnouncement,[],"Kernel-Announcements"),$core.addClass("ClassCommentChanged",$globals.ClassAnnouncement,[],"Kernel-Announcements"),$core.addClass("ClassDefinitionChanged",$globals.ClassAnnouncement,[],"Kernel-Announcements"),$core.addClass("ClassMigrated",$globals.ClassAnnouncement,["oldClass"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"oldClass",protocol:"accessing",fn:function(){var e,t=this;return e=t["@oldClass"]},messageSends:[]}),$globals.ClassMigrated),$core.addMethod($core.method({selector:"oldClass:",protocol:"accessing",fn:function(e){var t=this;return t["@oldClass"]=e,t},messageSends:[]}),$globals.ClassMigrated),$core.addClass("ClassMoved",$globals.ClassAnnouncement,["oldPackage"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"oldPackage",protocol:"accessing",fn:function(){var e,t=this;return e=t["@oldPackage"]},messageSends:[]}),$globals.ClassMoved),$core.addMethod($core.method({selector:"oldPackage:",protocol:"accessing",fn:function(e){var t=this;return t["@oldPackage"]=e,t},messageSends:[]}),$globals.ClassMoved),$core.addClass("ClassRemoved",$globals.ClassAnnouncement,[],"Kernel-Announcements"),$core.addClass("ClassRenamed",$globals.ClassAnnouncement,[],"Kernel-Announcements"),$core.addClass("MethodAnnouncement",$globals.SystemAnnouncement,["method"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"method",protocol:"accessing",fn:function(){var e,t=this;return e=t["@method"]},messageSends:[]}),$globals.MethodAnnouncement),$core.addMethod($core.method({selector:"method:",protocol:"accessing",fn:function(e){var t=this;return t["@method"]=e,t},messageSends:[]}),$globals.MethodAnnouncement),$core.addClass("MethodAdded",$globals.MethodAnnouncement,[],"Kernel-Announcements"),$core.addClass("MethodModified",$globals.MethodAnnouncement,["oldMethod"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"oldMethod",protocol:"accessing",fn:function(){var e,t=this;return e=t["@oldMethod"]},messageSends:[]}),$globals.MethodModified),$core.addMethod($core.method({selector:"oldMethod:",protocol:"accessing",fn:function(e){var t=this;return t["@oldMethod"]=e, t},messageSends:[]}),$globals.MethodModified),$core.addClass("MethodMoved",$globals.MethodAnnouncement,["oldProtocol"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"oldProtocol",protocol:"accessing",fn:function(){var e,t=this;return e=t["@oldProtocol"]},messageSends:[]}),$globals.MethodMoved),$core.addMethod($core.method({selector:"oldProtocol:",protocol:"accessing",fn:function(e){var t=this;return t["@oldProtocol"]=e,t},messageSends:[]}),$globals.MethodMoved),$core.addClass("MethodRemoved",$globals.MethodAnnouncement,[],"Kernel-Announcements"),$core.addClass("PackageAnnouncement",$globals.SystemAnnouncement,["package"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"package",protocol:"accessing",fn:function(){var e,t=this;return e=t["@package"]},messageSends:[]}),$globals.PackageAnnouncement),$core.addMethod($core.method({selector:"package:",protocol:"accessing",fn:function(e){var t=this;return t["@package"]=e,t},messageSends:[]}),$globals.PackageAnnouncement),$core.addClass("PackageAdded",$globals.PackageAnnouncement,[],"Kernel-Announcements"),$core.addClass("PackageClean",$globals.PackageAnnouncement,[],"Kernel-Announcements"),$core.addClass("PackageDirty",$globals.PackageAnnouncement,[],"Kernel-Announcements"),$core.addClass("PackageRemoved",$globals.PackageAnnouncement,[],"Kernel-Announcements"),$core.addClass("ProtocolAnnouncement",$globals.SystemAnnouncement,["theClass","protocol"],"Kernel-Announcements"),$core.addMethod($core.method({selector:"package",protocol:"accessing",fn:function(){var e,t,o,r=this;if(e=r._theClass(),null==(o=e)||o.isNil)t=e;else{var n;n=o,t=$recv(n)._packageOfProtocol_(r._protocol())}return t},messageSends:["ifNotNil:","theClass","packageOfProtocol:","protocol"]}),$globals.ProtocolAnnouncement),$core.addMethod($core.method({selector:"protocol",protocol:"accessing",fn:function(){var e,t=this;return e=t["@protocol"]},messageSends:[]}),$globals.ProtocolAnnouncement),$core.addMethod($core.method({selector:"protocol:",protocol:"accessing",fn:function(e){var t=this;return t["@protocol"]=e,t},messageSends:[]}),$globals.ProtocolAnnouncement),$core.addMethod($core.method({selector:"theClass",protocol:"accessing",fn:function(){var e,t=this;return e=t["@theClass"]},messageSends:[]}),$globals.ProtocolAnnouncement),$core.addMethod($core.method({selector:"theClass:",protocol:"accessing",fn:function(e){var t=this;return t["@theClass"]=e,t},messageSends:[]}),$globals.ProtocolAnnouncement),$core.addClass("ProtocolAdded",$globals.ProtocolAnnouncement,[],"Kernel-Announcements"),$core.addClass("ProtocolRemoved",$globals.ProtocolAnnouncement,[],"Kernel-Announcements")}),define("amber_core/Platform-Services",["amber/boot","amber_core/Kernel-Objects","amber_core/Kernel-Collections","amber_core/Kernel-Methods","amber_core/Kernel-Infrastructure"],function($boot){"use strict";var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;$core.addPackage("Platform-Services"),$core.packages["Platform-Services"].innerEval=function(expr){return eval(expr)},$core.packages["Platform-Services"].transport={type:"amd",amdNamespace:"amber_core"},$core.addClass("ConsoleErrorHandler",$globals.Object,[],"Platform-Services"),$core.addMethod($core.method({selector:"handleError:",protocol:"error handling",fn:function(e){var t,o,r=this;return t=$recv(e)._context(),null==(o=t)||o.isNil||r._logErrorContext_($recv(e)._context()),r._logError_(e),r},messageSends:["ifNotNil:","context","logErrorContext:","logError:"]}),$globals.ConsoleErrorHandler),$core.addMethod($core.method({selector:"log:",protocol:"private",fn:function(e){var t=this;return $recv(console)._log_(e),t},messageSends:["log:"]}),$globals.ConsoleErrorHandler),$core.addMethod($core.method({selector:"logContext:",protocol:"private",fn:function(e){var t,o,r=this;return t=$recv(e)._home(),null==(o=t)||o.isNil||r._logContext_($recv(e)._home()),r._log_($recv(e)._asString()),r},messageSends:["ifNotNil:","home","logContext:","log:","asString"]}),$globals.ConsoleErrorHandler),$core.addMethod($core.method({selector:"logError:",protocol:"private",fn:function(e){var t=this;return t._log_($recv(e)._messageText()),t},messageSends:["log:","messageText"]}),$globals.ConsoleErrorHandler),$core.addMethod($core.method({selector:"logErrorContext:",protocol:"private",fn:function(e){var t,o,r=this;return null==(o=e)||o.isNil||(t=$recv(e)._home(),null==(o=t)||o.isNil||r._logContext_($recv(e)._home())),r},messageSends:["ifNotNil:","home","logContext:"]}),$globals.ConsoleErrorHandler),$globals.ConsoleErrorHandler.klass.iVarNames=["current"],$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){function e(){return $globals.ErrorHandler||("undefined"==typeof ErrorHandler?nil:ErrorHandler)}var t=this;return $recv(e())._registerIfNone_(t._new()),t},messageSends:["registerIfNone:","new"]}),$globals.ConsoleErrorHandler.klass),$core.addClass("ConsoleTranscript",$globals.Object,["textarea"],"Platform-Services"),$core.addMethod($core.method({selector:"clear",protocol:"printing",fn:function(){var e=this;return e},messageSends:[]}),$globals.ConsoleTranscript),$core.addMethod($core.method({selector:"cr",protocol:"printing",fn:function(){var e=this;return e},messageSends:[]}),$globals.ConsoleTranscript),$core.addMethod($core.method({selector:"open",protocol:"actions",fn:function(){var e=this;return e},messageSends:[]}),$globals.ConsoleTranscript),$core.addMethod($core.method({selector:"show:",protocol:"printing",fn:function(e){var t=this;return console.log(String($recv(e)._asString())),t},messageSends:[]}),$globals.ConsoleTranscript),$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){function e(){return $globals.Transcript||("undefined"==typeof Transcript?nil:Transcript)}var t=this;return $recv(e())._registerIfNone_(t._new()),t},messageSends:["registerIfNone:","new"]}),$globals.ConsoleTranscript.klass),$core.addClass("InterfacingObject",$globals.Object,[],"Platform-Services"),$core.addMethod($core.method({selector:"ajax:",protocol:"actions",fn:function(e){function t(){return $globals.PlatformInterface||("undefined"==typeof PlatformInterface?nil:PlatformInterface)}var o,r=this;return r._deprecatedAPI(),o=$recv(t())._ajax_(e)},messageSends:["deprecatedAPI","ajax:"]}),$globals.InterfacingObject),$core.addMethod($core.method({selector:"alert:",protocol:"actions",fn:function(e){function t(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var o;return o=$recv(t())._alert_(e)},messageSends:["alert:"]}),$globals.InterfacingObject),$core.addMethod($core.method({selector:"confirm:",protocol:"actions",fn:function(e){function t(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var o;return o=$recv(t())._confirm_(e)},messageSends:["confirm:"]}),$globals.InterfacingObject),$core.addMethod($core.method({selector:"prompt:",protocol:"actions",fn:function(e){function t(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var o;return o=$recv(t())._prompt_(e)},messageSends:["prompt:"]}),$globals.InterfacingObject),$core.addMethod($core.method({selector:"prompt:default:",protocol:"actions",fn:function(e,t){function o(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var r;return r=$recv(o())._prompt_default_(e,t)},messageSends:["prompt:default:"]}),$globals.InterfacingObject),$core.addClass("Environment",$globals.InterfacingObject,[],"Platform-Services"),$core.addMethod($core.method({selector:"addInstVarNamed:to:",protocol:"compiling",fn:function(e,t){var o,r,n,s,i,a=this;return o=a._classBuilder(),r=$recv(t)._superclass(),n=$recv(t)._name(),s=$recv($recv(t)._instanceVariableNames())._copy(),$recv(s)._add_(e),i=$recv(s)._yourself(),$recv(o)._addSubclassOf_named_instanceVariableNames_package_(r,n,i,$recv($recv(t)._package())._name()),a},messageSends:["addSubclassOf:named:instanceVariableNames:package:","classBuilder","superclass","name","add:","copy","instanceVariableNames","yourself","package"]}),$globals.Environment),$core.addMethod($core.method({selector:"allSelectors",protocol:"accessing",fn:function(){function e(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var t;return t=$recv($recv(e())._core())._allSelectors()},messageSends:["allSelectors","core"]}),$globals.Environment),$core.addMethod($core.method({selector:"availableClassNames",protocol:"accessing",fn:function(){function e(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var t;return t=$recv($recv(e())._classes())._collect_(function(e){return $recv(e)._name()})},messageSends:["collect:","classes","name"]}),$globals.Environment),$core.addMethod($core.method({selector:"availablePackageNames",protocol:"accessing",fn:function(){function e(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var t;return t=$recv($recv(e())._packages())._collect_(function(e){return $recv(e)._name()})},messageSends:["collect:","packages","name"]}),$globals.Environment),$core.addMethod($core.method({selector:"availableProtocolsFor:",protocol:"accessing",fn:function(e){var t,o,r,n,s=this;return t=$recv(e)._protocols(),o=$recv(e)._superclass(),null==(n=o)||n.isNil||$recv(t)._addAll_(s._availableProtocolsFor_($recv(e)._superclass())),r=$recv($recv($recv(t)._asSet())._asArray())._sort()},messageSends:["protocols","ifNotNil:","superclass","addAll:","availableProtocolsFor:","sort","asArray","asSet"]}),$globals.Environment),$core.addMethod($core.method({selector:"classBuilder",protocol:"accessing",fn:function(){function e(){return $globals.ClassBuilder||("undefined"==typeof ClassBuilder?nil:ClassBuilder)}var t;return t=$recv(e())._new()},messageSends:["new"]}),$globals.Environment),$core.addMethod($core.method({selector:"classNamed:",protocol:"accessing",fn:function(e){function t(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var o,r,n,s=this;return o=$recv($recv(t())._globals())._at_($recv(e)._asSymbol()),r=null==(n=o)||n.isNil?s._error_("Invalid class name"):o},messageSends:["ifNil:","at:","globals","asSymbol","error:"]}),$globals.Environment),$core.addMethod($core.method({selector:"classes",protocol:"accessing",fn:function(){function e(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var t;return t=$recv(e())._classes()},messageSends:["classes"]}),$globals.Environment),$core.addMethod($core.method({selector:"commitPackage:onSuccess:onError:",protocol:"actions",fn:function(e,t,o){var r=this;return $recv($recv(e)._transport())._commitOnSuccess_onError_(t,o),r},messageSends:["commitOnSuccess:onError:","transport"]}),$globals.Environment),$core.addMethod($core.method({selector:"compileClassComment:for:",protocol:"compiling",fn:function(e,t){var o=this;return $recv(t)._comment_(e),o},messageSends:["comment:"]}),$globals.Environment),$core.addMethod($core.method({selector:"compileClassDefinition:",protocol:"compiling",fn:function(e){function t(){return $globals.DoIt||("undefined"==typeof DoIt?nil:DoIt)}function o(){return $globals.Error||("undefined"==typeof Error?nil:Error)}var r=this;return $recv(function(){return r._evaluate_for_(e,$recv(t())._new())})._on_do_(o(),function(e){return r._alert_($recv(e)._messageText())}),r},messageSends:["on:do:","evaluate:for:","new","alert:","messageText"]}),$globals.Environment),$core.addMethod($core.method({selector:"compileMethod:for:protocol:",protocol:"compiling",fn:function(e,t,o){var r;return r=$recv(t)._compile_protocol_(e,o)},messageSends:["compile:protocol:"]}),$globals.Environment),$core.addMethod($core.method({selector:"copyClass:to:",protocol:"actions",fn:function(e,t){function o(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}function r(){return $globals.ClassBuilder||("undefined"==typeof ClassBuilder?nil:ClassBuilder)}var n,s,i,a=this;return n=$recv($recv(o())._globals())._at_(t),null==(i=n)||i.isNil||(s=$recv("A class named ".__comma(t)).__comma(" already exists"),a._error_(s)),$recv($recv(r())._new())._copyClass_named_(e,t),a},messageSends:["ifNotNil:","at:","globals","error:",",","copyClass:named:","new"]}),$globals.Environment),$core.addMethod($core.method({selector:"doItReceiver",protocol:"accessing",fn:function(){function e(){return $globals.DoIt||("undefined"==typeof DoIt?nil:DoIt)}var t;return t=$recv(e())._new()},messageSends:["new"]}),$globals.Environment),$core.addMethod($core.method({selector:"evaluate:for:",protocol:"evaluating",fn:function(e,t){function o(){return $globals.Evaluator||("undefined"==typeof Evaluator?nil:Evaluator)}var r;return r=$recv(o())._evaluate_for_(e,t)},messageSends:["evaluate:for:"]}),$globals.Environment),$core.addMethod($core.method({selector:"evaluate:on:do:",protocol:"error handling",fn:function(e,t,o){var r,n=this;return $recv(e)._tryCatch_(function(e){return r=$recv(e)._isKindOf_(n._classNamed_($recv(t)._name())),$core.assert(r)?$recv(o)._value_(e):$recv(e)._resignal()}),n},messageSends:["tryCatch:","ifTrue:ifFalse:","isKindOf:","classNamed:","name","value:","resignal"]}),$globals.Environment),$core.addMethod($core.method({selector:"inspect:",protocol:"actions",fn:function(e){function t(){return $globals.Inspector||("undefined"==typeof Inspector?nil:Inspector)}var o=this;return $recv(t())._inspect_(e),o},messageSends:["inspect:"]}),$globals.Environment),$core.addMethod($core.method({selector:"moveClass:toPackage:",protocol:"actions",fn:function(e,t){function o(){return $globals.Package||("undefined"==typeof Package?nil:Package)}var r,n,s,i,a=this;return r=$recv(o())._named_(t),n=r,(null==(i=n)||i.isNil)&&a._error_("Invalid package name"),s=$recv(r).__eq_eq($recv(e)._package()),$core.assert(s)?a:($recv(e)._package_(r),a)},messageSends:["named:","ifNil:","error:","ifTrue:","==","package","package:"]}),$globals.Environment),$core.addMethod($core.method({selector:"moveMethod:toClass:",protocol:"actions",fn:function(e,t){var o,r,n,s,i,a,l=this;return o=l._classNamed_(t),r=o,n=$recv(e)._methodClass(),s=$recv(r).__eq_eq(n),$core.assert(s)?l:(i=$recv(e)._methodClass(),a=$recv(i)._isMetaclass(),$core.assert(a)&&(o=$recv(o)._class()),$recv(o)._compile_protocol_($recv(e)._source(),$recv(e)._protocol()),$recv($recv(e)._methodClass())._removeCompiledMethod_(e),l)},messageSends:["classNamed:","ifTrue:","==","methodClass","isMetaclass","class","compile:protocol:","source","protocol","removeCompiledMethod:"]}),$globals.Environment),$core.addMethod($core.method({selector:"moveMethod:toProtocol:",protocol:"actions",fn:function(e,t){var o=this;return $recv(e)._protocol_(t),o},messageSends:["protocol:"]}),$globals.Environment),$core.addMethod($core.method({selector:"packages",protocol:"accessing",fn:function(){function e(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var t;return t=$recv(e())._packages()},messageSends:["packages"]}),$globals.Environment),$core.addMethod($core.method({selector:"registerErrorHandler:",protocol:"services",fn:function(e){function t(){return $globals.ErrorHandler||("undefined"==typeof ErrorHandler?nil:ErrorHandler)}var o=this;return $recv(t())._register_(e),o},messageSends:["register:"]}),$globals.Environment),$core.addMethod($core.method({selector:"registerFinder:",protocol:"services",fn:function(e){function t(){return $globals.Finder||("undefined"==typeof Finder?nil:Finder)}var o=this;return $recv(t())._register_(e),o},messageSends:["register:"]}),$globals.Environment),$core.addMethod($core.method({selector:"registerInspector:",protocol:"services",fn:function(e){function t(){return $globals.Inspector||("undefined"==typeof Inspector?nil:Inspector)}var o=this;return $recv(t())._register_(e),o},messageSends:["register:"]}),$globals.Environment),$core.addMethod($core.method({selector:"registerProgressHandler:",protocol:"services",fn:function(e){function t(){return $globals.ProgressHandler||("undefined"==typeof ProgressHandler?nil:ProgressHandler)}var o=this;return $recv(t())._register_(e),o},messageSends:["register:"]}),$globals.Environment),$core.addMethod($core.method({selector:"registerTranscript:",protocol:"services",fn:function(e){function t(){return $globals.Transcript||("undefined"==typeof Transcript?nil:Transcript)}var o=this;return $recv(t())._register_(e),o},messageSends:["register:"]}),$globals.Environment),$core.addMethod($core.method({selector:"removeClass:",protocol:"actions",fn:function(e){function t(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var o=this;return $recv(t())._removeClass_(e),o},messageSends:["removeClass:"]}),$globals.Environment),$core.addMethod($core.method({selector:"removeMethod:",protocol:"actions",fn:function(e){var t=this;return $recv($recv(e)._methodClass())._removeCompiledMethod_(e),t},messageSends:["removeCompiledMethod:","methodClass"]}),$globals.Environment),$core.addMethod($core.method({selector:"removeProtocol:from:",protocol:"actions",fn:function(e,t){var o=this;return $recv($recv(t)._methodsInProtocol_(e))._do_(function(e){return $recv(t)._removeCompiledMethod_(e)}),o},messageSends:["do:","methodsInProtocol:","removeCompiledMethod:"]}),$globals.Environment),$core.addMethod($core.method({selector:"renameClass:to:",protocol:"actions",fn:function(e,t){function o(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}function r(){return $globals.ClassBuilder||("undefined"==typeof ClassBuilder?nil:ClassBuilder)}var n,s,i,a=this;return n=$recv($recv(o())._globals())._at_(t),null==(i=n)||i.isNil||(s=$recv("A class named ".__comma(t)).__comma(" already exists"),a._error_(s)),$recv($recv(r())._new())._renameClass_to_(e,t),a},messageSends:["ifNotNil:","at:","globals","error:",",","renameClass:to:","new"]}),$globals.Environment),$core.addMethod($core.method({selector:"renamePackage:to:",protocol:"actions",fn:function(e,t){function o(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var r,n,s,i=this;return r=$recv($recv(o())._globals())._at_(t),null==(s=r)||s.isNil||(n=$recv("A package named ".__comma(t)).__comma(" already exists"),i._error_(n)),$recv(o())._renamePackage_to_(e,t),i},messageSends:["ifNotNil:","at:","globals","error:",",","renamePackage:to:"]}),$globals.Environment),$core.addMethod($core.method({selector:"renameProtocol:to:in:",protocol:"actions",fn:function(e,t,o){var r=this;return $recv($recv(o)._methodsInProtocol_(e))._do_(function(e){return $recv(e)._protocol_(t)}),r},messageSends:["do:","methodsInProtocol:","protocol:"]}),$globals.Environment),$core.addMethod($core.method({selector:"setClassCommentOf:to:",protocol:"actions",fn:function(e,t){var o=this;return $recv(e)._comment_(t),o},messageSends:["comment:"]}),$globals.Environment),$core.addMethod($core.method({selector:"systemAnnouncer",protocol:"accessing",fn:function(){function e(){return $globals.Smalltalk||("undefined"==typeof Smalltalk?nil:Smalltalk)}var t;return t=$recv($recv($recv(e())._globals())._at_("SystemAnnouncer"))._current()},messageSends:["current","at:","globals"]}),$globals.Environment),$core.addClass("NullProgressHandler",$globals.Object,[],"Platform-Services"),$core.addMethod($core.method({selector:"do:on:displaying:",protocol:"progress handling",fn:function(e,t,o){var r=this;return $recv(t)._do_(e),r},messageSends:["do:"]}),$globals.NullProgressHandler),$globals.NullProgressHandler.klass.iVarNames=["current"],$core.addMethod($core.method({selector:"initialize",protocol:"initialization",fn:function(){function e(){return $globals.ProgressHandler||("undefined"==typeof ProgressHandler?nil:ProgressHandler)}var t=this;return $recv(e())._registerIfNone_(t._new()),t},messageSends:["registerIfNone:","new"]}),$globals.NullProgressHandler.klass),$core.addClass("PlatformInterface",$globals.Object,[],"Platform-Services"),$core.addMethod($core.method({selector:"ajax:",protocol:"actions",fn:function(e){function t(){return $globals.JQuery||("undefined"==typeof JQuery?nil:JQuery)}var o,r,n=this;return n._deprecatedAPI_("Use Platform newXhr or dedicated library."),o=null==(r=t())||r.isNil?n._error_("JQuery wrapper not loaded, cannot do AJAX."):$recv($recv(t())._current())._ajax_(e)},messageSends:["deprecatedAPI:","ifNotNil:ifNil:","ajax:","current","error:"]}),$globals.PlatformInterface.klass),$core.addMethod($core.method({selector:"alert:",protocol:"actions",fn:function(e){function t(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var o,r=this;return r._deprecatedAPI_("Use Terminal alert:"),o=$recv(t())._alert_(e)},messageSends:["deprecatedAPI:","alert:"]}),$globals.PlatformInterface.klass),$core.addMethod($core.method({selector:"confirm:",protocol:"actions",fn:function(e){function t(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var o,r=this;return r._deprecatedAPI_("Use Terminal confirm:"),o=$recv(t())._confirm_(e)},messageSends:["deprecatedAPI:","confirm:"]}),$globals.PlatformInterface.klass),$core.addMethod($core.method({selector:"existsGlobal:",protocol:"actions",fn:function(e){function t(){return $globals.PlatformInterface||("undefined"==typeof PlatformInterface?nil:PlatformInterface)}var o,r=this;return r._deprecatedAPI_("Use Smalltalk existsJsGlobal:"),o=$recv($recv(t())._globals())._at_ifPresent_ifAbsent_(e,function(){return!0},function(){return!1})},messageSends:["deprecatedAPI:","at:ifPresent:ifAbsent:","globals"]}),$globals.PlatformInterface.klass),$core.addMethod($core.method({selector:"globals",protocol:"accessing",fn:function(){function e(){return $globals.Platform||("undefined"==typeof Platform?nil:Platform)}var t,o=this;return o._deprecatedAPI_("Use Platform globals"),t=$recv(e())._globals()},messageSends:["deprecatedAPI:","globals"]}),$globals.PlatformInterface.klass),$core.addMethod($core.method({selector:"newXhr",protocol:"actions",fn:function(){function e(){return $globals.Platform||("undefined"==typeof Platform?nil:Platform)}var t,o=this;return o._deprecatedAPI_("Use Platform newXhr"),t=$recv(e())._newXhr()},messageSends:["deprecatedAPI:","newXhr"]}),$globals.PlatformInterface.klass),$core.addMethod($core.method({selector:"prompt:",protocol:"actions",fn:function(e){function t(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var o,r=this;return r._deprecatedAPI_("Use Terminal prompt:"),o=$recv(t())._prompt_(e)},messageSends:["deprecatedAPI:","prompt:"]}),$globals.PlatformInterface.klass),$core.addMethod($core.method({selector:"prompt:default:",protocol:"actions",fn:function(e,t){function o(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var r,n=this;return n._deprecatedAPI_("Use Terminal prompt:default:"),r=$recv(o())._prompt_default_(e,t)},messageSends:["deprecatedAPI:","prompt:default:"]}),$globals.PlatformInterface.klass),$core.addClass("Service",$globals.Object,[],"Platform-Services"),$globals.Service.klass.iVarNames=["current"],$core.addMethod($core.method({selector:"current",protocol:"accessing",fn:function(){var e,t=this;return e=t["@current"]},messageSends:[]}),$globals.Service.klass),$core.addMethod($core.method({selector:"new",protocol:"instance creation",fn:function(){var e=this;return e._shouldNotImplement(),e},messageSends:["shouldNotImplement"]}),$globals.Service.klass),$core.addMethod($core.method({selector:"register:",protocol:"registration",fn:function(e){var t=this;return t["@current"]=e,t},messageSends:[]}),$globals.Service.klass),$core.addMethod($core.method({selector:"registerIfNone:",protocol:"registration",fn:function(e){var t,o,r=this;return t=r._current(),(null==(o=t)||o.isNil)&&r._register_(e),r},messageSends:["ifNil:","current","register:"]}),$globals.Service.klass),$core.addClass("ErrorHandler",$globals.Service,[],"Platform-Services"),$core.addMethod($core.method({selector:"handleError:",protocol:"error handling",fn:function(e){var t=this;return t._handleUnhandledError_(e),t},messageSends:["handleUnhandledError:"]}),$globals.ErrorHandler.klass),$core.addMethod($core.method({selector:"handleUnhandledError:",protocol:"error handling",fn:function(e){var t,o,r=this;return t=$recv(e)._wasHandled(),$core.assert(t)?r:o=$recv(r._current())._handleError_(e)},messageSends:["ifTrue:","wasHandled","handleError:","current"]}),$globals.ErrorHandler.klass),$core.addClass("Finder",$globals.Service,[],"Platform-Services"),$core.addMethod($core.method({selector:"findClass:",protocol:"finding",fn:function(e){var t,o=this;return t=$recv(o._current())._findClass_(e)},messageSends:["findClass:","current"]}),$globals.Finder.klass),$core.addMethod($core.method({selector:"findMethod:",protocol:"finding",fn:function(e){var t,o=this;return t=$recv(o._current())._findMethod_(e)},messageSends:["findMethod:","current"]}),$globals.Finder.klass),$core.addMethod($core.method({selector:"findString:",protocol:"finding",fn:function(e){var t,o=this;return t=$recv(o._current())._findString_(e)},messageSends:["findString:","current"]}),$globals.Finder.klass),$core.addClass("Inspector",$globals.Service,[],"Platform-Services"),$core.addMethod($core.method({selector:"inspect:",protocol:"inspecting",fn:function(e){var t,o=this;return t=$recv(o._current())._inspect_(e)},messageSends:["inspect:","current"]}),$globals.Inspector.klass),$core.addClass("Platform",$globals.Service,[],"Platform-Services"),$core.addMethod($core.method({selector:"globals",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t._current())._globals()},messageSends:["globals","current"]}),$globals.Platform.klass),$core.addMethod($core.method({selector:"newXhr",protocol:"accessing",fn:function(){var e,t=this;return e=$recv(t._current())._newXhr()},messageSends:["newXhr","current"]}),$globals.Platform.klass),$core.addClass("ProgressHandler",$globals.Service,[],"Platform-Services"),$core.addMethod($core.method({selector:"do:on:displaying:",protocol:"progress handling",fn:function(e,t,o){var r=this;return $recv(r._current())._do_on_displaying_(e,t,o),r},messageSends:["do:on:displaying:","current"]}),$globals.ProgressHandler.klass),$core.addClass("Terminal",$globals.Service,[],"Platform-Services"),$core.addMethod($core.method({selector:"alert:",protocol:"dialogs",fn:function(e){var t,o=this;return t=$recv(o._current())._alert_(e)},messageSends:["alert:","current"]}),$globals.Terminal.klass),$core.addMethod($core.method({selector:"confirm:",protocol:"dialogs",fn:function(e){var t,o=this;return t=$recv(o._current())._confirm_(e)},messageSends:["confirm:","current"]}),$globals.Terminal.klass),$core.addMethod($core.method({selector:"prompt:",protocol:"dialogs",fn:function(e){var t,o=this;return t=$recv(o._current())._prompt_(e)},messageSends:["prompt:","current"]}),$globals.Terminal.klass),$core.addMethod($core.method({selector:"prompt:default:",protocol:"dialogs",fn:function(e,t){var o,r=this;return o=$recv(r._current())._prompt_default_(e,t)},messageSends:["prompt:default:","current"]}),$globals.Terminal.klass),$core.addClass("Transcript",$globals.Service,[],"Platform-Services"),$core.addMethod($core.method({selector:"clear",protocol:"printing",fn:function(){var e=this;return $recv(e._current())._clear(),e},messageSends:["clear","current"]}),$globals.Transcript.klass),$core.addMethod($core.method({selector:"cr",protocol:"printing",fn:function(){function e(){return $globals.String||("undefined"==typeof String?nil:String)}var t=this;return $recv(t._current())._show_($recv(e())._cr()),t},messageSends:["show:","current","cr"]}),$globals.Transcript.klass),$core.addMethod($core.method({selector:"inspect:",protocol:"printing",fn:function(e){var t=this;return t._show_(e),t},messageSends:["show:"]}),$globals.Transcript.klass),$core.addMethod($core.method({selector:"open",protocol:"instance creation",fn:function(){var e=this;return $recv(e._current())._open(),e},messageSends:["open","current"]}),$globals.Transcript.klass),$core.addMethod($core.method({selector:"show:",protocol:"printing",fn:function(e){var t=this;return $recv(t._current())._show_(e),t},messageSends:["show:","current"]}),$globals.Transcript.klass),$core.addMethod($core.method({selector:"inspectOn:",protocol:"*Platform-Services",fn:function(e){function t(){return $globals.Dictionary||("undefined"==typeof Dictionary?nil:Dictionary)}var o,r,n=this;return o=$recv(t())._new(),$recv(o)._at_put_("#self",n),$recv(o)._at_put_("#keys",n._keys()),n._keysAndValuesDo_(function(e,t){return $recv(o)._at_put_(e,t)}),$recv(e)._setLabel_(n._printString()),r=$recv(e)._setVariables_(o),n},messageSends:["new","at:put:","keys","keysAndValuesDo:","setLabel:","printString","setVariables:"]}),$globals.AssociativeCollection),$core.addMethod($core.method({selector:"inspectOn:",protocol:"*Platform-Services",fn:function(e){function t(){return $globals.Dictionary||("undefined"==typeof Dictionary?nil:Dictionary)}var o,r,n=this;return o=$recv(t())._new(),$recv(o)._at_put_("#self",n),n._withIndexDo_(function(e,t){return $recv(o)._at_put_(t,e)}),$recv(e)._setLabel_(n._printString()),r=$recv(e)._setVariables_(o),n},messageSends:["new","at:put:","withIndexDo:","setLabel:","printString","setVariables:"]}),$globals.Collection),$core.addMethod($core.method({selector:"inspectOn:",protocol:"*Platform-Services",fn:function(e){function t(){return $globals.Dictionary||("undefined"==typeof Dictionary?nil:Dictionary)}var o,r,n=this;return o=$recv(t())._new(),$recv(o)._at_put_("#self",n),$recv(o)._at_put_("#year",n._year()),$recv(o)._at_put_("#month",n._month()),$recv(o)._at_put_("#day",n._day()),$recv(o)._at_put_("#hours",n._hours()),$recv(o)._at_put_("#minutes",n._minutes()),$recv(o)._at_put_("#seconds",n._seconds()),$recv(o)._at_put_("#milliseconds",n._milliseconds()),$recv(e)._setLabel_(n._printString()),r=$recv(e)._setVariables_(o),n},messageSends:["new","at:put:","year","month","day","hours","minutes","seconds","milliseconds","setLabel:","printString","setVariables:"]}),$globals.Date),$core.addMethod($core.method({selector:"inspectOn:",protocol:"*Platform-Services",fn:function(e){function t(){return $globals.Dictionary||("undefined"==typeof Dictionary?nil:Dictionary)}function o(){return $globals.JSObjectProxy||("undefined"==typeof JSObjectProxy?nil:JSObjectProxy)}var r,n=this;return r=$recv(t())._new(),$recv(r)._at_put_("#self",n._jsObject()),$recv(e)._setLabel_(n._printString()),$recv(o())._addObjectVariablesTo_ofProxy_(r,n),$recv(e)._setVariables_(r),n},messageSends:["new","at:put:","jsObject","setLabel:","printString","addObjectVariablesTo:ofProxy:","setVariables:"]}),$globals.JSObjectProxy),$core.addMethod($core.method({selector:"inspectOn:",protocol:"*Platform-Services",fn:function(e){function t(){return $globals.Dictionary||("undefined"==typeof Dictionary?nil:Dictionary)}var o,r,n=this;return o=$recv(t())._new(),$recv(o)._at_put_("#self",n),$recv(o)._at_put_("#home",n._home()),$recv(o)._at_put_("#receiver",n._receiver()),$recv(o)._at_put_("#selector",n._selector()),$recv(o)._at_put_("#locals",n._locals()),$recv($recv(n._class())._instanceVariableNames())._do_(function(e){return $recv(o)._at_put_(e,n._instVarAt_(e))}),$recv(e)._setLabel_(n._printString()),r=$recv(e)._setVariables_(o),n},messageSends:["new","at:put:","home","receiver","selector","locals","do:","instanceVariableNames","class","instVarAt:","setLabel:","printString","setVariables:"]}),$globals.MethodContext),$core.addMethod($core.method({selector:"inspectOn:",protocol:"*Platform-Services",fn:function(e){function t(){return $globals.Dictionary||("undefined"==typeof Dictionary?nil:Dictionary)}var o,r,n=this;return o=$recv(t())._new(),$recv(o)._at_put_("#self",n),$recv($recv(n._class())._allInstanceVariableNames())._do_(function(e){return $recv(o)._at_put_(e,n._instVarAt_(e))}),$recv(e)._setLabel_(n._printString()),r=$recv(e)._setVariables_(o),n},messageSends:["new","at:put:","do:","allInstanceVariableNames","class","instVarAt:","setLabel:","printString","setVariables:"]}),$globals.Object),$core.addMethod($core.method({selector:"do:displayingProgress:",protocol:"*Platform-Services",fn:function(e,t){function o(){return $globals.ProgressHandler||("undefined"==typeof ProgressHandler?nil:ProgressHandler); }var r=this;return $recv(o())._do_on_displaying_(e,r,t),r},messageSends:["do:on:displaying:"]}),$globals.SequenceableCollection),$core.addMethod($core.method({selector:"inspectOn:",protocol:"*Platform-Services",fn:function(e){function t(){return $globals.Dictionary||("undefined"==typeof Dictionary?nil:Dictionary)}var o,r,n,s=this;return o=$recv(t())._new(),$recv(o)._at_put_("#self",s),r=1,s._do_(function(e){return $recv(o)._at_put_(r,e),r=$recv(r).__plus(1)}),$recv(e)._setLabel_(s._printString()),n=$recv(e)._setVariables_(o),s},messageSends:["new","at:put:","do:","+","setLabel:","printString","setVariables:"]}),$globals.Set),$core.addMethod($core.method({selector:"inspectOn:",protocol:"*Platform-Services",fn:function(e){var t,o,r,n,s,i,a=this;return $globals.String.superclass.fn.prototype._inspectOn_.apply($recv(a),[e]),o=a._printString(),r=$recv(o)._size(),n=$recv(r).__gt(30),$core.assert(n)?(s=a._printString(),i=$recv(s)._copyFrom_to_(1,30),t=$recv(i).__comma("...'")):t=a._printString(),$recv(e)._setLabel_(t),a},messageSends:["inspectOn:","ifTrue:ifFalse:",">","size","printString",",","copyFrom:to:","setLabel:"]}),$globals.String)}),define("amber_core/Platform-Browser",["amber/boot","amber_core/Kernel-Objects"],function($boot){"use strict";var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;$core.addPackage("Platform-Browser"),$core.packages["Platform-Browser"].innerEval=function(expr){return eval(expr)},$core.packages["Platform-Browser"].transport={type:"amd",amdNamespace:"amber_core"},$core.addClass("BrowserPlatform",$globals.Object,[],"Platform-Browser"),$core.addMethod($core.method({selector:"globals",protocol:"accessing",fn:function(){var e;return e=window},messageSends:[]}),$globals.BrowserPlatform),$core.addMethod($core.method({selector:"newXhr",protocol:"accessing",fn:function(){function e(){return $globals.XMLHttpRequest||("undefined"==typeof XMLHttpRequest?nil:XMLHttpRequest)}function t(){return $globals.NativeFunction||("undefined"==typeof NativeFunction?nil:NativeFunction)}var o,r,n=this;return null==(r=e())||r.isNil?(n._error_("XMLHttpRequest not available."),n):o=$recv(t())._constructorOf_(e())},messageSends:["ifNotNil:ifNil:","constructorOf:","error:"]}),$globals.BrowserPlatform),$core.addMethod($core.method({selector:"initialize",protocol:"testing",fn:function(){function e(){return $globals.Platform||("undefined"==typeof Platform?nil:Platform)}var t,o=this;return t=o._isFeasible(),$core.assert(t)&&$recv(e())._registerIfNone_(o._new()),o},messageSends:["ifTrue:","isFeasible","registerIfNone:","new"]}),$globals.BrowserPlatform.klass),$core.addMethod($core.method({selector:"isFeasible",protocol:"testing",fn:function(){return"undefined"!=typeof window},messageSends:[]}),$globals.BrowserPlatform.klass),$core.addClass("BrowserTerminal",$globals.Object,[],"Platform-Browser"),$core.addMethod($core.method({selector:"alert:",protocol:"actions",fn:function(e){var t;return t=$recv(window)._alert_(e)},messageSends:["alert:"]}),$globals.BrowserTerminal),$core.addMethod($core.method({selector:"confirm:",protocol:"actions",fn:function(e){var t;return t=$recv(window)._confirm_(e)},messageSends:["confirm:"]}),$globals.BrowserTerminal),$core.addMethod($core.method({selector:"prompt:",protocol:"actions",fn:function(e){var t;return t=$recv(window)._prompt_(e)},messageSends:["prompt:"]}),$globals.BrowserTerminal),$core.addMethod($core.method({selector:"prompt:default:",protocol:"actions",fn:function(e,t){var o;return o=$recv(window)._prompt_default_(e,t)},messageSends:["prompt:default:"]}),$globals.BrowserTerminal),$core.addMethod($core.method({selector:"initialize",protocol:"testing",fn:function(){function e(){return $globals.Terminal||("undefined"==typeof Terminal?nil:Terminal)}var t,o=this;return t=o._isFeasible(),$core.assert(t)&&$recv(e())._registerIfNone_(o._new()),o},messageSends:["ifTrue:","isFeasible","registerIfNone:","new"]}),$globals.BrowserTerminal.klass),$core.addMethod($core.method({selector:"isFeasible",protocol:"testing",fn:function(){return"undefined"!=typeof window},messageSends:[]}),$globals.BrowserTerminal.klass),$core.addMethod($core.method({selector:"postMessageTo:",protocol:"*Platform-Browser",fn:function(e){var t,o=this;return t=o._postMessageTo_origin_(e,"*")},messageSends:["postMessageTo:origin:"]}),$globals.Object),$core.addMethod($core.method({selector:"postMessageTo:origin:",protocol:"*Platform-Browser",fn:function(e,t){var o=this;return e.postMessage(o,t)},messageSends:[]}),$globals.Object)}),define("amber/deploy",["./helpers","amber_core/Kernel-Objects","amber_core/Kernel-Classes","amber_core/Kernel-Methods","amber_core/Kernel-Collections","amber_core/Kernel-Infrastructure","amber_core/Kernel-Exceptions","amber_core/Kernel-Announcements","amber_core/Platform-Services","amber_core/Platform-Browser"],function(e){return e}),define("require-css/normalize",[],function(){function e(e,r,i){if(e.match(a)||e.match(s))return e;e=n(e);var l=i.match(s),c=r.match(s);return!c||l&&l[1]==c[1]&&l[2]==c[2]?o(t(e,r),i):t(e,r)}function t(e,t){if("./"==e.substr(0,2)&&(e=e.substr(2)),e.match(a)||e.match(s))return e;var o=t.split("/"),r=e.split("/");for(o.pop();curPart=r.shift();)".."==curPart?o.pop():o.push(curPart);return o.join("/")}function o(e,t){var o=t.split("/");for(o.pop(),t=o.join("/")+"/",i=0;t.substr(i,1)==e.substr(i,1);)i++;for(;"/"!=t.substr(i,1);)i--;t=t.substr(i+1),e=e.substr(i+1),o=t.split("/");var r=e.split("/");for(out="";o.shift();)out+="../";for(;curPart=r.shift();)out+=curPart+"/";return out.substr(0,out.length-1)}var r=/([^:])\/+/g,n=function(e){return e.replace(r,"$1/")},s=/[^\:\/]*:\/\/([^\/])*/,a=/^(\/|data:)/,l=function(t,o,r){o=n(o),r=n(r);for(var s,i,t,a=/@import\s*("([^"]*)"|'([^']*)')|url\s*\((?!#)\s*(\s*"([^"]*)"|'([^']*)'|[^\)]*\s*)\s*\)/gi;s=a.exec(t);){i=s[3]||s[2]||s[5]||s[6]||s[4];var l;l=e(i,o,r);var c=s[5]||s[6]?1:0;t=t.substr(0,a.lastIndex-i.length-c-1)+l+t.substr(a.lastIndex-c-1),a.lastIndex=a.lastIndex+(l.length-i.length)}return t};return l.convertURIBase=e,l.absoluteURI=t,l.relativeURI=o,l}),define("require-css/css",[],function(){if("undefined"==typeof window)return{load:function(e,t,o){o()}};var e=document.getElementsByTagName("head")[0],t=window.navigator.userAgent.match(/Trident\/([^ ;]*)|AppleWebKit\/([^ ;]*)|Opera\/([^ ;]*)|rv\:([^ ;]*)(.*?)Gecko\/([^ ;]*)|MSIE\s([^ ;]*)|AndroidWebKit\/([^ ;]*)/)||0,o=!1,r=!0;t[1]||t[7]?o=parseInt(t[1])<6||parseInt(t[7])<=9:t[2]||t[8]?r=!1:t[4]&&(o=parseInt(t[4])<18);var n={};n.pluginBuilder="./css-builder";var s,i,a,l=function(){s=document.createElement("style"),e.appendChild(s),i=s.styleSheet||s.sheet},c=0,d=[],u=function(e){i.addImport(e),s.onload=function(){h()},c++,31==c&&(l(),c=0)},h=function(){a();var e=d.shift();return e?(a=e[1],void u(e[0])):void(a=null)},f=function(e,t){if(i&&i.addImport||l(),i&&i.addImport)a?d.push([e,t]):(u(e),a=t);else{s.textContent='@import "'+e+'";';var o=setInterval(function(){try{s.sheet.cssRules,clearInterval(o),t()}catch(e){}},10)}},p=function(t,o){var n=document.createElement("link");if(n.type="text/css",n.rel="stylesheet",r)n.onload=function(){n.onload=function(){},setTimeout(o,7)};else var s=setInterval(function(){for(var e=0;ens&&setTimeout(Mn(At,this,!0),20),Dt(this),En(),nt(this),this.curOp.forceUpdate=!0,Br(this,n),r.autofocus&&!ps||On()==s.input?setTimeout(Mn(ro,this),20):no(this);for(var i in Hs)Hs.hasOwnProperty(i)&&Hs[i](this,r[i],js);S(this),r.finishInit&&r.finishInit(this);for(var l=0;lns&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),fs&&(r.style.width="0px"),ss||(o.scroller.draggable=!0),ds&&(o.inputDiv.style.height="1px",o.inputDiv.style.position="absolute"),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.prevInput="",o.alignWidgets=!1,o.pollingFast=!1,o.poll=new vn,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.inaccurateSelection=!1,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null}function o(t){t.doc.mode=e.getMode(t.options,t.doc.modeOption),r(t)}function r(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.frontier=e.doc.first,we(e,100),e.state.modeGen++,e.curOp&&$t(e)}function n(e){e.options.lineWrapping?(Ii(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Di(e.display.wrapper,"CodeMirror-wrap"),h(e)),i(e),$t(e),Ke(e),setTimeout(function(){_(e)},100)}function s(e){var t=ot(e.display),o=e.options.lineWrapping,r=o&&Math.max(5,e.display.scroller.clientWidth/rt(e.display)-3);return function(n){if(cr(e.doc,n))return 0;var s=0;if(n.widgets)for(var i=0;it.maxLineLength&&(t.maxLineLength=o,t.maxLine=e)})}function f(e){var t=yn(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function p(e){var t=e.display,o=t.gutters.offsetWidth,r=Math.round(e.doc.height+Ae(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?o:0,docHeight:r,scrollHeight:r+Ne(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:o}}function g(e,t,o){this.cm=o;var r=this.vert=An("div",[An("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),n=this.horiz=An("div",[An("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(r),e(n),pi(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),pi(n,"scroll",function(){n.clientWidth&&t(n.scrollLeft,"horizontal")}),this.checkedOverlay=!1,rs&&8>ns&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function m(){}function v(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&Di(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new e.scrollbarModel[t.options.scrollbarStyle](function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),pi(e,"mousedown",function(){t.state.focused&&setTimeout(Mn(Pt,t),0)}),e.setAttribute("not-content","true")},function(e,o){"horizontal"==o?Jt(t,e):Kt(t,e)},t),t.display.scrollbars.addClass&&Ii(t.display.wrapper,t.display.scrollbars.addClass)}function _(e,t){t||(t=p(e));var o=e.display.barWidth,r=e.display.barHeight;$(e,t);for(var n=0;4>n&&o!=e.display.barWidth||r!=e.display.barHeight;n++)o!=e.display.barWidth&&e.options.lineWrapping&&N(e),$(e,p(e)),o=e.display.barWidth,r=e.display.barHeight}function $(e,t){var o=e.display,r=o.scrollbars.update(t);o.sizer.style.paddingRight=(o.barWidth=r.right)+"px",o.sizer.style.paddingBottom=(o.barHeight=r.bottom)+"px",r.right&&r.bottom?(o.scrollbarFiller.style.display="block",o.scrollbarFiller.style.height=r.bottom+"px",o.scrollbarFiller.style.width=r.right+"px"):o.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(o.gutterFiller.style.display="block",o.gutterFiller.style.height=r.bottom+"px",o.gutterFiller.style.width=t.gutterWidth+"px"):o.gutterFiller.style.display=""}function b(e,t,o){var r=o&&null!=o.top?Math.max(0,o.top):e.scroller.scrollTop;r=Math.floor(r-Te(e));var n=o&&null!=o.bottom?o.bottom:r+e.wrapper.clientHeight,s=Wr(t,r),i=Wr(t,n);if(o&&o.ensure){var a=o.ensure.from.line,l=o.ensure.to.line;s>a?(s=a,i=Wr(t,qr(zr(t,a))+e.wrapper.clientHeight)):Math.min(l,t.lastLine())>=i&&(s=Wr(t,qr(zr(t,l))-e.wrapper.clientHeight),i=l)}return{from:s,to:Math.max(i,s+1)}}function y(e){var t=e.display,o=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=w(t)-t.scroller.scrollLeft+e.doc.scrollLeft,n=t.gutters.offsetWidth,s=r+"px",i=0;i=o.viewFrom&&t.visible.to<=o.viewTo&&(null==o.updateLineNumbers||o.updateLineNumbers>=o.viewTo)&&o.renderedView==o.view&&0==Mt(e))return!1;S(e)&&(yt(e),t.dims=D(e));var n=r.first+r.size,s=Math.max(t.visible.from-e.options.viewportMargin,r.first),i=Math.min(n,t.visible.to+e.options.viewportMargin);o.viewFromi&&o.viewTo-i<20&&(i=Math.min(n,o.viewTo)),ys&&(s=ar(e.doc,s),i=lr(e.doc,i));var a=s!=o.viewFrom||i!=o.viewTo||o.lastWrapHeight!=t.wrapperHeight||o.lastWrapWidth!=t.wrapperWidth;wt(e,s,i),o.viewOffset=qr(zr(e.doc,o.viewFrom)),e.display.mover.style.top=o.viewOffset+"px";var l=Mt(e);if(!a&&0==l&&!t.force&&o.renderedView==o.view&&(null==o.updateLineNumbers||o.updateLineNumbers>=o.viewTo))return!1;var c=On();return l>4&&(o.lineDiv.style.display="none"),I(e,o.updateLineNumbers,t.dims),l>4&&(o.lineDiv.style.display=""),o.renderedView=o.view,c&&On()!=c&&c.offsetHeight&&c.focus(),Pn(o.cursorDiv),Pn(o.selectionDiv),o.gutters.style.height=0,a&&(o.lastWrapHeight=t.wrapperHeight,o.lastWrapWidth=t.wrapperWidth,we(e,400)),o.updateLineNumbers=null,!0}function T(e,t){for(var o=t.force,r=t.viewport,n=!0;;n=!1){if(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Oe(e))o=!0;else if(o=!1,r&&null!=r.top&&(r={top:Math.min(e.doc.height+Ae(e.display)-De(e),r.top)}),t.visible=b(e.display,e.doc,r),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!k(e,t))break;N(e);var s=p(e);be(e),P(e,s),_(e,s)}t.signal(e,"update",e),(e.display.viewFrom!=e.display.reportedViewFrom||e.display.viewTo!=e.display.reportedViewTo)&&(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function A(e,t){var o=new M(e,t);if(k(e,o)){N(e),T(e,o);var r=p(e);be(e),P(e,r),_(e,r),o.finish()}}function P(e,t){e.display.sizer.style.minHeight=t.docHeight+"px";var o=t.docHeight+e.display.barHeight;e.display.heightForcer.style.top=o+"px",e.display.gutters.style.height=Math.max(o+Ne(e),t.clientHeight)+"px"}function N(e){for(var t=e.display,o=t.lineDiv.offsetTop,r=0;rns){var i=s.node.offsetTop+s.node.offsetHeight;n=i-o,o=i}else{var a=s.node.getBoundingClientRect();n=a.bottom-a.top}var l=s.line.height-n;if(2>n&&(n=ot(t)),(l>.001||-.001>l)&&(Rr(s.line,n),O(s.line),s.rest))for(var c=0;c=t&&u.lineNumber;u.changes&&(yn(u.changes,"gutter")>-1&&(h=!1),L(e,u,c,o)),h&&(Pn(u.lineNumber),u.lineNumber.appendChild(document.createTextNode(C(e.options,c)))),a=u.node.nextSibling}else{var f=W(e,u,c,o);i.insertBefore(f,a)}c+=u.size}for(;a;)a=r(a)}function L(e,t,o,r){for(var n=0;nns&&(e.node.style.zIndex=2)),e.node}function B(e){var t=e.bgClass?e.bgClass+" "+(e.line.bgClass||""):e.line.bgClass;if(t&&(t+=" CodeMirror-linebackground"),e.background)t?e.background.className=t:(e.background.parentNode.removeChild(e.background),e.background=null);else if(t){var o=E(e);e.background=o.insertBefore(An("div",null,t),o.firstChild)}}function z(e,t){var o=e.display.externalMeasured;return o&&o.line==t.line?(e.display.externalMeasured=null,t.measure=o.measure,o.built):Mr(e,t)}function H(e,t){var o=t.text.className,r=z(e,t);t.text==t.node&&(t.node=r.pre),t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,j(t)):o&&(t.text.className=o)}function j(e){B(e),e.line.wrapClass?E(e).className=e.line.wrapClass:e.node!=e.text&&(e.node.className="");var t=e.textClass?e.textClass+" "+(e.line.textClass||""):e.line.textClass;e.text.className=t||""}function R(e,t,o,r){t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null);var n=t.line.gutterMarkers;if(e.options.lineNumbers||n){var s=E(t),i=t.gutter=s.insertBefore(An("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+"px; width: "+r.gutterTotalWidth+"px"),t.text);if(t.line.gutterClass&&(i.className+=" "+t.line.gutterClass),!e.options.lineNumbers||n&&n["CodeMirror-linenumbers"]||(t.lineNumber=i.appendChild(An("div",C(e.options,o),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+r.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),n)for(var a=0;a=0){var i=Q(s.from(),n.from()),a=U(s.to(),n.to()),l=s.empty()?n.from()==n.head:s.from()==s.head;t>=r&&--t,e.splice(--r,2,new G(l?a:i,l?i:a))}}return new Y(e,t)}function X(e,t){return new Y([new G(e,t||e)],0)}function ee(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function te(e,t){if(t.lineo?Ss(o,zr(e,o).text.length):oe(t,zr(e,t.line).text.length)}function oe(e,t){var o=e.ch;return null==o||o>t?Ss(e.line,t):0>o?Ss(e.line,0):e}function re(e,t){return t>=e.first&&t=s.ch:c.to>s.ch))){if(r&&(mi(d,"beforeCursorEnter"),d.explicitlyCleared)){if(a.markedSpans){--l;continue}break}if(!d.atomic)continue;var u=d.find(0>i?-1:1);if(0==Cs(u,s)&&(u.ch+=i,u.ch<0?u=u.line>e.first?te(e,Ss(u.line-1)):null:u.ch>a.text.length&&(u=u.linet&&(t=0),t=Math.round(t),r=Math.round(r),a.appendChild(An("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px; top: "+t+"px; width: "+(null==o?d-e:o)+"px; height: "+(r-t)+"px"))}function n(t,o,n){function s(o,r){return Ye(e,Ss(t,o),"div",u,r)}var a,l,u=zr(i,t),h=u.text.length;return Rn(Kr(u),o||0,null==n?h:n,function(e,t,i){var u,f,p,g=s(e,"left");if(e==t)u=g,f=p=g.left;else{if(u=s(t-1,"right"),"rtl"==i){var m=g;g=u,u=m}f=g.left,p=u.right}null==o&&0==e&&(f=c),u.top-g.top>3&&(r(f,g.top,null,g.bottom),f=c,g.bottoml.bottom||u.bottom==l.bottom&&u.right>l.right)&&(l=u),c+1>f&&(f=c),r(f,u.top,p-f,u.bottom)}),{start:a,end:l}}var s=e.display,i=e.doc,a=document.createDocumentFragment(),l=Pe(e.display),c=l.left,d=Math.max(s.sizerWidth,Oe(e)-s.sizer.offsetLeft)-l.right,u=t.from(),h=t.to();if(u.line==h.line)n(u.line,u.ch,h.ch);else{var f=zr(i,u.line),p=zr(i,h.line),g=sr(f)==sr(p),m=n(u.line,u.ch,g?f.text.length+1:null).end,v=n(h.line,g?0:null,h.ch).start;g&&(m.top0?t.blinker=setInterval(function(){t.cursorDiv.style.visibility=(o=!o)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function we(e,t){e.doc.mode.startState&&e.doc.frontier=e.display.viewTo)){var o=+new Date+e.options.workTime,r=Js(t.mode,ke(e,t.frontier)),n=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),function(s){if(t.frontier>=e.display.viewFrom){var i=s.styles,a=yr(e,s,r,!0);s.styles=a.styles;var l=s.styleClasses,c=a.classes;c?s.styleClasses=c:l&&(s.styleClasses=null);for(var d=!i||i.length!=s.styles.length||l!=c&&(!l||!c||l.bgClass!=c.bgClass||l.textClass!=c.textClass),u=0;!d&&uo?(we(e,e.options.workDelay),!0):void 0}),n.length&&ft(e,function(){for(var t=0;ti;--a){if(a<=s.first)return s.first;var l=zr(s,a-1);if(l.stateAfter&&(!o||a<=s.frontier))return a;var c=Ci(l.text,null,e.options.tabSize);(null==n||r>c)&&(n=a-1,r=c)}return n}function ke(e,t,o){var r=e.doc,n=e.display;if(!r.mode.startState)return!0;var s=xe(e,t,o),i=s>r.first&&zr(r,s-1).stateAfter;return i=i?Js(r.mode,i):Vs(r.mode),r.iter(s,t,function(o){Cr(e,o.text,i);var a=s==t-1||s%5==0||s>=n.viewFrom&&s2&&s.push((l.bottom+c.top)/2-o.top)}}s.push(o.bottom-o.top)}}function Le(e,t,o){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;ro)return{map:e.measure.maps[r],cache:e.measure.caches[r],before:!0}}function Ee(e,t){t=sr(t);var o=Fr(t),r=e.display.externalMeasured=new vt(e.doc,t,o);r.lineN=o;var n=r.built=Mr(e,r);return r.text=n.pre,Nn(e.display.lineMeasure,n.pre),r}function Be(e,t,o,r){return je(e,He(e,t),o,r)}function ze(e,t){if(t>=e.display.viewFrom&&t=o.lineN&&to?(s=0,i=1,a="left"):u>o?(s=o-d,i=s+1):(c==l.length-3||o==u&&l[c+3]>o)&&(i=u-d,s=i-1,o>=u&&(a="right")),null!=s){if(n=l[c+2],d==u&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==s)for(;c&&l[c-2]==l[c-3]&&l[c-1].insertLeft;)n=l[(c-=3)+2],a="left";if("right"==r&&s==u-d)for(;cc;c++){for(;s&&Tn(t.line.text.charAt(d+s));)--s;for(;u>d+i&&Tn(t.line.text.charAt(d+i));)++i;if(rs&&9>ns&&0==s&&i==u-d)h=n.parentNode.getBoundingClientRect();else if(rs&&e.options.lineWrapping){var f=xi(n,s,i).getClientRects();h=f.length?f["right"==r?f.length-1:0]:ks}else h=xi(n,s,i).getBoundingClientRect()||ks;if(h.left||h.right||0==s)break;i=s,s-=1,a="right"}rs&&11>ns&&(h=Fe(e.display.measure,h))}else{s>0&&(a=r="right");var f;h=e.options.lineWrapping&&(f=n.getClientRects()).length>1?f["right"==r?f.length-1:0]:n.getBoundingClientRect()}if(rs&&9>ns&&!s&&(!h||!h.left&&!h.right)){var p=n.parentNode.getClientRects()[0];h=p?{left:p.left,right:p.left+rt(e.display),top:p.top,bottom:p.bottom}:ks}for(var g=h.top-t.rect.top,m=h.bottom-t.rect.top,v=(g+m)/2,_=t.view.measure.heights,c=0;c<_.length-1&&!(v<_[c]);c++);var $=c?_[c-1]:0,b=_[c],y={left:("right"==a?h.right:h.left)-t.rect.left,right:("left"==a?h.left:h.right)-t.rect.left,top:$,bottom:b};return h.left||h.right||(y.bogus=!0),e.options.singleCursorHeightPerLine||(y.rtop=g,y.rbottom=m),y}function Fe(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!jn(e))return t;var o=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*o,right:t.right*o,top:t.top*r,bottom:t.bottom*r}}function We(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;to.from?i(e-1):i(e,r)}r=r||zr(e.doc,t.line),n||(n=He(e,r));var l=Kr(r),c=t.ch;if(!l)return i(c);var d=Yn(l,c),u=a(c,d);return null!=Fi&&(u.other=a(c,Fi)),u}function Ze(e,t){var o=0,t=te(e.doc,t);e.options.lineWrapping||(o=rt(e.display)*t.ch);var r=zr(e.doc,t.line),n=qr(r)+Te(e.display);return{left:o,right:o,top:n,bottom:n+r.height}}function Xe(e,t,o,r){var n=Ss(e,t);return n.xRel=r,o&&(n.outside=!0),n}function et(e,t,o){var r=e.doc;if(o+=e.display.viewOffset,0>o)return Xe(r.first,0,!0,-1);var n=Wr(r,o),s=r.first+r.size-1;if(n>s)return Xe(r.first+r.size-1,zr(r,s).text.length,!0,1);0>t&&(t=0);for(var i=zr(r,n);;){var a=tt(e,i,n,t,o),l=rr(i),c=l&&l.find(0,!0);if(!l||!(a.ch>c.from.ch||a.ch==c.from.ch&&a.xRel>0))return a;n=Fr(i=c.to.line)}}function tt(e,t,o,r,n){function s(r){var n=Ge(e,Ss(o,r),"line",t,c);return a=!0,i>n.bottom?n.left-l:im)return Xe(o,f,v,1);for(;;){if(d?f==h||f==Zn(t,h,1):1>=f-h){for(var _=p>r||m-r>=r-p?h:f,$=r-(_==h?p:m);Tn(t.text.charAt(_));)++_;var b=Xe(o,_,_==h?g:v,-1>$?-1:$>1?1:0);return b}var y=Math.ceil(u/2),S=h+y;if(d){S=h;for(var C=0;y>C;++C)S=Zn(t,S,1)}var w=s(S);w>r?(f=S,m=w,(v=a)&&(m+=1e3),u=y):(h=S,p=w,g=a,u-=y)}}function ot(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==ws){ws=An("pre");for(var t=0;49>t;++t)ws.appendChild(document.createTextNode("x")),ws.appendChild(An("br"));ws.appendChild(document.createTextNode("x"))}Nn(e.measure,ws);var o=ws.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),Pn(e.measure),o||1}function rt(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=An("span","xxxxxxxxxx"),o=An("pre",[t]);Nn(e.measure,o);var r=t.getBoundingClientRect(),n=(r.right-r.left)/10;return n>2&&(e.cachedCharWidth=n),n||10}function nt(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,id:++As},Ts?Ts.ops.push(e.curOp):e.curOp.ownsGroup=Ts={ops:[e.curOp],delayedCallbacks:[]}}function st(e){var t=e.delayedCallbacks,o=0;do{for(;o=o.viewTo)||o.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new M(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function ct(e){e.updatedDisplay=e.mustUpdate&&k(e.cm,e.update)}function dt(e){var t=e.cm,o=t.display;e.updatedDisplay&&N(t),e.barMeasure=p(t),o.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Be(t,o.maxLine,o.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(o.scroller.clientWidth,o.sizer.offsetLeft+e.adjustWidthTo+Ne(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,o.sizer.offsetLeft+e.adjustWidthTo-Oe(t))),(e.updatedDisplay||e.selectionChanged)&&(e.newSelectionNodes=_e(t))}function ut(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLefts;s=r){var i=new vt(e.doc,zr(e.doc,s),s);r=s+i.size,n.push(i)}return n}function $t(e,t,o,r){null==t&&(t=e.doc.first),null==o&&(o=e.doc.first+e.doc.size),r||(r=0);var n=e.display;if(r&&ot)&&(n.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=n.viewTo)ys&&ar(e.doc,t)n.viewFrom?yt(e):(n.viewFrom+=r,n.viewTo+=r);else if(t<=n.viewFrom&&o>=n.viewTo)yt(e);else if(t<=n.viewFrom){var s=Ct(e,o,o+r,1);s?(n.view=n.view.slice(s.index),n.viewFrom=s.lineN,n.viewTo+=r):yt(e)}else if(o>=n.viewTo){var s=Ct(e,t,t,-1);s?(n.view=n.view.slice(0,s.index),n.viewTo=s.lineN):yt(e)}else{var i=Ct(e,t,t,-1),a=Ct(e,o,o+r,1);i&&a?(n.view=n.view.slice(0,i.index).concat(_t(e,i.lineN,a.lineN)).concat(n.view.slice(a.index)),n.viewTo+=r):yt(e)}var l=n.externalMeasured;l&&(o=n.lineN&&t=r.viewTo)){var s=r.view[St(e,t)];if(null!=s.node){var i=s.changes||(s.changes=[]);-1==yn(i,o)&&i.push(o)}}}function yt(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function St(e,t){if(t>=e.display.viewTo)return null;if(t-=e.display.viewFrom,0>t)return null;for(var o=e.display.view,r=0;rt)return r}function Ct(e,t,o,r){var n,s=St(e,t),i=e.display.view;if(!ys||o==e.doc.first+e.doc.size)return{index:s,lineN:o};for(var a=0,l=e.display.viewFrom;s>a;a++)l+=i[a].size;if(l!=t){if(r>0){if(s==i.length-1)return null;n=l+i[s].size-t,s++}else n=l-t;t+=n,o+=n}for(;ar(e.doc,o)!=o;){if(s==(0>r?0:i.length-1))return null;o+=r*i[s-(0>r?1:0)].size,s+=r}return{index:s,lineN:o}}function wt(e,t,o){var r=e.display,n=r.view;0==n.length||t>=r.viewTo||o<=r.viewFrom?(r.view=_t(e,t,o),r.viewFrom=t):(r.viewFrom>t?r.view=_t(e,t,r.viewFrom).concat(r.view):r.viewFromo&&(r.view=r.view.slice(0,St(e,o)))),r.viewTo=o}function Mt(e){for(var t=e.display.view,o=0,r=0;r=9&&e.display.inputHasSelection===n||gs&&/[\uf700-\uf7ff]/.test(n))return At(e),!1;var s=!e.curOp;s&&nt(e),e.display.shift=!1,8203!=n.charCodeAt(0)||r.sel!=e.display.selForContextMenu||o||(o="​");for(var i=0,a=Math.min(o.length,n.length);a>i&&o.charCodeAt(i)==n.charCodeAt(i);)++i;var l=n.slice(i),c=Bi(l),d=null;e.state.pasteIncoming&&r.sel.ranges.length>1&&(Ps&&Ps.join("\n")==l?d=r.sel.ranges.length%Ps.length==0&&Sn(Ps,Bi):c.length==r.sel.ranges.length&&(d=Sn(c,function(e){return[e]})));for(var u=r.sel.ranges.length-1;u>=0;u--){var h=r.sel.ranges[u],f=h.from(),p=h.to();i-1){ko(e,_.line,"smart");break}}else v.electricInput&&v.electricInput.test(zr(r,_.line).text.slice(0,_.ch))&&ko(e,_.line,"smart")}}return Mo(e),e.curOp.updateInput=g,e.curOp.typing=!0,n.length>1e3||n.indexOf("\n")>-1?t.value=e.display.prevInput="":e.display.prevInput=n,s&&it(e),e.state.pasteIncoming=e.state.cutIncoming=!1,!0}function At(e,t){if(!e.display.contextMenuPending){var o,r,n=e.doc;if(e.somethingSelected()){e.display.prevInput="";var s=n.sel.primary();o=Hi&&(s.to().line-s.from().line>100||(r=e.getSelection()).length>1e3);var i=o?"-":r||e.getSelection();e.display.input.value=i,e.state.focused&&Mi(e.display.input),rs&&ns>=9&&(e.display.inputHasSelection=i)}else t||(e.display.prevInput=e.display.input.value="",rs&&ns>=9&&(e.display.inputHasSelection=null));e.display.inaccurateSelection=o}}function Pt(e){if("nocursor"!=e.options.readOnly&&(!ps||On()!=e.display.input))try{e.display.input.focus()}catch(t){}}function Nt(e){e.state.focused||(Pt(e),ro(e))}function Ot(e){return e.options.readOnly||e.doc.cantEdit}function Dt(e){function t(t){fn(e,t)||fi(t)}function o(t){if(e.somethingSelected())Ps=e.getSelections(),r.inaccurateSelection&&(r.prevInput="",r.inaccurateSelection=!1,r.input.value=Ps.join("\n"),Mi(r.input));else{for(var o=[],n=[],s=0;sns?pi(r.scroller,"dblclick",pt(e,function(t){if(!fn(e,t)){var o=Et(e,t);if(o&&!Ft(e,t)&&!Lt(e.display,t)){ui(t);var r=e.findWordAt(o);ie(e.doc,r.anchor,r.head)}}})):pi(r.scroller,"dblclick",function(t){fn(e,t)||ui(t)}),pi(r.lineSpace,"selectstart",function(e){Lt(r,e)||ui(e)}),$s||pi(r.scroller,"contextmenu",function(t){so(e,t)}),pi(r.scroller,"scroll",function(){r.scroller.clientHeight&&(Kt(e,r.scroller.scrollTop),Jt(e,r.scroller.scrollLeft,!0),mi(e,"scroll",e))}),pi(r.scroller,"mousewheel",function(t){Vt(e,t)}),pi(r.scroller,"DOMMouseScroll",function(t){Vt(e,t)}),pi(r.wrapper,"scroll",function(){r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),pi(r.input,"keyup",function(t){to.call(e,t)}),pi(r.input,"input",function(){rs&&ns>=9&&e.display.inputHasSelection&&(e.display.inputHasSelection=null),Tt(e)}),pi(r.input,"keydown",pt(e,Xt)),pi(r.input,"keypress",pt(e,oo)),pi(r.input,"focus",Mn(ro,e)),pi(r.input,"blur",Mn(no,e)),e.options.dragDrop&&(pi(r.scroller,"dragstart",function(t){qt(e,t)}),pi(r.scroller,"dragenter",t),pi(r.scroller,"dragover",t),pi(r.scroller,"drop",pt(e,Wt))),pi(r.scroller,"paste",function(t){Lt(r,t)||(e.state.pasteIncoming=!0,Pt(e),kt(e))}),pi(r.input,"paste",function(){if(ss&&!e.state.fakedLastChar&&!(new Date-e.state.lastMiddleDown<200)){var t=r.input.selectionStart,o=r.input.selectionEnd;r.input.value+="$",r.input.selectionEnd=o,r.input.selectionStart=t,e.state.fakedLastChar=!0}e.state.pasteIncoming=!0,kt(e)}),pi(r.input,"cut",o),pi(r.input,"copy",o),ds&&pi(r.sizer,"mouseup",function(){On()==r.input&&r.input.blur(),Pt(e)})}function It(e){var t=e.display;(t.lastWrapHeight!=t.wrapper.clientHeight||t.lastWrapWidth!=t.wrapper.clientWidth)&&(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function Lt(e,t){for(var o=cn(t);o!=e.wrapper;o=o.parentNode)if(!o||1==o.nodeType&&"true"==o.getAttribute("cm-ignore-events")||o.parentNode==e.sizer&&o!=e.mover)return!0}function Et(e,t,o,r){var n=e.display;if(!o&&"true"==cn(t).getAttribute("not-content"))return null;var s,i,a=n.lineSpace.getBoundingClientRect();try{s=t.clientX-a.left,i=t.clientY-a.top}catch(t){return null}var l,c=et(e,s,i);if(r&&1==c.xRel&&(l=zr(e.doc,c.line).text).length==c.ch){var d=Ci(l,l.length,e.options.tabSize)-l.length;c=Ss(c.line,Math.max(0,Math.round((s-Pe(e.display).left)/rt(e.display))-d))}return c}function Bt(e){if(!fn(this,e)){var t=this,o=t.display;if(o.shift=e.shiftKey,Lt(o,e))return void(ss||(o.scroller.draggable=!1,setTimeout(function(){o.scroller.draggable=!0},100)));if(!Ft(t,e)){var r=Et(t,e);switch(window.focus(),dn(e)){case 1:r?zt(t,e,r):cn(e)==o.scroller&&ui(e);break;case 2:ss&&(t.state.lastMiddleDown=+new Date),r&&ie(t.doc,r),setTimeout(Mn(Pt,t),20),ui(e);break;case 3:$s&&so(t,e)}}}}function zt(e,t,o){setTimeout(Mn(Nt,e),0);var r,n=+new Date;xs&&xs.time>n-400&&0==Cs(xs.pos,o)?r="triple":Ms&&Ms.time>n-400&&0==Cs(Ms.pos,o)?(r="double",xs={time:n,pos:o}):(r="single",Ms={time:n,pos:o});var s,i=e.doc.sel,a=gs?t.metaKey:t.ctrlKey;e.options.dragDrop&&Ei&&!Ot(e)&&"single"==r&&(s=i.contains(o))>-1&&!i.ranges[s].empty()?Ht(e,t,o,a):jt(e,t,o,r,a)}function Ht(e,t,o,r){var n=e.display,s=pt(e,function(i){ss&&(n.scroller.draggable=!1),e.state.draggingText=!1,gi(document,"mouseup",s),gi(n.scroller,"drop",s),Math.abs(t.clientX-i.clientX)+Math.abs(t.clientY-i.clientY)<10&&(ui(i),r||ie(e.doc,o),Pt(e),rs&&9==ns&&setTimeout(function(){document.body.focus(),Pt(e)},20))});ss&&(n.scroller.draggable=!0),e.state.draggingText=s,n.scroller.dragDrop&&n.scroller.dragDrop(),pi(document,"mouseup",s),pi(n.scroller,"drop",s)}function jt(e,t,o,r,n){function s(t){if(0!=Cs(m,t))if(m=t,"rect"==r){for(var n=[],s=e.options.tabSize,i=Ci(zr(c,o.line).text,o.ch,s),a=Ci(zr(c,t.line).text,t.ch,s),l=Math.min(i,a),f=Math.max(i,a),p=Math.min(o.line,t.line),g=Math.min(e.lastLine(),Math.max(o.line,t.line));g>=p;p++){var v=zr(c,p).text,_=_n(v,l,s);l==f?n.push(new G(Ss(p,_),Ss(p,_))):v.length>_&&n.push(new G(Ss(p,_),Ss(p,_n(v,f,s))))}n.length||n.push(new G(o,o)),he(c,Z(h.ranges.slice(0,u).concat(n),u),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var $=d,b=$.anchor,y=t;if("single"!=r){if("double"==r)var S=e.findWordAt(t);else var S=new G(Ss(t.line,0),te(c,Ss(t.line+1,0)));Cs(S.anchor,b)>0?(y=S.head,b=Q($.from(),S.anchor)):(y=S.anchor,b=U($.to(),S.head))}var n=h.ranges.slice(0);n[u]=new G(te(c,b),y),he(c,Z(n,u),yi)}}function i(t){var o=++_,n=Et(e,t,!0,"rect"==r);if(n)if(0!=Cs(n,m)){Nt(e),s(n);var a=b(l,c);(n.line>=a.to||n.linev.bottom?20:0;d&&setTimeout(pt(e,function(){_==o&&(l.scroller.scrollTop+=d,i(t))}),50)}}function a(t){_=1/0,ui(t),Pt(e),gi(document,"mousemove",$),gi(document,"mouseup",y),c.history.lastSelOrigin=null}var l=e.display,c=e.doc;ui(t);var d,u,h=c.sel,f=h.ranges;if(n&&!t.shiftKey?(u=c.sel.contains(o),d=u>-1?f[u]:new G(o,o)):d=c.sel.primary(),t.altKey)r="rect",n||(d=new G(o,o)),o=Et(e,t,!0,!0),u=-1;else if("double"==r){var p=e.findWordAt(o);d=e.display.shift||c.extend?se(c,d,p.anchor,p.head):p}else if("triple"==r){var g=new G(Ss(o.line,0),te(c,Ss(o.line+1,0)));d=e.display.shift||c.extend?se(c,d,g.anchor,g.head):g}else d=se(c,d,o);n?-1==u?(u=f.length,he(c,Z(f.concat([d]),u),{scroll:!1,origin:"*mouse"})):f.length>1&&f[u].empty()&&"single"==r?(he(c,Z(f.slice(0,u).concat(f.slice(u+1)),0)),h=c.sel):le(c,u,d,yi):(u=0,he(c,new Y([d],0),yi),h=c.sel);var m=o,v=l.wrapper.getBoundingClientRect(),_=0,$=pt(e,function(e){dn(e)?i(e):a(e)}),y=pt(e,a);pi(document,"mousemove",$),pi(document,"mouseup",y)}function Rt(e,t,o,r,n){try{var s=t.clientX,i=t.clientY}catch(t){return!1}if(s>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&ui(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(i>l.bottom||!gn(e,o))return ln(t);i-=l.top-a.viewOffset;for(var c=0;c=s){var u=Wr(e.doc,i),h=e.options.gutters[c];return n(e,o,e,u,h,t),ln(t)}}}function Ft(e,t){return Rt(e,t,"gutterClick",!0,un)}function Wt(e){var t=this;if(!fn(t,e)&&!Lt(t.display,e)){ui(e),rs&&(Ns=+new Date);var o=Et(t,e,!0),r=e.dataTransfer.files;if(o&&!Ot(t))if(r&&r.length&&window.FileReader&&window.File)for(var n=r.length,s=Array(n),i=0,a=function(e,r){var a=new FileReader;a.onload=pt(t,function(){if(s[r]=a.result,++i==n){o=te(t.doc,o);var e={from:o,to:o,text:Bi(s.join("\n")),origin:"paste"};fo(t.doc,e),ue(t.doc,X(o,Bs(e)))}}),a.readAsText(e)},l=0;n>l;++l)a(r[l],l);else{if(t.state.draggingText&&t.doc.sel.contains(o)>-1)return t.state.draggingText(e),void setTimeout(Mn(Pt,t),20);try{var s=e.dataTransfer.getData("Text");if(s){if(t.state.draggingText&&!(gs?e.metaKey:e.ctrlKey))var c=t.listSelections();if(fe(t.doc,X(o,o)),c)for(var l=0;li.clientWidth||n&&i.scrollHeight>i.clientHeight){if(n&&gs&&ss)e:for(var a=t.target,l=s.view;a!=i;a=a.parentNode)for(var c=0;cd?u=Math.max(0,u+d-50):h=Math.min(e.doc.height,h+d+50),A(e,{top:u,bottom:h})}20>Os&&(null==s.wheelStartX?(s.wheelStartX=i.scrollLeft,s.wheelStartY=i.scrollTop,s.wheelDX=r,s.wheelDY=n,setTimeout(function(){if(null!=s.wheelStartX){var e=i.scrollLeft-s.wheelStartX,t=i.scrollTop-s.wheelStartY,o=t&&s.wheelDY&&t/s.wheelDY||e&&s.wheelDX&&e/s.wheelDX;s.wheelStartX=s.wheelStartY=null,o&&(Ds=(Ds*Os+o)/(Os+1),++Os)}},200)):(s.wheelDX+=r,s.wheelDY+=n))}}function Ut(e,t,o){if("string"==typeof t&&(t=Us[t],!t))return!1;e.display.pollingFast&&Tt(e)&&(e.display.pollingFast=!1);var r=e.display.shift,n=!1;try{Ot(e)&&(e.state.suppressEdits=!0),o&&(e.display.shift=!1),n=t(e)!=$i}finally{e.display.shift=r,e.state.suppressEdits=!1}return n}function Qt(e,t,o){for(var r=0;rns&&27==e.keyCode&&(e.returnValue=!1);var o=e.keyCode;t.display.shift=16==o||e.shiftKey;var r=Gt(t,e);ls&&(Es=r?o:null,!r&&88==o&&!Hi&&(gs?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=o||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||eo(t)}}function eo(e){function t(e){18!=e.keyCode&&e.altKey||(Di(o,"CodeMirror-crosshair"),gi(document,"keyup",t),gi(document,"mouseover",t))}var o=e.display.lineDiv;Ii(o,"CodeMirror-crosshair"),pi(document,"keyup",t),pi(document,"mouseover",t)}function to(e){16==e.keyCode&&(this.doc.sel.shift=!1),fn(this,e)}function oo(e){var t=this;if(!(fn(t,e)||e.ctrlKey&&!e.altKey||gs&&e.metaKey)){var o=e.keyCode,r=e.charCode;if(ls&&o==Es)return Es=null,void ui(e);if(!(ls&&(!e.which||e.which<10)||ds)||!Gt(t,e)){var n=String.fromCharCode(null==r?o:r);Zt(t,e,n)||(rs&&ns>=9&&(t.display.inputHasSelection=null),kt(t))}}}function ro(e){"nocursor"!=e.options.readOnly&&(e.state.focused||(mi(e,"focus",e),e.state.focused=!0,Ii(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(At(e),ss&&setTimeout(Mn(At,e,!0),0))),xt(e),Ce(e))}function no(e){e.state.focused&&(mi(e,"blur",e),e.state.focused=!1,Di(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150)}function so(e,t){function o(){if(null!=n.input.selectionStart){var t=e.somethingSelected(),o=n.input.value="​"+(t?n.input.value:"");n.prevInput=t?"":"​",n.input.selectionStart=1,n.input.selectionEnd=o.length,n.selForContextMenu=e.doc.sel}}function r(){if(n.contextMenuPending=!1,n.inputDiv.style.position="relative",n.input.style.cssText=l,rs&&9>ns&&n.scrollbars.setScrollTop(n.scroller.scrollTop=i),xt(e),null!=n.input.selectionStart){(!rs||rs&&9>ns)&&o();var t=0,r=function(){n.selForContextMenu==e.doc.sel&&0==n.input.selectionStart?pt(e,Us.selectAll)(e):t++<10?n.detectingSelectAll=setTimeout(r,500):At(e)};n.detectingSelectAll=setTimeout(r,200)}}if(!fn(e,t,"contextmenu")){var n=e.display;if(!Lt(n,t)&&!io(e,t)){var s=Et(e,t),i=n.scroller.scrollTop;if(s&&!ls){var a=e.options.resetSelectionOnContextMenu;a&&-1==e.doc.sel.contains(s)&&pt(e,he)(e.doc,X(s),bi);var l=n.input.style.cssText;if(n.inputDiv.style.position="absolute",n.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(t.clientY-5)+"px; left: "+(t.clientX-5)+"px; z-index: 1000; background: "+(rs?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",ss)var c=window.scrollY;if(Pt(e),ss&&window.scrollTo(null,c),At(e),e.somethingSelected()||(n.input.value=n.prevInput=" "),n.contextMenuPending=!0,n.selForContextMenu=e.doc.sel,clearTimeout(n.detectingSelectAll),rs&&ns>=9&&o(),$s){fi(t);var d=function(){gi(window,"mouseup",d),setTimeout(r,20)};pi(window,"mouseup",d)}else setTimeout(r,50)}}}}function io(e,t){return gn(e,"gutterContextMenu")?Rt(e,t,"gutterContextMenu",!1,mi):!1}function ao(e,t){if(Cs(e,t.from)<0)return e;if(Cs(e,t.to)<=0)return Bs(t);var o=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Bs(t).ch-t.to.ch),Ss(o,r)}function lo(e,t){for(var o=[],r=0;r=0;--n)po(e,{from:r[n].from,to:r[n].to,text:n?[""]:t.text});else po(e,t)}}function po(e,t){ if(1!=t.text.length||""!=t.text[0]||0!=Cs(t.from,t.to)){var o=lo(e,t);Yr(e,t,o,e.cm?e.cm.curOp.id:NaN),vo(e,t,o,Jo(e,t));var r=[];Er(e,function(e,o){o||-1!=yn(r,e.history)||(an(e.history,t),r.push(e.history)),vo(e,t,null,Jo(e,t))})}}function go(e,t,o){if(!e.cm||!e.cm.state.suppressEdits){for(var r,n=e.history,s=e.sel,i="undo"==t?n.done:n.undone,a="undo"==t?n.undone:n.done,l=0;l=0;--l){var u=r.changes[l];if(u.origin=t,d&&!ho(e,u,!1))return void(i.length=0);c.push(Vr(e,u));var h=l?lo(e,u):bn(i);vo(e,u,h,Uo(e,u)),!l&&e.cm&&e.cm.scrollIntoView({from:u.from,to:Bs(u)});var f=[];Er(e,function(e,t){t||-1!=yn(f,e.history)||(an(e.history,u),f.push(e.history)),vo(e,u,null,Uo(e,u))})}}}}function mo(e,t){if(0!=t&&(e.first+=t,e.sel=new Y(Sn(e.sel.ranges,function(e){return new G(Ss(e.anchor.line+t,e.anchor.ch),Ss(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){$t(e.cm,e.first,e.first-t,t);for(var o=e.cm.display,r=o.viewFrom;re.lastLine())){if(t.from.lines&&(t={from:t.from,to:Ss(s,zr(e,s).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Hr(e,t.from,t.to),o||(o=lo(e,t)),e.cm?_o(e.cm,t,r):Dr(e,t,r),fe(e,o,bi)}}function _o(e,t,o){var r=e.doc,n=e.display,i=t.from,a=t.to,l=!1,c=i.line;e.options.lineWrapping||(c=Fr(sr(zr(r,i.line))),r.iter(c,a.line+1,function(e){return e==n.maxLine?(l=!0,!0):void 0})),r.sel.contains(t.from,t.to)>-1&&pn(e),Dr(r,t,o,s(e)),e.options.lineWrapping||(r.iter(c,i.line+t.text.length,function(e){var t=u(e);t>n.maxLineLength&&(n.maxLine=e,n.maxLineLength=t,n.maxLineChanged=!0,l=!1)}),l&&(e.curOp.updateMaxLine=!0)),r.frontier=Math.min(r.frontier,i.line),we(e,400);var d=t.text.length-(a.line-i.line)-1;t.full?$t(e):i.line!=a.line||1!=t.text.length||Or(e.doc,t)?$t(e,i.line,a.line+1,d):bt(e,i.line,"text");var h=gn(e,"changes"),f=gn(e,"change");if(f||h){var p={from:i,to:a,text:t.text,removed:t.removed,origin:t.origin};f&&un(e,"change",e,p),h&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(p)}e.display.selForContextMenu=null}function $o(e,t,o,r,n){if(r||(r=o),Cs(r,o)<0){var s=r;r=o,o=s}"string"==typeof t&&(t=Bi(t)),fo(e,{from:o,to:r,text:t,origin:n})}function bo(e,t){if(!fn(e,"scrollCursorIntoView")){var o=e.display,r=o.sizer.getBoundingClientRect(),n=null;if(t.top+r.top<0?n=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(n=!1),null!=n&&!hs){var s=An("div","​",null,"position: absolute; top: "+(t.top-o.viewOffset-Te(e.display))+"px; height: "+(t.bottom-t.top+Ne(e)+o.barHeight)+"px; left: "+t.left+"px; width: 2px;");e.display.lineSpace.appendChild(s),s.scrollIntoView(n),e.display.lineSpace.removeChild(s)}}}function yo(e,t,o,r){null==r&&(r=0);for(var n=0;5>n;n++){var s=!1,i=Ge(e,t),a=o&&o!=t?Ge(e,o):i,l=Co(e,Math.min(i.left,a.left),Math.min(i.top,a.top)-r,Math.max(i.left,a.left),Math.max(i.bottom,a.bottom)+r),c=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=l.scrollTop&&(Kt(e,l.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(s=!0)),null!=l.scrollLeft&&(Jt(e,l.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(s=!0)),!s)break}return i}function So(e,t,o,r,n){var s=Co(e,t,o,r,n);null!=s.scrollTop&&Kt(e,s.scrollTop),null!=s.scrollLeft&&Jt(e,s.scrollLeft)}function Co(e,t,o,r,n){var s=e.display,i=ot(e.display);0>o&&(o=0);var a=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:s.scroller.scrollTop,l=De(e),c={};n-o>l&&(n=o+l);var d=e.doc.height+Ae(s),u=i>o,h=n>d-i;if(a>o)c.scrollTop=u?0:o;else if(n>a+l){var f=Math.min(o,(h?d:n)-l);f!=a&&(c.scrollTop=f)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:s.scroller.scrollLeft,g=Oe(e)-(e.options.fixedGutter?s.gutters.offsetWidth:0),m=r-t>g;return m&&(r=t+g),10>t?c.scrollLeft=0:p>t?c.scrollLeft=Math.max(0,t-(m?0:10)):r>g+p-3&&(c.scrollLeft=r+(m?0:10)-g),c}function wo(e,t,o){(null!=t||null!=o)&&xo(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=o&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+o)}function Mo(e){xo(e);var t=e.getCursor(),o=t,r=t;e.options.lineWrapping||(o=t.ch?Ss(t.line,t.ch-1):t,r=Ss(t.line,t.ch+1)),e.curOp.scrollToPos={from:o,to:r,margin:e.options.cursorScrollMargin,isCursor:!0}}function xo(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var o=Ze(e,t.from),r=Ze(e,t.to),n=Co(e,Math.min(o.left,r.left),Math.min(o.top,r.top)-t.margin,Math.max(o.right,r.right),Math.max(o.bottom,r.bottom)+t.margin);e.scrollTo(n.scrollLeft,n.scrollTop)}}function ko(e,t,o,r){var n,s=e.doc;null==o&&(o="add"),"smart"==o&&(s.mode.indent?n=ke(e,t):o="prev");var i=e.options.tabSize,a=zr(s,t),l=Ci(a.text,null,i);a.stateAfter&&(a.stateAfter=null);var c,d=a.text.match(/^\s*/)[0];if(r||/\S/.test(a.text)){if("smart"==o&&(c=s.mode.indent(n,a.text.slice(d.length),a.text),c==$i||c>150)){if(!r)return;o="prev"}}else c=0,o="not";"prev"==o?c=t>s.first?Ci(zr(s,t-1).text,null,i):0:"add"==o?c=l+e.options.indentUnit:"subtract"==o?c=l-e.options.indentUnit:"number"==typeof o&&(c=l+o),c=Math.max(0,c);var u="",h=0;if(e.options.indentWithTabs)for(var f=Math.floor(c/i);f;--f)h+=i,u+=" ";if(c>h&&(u+=$n(c-h)),u!=d)$o(s,u,Ss(t,0),Ss(t,d.length),"+input");else for(var f=0;f=0;t--)$o(e.doc,"",r[t].from,r[t].to,"+delete");Mo(e)})}function Po(e,t,o,r,n){function s(){var t=a+o;return t=e.first+e.size?u=!1:(a=t,d=zr(e,t))}function i(e){var t=(n?Zn:Xn)(d,l,o,!0);if(null==t){if(e||!s())return u=!1;l=n?(0>o?Kn:qn)(d):0>o?d.text.length:0}else l=t;return!0}var a=t.line,l=t.ch,c=o,d=zr(e,a),u=!0;if("char"==r)i();else if("column"==r)i(!0);else if("word"==r||"group"==r)for(var h=null,f="group"==r,p=e.cm&&e.cm.getHelper(t,"wordChars"),g=!0;!(0>o)||i(!g);g=!1){var m=d.text.charAt(l)||"\n",v=xn(m,p)?"w":f&&"\n"==m?"n":!f||/\s/.test(m)?null:"p";if(!f||g||v||(v="s"),h&&h!=v){0>o&&(o=1,i());break}if(v&&(h=v),o>0&&!i(!g))break}var _=ve(e,Ss(a,l),c,!0);return u||(_.hitSide=!0),_}function No(e,t,o,r){var n,s=e.doc,i=t.left;if("page"==r){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);n=t.top+o*(a-(0>o?1.5:.5)*ot(e.display))}else"line"==r&&(n=o>0?t.bottom+3:t.top-3);for(;;){var l=et(e,i,n);if(!l.outside)break;if(0>o?0>=n:n>=s.height){l.hitSide=!0;break}n+=5*o}return l}function Oo(t,o,r,n){e.defaults[t]=o,r&&(Hs[t]=n?function(e,t,o){o!=js&&r(e,t,o)}:r)}function Do(e){for(var t,o,r,n,s=e.split(/-(?!$)/),e=s[s.length-1],i=0;i0||0==i&&s.clearWhenEmpty!==!1)return s;if(s.replacedWith&&(s.collapsed=!0,s.widgetNode=An("span",[s.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||s.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(s.widgetNode.insertLeft=!0)),s.collapsed){if(nr(e,t.line,t,o,s)||t.line!=o.line&&nr(e,o.line,t,o,s))throw new Error("Inserting collapsed marker partially overlapping an existing one");ys=!0}s.addToHistory&&Yr(e,{from:t,to:o,origin:"markText"},e.sel,NaN);var a,l=t.line,c=e.cm;if(e.iter(l,o.line+1,function(e){c&&s.collapsed&&!c.options.lineWrapping&&sr(e)==c.display.maxLine&&(a=!0),s.collapsed&&l!=t.line&&Rr(e,0),Wo(e,new jo(s,l==t.line?t.ch:null,l==o.line?o.ch:null)),++l}),s.collapsed&&e.iter(t.line,o.line+1,function(t){cr(e,t)&&Rr(t,0)}),s.clearOnEnter&&pi(s,"beforeCursorEnter",function(){s.clear()}),s.readOnly&&(bs=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),s.collapsed&&(s.id=++ti,s.atomic=!0),c){if(a&&(c.curOp.updateMaxLine=!0),s.collapsed)$t(c,t.line,o.line+1);else if(s.className||s.title||s.startStyle||s.endStyle||s.css)for(var d=t.line;d<=o.line;d++)bt(c,d,"text");s.atomic&&ge(c.doc),un(c,"markerAdded",c,s)}return s}function Eo(e,t,o,r,n){r=wn(r),r.shared=!1;var s=[Lo(e,t,o,r,n)],i=s[0],a=r.widgetNode;return Er(e,function(e){a&&(r.widgetNode=a.cloneNode(!0)),s.push(Lo(e,te(e,t),te(e,o),r,n));for(var l=0;l=t:s.to>t);(r||(r=[])).push(new jo(i,s.from,l?null:s.to))}}return r}function Ko(e,t,o){if(e)for(var r,n=0;n=t:s.to>t);if(a||s.from==t&&"bookmark"==i.type&&(!o||s.marker.insertLeft)){var l=null==s.from||(i.inclusiveLeft?s.from<=t:s.from0&&a)for(var u=0;uu;++u)p.push(g);p.push(l)}return p}function Vo(e){for(var t=0;t0)){var d=[l,1],u=Cs(c.from,a.from),h=Cs(c.to,a.to);(0>u||!i.inclusiveLeft&&!u)&&d.push({from:c.from,to:a.from}),(h>0||!i.inclusiveRight&&!h)&&d.push({from:a.to,to:c.to}),n.splice.apply(n,d),l+=d.length-1}}return n}function Yo(e){var t=e.markedSpans;if(t){for(var o=0;o=0&&0>=u||0>=d&&u>=0)&&(0>=d&&(Cs(c.to,o)>0||l.marker.inclusiveRight&&n.inclusiveLeft)||d>=0&&(Cs(c.from,r)<0||l.marker.inclusiveLeft&&n.inclusiveRight)))return!0}}}function sr(e){for(var t;t=or(e);)e=t.find(-1,!0).line;return e}function ir(e){for(var t,o;t=rr(e);)e=t.find(1,!0).line,(o||(o=[])).push(e);return o}function ar(e,t){var o=zr(e,t),r=sr(o);return o==r?t:Fr(r)}function lr(e,t){if(t>e.lastLine())return t;var o,r=zr(e,t);if(!cr(e,r))return t;for(;o=rr(r);)r=o.find(1,!0).line;return Fr(r)+1}function cr(e,t){var o=ys&&t.markedSpans;if(o)for(var r,n=0;ns;s++){n&&(n[0]=e.innerMode(t,r).mode);var i=t.token(o,r);if(o.pos>o.start)return i}throw new Error("Mode "+t.name+" failed to advance stream.")}function $r(e,t,o,r){function n(e){return{start:u.start,end:u.pos,string:u.current(),type:s||null,state:e?Js(i.mode,d):d}}var s,i=e.doc,a=i.mode;t=te(i,t);var l,c=zr(i,t.line),d=ke(e,t.line,o),u=new Xs(c.text,e.options.tabSize);for(r&&(l=[]);(r||u.pose.options.maxHighlightLength?(a=!1,i&&Cr(e,t,r,u.pos),u.pos=t.length,l=null):l=mr(_r(o,u,r,h),s),h){var f=h[0].name;f&&(l="m-"+(l?f+" "+l:f))}if(!a||d!=l){for(;cc;){var r=n[l];r>e&&n.splice(l,1,e,n[l+1],r),l+=2,c=Math.min(e,r)}if(t)if(a.opaque)n.splice(o,l-o,e,"cm-overlay "+t),l=o+2;else for(;l>o;o+=2){var s=n[o+1];n[o+1]=(s?s+" ":"")+"cm-overlay "+t}},s)}return{styles:n,classes:s.bgClass||s.textClass?s:null}}function Sr(e,t,o){if(!t.styles||t.styles[0]!=e.state.modeGen){var r=yr(e,t,t.stateAfter=ke(e,Fr(t)));t.styles=r.styles,r.classes?t.styleClasses=r.classes:t.styleClasses&&(t.styleClasses=null),o===e.doc.frontier&&e.doc.frontier++}return t.styles}function Cr(e,t,o,r){var n=e.doc.mode,s=new Xs(t,e.options.tabSize);for(s.start=s.pos=r||0,""==t&&vr(n,o);!s.eol()&&s.pos<=e.options.maxHighlightLength;)_r(n,s,o),s.start=s.pos}function wr(e,t){if(!e||/^\s*$/.test(e))return null;var o=t.addModeClass?ii:si;return o[e]||(o[e]=e.replace(/\S+/g,"cm-$&"))}function Mr(e,t){var o=An("span",null,null,ss?"padding-right: .1px":null),r={pre:An("pre",[o]),content:o,col:0,pos:0,cm:e};t.measure={};for(var n=0;n<=(t.rest?t.rest.length:0);n++){var s,i=n?t.rest[n-1]:t.line;r.pos=0,r.addToken=kr,(rs||ss)&&e.getOption("lineWrapping")&&(r.addToken=Tr(r.addToken)),Hn(e.display.measure)&&(s=Kr(i))&&(r.addToken=Ar(r.addToken,s)),r.map=[];var a=t!=e.display.externalMeasured&&Fr(i);Nr(i,r,Sr(e,i,a)),i.styleClasses&&(i.styleClasses.bgClass&&(r.bgClass=In(i.styleClasses.bgClass,r.bgClass||"")),i.styleClasses.textClass&&(r.textClass=In(i.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(zn(e.display.measure))),0==n?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}return ss&&/\bcm-tab\b/.test(r.content.lastChild.className)&&(r.content.className="cm-tab-wrap-hack"),mi(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=In(r.pre.className,r.textClass||"")),r}function xr(e){var t=An("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function kr(e,t,o,r,n,s,i){if(t){var a=e.cm.options.specialChars,l=!1;if(a.test(t))for(var c=document.createDocumentFragment(),d=0;;){a.lastIndex=d;var u=a.exec(t),h=u?u.index-d:t.length-d;if(h){var f=document.createTextNode(t.slice(d,d+h));rs&&9>ns?c.appendChild(An("span",[f])):c.appendChild(f),e.map.push(e.pos,e.pos+h,f),e.col+=h,e.pos+=h}if(!u)break;if(d+=h+1," "==u[0]){var p=e.cm.options.tabSize,g=p-e.col%p,f=c.appendChild(An("span",$n(g),"cm-tab"));f.setAttribute("role","presentation"),e.col+=g}else{var f=e.cm.options.specialCharPlaceholder(u[0]);rs&&9>ns?c.appendChild(An("span",[f])):c.appendChild(f),e.col+=1}e.map.push(e.pos,e.pos+1,f),e.pos++}else{e.col+=t.length;var c=document.createTextNode(t);e.map.push(e.pos,e.pos+t.length,c),rs&&9>ns&&(l=!0),e.pos+=t.length}if(o||r||n||l||i){var m=o||"";r&&(m+=r),n&&(m+=n);var v=An("span",[c],m,i);return s&&(v.title=s),e.content.appendChild(v)}e.content.appendChild(c)}}function Tr(e){function t(e){for(var t=" ",o=0;ol&&u.from<=l)break}if(u.to>=c)return e(o,r,n,s,i,a);e(o,r.slice(0,u.to-l),n,s,null,a),s=null,r=r.slice(u.to-l),l=u.to}}}function Pr(e,t,o,r){var n=!r&&o.widgetNode;n&&(e.map.push(e.pos,e.pos+t,n),e.content.appendChild(n)),e.pos+=t}function Nr(e,t,o){var r=e.markedSpans,n=e.text,s=0;if(r)for(var i,a,l,c,d,u,h,f=n.length,p=0,g=1,m="",v=0;;){if(v==p){l=c=d=u=a="",h=null,v=1/0;for(var _=[],$=0;$p)?(null!=b.to&&v>b.to&&(v=b.to,c=""),y.className&&(l+=" "+y.className),y.css&&(a=y.css),y.startStyle&&b.from==p&&(d+=" "+y.startStyle),y.endStyle&&b.to==v&&(c+=" "+y.endStyle),y.title&&!u&&(u=y.title),y.collapsed&&(!h||er(h.marker,y)<0)&&(h=b)):b.from>p&&v>b.from&&(v=b.from),"bookmark"==y.type&&b.from==p&&y.widgetNode&&_.push(y)}if(h&&(h.from||0)==p&&(Pr(t,(null==h.to?f+1:h.to)-p,h.marker,null==h.from),null==h.to))return;if(!h&&_.length)for(var $=0;$<_.length;++$)Pr(t,0,_[$])}if(p>=f)break;for(var S=Math.min(f,v);;){if(m){var C=p+m.length;if(!h){var w=C>S?m.slice(0,S-p):m;t.addToken(t,w,i?i+l:l,d,p+w.length==v?c:"",u,a)}if(C>=S){m=m.slice(S-p),p=S;break}p=C,d=""}m=n.slice(s,s=o[g++]),i=wr(o[g++],t.cm.options)}}else for(var g=1;go;++o)s.push(new ni(c[o],n(o),r));return s}var a=t.from,l=t.to,c=t.text,d=zr(e,a.line),u=zr(e,l.line),h=bn(c),f=n(c.length-1),p=l.line-a.line;if(t.full)e.insert(0,i(0,c.length)),e.remove(c.length,e.size-c.length);else if(Or(e,t)){var g=i(0,c.length-1);s(u,u.text,f),p&&e.remove(a.line,p),g.length&&e.insert(a.line,g)}else if(d==u)if(1==c.length)s(d,d.text.slice(0,a.ch)+h+d.text.slice(l.ch),f);else{var g=i(1,c.length-1);g.push(new ni(h+d.text.slice(l.ch),f,r)),s(d,d.text.slice(0,a.ch)+c[0],n(0)),e.insert(a.line+1,g)}else if(1==c.length)s(d,d.text.slice(0,a.ch)+c[0]+u.text.slice(l.ch),n(0)),e.remove(a.line+1,p);else{s(d,d.text.slice(0,a.ch)+c[0],n(0)),s(u,h+u.text.slice(l.ch),f);var g=i(1,c.length-1);p>1&&e.remove(a.line+1,p-1),e.insert(a.line+1,g)}un(e,"change",e,t)}function Ir(e){this.lines=e,this.parent=null;for(var t=0,o=0;tt||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var o=e;!o.lines;)for(var r=0;;++r){var n=o.children[r],s=n.chunkSize();if(s>t){o=n;break}t-=s}return o.lines[t]}function Hr(e,t,o){var r=[],n=t.line;return e.iter(t.line,o.line+1,function(e){var s=e.text;n==o.line&&(s=s.slice(0,o.ch)),n==t.line&&(s=s.slice(t.ch)),r.push(s),++n}),r}function jr(e,t,o){var r=[];return e.iter(t,o,function(e){r.push(e.text)}),r}function Rr(e,t){var o=t-e.height;if(o)for(var r=e;r;r=r.parent)r.height+=o}function Fr(e){if(null==e.parent)return null;for(var t=e.parent,o=yn(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var n=0;r.children[n]!=t;++n)o+=r.children[n].chunkSize();return o+t.first}function Wr(e,t){var o=e.first;e:do{for(var r=0;rt){e=n;continue e}t-=s,o+=n.chunkSize()}return o}while(!e.lines);for(var r=0;rt)break;t-=a}return o+r}function qr(e){e=sr(e);for(var t=0,o=e.parent,r=0;r1&&!e.done[e.done.length-2].ranges?(e.done.pop(),bn(e.done)):void 0}function Yr(e,t,o,r){var n=e.history;n.undone.length=0;var s,i=+new Date;if((n.lastOp==r||n.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&n.lastModTime>i-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(s=Qr(n,n.lastOp==r))){var a=bn(s.changes);0==Cs(t.from,t.to)&&0==Cs(t.from,a.to)?a.to=Bs(t):s.changes.push(Vr(e,t))}else{var l=bn(n.done);for(l&&l.ranges||Xr(e.sel,n.done),s={changes:[Vr(e,t)],generation:n.generation},n.done.push(s);n.done.length>n.undoDepth;)n.done.shift(),n.done[0].ranges||n.done.shift()}n.done.push(o),n.generation=++n.maxGeneration,n.lastModTime=n.lastSelTime=i,n.lastOp=n.lastSelOp=r,n.lastOrigin=n.lastSelOrigin=t.origin,a||mi(e,"historyAdded")}function Gr(e,t,o,r){var n=t.charAt(0);return"*"==n||"+"==n&&o.ranges.length==r.ranges.length&&o.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function Zr(e,t,o,r){var n=e.history,s=r&&r.origin;o==n.lastSelOp||s&&n.lastSelOrigin==s&&(n.lastModTime==n.lastSelTime&&n.lastOrigin==s||Gr(e,s,bn(n.done),t))?n.done[n.done.length-1]=t:Xr(t,n.done),n.lastSelTime=+new Date,n.lastSelOrigin=s,n.lastSelOp=o,r&&r.clearRedo!==!1&&Ur(n.undone)}function Xr(e,t){var o=bn(t);o&&o.ranges&&o.equals(e)||t.push(e)}function en(e,t,o,r){var n=t["spans_"+e.id],s=0;e.iter(Math.max(e.first,o),Math.min(e.first+e.size,r),function(o){o.markedSpans&&((n||(n=t["spans_"+e.id]={}))[s]=o.markedSpans),++s})}function tn(e){if(!e)return null;for(var t,o=0;o-1&&(bn(a)[u]=d[u],delete d[u])}}}return n}function nn(e,t,o,r){o0}function mn(e){e.prototype.on=function(e,t){pi(this,e,t)},e.prototype.off=function(e,t){gi(this,e,t)}}function vn(){this.id=null}function _n(e,t,o){for(var r=0,n=0;;){var s=e.indexOf(" ",r);-1==s&&(s=e.length);var i=s-r;if(s==e.length||n+i>=t)return r+Math.min(i,t-n);if(n+=s-r,n+=o-n%o,r=s+1,n>=t)return r}}function $n(e){for(;wi.length<=e;)wi.push(bn(wi)+" ");return wi[e]}function bn(e){return e[e.length-1]}function yn(e,t){for(var o=0;o-1&&Ti(e)?!0:t.test(e):Ti(e)}function kn(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function Tn(e){return e.charCodeAt(0)>=768&&Ai.test(e)}function An(e,t,o,r){var n=document.createElement(e);if(o&&(n.className=o),r&&(n.style.cssText=r),"string"==typeof t)n.appendChild(document.createTextNode(t));else if(t)for(var s=0;s0;--t)e.removeChild(e.firstChild);return e}function Nn(e,t){return Pn(e).appendChild(t)}function On(){return document.activeElement}function Dn(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function In(e,t){for(var o=e.split(" "),r=0;r2&&!(rs&&8>ns))}return Ni?An("span","​"):An("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px")}function Hn(e){if(null!=Oi)return Oi;var t=Nn(e,document.createTextNode("AخA")),o=xi(t,0,1).getBoundingClientRect();if(!o||o.left==o.right)return!1;var r=xi(t,1,2).getBoundingClientRect();return Oi=r.right-o.right<3}function jn(e){if(null!=ji)return ji;var t=Nn(e,An("span","x")),o=t.getBoundingClientRect(),r=xi(t,0,1).getBoundingClientRect();return ji=Math.abs(o.left-r.left)>1; }function Rn(e,t,o,r){if(!e)return r(t,o,"ltr");for(var n=!1,s=0;st||t==o&&i.to==t)&&(r(Math.max(i.from,t),Math.min(i.to,o),1==i.level?"rtl":"ltr"),n=!0)}n||r(t,o,"ltr")}function Fn(e){return e.level%2?e.to:e.from}function Wn(e){return e.level%2?e.from:e.to}function qn(e){var t=Kr(e);return t?Fn(t[0]):0}function Kn(e){var t=Kr(e);return t?Wn(bn(t)):e.text.length}function Jn(e,t){var o=zr(e.doc,t),r=sr(o);r!=o&&(t=Fr(r));var n=Kr(r),s=n?n[0].level%2?Kn(r):qn(r):0;return Ss(t,s)}function Vn(e,t){for(var o,r=zr(e.doc,t);o=rr(r);)r=o.find(1,!0).line,t=null;var n=Kr(r),s=n?n[0].level%2?qn(r):Kn(r):r.text.length;return Ss(null==t?Fr(r):t,s)}function Un(e,t){var o=Jn(e,t.line),r=zr(e.doc,o.line),n=Kr(r);if(!n||0==n[0].level){var s=Math.max(0,r.text.search(/\S/)),i=t.line==o.line&&t.ch<=s&&t.ch;return Ss(o.line,i?0:s)}return o}function Qn(e,t,o){var r=e[0].level;return t==r?!0:o==r?!1:o>t}function Yn(e,t){Fi=null;for(var o,r=0;rt)return r;if(n.from==t||n.to==t){if(null!=o)return Qn(e,n.level,e[o].level)?(n.from!=n.to&&(Fi=o),r):(n.from!=n.to&&(Fi=r),o);o=r}}return o}function Gn(e,t,o,r){if(!r)return t+o;do t+=o;while(t>0&&Tn(e.text.charAt(t)));return t}function Zn(e,t,o,r){var n=Kr(e);if(!n)return Xn(e,t,o,r);for(var s=Yn(n,t),i=n[s],a=Gn(e,t,i.level%2?-o:o,r);;){if(a>i.from&&a0==i.level%2?i.to:i.from);if(i=n[s+=o],!i)return null;a=o>0==i.level%2?Gn(e,i.to,-1,r):Gn(e,i.from,1,r)}}function Xn(e,t,o,r){var n=t+o;if(r)for(;n>0&&Tn(e.text.charAt(n));)n+=o;return 0>n||n>e.text.length?null:n}var es=/gecko\/\d/i.test(navigator.userAgent),ts=/MSIE \d/.test(navigator.userAgent),os=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),rs=ts||os,ns=rs&&(ts?document.documentMode||6:os[1]),ss=/WebKit\//.test(navigator.userAgent),is=ss&&/Qt\/\d+\.\d+/.test(navigator.userAgent),as=/Chrome\//.test(navigator.userAgent),ls=/Opera\//.test(navigator.userAgent),cs=/Apple Computer/.test(navigator.vendor),ds=/KHTML\//.test(navigator.userAgent),us=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),hs=/PhantomJS/.test(navigator.userAgent),fs=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),ps=fs||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),gs=fs||/Mac/.test(navigator.platform),ms=/win/i.test(navigator.platform),vs=ls&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);vs&&(vs=Number(vs[1])),vs&&vs>=15&&(ls=!1,ss=!0);var _s=gs&&(is||ls&&(null==vs||12.11>vs)),$s=es||rs&&ns>=9,bs=!1,ys=!1;g.prototype=wn({update:function(e){var t=e.scrollWidth>e.clientWidth+1,o=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(o){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var n=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+n)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=o?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var s=e.viewWidth-e.barLeft-(o?r:0);this.horiz.firstChild.style.width=e.scrollWidth-e.clientWidth+s+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedOverlay&&e.clientHeight>0&&(0==r&&this.overlayHack(),this.checkedOverlay=!0),{right:o?r:0,bottom:t?r:0}},setScrollLeft:function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e)},setScrollTop:function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e)},overlayHack:function(){var e=gs&&!us?"12px":"18px";this.horiz.style.minHeight=this.vert.style.minWidth=e;var t=this,o=function(e){cn(e)!=t.vert&&cn(e)!=t.horiz&&pt(t.cm,Bt)(e)};pi(this.vert,"mousedown",o),pi(this.horiz,"mousedown",o)},clear:function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)}},g.prototype),m.prototype=wn({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},m.prototype),e.scrollbarModel={"native":g,"null":m},M.prototype.signal=function(e,t){gn(e,t)&&this.events.push(arguments)},M.prototype.finish=function(){for(var e=0;e=0&&Cs(e,r.to())<=0)return o}return-1}},G.prototype={from:function(){return Q(this.anchor,this.head)},to:function(){return U(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var ws,Ms,xs,ks={left:0,right:0,top:0,bottom:0},Ts=null,As=0,Ps=null,Ns=0,Os=0,Ds=null;rs?Ds=-.53:es?Ds=15:as?Ds=-.7:cs&&(Ds=-1/3);var Is=function(e){var t=e.wheelDeltaX,o=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==o&&e.detail&&e.axis==e.VERTICAL_AXIS?o=e.detail:null==o&&(o=e.wheelDelta),{x:t,y:o}};e.wheelEventPixels=function(e){var t=Is(e);return t.x*=Ds,t.y*=Ds,t};var Ls=new vn,Es=null,Bs=e.changeEnd=function(e){return e.text?Ss(e.from.line+e.text.length-1,bn(e.text).length+(1==e.text.length?e.from.ch:0)):e.to};e.prototype={constructor:e,focus:function(){window.focus(),Pt(this),kt(this)},setOption:function(e,t){var o=this.options,r=o[e];(o[e]!=t||"mode"==e)&&(o[e]=t,Hs.hasOwnProperty(e)&&pt(this,Hs[e])(this,t,r))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Io(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,o=0;oo&&(ko(this,n.head.line,e,!0),o=n.head.line,r==this.doc.sel.primIndex&&Mo(this));else{var s=n.from(),i=n.to(),a=Math.max(o,s.line);o=Math.min(this.lastLine(),i.line-(i.ch?0:1))+1;for(var l=a;o>l;++l)ko(this,l,e);var c=this.doc.sel.ranges;0==s.ch&&t.length==c.length&&c[r].from().ch>0&&le(this.doc,r,new G(s,c[r].to()),bi)}}}),getTokenAt:function(e,t){return $r(this,e,t)},getLineTokens:function(e,t){return $r(this,Ss(e),t,!0)},getTokenTypeAt:function(e){e=te(this.doc,e);var t,o=Sr(this,zr(this.doc,e.line)),r=0,n=(o.length-1)/2,s=e.ch;if(0==s)t=o[2];else for(;;){var i=r+n>>1;if((i?o[2*i-1]:0)>=s)n=i;else{if(!(o[2*i+1]a?t:0==a?null:t.slice(0,a-1)},getModeAt:function(t){var o=this.doc.mode;return o.innerMode?e.innerMode(o,this.getTokenAt(t).state).mode:o},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var o=[];if(!Ks.hasOwnProperty(t))return Ks;var r=Ks[t],n=this.getModeAt(e);if("string"==typeof n[t])r[n[t]]&&o.push(r[n[t]]);else if(n[t])for(var s=0;sr&&(e=r,o=!0);var n=zr(this.doc,e);return Ue(this,n,{top:0,left:0},t||"page").top+(o?this.doc.height-qr(n):0)},defaultTextHeight:function(){return ot(this.display)},defaultCharWidth:function(){return rt(this.display)},setGutterMarker:gt(function(e,t,o){return To(this.doc,e,"gutter",function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=o,!o&&kn(r)&&(e.gutterMarkers=null),!0})}),clearGutter:gt(function(e){var t=this,o=t.doc,r=o.first;o.iter(function(o){o.gutterMarkers&&o.gutterMarkers[e]&&(o.gutterMarkers[e]=null,bt(t,r,"gutter"),kn(o.gutterMarkers)&&(o.gutterMarkers=null)),++r})}),addLineWidget:gt(function(e,t,o){return fr(this,e,t,o)}),removeLineWidget:function(e){e.clear()},lineInfo:function(e){if("number"==typeof e){if(!re(this.doc,e))return null;var t=e;if(e=zr(this.doc,e),!e)return null}else{var t=Fr(e);if(null==t)return null}return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,o,r,n){var s=this.display;e=Ge(this,te(this.doc,e));var i=e.bottom,a=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),s.sizer.appendChild(t),"over"==r)i=e.top;else if("above"==r||"near"==r){var l=Math.max(s.wrapper.clientHeight,this.doc.height),c=Math.max(s.sizer.clientWidth,s.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?i=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(i=e.bottom),a+t.offsetWidth>c&&(a=c-t.offsetWidth)}t.style.top=i+"px",t.style.left=t.style.right="","right"==n?(a=s.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==n?a=0:"middle"==n&&(a=(s.sizer.clientWidth-t.offsetWidth)/2),t.style.left=a+"px"),o&&So(this,a,i,a+t.offsetWidth,i+t.offsetHeight)},triggerOnKeyDown:gt(Xt),triggerOnKeyPress:gt(oo),triggerOnKeyUp:to,execCommand:function(e){return Us.hasOwnProperty(e)?Us[e](this):void 0},findPosH:function(e,t,o,r){var n=1;0>t&&(n=-1,t=-t);for(var s=0,i=te(this.doc,e);t>s&&(i=Po(this.doc,i,n,o,r),!i.hitSide);++s);return i},moveH:gt(function(e,t){var o=this;o.extendSelectionsBy(function(r){return o.display.shift||o.doc.extend||r.empty()?Po(o.doc,r.head,e,t,o.options.rtlMoveVisually):0>e?r.from():r.to()},Si)}),deleteH:gt(function(e,t){var o=this.doc.sel,r=this.doc;o.somethingSelected()?r.replaceSelection("",null,"+delete"):Ao(this,function(o){var n=Po(r,o.head,e,t,!1);return 0>e?{from:n,to:o.head}:{from:o.head,to:n}})}),findPosV:function(e,t,o,r){var n=1,s=r;0>t&&(n=-1,t=-t);for(var i=0,a=te(this.doc,e);t>i;++i){var l=Ge(this,a,"div");if(null==s?s=l.left:l.left=s,a=No(this,l,n,o),a.hitSide)break}return a},moveV:gt(function(e,t){var o=this,r=this.doc,n=[],s=!o.display.shift&&!r.extend&&r.sel.somethingSelected();if(r.extendSelectionsBy(function(i){if(s)return 0>e?i.from():i.to();var a=Ge(o,i.head,"div");null!=i.goalColumn&&(a.left=i.goalColumn),n.push(a.left);var l=No(o,a,e,t);return"page"==t&&i==r.sel.primary()&&wo(o,null,Ye(o,l,"div").top-a.top),l},Si),n.length)for(var i=0;i0&&a(o.charAt(r-1));)--r;for(;n.5)&&i(this),mi(this,"refresh",this)}),swapDoc:gt(function(e){var t=this.doc;return t.cm=null,Br(this,e),Ke(this),At(this),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,un(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},mn(e);var zs=e.defaults={},Hs=e.optionHandlers={},js=e.Init={toString:function(){return"CodeMirror.Init"}};Oo("value","",function(e,t){e.setValue(t)},!0),Oo("mode",null,function(e,t){e.doc.modeOption=t,o(e)},!0),Oo("indentUnit",2,o,!0),Oo("indentWithTabs",!1),Oo("smartIndent",!0),Oo("tabSize",4,function(e){r(e),Ke(e),$t(e)},!0),Oo("specialChars",/[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t){e.options.specialChars=new RegExp(t.source+(t.test(" ")?"":"| "),"g"),e.refresh()},!0),Oo("specialCharPlaceholder",xr,function(e){e.refresh()},!0),Oo("electricChars",!0),Oo("rtlMoveVisually",!ms),Oo("wholeLineUpdateBefore",!0),Oo("theme","default",function(e){a(e),l(e)},!0),Oo("keyMap","default",function(t,o,r){var n=Io(o),s=r!=e.Init&&Io(r);s&&s.detach&&s.detach(t,n),n.attach&&n.attach(t,s||null)}),Oo("extraKeys",null),Oo("lineWrapping",!1,n,!0),Oo("gutters",[],function(e){f(e.options),l(e)},!0),Oo("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?w(e.display)+"px":"0",e.refresh()},!0),Oo("coverGutterNextToScrollbar",!1,function(e){_(e)},!0),Oo("scrollbarStyle","native",function(e){v(e),_(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),Oo("lineNumbers",!1,function(e){f(e.options),l(e)},!0),Oo("firstLineNumber",1,l,!0),Oo("lineNumberFormatter",function(e){return e},l,!0),Oo("showCursorWhenSelecting",!1,be,!0),Oo("resetSelectionOnContextMenu",!0),Oo("readOnly",!1,function(e,t){"nocursor"==t?(no(e),e.display.input.blur(),e.display.disabled=!0):(e.display.disabled=!1,t||At(e))}),Oo("disableInput",!1,function(e,t){t||At(e)},!0),Oo("dragDrop",!0),Oo("cursorBlinkRate",530),Oo("cursorScrollMargin",0),Oo("cursorHeight",1,be,!0),Oo("singleCursorHeightPerLine",!0,be,!0),Oo("workTime",100),Oo("workDelay",100),Oo("flattenSpans",!0,r,!0),Oo("addModeClass",!1,r,!0),Oo("pollInterval",100),Oo("undoDepth",200,function(e,t){e.doc.history.undoDepth=t}),Oo("historyEventDelay",1250),Oo("viewportMargin",10,function(e){e.refresh()},!0),Oo("maxHighlightLength",1e4,r,!0),Oo("moveInputWithCursor",!0,function(e,t){t||(e.display.inputDiv.style.top=e.display.inputDiv.style.left=0)}),Oo("tabindex",null,function(e,t){e.display.input.tabIndex=t||""}),Oo("autofocus",null);var Rs=e.modes={},Fs=e.mimeModes={};e.defineMode=function(t,o){e.defaults.mode||"null"==t||(e.defaults.mode=t),arguments.length>2&&(o.dependencies=Array.prototype.slice.call(arguments,2)),Rs[t]=o},e.defineMIME=function(e,t){Fs[e]=t},e.resolveMode=function(t){if("string"==typeof t&&Fs.hasOwnProperty(t))t=Fs[t];else if(t&&"string"==typeof t.name&&Fs.hasOwnProperty(t.name)){var o=Fs[t.name];"string"==typeof o&&(o={name:o}),t=Cn(o,t),t.name=o.name}else if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return e.resolveMode("application/xml");return"string"==typeof t?{name:t}:t||{name:"null"}},e.getMode=function(t,o){var o=e.resolveMode(o),r=Rs[o.name];if(!r)return e.getMode(t,"text/plain");var n=r(t,o);if(Ws.hasOwnProperty(o.name)){var s=Ws[o.name];for(var i in s)s.hasOwnProperty(i)&&(n.hasOwnProperty(i)&&(n["_"+i]=n[i]),n[i]=s[i])}if(n.name=o.name,o.helperType&&(n.helperType=o.helperType),o.modeProps)for(var i in o.modeProps)n[i]=o.modeProps[i];return n},e.defineMode("null",function(){return{token:function(e){e.skipToEnd()}}}),e.defineMIME("text/plain","null");var Ws=e.modeExtensions={};e.extendMode=function(e,t){var o=Ws.hasOwnProperty(e)?Ws[e]:Ws[e]={};wn(t,o)},e.defineExtension=function(t,o){e.prototype[t]=o},e.defineDocExtension=function(e,t){li.prototype[e]=t},e.defineOption=Oo;var qs=[];e.defineInitHook=function(e){qs.push(e)};var Ks=e.helpers={};e.registerHelper=function(t,o,r){Ks.hasOwnProperty(t)||(Ks[t]=e[t]={_global:[]}),Ks[t][o]=r},e.registerGlobalHelper=function(t,o,r,n){e.registerHelper(t,o,n),Ks[t]._global.push({pred:r,val:n})};var Js=e.copyState=function(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var o={};for(var r in t){var n=t[r];n instanceof Array&&(n=n.concat([])),o[r]=n}return o},Vs=e.startState=function(e,t,o){return e.startState?e.startState(t,o):!0};e.innerMode=function(e,t){for(;e.innerMode;){var o=e.innerMode(t);if(!o||o.mode==e)break;t=o.state,e=o.mode}return o||{mode:e,state:t}};var Us=e.commands={selectAll:function(e){e.setSelection(Ss(e.firstLine(),0),Ss(e.lastLine()),bi)},singleSelection:function(e){e.setSelection(e.getCursor("anchor"),e.getCursor("head"),bi)},killLine:function(e){Ao(e,function(t){if(t.empty()){var o=zr(e.doc,t.head.line).text.length;return t.head.ch==o&&t.head.line0)n=new Ss(n.line,n.ch+1),e.replaceRange(s.charAt(n.ch-1)+s.charAt(n.ch-2),Ss(n.line,n.ch-2),n,"+transpose");else if(n.line>e.doc.first){var i=zr(e.doc,n.line-1).text;i&&e.replaceRange(s.charAt(0)+"\n"+i.charAt(i.length-1),Ss(n.line-1,i.length-1),Ss(n.line,1),"+transpose")}o.push(new G(n,n))}e.setSelections(o)})},newlineAndIndent:function(e){ft(e,function(){for(var t=e.listSelections().length,o=0;t>o;o++){var r=e.listSelections()[o];e.replaceRange("\n",r.anchor,r.head,"+input"),e.indentLine(r.from().line+1,null,!0),Mo(e)}})},toggleOverwrite:function(e){e.toggleOverwrite()}},Qs=e.keyMap={};Qs.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Qs.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Qs.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars"},Qs.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Qs["default"]=gs?Qs.macDefault:Qs.pcDefault,e.normalizeKeyMap=function(e){var t={};for(var o in e)if(e.hasOwnProperty(o)){var r=e[o];if(/^(name|fallthrough|(de|at)tach)$/.test(o))continue;if("..."==r){delete e[o];continue}for(var n=Sn(o.split(" "),Do),s=0;s=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.post},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);return t>-1?(this.pos=t,!0):void 0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var n=function(e){return o?e.toLowerCase():e},s=this.string.substr(this.pos,e.length);return n(s)==n(e)?(t!==!1&&(this.pos+=e.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}};var ei=e.TextMarker=function(e,t){this.lines=[],this.type=t,this.doc=e};mn(ei),ei.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&nt(e),gn(this,"clear")){var o=this.find();o&&un(this,"clear",o.from,o.to)}for(var r=null,n=null,s=0;se.display.maxLineLength&&(e.display.maxLine=l,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&$t(e,r,n+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&ge(e.doc)),e&&un(e,"markerCleared",e,this),t&&it(e),this.parent&&this.parent.clear()}},ei.prototype.find=function(e,t){null==e&&"bookmark"==this.type&&(e=1);for(var o,r,n=0;no;++o){var n=this.lines[o];this.height-=n.height,gr(n),un(n,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,o){this.height+=o,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0;re;++e)if(o(this.lines[e]))return!0}},Lr.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var o=0;oe){var s=Math.min(t,n-e),i=r.height;if(r.removeInner(e,s),this.height-=i-r.height,n==s&&(this.children.splice(o--,1),r.parent=null),0==(t-=s))break;e=0}else e-=n}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof Ir))){var a=[];this.collapse(a),this.children=[new Ir(a)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t=e){if(n.insertInner(e,t,o),n.lines&&n.lines.length>50){for(;n.lines.length>50;){var i=n.lines.splice(n.lines.length-25,25),a=new Ir(i);n.height-=a.height,this.children.splice(r+1,0,a),a.parent=this}this.maybeSpill()}break}e-=s}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),o=new Lr(t);if(e.parent){e.size-=o.size,e.height-=o.height;var r=yn(e.parent.children,e);e.parent.children.splice(r+1,0,o)}else{var n=new Lr(e.children);n.parent=e,e.children=[n,o],e=n}o.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,o){for(var r=0;re){var i=Math.min(t,s-e);if(n.iterN(e,i,o))return!0;if(0==(t-=i))break;e=0}else e-=s}}};var ai=0,li=e.Doc=function(e,t,o){if(!(this instanceof li))return new li(e,t,o);null==o&&(o=0),Lr.call(this,[new Ir([new ni("",null)])]),this.first=o,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.frontier=o;var r=Ss(o,0);this.sel=X(r),this.history=new Jr(null),this.id=++ai,this.modeOption=t,"string"==typeof e&&(e=Bi(e)),Dr(this,{from:r,to:r,text:e}),he(this,X(r),bi)};li.prototype=Cn(Lr.prototype,{constructor:li,iter:function(e,t,o){o?this.iterN(e-this.first,t-e,o):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var o=0,r=0;r=0;s--)fo(this,r[s]);a?ue(this,a):this.cm&&Mo(this.cm)}),undo:mt(function(){go(this,"undo")}),redo:mt(function(){go(this,"redo")}),undoSelection:mt(function(){go(this,"undo",!0)}),redoSelection:mt(function(){go(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,o=0,r=0;r=e.ch)&&t.push(n.marker.parent||n.marker)}return t},findMarks:function(e,t,o){e=te(this,e),t=te(this,t);var r=[],n=e.line;return this.iter(e.line,t.line+1,function(s){var i=s.markedSpans;if(i)for(var a=0;al.to||null==l.from&&n!=e.line||n==t.line&&l.from>t.ch||o&&!o(l.marker)||r.push(l.marker.parent||l.marker)}++n}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var o=t.markedSpans;if(o)for(var r=0;re?(t=e,!0):(e-=n,void++o)}),te(this,Ss(o,t))},indexFromPos:function(e){e=te(this,e);var t=e.ch;return e.linet&&(t=e.from),null!=e.to&&e.toa||a>=t)return i+(t-s);i+=a-s,i+=o-i%o,s=a+1}},wi=[""],Mi=function(e){e.select()};fs?Mi=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:rs&&(Mi=function(e){try{e.select()}catch(t){}});var xi,ki=/[\u00df\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ti=e.isWordChar=function(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||ki.test(e))},Ai=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;xi=document.createRange?function(e,t,o){var r=document.createRange();return r.setEnd(e,o),r.setStart(e,t),r}:function(e,t,o){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(n){return r}return r.collapse(!0),r.moveEnd("character",o),r.moveStart("character",t),r};var Pi=e.contains=function(e,t){if(e.contains)return e.contains(t);for(;t=t.parentNode;)if(11==t.nodeType&&(t=t.host),t==e)return!0};rs&&11>ns&&(On=function(){try{return document.activeElement}catch(e){return document.body}});var Ni,Oi,Di=e.rmClass=function(e,t){var o=e.className,r=Dn(t).exec(o);if(r){var n=o.slice(r.index+r[0].length);e.className=o.slice(0,r.index)+(n?r[1]+n:"")}},Ii=e.addClass=function(e,t){var o=e.className;Dn(t).test(o)||(e.className+=(o?" ":"")+t)},Li=!1,Ei=function(){if(rs&&9>ns)return!1;var e=An("div");return"draggable"in e||"dragDrop"in e}(),Bi=e.splitLines=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,o=[],r=e.length;r>=t;){var n=e.indexOf("\n",t);-1==n&&(n=e.length);var s=e.slice(t,"\r"==e.charAt(n-1)?n-1:n),i=s.indexOf("\r");-1!=i?(o.push(s.slice(0,i)),t+=i+1):(o.push(s),t=n+1)}return o}:function(e){return e.split(/\r\n?|\n/)},zi=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){try{var t=e.ownerDocument.selection.createRange()}catch(o){}return t&&t.parentElement()==e?0!=t.compareEndPoints("StartToEnd",t):!1},Hi=function(){var e=An("div");return"oncopy"in e?!0:(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),ji=null,Ri={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",107:"=",109:"-",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};e.keyNames=Ri,function(){for(var e=0;10>e;e++)Ri[e+48]=Ri[e+96]=String(e);for(var e=65;90>=e;e++)Ri[e]=String.fromCharCode(e);for(var e=1;12>=e;e++)Ri[e+111]=Ri[e+63235]="F"+e}();var Fi,Wi=function(){function e(e){return 247>=e?o.charAt(e):e>=1424&&1524>=e?"R":e>=1536&&1773>=e?r.charAt(e-1536):e>=1774&&2220>=e?"r":e>=8192&&8203>=e?"w":8204==e?"b":"L"}function t(e,t,o){this.level=e,this.from=t,this.to=o}var o="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm",n=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,s=/[stwN]/,i=/[LRr]/,a=/[Lb1n]/,l=/[1n]/,c="L";return function(o){if(!n.test(o))return!1;for(var r,d=o.length,u=[],h=0;d>h;++h)u.push(r=e(o.charCodeAt(h)));for(var h=0,f=c;d>h;++h){var r=u[h];"m"==r?u[h]=f:f=r}for(var h=0,p=c;d>h;++h){var r=u[h];"1"==r&&"r"==p?u[h]="n":i.test(r)&&(p=r,"r"==r&&(u[h]="R"))}for(var h=1,f=u[0];d-1>h;++h){var r=u[h];"+"==r&&"1"==f&&"1"==u[h+1]?u[h]="1":","!=r||f!=u[h+1]||"1"!=f&&"n"!=f||(u[h]=f),f=r}for(var h=0;d>h;++h){var r=u[h];if(","==r)u[h]="N";else if("%"==r){for(var g=h+1;d>g&&"%"==u[g];++g);for(var m=h&&"!"==u[h-1]||d>g&&"1"==u[g]?"1":"N",v=h;g>v;++v)u[v]=m;h=g-1}}for(var h=0,p=c;d>h;++h){var r=u[h];"L"==p&&"1"==r?u[h]="L":i.test(r)&&(p=r)}for(var h=0;d>h;++h)if(s.test(u[h])){for(var g=h+1;d>g&&s.test(u[g]);++g);for(var _="L"==(h?u[h-1]:c),$="L"==(d>g?u[g]:c),m=_||$?"L":"R",v=h;g>v;++v)u[v]=m;h=g-1}for(var b,y=[],h=0;d>h;)if(a.test(u[h])){var S=h;for(++h;d>h&&a.test(u[h]);++h);y.push(new t(0,S,h))}else{var C=h,w=y.length;for(++h;d>h&&"L"!=u[h];++h);for(var v=C;h>v;)if(l.test(u[v])){v>C&&y.splice(w,0,new t(1,C,v));var M=v;for(++v;h>v&&l.test(u[v]);++v);y.splice(w,0,new t(2,M,v)),C=v}else++v;h>C&&y.splice(w,0,new t(1,C,h))}return 1==y[0].level&&(b=o.match(/^\s+/))&&(y[0].from=b[0].length,y.unshift(new t(0,0,b[0].length))),1==bn(y).level&&(b=o.match(/\s+$/))&&(bn(y).to-=b[0].length,y.push(new t(0,d-b[0].length,d))),y[0].level!=bn(y).level&&y.push(new t(y[0].level,d,d)),y}}();return e.version="4.13.0",e}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define("codemirror/addon/hint/show-hint",["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,o,r){if(e.async){var n=++c;e(t,function(e){c==n&&r(e)},o)}else r(e(t,o))}function o(e,t){this.cm=e,this.options=this.buildOptions(t),this.widget=this.onClose=null}function r(e){return"string"==typeof e?e:e.text}function n(e,t){function o(e,o){var n;n="string"!=typeof o?function(e){return o(e,t)}:r.hasOwnProperty(o)?r[o]:o,s[e]=n}var r={Up:function(){t.moveFocus(-1)},Down:function(){t.moveFocus(1)},PageUp:function(){t.moveFocus(-t.menuSize()+1,!0)},PageDown:function(){t.moveFocus(t.menuSize()-1,!0)},Home:function(){t.setFocus(0)},End:function(){t.setFocus(t.length-1)},Enter:t.pick,Tab:t.pick,Esc:t.close},n=e.options.customKeys,s=n?{}:r;if(n)for(var i in n)n.hasOwnProperty(i)&&o(i,n[i]);var a=e.options.extraKeys;if(a)for(var i in a)a.hasOwnProperty(i)&&o(i,a[i]);return s}function s(e,t){for(;t&&t!=e;){if("LI"===t.nodeName.toUpperCase()&&t.parentNode==e)return t;t=t.parentNode}}function i(t,o){this.completion=t,this.data=o;var i=this,c=t.cm,d=this.hints=document.createElement("ul");d.className="CodeMirror-hints",this.selectedHint=o.selectedHint||0;for(var u=o.list,h=0;h0){var w=S.bottom-S.top,M=m.top-(m.bottom-S.top);if(M-w>0)d.style.top=(_=m.top-w)+"px",$=!1;else if(w>y){d.style.height=y-5+"px",d.style.top=(_=m.bottom-S.top)+"px";var x=c.getCursor();o.from.ch!=x.ch&&(m=c.cursorCoords(x),d.style.left=(v=m.left)+"px",S=d.getBoundingClientRect())}}var k=S.right-b;if(k>0&&(S.right-S.left>b&&(d.style.width=b-5+"px",k-=S.right-S.left-b),d.style.left=(v=m.left-k)+"px"),c.addKeyMap(this.keyMap=n(t,{moveFocus:function(e,t){i.changeActive(i.selectedHint+e,t)},setFocus:function(e){i.changeActive(e)},menuSize:function(){return i.screenAmount()},length:u.length,close:function(){t.close()},pick:function(){i.pick()},data:o})),t.options.closeOnUnfocus){var T;c.on("blur",this.onBlur=function(){T=setTimeout(function(){t.close()},100)}),c.on("focus",this.onFocus=function(){clearTimeout(T)})}var A=c.getScrollInfo();return c.on("scroll",this.onScroll=function(){var e=c.getScrollInfo(),o=c.getWrapperElement().getBoundingClientRect(),r=_+A.top-e.top,n=r-(window.pageYOffset||(document.documentElement||document.body).scrollTop);return $||(n+=d.offsetHeight),n<=o.top||n>=o.bottom?t.close():(d.style.top=r+"px",void(d.style.left=v+A.left-e.left+"px"))}),e.on(d,"dblclick",function(e){var t=s(d,e.target||e.srcElement);t&&null!=t.hintId&&(i.changeActive(t.hintId),i.pick())}),e.on(d,"click",function(e){var o=s(d,e.target||e.srcElement);o&&null!=o.hintId&&(i.changeActive(o.hintId),t.options.completeOnSingleClick&&i.pick())}),e.on(d,"mousedown",function(){setTimeout(function(){c.focus()},20)}),e.signal(o,"select",u[0],d.firstChild),!0}var a="CodeMirror-hint",l="CodeMirror-hint-active";e.showHint=function(e,t,o){if(!t)return e.showHint(o);o&&o.async&&(t.async=!0);var r={hint:t};if(o)for(var n in o)r[n]=o[n];return e.showHint(r)};var c=0;e.defineExtension("showHint",function(r){if(!(this.listSelections().length>1||this.somethingSelected())){this.state.completionActive&&this.state.completionActive.close();var n=this.state.completionActive=new o(this,r),s=n.options.hint;if(s)return e.signal(this,"startCompletion",this),t(s,this,n.options,function(e){n.showHints(e)})}}),o.prototype={close:function(){this.active()&&(this.cm.state.completionActive=null,this.widget&&this.widget.close(),this.onClose&&this.onClose(),e.signal(this.cm,"endCompletion",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(t,o){var n=t.list[o];n.hint?n.hint(this.cm,t,n):this.cm.replaceRange(r(n),n.from||t.from,n.to||t.to,"complete"),e.signal(t,"pick",n),this.close()},showHints:function(e){return e&&e.list.length&&this.active()?void(this.options.completeSingle&&1==e.list.length?this.pick(e,0):this.showWidget(e)):this.close()},showWidget:function(o){function r(){c||(c=!0,u.close(),u.cm.off("cursorActivity",l),o&&e.signal(o,"close"))}function n(){c||(e.signal(o,"update"),t(u.options.hint,u.cm,u.options,s))}function s(e){if(o=e,!c){if(!o||!o.list.length)return r();u.widget&&u.widget.close(),u.widget=new i(u,o)}}function a(){d&&(m(d),d=0)}function l(){a();var e=u.cm.getCursor(),t=u.cm.getLine(e.line);e.line!=f.line||t.length-e.ch!=p-f.ch||e.ch=this.data.list.length?t=o?this.data.list.length-1:0:0>t&&(t=o?0:this.data.list.length-1),this.selectedHint!=t){var r=this.hints.childNodes[this.selectedHint];r.className=r.className.replace(" "+l,""),r=this.hints.childNodes[this.selectedHint=t],r.className+=" "+l,r.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=r.offsetTop+r.offsetHeight-this.hints.clientHeight+3),e.signal(this.data,"select",this.data.list[this.selectedHint],r)}},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}},e.registerHelper("hint","auto",function(t,o){var r,n=t.getHelpers(t.getCursor(),"hint");if(n.length)for(var s=0;s,]/,closeOnUnfocus:!0,completeOnSingleClick:!1,container:null,customKeys:null,extraKeys:null};e.defineOption("hintOptions",null)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define("codemirror/mode/smalltalk/smalltalk",["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("smalltalk",function(e){var t=/[+\-\/\\*~<>=@%|&?!.,:;^]/,o=/true|false|nil|self|super|thisContext/,r=function(e,t){this.next=e,this.parent=t},n=function(e,t,o){this.name=e,this.context=t,this.eos=o},s=function(){this.context=new r(i,null),this.expectVariable=!0,this.indentation=0,this.userIndentationDelta=0};s.prototype.userIndent=function(t){this.userIndentationDelta=t>0?t/e.indentUnit-this.indentation:0};var i=function(e,s,i){var u=new n(null,s,!1),h=e.next();return'"'===h?u=a(e,new r(a,s)):"'"===h?u=l(e,new r(l,s)):"#"===h?"'"===e.peek()?(e.next(),u=c(e,new r(c,s))):e.eatWhile(/[^\s.{}\[\]()]/)?u.name="string-2":u.name="meta":"$"===h?("<"===e.next()&&(e.eatWhile(/[^\s>]/),e.next()),u.name="string-2"):"|"===h&&i.expectVariable?u.context=new r(d,s):/[\[\]{}()]/.test(h)?(u.name="bracket",u.eos=/[\[{(]/.test(h),"["===h?i.indentation++:"]"===h&&(i.indentation=Math.max(0,i.indentation-1))):t.test(h)?(e.eatWhile(t),u.name="operator",u.eos=";"!==h):/\d/.test(h)?(e.eatWhile(/[\w\d]/),u.name="number"):/[\w_]/.test(h)?(e.eatWhile(/[\w\d_]/),u.name=i.expectVariable?o.test(e.current())?"keyword":"variable":null):u.eos=i.expectVariable,u},a=function(e,t){return e.eatWhile(/[^"]/),new n("comment",e.eat('"')?t.parent:t,!0)},l=function(e,t){return e.eatWhile(/[^']/),new n("string",e.eat("'")?t.parent:t,!1)},c=function(e,t){return e.eatWhile(/[^']/),new n("string-2",e.eat("'")?t.parent:t,!1)},d=function(e,t){var o=new n(null,t,!1),r=e.next();return"|"===r?(o.context=t.parent,o.eos=!0):(e.eatWhile(/[^|]/),o.name="variable"),o};return{startState:function(){return new s},token:function(e,t){if(t.userIndent(e.indentation()),e.eatSpace())return null;var o=t.context.next(e,t.context,t);return t.context=o.context,t.expectVariable=o.eos,o.name},blankLine:function(e){e.userIndent(0)},indent:function(t,o){var r=t.context.next===i&&o&&"]"===o.charAt(0)?-1:t.userIndentationDelta;return(t.indentation+r)*e.indentUnit},electricChars:"]"}}),e.defineMIME("text/x-stsrc",{name:"smalltalk"})}),define("require-css/css!amber/legacy/resources/amber",[],function(){}),define("require-css/css!codemirror/addon/hint/show-hint",[],function(){}),define("require-css/css!codemirror/theme/ambiance",[],function(){}),function(e,t){function o(e){var t=e.length,o=se.type(e);return se.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===o||"function"!==o&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=pe[e]={};return se.each(e.match(ae)||[],function(e,o){t[o]=!0}),t}function n(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=se.expando+Math.random()}function s(e,o,r){var n;if(r===t&&1===e.nodeType)if(n="data-"+o.replace(_e,"-$1").toLowerCase(),r=e.getAttribute(n),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:ve.test(r)?JSON.parse(r):r}catch(s){}ge.set(e,o,r)}else r=t;return r}function i(){return!0}function a(){return!1}function l(){try{return K.activeElement}catch(e){}}function c(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function d(e,t,o){if(se.isFunction(t))return se.grep(e,function(e,r){return!!t.call(e,r,e)!==o});if(t.nodeType)return se.grep(e,function(e){return e===t!==o});if("string"==typeof t){if(Te.test(t))return se.filter(t,e,o);t=se.filter(t,e)}return se.grep(e,function(e){return te.call(t,e)>=0!==o})}function u(e,t){return se.nodeName(e,"table")&&se.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function h(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function f(e){var t=He.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function p(e,t){for(var o=e.length,r=0;o>r;r++)me.set(e[r],"globalEval",!t||me.get(t[r],"globalEval"))}function g(e,t){var o,r,n,s,i,a,l,c;if(1===t.nodeType){if(me.hasData(e)&&(s=me.access(e),i=me.set(t,s),c=s.events)){delete i.handle,i.events={};for(n in c)for(o=0,r=c[n].length;r>o;o++)se.event.add(t,n,c[n][o])}ge.hasData(e)&&(a=ge.access(e),l=se.extend({},a),ge.set(t,l))}}function m(e,o){var r=e.getElementsByTagName?e.getElementsByTagName(o||"*"):e.querySelectorAll?e.querySelectorAll(o||"*"):[];return o===t||o&&se.nodeName(e,o)?se.merge([e],r):r}function v(e,t){var o=t.nodeName.toLowerCase();"input"===o&&Ee.test(e.type)?t.checked=e.checked:("input"===o||"textarea"===o)&&(t.defaultValue=e.defaultValue)}function _(e,t){if(t in e)return t;for(var o=t.charAt(0).toUpperCase()+t.slice(1),r=t,n=Xe.length;n--;)if(t=Xe[n]+o,t in e)return t;return r}function $(e,t){return e=t||e,"none"===se.css(e,"display")||!se.contains(e.ownerDocument,e)}function b(t){return e.getComputedStyle(t,null)}function y(e,t){for(var o,r,n,s=[],i=0,a=e.length;a>i;i++)r=e[i],r.style&&(s[i]=me.get(r,"olddisplay"),o=r.style.display,t?(s[i]||"none"!==o||(r.style.display=""),""===r.style.display&&$(r)&&(s[i]=me.access(r,"olddisplay",M(r.nodeName)))):s[i]||(n=$(r),(o&&"none"!==o||!n)&&me.set(r,"olddisplay",n?o:se.css(r,"display"))));for(i=0;a>i;i++)r=e[i],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?s[i]||"":"none"));return e}function S(e,t,o){var r=Je.exec(t);return r?Math.max(0,r[1]-(o||0))+(r[2]||"px"):t}function C(e,t,o,r,n){for(var s=o===(r?"border":"content")?4:"width"===t?1:0,i=0;4>s;s+=2)"margin"===o&&(i+=se.css(e,o+Ze[s],!0,n)),r?("content"===o&&(i-=se.css(e,"padding"+Ze[s],!0,n)),"margin"!==o&&(i-=se.css(e,"border"+Ze[s]+"Width",!0,n))):(i+=se.css(e,"padding"+Ze[s],!0,n),"padding"!==o&&(i+=se.css(e,"border"+Ze[s]+"Width",!0,n)));return i}function w(e,t,o){var r=!0,n="width"===t?e.offsetWidth:e.offsetHeight,s=b(e),i=se.support.boxSizing&&"border-box"===se.css(e,"boxSizing",!1,s);if(0>=n||null==n){if(n=Fe(e,t,s),(0>n||null==n)&&(n=e.style[t]),Ve.test(n))return n;r=i&&(se.support.boxSizingReliable||n===e.style[t]),n=parseFloat(n)||0}return n+C(e,t,o||(i?"border":"content"),r,s)+"px"}function M(e){var t=K,o=Qe[e];return o||(o=x(e,t), "none"!==o&&o||(We=(We||se("